Instruction de contrôle de table de données de base de données

1. Déclarations relatives aux contraintes

1. Contrainte de clé primaire (la contrainte de clé primaire nécessite que les données de la colonne de clé primaire soient uniques et non autorisées à être vides)

#创建库
mysql> create database test1;
#进入到库中
mysql> use test1;
#创建一个带有主键约束的表
mysql> create table tab1(
    -> id int(10),
    -> name varchar(10) primary key,
    -> sex varchar(5),
    -> info varchar(200)
    -> );
Query OK, 0 rows affected (0.01 sec)

Déterminez si la clé primaire créée (si la colonne a le mot PRI): ce qui
Instruction de contrôle de table de données de base de données
précède est de définir la clé primaire lors de la définition de la colonne. Écrivons pour spécifier la clé primaire après avoir défini toutes les colonnes:

mysql> create table tab2(
    -> id int(10),
    -> name varchar(10),
    -> sex varchar(10),
    -> primary key(id)                       # 括号里定义主键的列
    -> );

Instruction de contrôle de table de données de base de données
2. Contrainte non nulle (la valeur de la colonne ne doit pas être vide)

mysql> create table tab3(
    -> id int(6) not null,                # not null :不允许为空
    -> name varchar(10)
    -> );

Instruction de contrôle de table de données de base de données
3. L'unicité de la valeur définie (les données en double ne sont pas autorisées, elles peuvent être vides, mais il ne peut y en avoir qu'une, sinon elles seront considérées comme des doublons)

mysql> create table tab4(
    -> id int not null unique,
    -> name varchar(20)
    -> );

Instruction de contrôle de table de données de base de données
Vous pouvez voir qu'elle est identifiée comme clé primaire, mais elle n'a pas été spécifiée comme clé primaire lors de sa création, mais les attributs de cette colonne répondent essentiellement aux exigences de la clé primaire, comme unique, ne peuvent pas être vides .
4. Définissez la valeur par défaut de la colonne (si la colonne est vide, écrivez la valeur par défaut)

mysql> create table tab5(
    -> id int(2) not null,
    -> name varchar(20),
    -> project varchar(20) default 'mysql'
    -> );

Instruction de contrôle de table de données de base de données
5. Définir la valeur d'auto-incrémentation (généralement utilisé pour la colonne id, la colonne d'auto-incrémentation doit être définie comme clé primaire)
Remarque: mysql permet uniquement de définir la valeur initiale, pas de définir la valeur d'auto-incrémentation, c'est-à-dire que vous pouvez définir la première valeur sur 5, Augmentez ensuite tour à tour, comme: 5, 6, 7, ..... mais vous ne pouvez pas le régler pour incrémenter 2 fois à la fois, comme: 5, 7, 9 ...

mysql> create table tab6(
    -> id int not null primary key auto_increment,
    -> name varchar(20)
    -> );

Instruction de contrôle de table de données de base de données
Testez son effet auto-augmentant:

mysql> insert into tab6(name) values('zyz'),('lisi');
mysql> select * from tab6;
+----+------+
| id | name |
+----+------+
|  1 | zyz  |
|  2 | lisi |
+----+------+

Comme le montre le test ci-dessus, seules deux valeurs de nom sont insérées et aucune valeur d'id n'est insérée, mais lors de la visualisation des données de la table, id a déjà une valeur, indiquant que l'auto-incrémentation prend effet et
définit la valeur de départ de l'auto-incrémentation

mysql> create table tab7(
    -> id int primary key auto_increment,
    -> name varchar(20)
    -> )auto_increment=6;
#插入数据验证
mysql> insert into tab7(name) values('zyz'),('lisi'),('zhangsan');

mysql> select * from tab7;
+----+----------+
| id | name     |
+----+----------+
|  6 | zyz      |
|  7 | lisi     |
|  8 | zhangsan |
+----+----------+

Deuxièmement, l'utilisation de l'instruction ALTER

1. Modifiez la longueur des données de la valeur de la colonne

mysql> desc tab1;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(10)      | YES  |     | NULL    |       |
| name  | varchar(10)  | NO   | PRI | NULL    |       |
| sex   | varchar(5)   | YES  |     | NULL    |       |
| info  | varchar(200) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
#修改name 字符长度为20
mysql> alter table tab1 modify name varchar(20);

Instruction de contrôle de table de données de base de données
2. Modifiez le nom du champ (tout en modifiant le nom du champ, vous pouvez également modifier le type de données et la longueur des données de son nouveau nom de champ)

mysql> desc tab1;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(10)      | YES  |     | NULL    |       |
| name  | varchar(20)  | NO   | PRI | NULL    |       |
| sex   | varchar(5)   | YES  |     | NULL    |       |
| info  | varchar(200) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
mysql> alter table tab1 change info info2 char(20);

Instruction de contrôle de table de données de base de données
3. Insérez un nouveau champ dans le tableau
1) Insérez une nouvelle colonne dans la dernière colonne:

mysql> desc tab3;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(6)      | NO   |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
#插入一个  zuihou  列
mysql> alter table tab3 add zuihou int(10);

Instruction de contrôle de table de données de base de données
2) Insérez une nouvelle colonne au début du tableau:

mysql> alter table tab3 add sex char(10) first;

3) Insérez une nouvelle colonne après la colonne spécifiée:

mysql> alter table tab3 add local varchar(255) after name;

4. Ajoutez des contraintes lors de l'ajout de champs

mysql> alter table tab3 add hello varchar(20) default 'work';

5.
Avant d' ajouter une clé étrangère pour effectuer cette opération, vous devez rechercher une table avec une clé primaire (la colonne de nom de la table tab1 est ici la clé primaire)
structure de
Instruction de contrôle de table de données de base de données
table tab1: structure de table tab3:
Instruction de contrôle de table de données de base de données
ajoutez maintenant la colonne de nom de la table t3 à la table t1 Clé étrangère dans la colonne nom (où t3_t1_name est un nom de contrainte personnalisé):

mysql> alter table tab3 add constraint tab3_tab1_name foreign key(name) references tab1(name);

Affichez les modifications dans le tableau tab3:
Instruction de contrôle de table de données de base de données
6. Supprimez la clé étrangère
pour supprimer la clé étrangère ajoutée ci-dessus, tab3_tab1_name est le nom de la clé étrangère.

mysql> alter table tab3 drop foreign key tab3_tab1_name;
mysql> alter table tab3 drop key tab3_tab1_name;

——————————

En parlant de clés étrangères, voici pour parler de ce qu'est une clé étrangère. La recherche d'
informations relatives consiste à prononcer des termes. La fonction principale des clés étrangères est de maintenir la cohérence et l'intégrité des données. J'ai entendu que j'étais confus, indiquant que je ne comprenais pas.
Ici, j'explique également à partir des mots d'un grand frère, vous pouvez voir le petit tableau ci-dessous
+ ------- + ref + ------- +
| sub | |
+ ------- + + ------- +

Référence (ref) la valeur d'une colonne dans la table principale à partir d'une colonne dans la table (sub).

Par exemple, la table des élèves a un numéro d'élève (sid) et la colonne des élèves (stu) du tableau des scores fait référence au numéro d'élève de la table des élèves. Pour le moment, pour l'étu de la table des scores. Le côté de la table des étudiants est la clé étrangère.

La table secondaire est également appelée table de clé étrangère, la table primaire est également appelée table de clé primaire, une table étrangère et les colonnes sont également appelées champs.

Donc lors de la conception. Ajoutez une clé étrangère au tableau 1, cette clé étrangère est le champ du numéro d'étudiant dans le tableau 2. Ensuite, le tableau 1 est le tableau principal et le tableau 2 est le tableau enfant.

Votre relation maître-esclave est à l'envers. Dans votre diagramme, le tableau 1 est en effet le tableau principal. Le tableau 2 est une sous-table, mais il ne s'agit pas d'ajouter une clé étrangère au tableau 1, mais d'ajouter une clé étrangère au tableau 2. Le champ du numéro d'étudiant du tableau 2 est appelé clé étrangère, qui est la clé primaire du champ du numéro d'étudiant du tableau 1.

Vous pouvez dire ceci: le champ du numéro d'étudiant du tableau 1 est la clé étrangère du tableau 2

———————— Fin de l'explication de la clé étrangère ——————
7, supprimer la colonne

mysql> alter table tab3 drop zuihou;

Remarque: Si la colonne à supprimer est liée à une colonne dans une autre table, vous devez supprimer la relation avant de supprimer la colonne. Sinon, lorsqu'une colonne du même nom est créée ultérieurement, elle établit automatiquement une relation.
8. Modifiez l'ordre des colonnes

mysql> alter table tab3 modify name varchar(10) first;

9. Supprimer le tableau

#直接删除
mysql> drop table tab6;
Query OK, 0 rows affected (0.01 sec)
#再次删除这个表,可以看到已经提示说没有这个表了,说明已经删除
mysql> drop table tab6;
ERROR 1051 (42S02): Unknown table 'test1.tab6'
#进行判断后删除,if exists表示如果存在就删除
mysql> drop table if exists tab6;
Query OK, 0 rows affected, 1 warning (0.00 sec)
#可以看到上述返回的信息有1个warning事项,可以执行以下命令进行查看
mysql> show warnings;               # 返回的信息显示不知道test1库中的tab6表
+-------+------+----------------------------+
| Level | Code | Message                    |
+-------+------+----------------------------+
| Note  | 1051 | Unknown table 'test1.tab6' |
+-------+------+----------------------------+
1 row in set (0.00 sec)

De même, lors de l'exécution d'une opération de suppression de table, s'il existe une relation d'association, vous devez d'abord supprimer la relation d'association, puis supprimer la table.
De même, lors de l'exécution d'une opération de suppression de table, s'il existe une relation d'association, vous devez supprimer la relation d'association, puis supprimer la table
. Lors de l'exécution de l'opération de suppression de table, s'il existe une relation d'association, vous devez supprimer la relation d'association avant de supprimer la table

Je suppose que tu aimes

Origine blog.51cto.com/14227204/2489543
conseillé
Classement