1. 程式人生 > >5.5 數據庫約束

5.5 數據庫約束

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 數據庫約束