MYSQL 数据库给表加约束条件 (史上最详细教程!)!!

先查看下已经创建好的表,若不会创建请看上期视频!!
为message表:

mysql> show columns from message;// 命令
+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| m_id      | int(11)      | YES  |     | NULL    |       |
| m_name    | varchar(60)  | YES  |     | NULL    |       |
| m_sex     | varchar(16)  | YES  |     | NULL    |       |
| m_brith   | date         | YES  |     | NULL    |       |
| m_address | varchar(250) | YES  |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+

可以看到表中字段没有加约束条件,下来我们来加一下吧!
1.给m_id字段加主键约束primary key条件!

mysql> alter table message add primary key(m_id);//命令
Query OK, 0 rows affected (0.99 sec)//出现这,表示已成功!

下来来看下表的结构吧!

mysql> show columns from message;//命令
+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| m_id      | int(11)      | NO   | PRI | NULL    |       |
| m_name    | varchar(60)  | YES  |     | NULL    |       |
| m_sex     | varchar(16)  | YES  |     | NULL    |       |
| m_brith   | date         | YES  |     | NULL    |       |
| m_address | varchar(250) | YES  |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+

可以看到主键加入成功!
2.给m_id字段加自动编号auto_increment

mysql> alter table message modify m_id int auto_increment;//命令
Query OK, 0 rows affected (1.19 sec)//自动编号加入成功!

同样来看下表的结构吧!

mysql> show columns from message;//命令
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| m_id      | int(11)      | NO   | PRI | NULL    | auto_increment |
| m_name    | varchar(60)  | YES  |     | NULL    |                |
| m_sex     | varchar(16)  | YES  |     | NULL    |                |
| m_brith   | date         | YES  |     | NULL    |                |
| m_address | varchar(250) | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+------------

可以看到自动编号加入成功!
3.给表m_name字段加唯一约束unique

alter table message add unique(m_name);//命令
Query OK, 0 rows affected (0.66 sec)//表示成功!

下来看一下表的结构吧!

mysql> show columns from message;//命令
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| m_id      | int(11)      | NO   | PRI | NULL    | auto_increment |
| m_name    | varchar(60)  | YES  | UNI | NULL    |                |
| m_sex     | varchar(16)  | YES  |     | NULL    |                |
| m_brith   | date         | YES  |     | NULL    |                |
| m_address | varchar(250) | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

可以看到加入成功!
4.给表m_sex加非空约束not null

mysql> alter table message modify m_sex varchar(16) not null;//命令
Query OK, 0 rows affected (1.01 sec)//成功!

查看下表的结构

mysql> show columns from message;//命令
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| m_id      | int(11)      | NO   | PRI | NULL    | auto_increment |
| m_name    | varchar(60)  | YES  | UNI | NULL    |                |
| m_sex     | varchar(16)  | NO   |     | NULL    |                |
| m_brith   | date         | YES  |     | NULL    |                |
| m_address | varchar(250) | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+

5.给表m_sex加默认约束default,默认为女吧!!

mysql> alter table message modify m_sex varchar(16) default '女';//命令
Query OK, 0 rows affected (0.47 sec)//成功!

查看下表的结构!

mysql> show columns from message;//命令
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| m_id      | int(11)      | NO   | PRI | NULL    | auto_increment |
| m_name    | varchar(60)  | YES  | UNI | NULL    |                |
| m_sex     | varchar(16)  | YES  |     ||                |
| m_brith   | date         | YES  |     | NULL    |                |
| m_address | varchar(250) | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+

可以看到加入成功!
6.给表m_id 加检查约束check

mysql> alter table message add constraint m_id check(m_id>10);//命令
Query OK, 0 rows affected (0.62 sec)//成功

查看下表的结构!

mysql> show columns from message;//命令
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| m_id      | int(11)      | NO   | PRI | NULL    | auto_increment |
| m_name    | varchar(60)  | YES  | UNI | NULL    |                |
| m_sex     | varchar(16)  | YES  |     ||                |
| m_brith   | date         | YES  |     | NULL    |                |
| m_address | varchar(250) | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

咱们下期来说外键约束吧,
关注我持续为你更新!!

原创文章 7 获赞 10 访问量 585

猜你喜欢

转载自blog.csdn.net/xue3236522091/article/details/105806308