Maison > Article > base de données > 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=引擎类型]
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)
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
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
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
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
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
同样 可使用 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)
重命名表
除了 ALTER TABLE 中的 RENAME TO 修改表名,还可通过 RENAME TABLE 来修改单张和多张表(以逗号分隔)
mysql> RENAME TABLE mysql_test.back.customers TO mysqle_test.customers
删除表
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>
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>
相关文章教程推荐: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!