約束條件

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