5.5 數據庫約束
阿新 • • 發佈:2019-02-01
uniq char 單表 spa oba table 默認值 prim insert
目的
為保證數據的完整性和一致性,內置了以下的可選約束屬性
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填充
5.5 數據庫約束