约束
约束: 在数据库中对数据库进行限制和约定
目的: 为了保证数据库中的数据的完整性 合理性 合法性 规范性。
格式:
create table 表名(
列名 数据类型 约束,
列名 数据类型 约束,
........
全局约束...
)
1>非空约束
**概念:**在创建表的过程中,可以设置表的列的值不能为空null,not null
mysql> create table s1(
-> id int,
-> name varchar(20) not null
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> desc s1;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | NO | | NULL | |
+-------+-------------+------+-----+---------+-------+
2>默认约束
默认约束: 在表中的列中如果没有赋值,则有一个默认值自动填充 default
mysql> create table s1(
-> id int, -> name varchar(20) not null,
-> sex char(2) not null default '男'
-> );
mysql> desc s2;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | NO | | NULL | |
| sex | char(2) | NO | | 男 | |
+-------+-------------+------+-----+---------+-------+
3>唯一约束
唯一约束: 在表中约束中的值永远唯一
unique 非空的列,可以放置多个null值
第一种用法:
mysql> create table s3(
-> id int, -> name varchar(20) not null,
-> uid varchar(20) unique -> );
Query OK, 0 rows affected (0.00 sec)
mysql> desc s3;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | NULL| | |
| name | varchar(20) | NO | | NULL | |
| uid | varchar(20) | YES | UNI