约束条件

做用:用于保证数据的完整性和一致性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


定义单个主键:
  1. 当没有声明主键时,第一个not null+unique默认是主键
  2. 某一个字段后加primary key
  3. 单独定义 constraint pk_name primary key(id); #建立主键并为其命名pk_name

定义多个主键:code

  1. 单独定义 primary key(ip, port)

 

自增约束:

auto_incermentblog

偏移量:auto_increment_offset默认为1
 
    1. 设置自增的时候以10开头
      1. create table dep1( id int primary key auto_increment, )auto_increment = 10;
    2. a

uto_increment_increment:ip

    自增步长,默认为1
    1. 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');
  1. show variables like '%auto_in%';#查看变量。只要包含auto_in就都查出来了

 外键约束:

 

两表之间有关系, 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 #关联的表修改了,被关联的表也修改了 );
相关文章
相关标签/搜索