做用:用于保证数据的完整性和一致性session
包含:spa
PRIMARY KEY (PK) 标识该字段为该表的主键,能够惟一的标识记录 FOREIGN KEY (FK) 标识该字段为该表的外键 NOT NULL 标识该字段不能为空 UNIQUE KEY (UK) 标识该字段的值是惟一的(惟一性约束) AUTO_INCREMENT 标识该字段的值自动增加(整数类型,并且为主键) DEFAULT 为该字段设置默认值 UNSIGNED 无符号 ZEROFILL 使用0填充
------------------------------------------------------
主键在建立后默认是not null
但不是显示的是 not null的都是主键,有仅仅只是设置的非空。
null表示空,但不是表明字符串,not null 也同样
惟一性约束:
constraint host_port unique(host,port)
#constraint host_port这个只是用来设置惟一约束的名字的,也能够不设置默认就有了
一个表中能够: 单列作主键 多列作主键(复合主键) 但一个表内只能有一个主键primary key
定义单个主键:
定义多个主键:code
auto_incermentblog
偏移量:auto_increment_offset默认为1
create table dep1( id int primary key auto_increment, )auto_increment = 10;
uto_increment_increment:ip
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');
两表之间有关系, rem
先建张部门表(被关联表)主表 create table dep( id int not null unique, name varchar(50), comment varchar(100) );
再建张员工表(关联表)子表 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 #关联的表修改了,被关联的表也修改了 );