数据库约束
not null
- 指定某列的存储不能为null值
unique
- 保证某列的每行必须有唯一的值
default
- 规定给列赋值时的默认值
primary key 主键
- 主键约束,是not null 与 unique 的结合,确保某列的每行的赋值不能为null 并且是唯一的
foreign key 外键
- 外键约束,保证一个表中的数据匹配另一个表中的值参照完整性.
- 一般习惯放到最后
- 外键约束会影响表的删除,例如下面实例的class表被关联,所以他不能被轻易删除
数据库约束实例
mysql> create table class (
-> id int primary key,
-> name varchar(20) not null
-> );
Query OK, 0 rows affected (0.04 sec)
mysql> create table student (
-> id int primary key,
-> name varchar(20) not null,
-> email varchar(20) default 'unknow',
-> QQ varchar(20) unique,
-> classId int , foreign key (classId) references class(id)
-> );
Query OK, 0 rows affected (0.03 sec)
mysql> desc class;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | NO | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.02 sec)
mysql> desc student;
+---------+-------------+------+-----+---------