5.5 数据库约束

目的

  为保证数据的完整性和一致性,内置了以下的可选约束属性

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填充

猜你喜欢

转载自www.cnblogs.com/shijieli/p/10344424.html
5.5