数据库约束
目的
为保证数据的完整性和一致性,内置了以下的可选约束属性
PRIMARY KEY (PK)
标识该字段为该表的主键,可以唯一的标识记录
不可为空
单表只存在一个主键,通常用 id 自增作为主键
FOREIGN KEY (FK)
标识该字段为该表的外键
create table emp_info(id int primary key auto_increment,name varchar(20),dep_id int,constraint FK_depid_id foreign key(dep_id) references dep(id) #references :关联on delete cascade #关联的表删了,被关联的表也删了on update cascade #关联的表修改了,被关联的表也修改了);
NOT NULL
标识该字段不能为空,
默认允许为空
UNIQUE KEY (UK)
标识该字段的值是唯一的
可设置多字段联合唯一
constraint host_port unique(字段1,字段2)
AUTO_INCREMENT
标识该字段的值自动增长(整数类型,而且为主键)
可设置起始值 ( auto_increment )以及偏移量 (auto_increment_increment )
================设置自增的时候以10开头create table dep1(id int primary key auto_increment,name char(10))auto_increment = 10;insert into dep1(name) values('IT'),('HR'),('EFO');select * from dep1;
===============auto_increment_increment:自增步长create table dep3(id int primary key auto_increment, name char(10));会话:通过客户端连到服务端(一次链接称为一次会话)set session auto_increment_increment = 2; #会话级,只对当前会话有效set global auto_increment_increment=2; #全局,对所有的会话都有效insert into dep3(name) values('IT'),('HR'),('SALE'),('Boss');
DEFAULT
为该字段设置默认值
默认值是NULL
UNSIGNED
无符号
即必须为正值
ZEROFILL
使用0填充