做用:用於保證數據的完整性和一致性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 #關聯的表修改了,被關聯的表也修改了 );