MySQL-约束

zhenlq 2020-05-19

1.非空约束

.NULL,字段值可以为空;
.NOT NULL,字段值禁止为空。
用于指定字段是否可以为空,语法:
CREATE TABLE tbl_name (
column_name data_type NULL/NOT NULL,
...
}
说明:默认是NULL,可以为空。

2.主键约束PRIMARY KEY

.每张数据表只能存在一个主键;
.主键保证记录的唯一性;
.主键自动为NOT NULL
.AUTO_INCREMENT必须与主键一起使用,但主键没有要求一定要AUTO_INCREMENT.
语法:
CREATE TABLE tbl_name(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,----注意:只能是int型或float型,小数位数为0;且不需要给id赋值。
...
);

3.唯一约束UNIQUE KEY

.可以保证记录的唯一性
.唯一约束的字段可以为NULL(与主键区别)
.每张数据表可以存在多个唯一约束(与主键区别)
延伸理解:唯一约束字段可以多个为NULL,如何保证记录的唯一性?实际在存储时只有一个为空,所以仍能保证记录唯一性。
语法:
CREATE TABLE tbl_name(
column_name data_type UNIQUE KEY,
...
);

4.默认约束DEFAULT

即当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。
语法:
CREATE TABLE tbl_name(
column_name data_type DEFAULT val,----注意DEFAULT可以与ENUM类型值进行结合使用,DEAFULT可以指定其中的值。
...
);

5.约束与索引区别

约束:为了保证数据完整性为目的;
索引:快速定位特定数据,提高查询效率,确保数据唯一性。

相关推荐