Maison > base de données > tutoriel mysql > le corps du texte

Introduction détaillée à la syntaxe de définition de table MySQL

王林
Libérer: 2020-01-30 20:32:29
avant
2541 Les gens l'ont consulté

Introduction détaillée à la syntaxe de définition de table MySQL

Tout d'abord, nous savons tous qu'une table de données ne peut être créée qu'une fois la base de données créée avec succès. La table de données est une collection de champs et les données de la table le sont. stockés sous forme de lignes et de colonnes.

Créer une table

MySQL utilise CREATE TABLE pour créer une table. Il existe plusieurs options, comprenant principalement la définition de création de table (définition de création), la définition d'option de table (options de table) et les options de partition (options de partition).

La définition de création de table

se compose du nom de la colonne de la table, d'une éventuelle instruction de valeur nulle pour l'ensemble de définition de colonne, d'une contrainte d'intégrité ou d'une entrée d'index de table, et les éléments d'index de table définissent principalement les index, les clés primaires, les clés étrangères, etc. de la table.

(Tutoriel vidéo d'apprentissage en ligne recommandé : Tutoriel vidéo mysql)

Structure grammaticale

CREATE[TEMPORARY]TABLE tbl_name
(
    字段名|数据类型[列级完整性约束条件][默认值]
    [,字段名2 数据类型[列级完整性约束条件][默认值]]
    [,....]
    [,表级完整性约束条件]
)[ENGINE=引擎类型]
Copier après la connexion

Exemple :
Nouveau Une information client

mysql> USE mysql_test
Database changed
mysql> CRATE TABLE customers
    ->(
    -> cust_id INT NOT NULL AUTO_INCREMENT,
    -> cust_name CHAR(50) NOT NULL,
    -> cust_sex CHAR(1) NOT NULL DEFAULT 0,
    -> cust_address CHAR(50) NULL
    -> cust_contact CHAR(50) NULL
    -> PRIMARY KEY(CUST_ID)
    ->)
Query OK, 0 rows affected(0.11 sec)
Copier après la connexion

Table temporaire et table persistante

TEMPORAIRE : représente une table temporaire, si elle n'est pas sélectionnée, ce sera une table persistante.

La table persistante existe toujours. Plusieurs utilisateurs ou applications peuvent utiliser la table persistante en même temps. Si vous n'avez besoin que de stocker temporairement des données, vous pouvez ajouter le mot-clé TEMPORARY. l'utilisateur qui l'a créé. Déconnectez la connexion à la base de données, la table sera automatiquement effacée.

Type de données

Le type de données fait référence au type de données autorisé dans le système. Chaque colonne doit avoir un type de données approprié qui limite ou autorise les données pour cette colonne. Lors de la création d'une table, vous devez spécifier le type de données et la longueur de données corrects (CHAR(50)) pour chaque colonne

Type de données principal MySQL :

Type numérique : integer int , virgule flottante double, Boolean bool

Types de date et d'heure : type de date, horodatage timestamp, type d'heure time

Type de chaîne : type de caractère de longueur fixe char, type de caractère de longueur variable varchrar

Type de données spatiales : type de géométrie unique GEOMETRY, etc.

Mot clé AUTO_INCREMENT

AUTO_INCREMENT : La colonne de la table dont le type de données est entier est défini sur l'attribut d'incrémentation automatique (++i), à partir du pointeur actuel ou de 1, il ne peut y avoir qu'un seul AUTO_INCREMENT dans la table.

Lorsqu'une colonne de table est spécifiée comme AUTO_INCREMENT, sa valeur peut être écrasée. Vous pouvez spécifier une valeur (doit être unique) pour la colonne dans l'instruction d'insertion de données de table, et la valeur remplacera celle générée automatiquement. par la valeur système, les incréments suivants sont basés sur la valeur insérée

spécifie la valeur par défaut

DEFAULT : utilisé pour spécifier la valeur par défaut de MySQL si aucune valeur n'est donné (DEFAULT 0 )

Si aucune valeur par défaut n'est spécifiée, une valeur lui est automatiquement attribuée Si la colonne peut prendre la valeur NULL, la valeur par défaut est NULL. Si NOT NULL est défini, la valeur par défaut dépend de. le type de la colonne :

Une colonne AUTO_INCREMENT sans colonne AUTO_INCREMENT déclarée est par défaut à 0

Une colonne AUTO_INCREMENT est par défaut la valeur suivante dans la séquence

Pour la date et l'heure types autres que TIMESTAMP, la valeur par défaut est Valeur « zéro » correctement saisie

Pour la première colonne TIMESTAMP du tableau, la valeur par défaut est la date et l'heure actuelles

Valeur NULL

NULL : Aucune valeur ou valeur manquante. Pour les colonnes qui autorisent NULL, la valeur de la colonne n'a pas besoin d'être indiquée lors de l'insertion de lignes ; pour les colonnes qui n'autorisent pas les valeurs NULL, la colonne doit avoir. data
NULL et '' ne sont pas équivalents aux colonnes NOT NULL Medium Allowed'' NULL n'est pas autorisé

Clé primaire

CLÉ PRIMAIRE : Spécifiez la clé primaire. La clé primaire doit être unique et ne peut pas être NULL. S'il s'agit d'une seule colonne, la valeur doit être unique. S'il s'agit d'une combinaison de colonnes, la valeur combinée doit être unique

Mettre à jour la table.

Modifiez la base de données en utilisant ALTER TABLE

ADD[COLUMN] : nouvelles colonnes du tableau, vous pouvez ajouter plus de colonnes séparées par des virgules

Exemple :

mysql> ALTER TABLE mysqle_test.customers
    -> ADD COLUMN cust_city char(10) NOT NULL DEFAULT'ShenZhen' AFTER cust_sex;
Query OK,0 rows affected(0.61 sec)
Records:0 Duplicates:0 Warning:0
Copier après la connexion

APRÈS : ajoutez la nouvelle colonne à la colonne cut_sexl
PREMIER : ajoutez la nouvelle colonne à la première colonne du tableau

Si vous utilisez les mots-clés ci-dessus, ajoutez la nouvelle colonne à la fin du tableau

De même, vous pouvez utiliser ADDPRIMARY KEY, ADDFOREIGN KEY, ADD INDEX pour ajouter la clé primaire, la clé étrangère, l'index correspondants

CHANGE[COLUMN] : modifier le nom ou le type de données de la colonne dans le tableau. Plusieurs colonnes peuvent être modifiées et séparées par des virgules

mysql> ALTER TABLE mysqle_test.customers
    -> CHANGE COLUMN cust_sex sex char(1) NULL DEFAULT 'M'
Query OK,0 rows affected(0.66 sec)
Records:0 Duplicates:0 Warning:0
Copier après la connexion

Si le type de données est modifié, les données d'origine de la colonne peuvent être perdues, si le type de données modifié par la vue est incompatible avec celui-ci. type de données d'origine, la commande SQL ne sera pas exécutée et une erreur sera générée.
En cas de compatibilité accrue, les données de cette colonne peuvent être tronquées. Par exemple, si le type de données d'une colonne est varchart(10) et modifié en char(1), alors les données 'ShenZhen' dans le fichier. la colonne deviendra 'S'

ALTER [COLUMN]: 修改或删除指定列的默认值

mysql> ALTER TABLE mysqle_test.customers
    -> ALTER COLUMN cust_city SET  DEFAULT 'ShangHai'
Query OK,0 rows affected(0.36 sec)
Records:0 Duplicates:0 Warning:0
Copier après la connexion

MODIFY [COLUMN]: 修改指定列的数据类型,通过 'FIRST' 或 'AFTER' 修改列的位置

mysql> ALTER TABLE mysqle_test.customers
    -> MODIFY COLUMN cust_name char(30)  FIRST
Query OK,0 rows affected(0.20 sec)
Records:0 Duplicates:0 Warning:0
Copier après la connexion

DROP [COLUMN]: 删除列,该列所有数据一并删除

mysql> ALTER TABLE mysqle_test.customers
    -> DROP COLUMN cust_city
Query OK,0 rows affected(0.42 sec)
Records:0 Duplicates:0 Warning:0
Copier après la connexion

同样 可使用 DROP PRIMARY KEY 、DROP FOREIGN KEY、DROP INDEX 删除对应的主键、外键、索引

RENAME[TO]:表重命名

mysql> ALTER TABLE mysqle_test.customers
    -> RENAME TOQuery OK,0 rows affected(0.42 sec)
Copier après la connexion

重命名表

除了 ALTER TABLE 中的 RENAME TO 修改表名,还可通过 RENAME TABLE 来修改单张和多张表(以逗号分隔)

mysql> RENAME TABLE mysql_test.back.customers TO mysqle_test.customers
Copier après la connexion

删除表

DROP[TEMPORARY]TABLE[IF EXISTS]删除一个已存在的表,可以删除多张表,前提操作人必须有权限,但是操作人在该张表上的权限不会被删除

查看表

SHOW [FULL] TABLES [{FROM|IN}db_name] [LIKE'pattern'|WHERE expr]: 显示指定数据库中所有表名

Example:

mysql> USE mysql_testDatabase changedmysql> SHOW TABLES:
 Tables_in_mysql_test
 customers 1 row in set <0.01 sec>
Copier après la connexion

SHOW [FULL] COLUMNS {FROM|IN}tb_name[{FROM|IN}db_name] 或 {DESCRIBE|DESC} tbl_name[col_name|wild]: 显示指定数据库表结构。

MySQL 支持使用 DESCRIBE 代替 SHOW COLUMNS FROM 来查看表结构

Example:

mysql> DESC mysql_test.custormes
Field         Type       Null key  Default Extra
cust_id       int<11>    NO   PRI  NULL    auto_increment
cust_name     char<50>   NO        Null
cust_sex      int<1>     NO        0

3 row in set <1.56 sec>
Copier après la connexion

相关文章教程推荐:mysql教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal