資料庫約束

2021-10-24 05:51:41 字數 1210 閱讀 3110

資料庫約束

primary

key(pk) 標識該字段為該錶的主鍵,可以唯一的標識記錄

foreign

key(fk) 標識該字段為該錶的外來鍵

notnull 標識該欄位不能為空

unique

key(uk) 標識該字段的值是唯一的

auto_increment 標識該字段的值自動增長(整數型別,而且為主鍵)

default 為該字段設定預設值

unsigned 無符號

zerofill 使用0填充

​ unique有一種聯合的方式,使用方法是(欄位名)將兩個字段看成是一體的,保證兩個字段只要有乙個是唯一即可

聯合唯一

#使用方法

create table t1(

id int primary key auto_increment,

ip char(10),

port int,

unique(ip,port)

);

primary key

​ innodb會以主鍵所約束的值會幫助我們生成表結構,用於提高查詢速度。

​ 若是不指定主鍵,innodb會自動尋找第乙個not null 且unique的字段為主鍵,都沒有則會隨機設定乙個隱藏的主鍵

詳細的會在索引部分細講。

​ primary key也有這麼一種聯合的方式,使用方法與unique一致。

foreign key

foreign key簡單的說就是將兩張表通過語法角度連線在一起。且使用foreign key有一定的條件

1.雙方都必須是innodb儲存引擎,且被關聯的字段必須保證唯一性

2.建表時,必須先建立被關聯的表,才能建立關聯表

3.插入記錄時,先往被關聯的表插入記錄,才能往關聯表中插入資料

使用方法

#語法

foreign key(關聯的表) references(被關聯的表)

#同步更新,同步刪除

#在原關聯語句後面新增

on update cascade

on delete cascade

​ 但是不建議使用外來鍵的方式進行約束,因為影響過大,對後續的更新,擴充套件有極其不利的影響

表與表之間的關係

多對多:

多對一:

一對一:

資料庫約束

mysql有兩種常用的引擎型別 myisam和innodb。目前只有innodb引擎型別支援外來鍵約束。innodb中外鍵約束定義的語法如下 constraint symbol foreign key index name index col name,references tbl name ind...

資料庫約束

約束的簡介 資料的完整性是指資料的正確性和一致性,可以通過定義表時定義完整性約束,也可以通過規則,索引,觸發器等。約束分為兩類 行級和表級,處理機制是一樣的。行級約束放在列後,表級約束放在表後,多個列共用的約束放在表後。完整性約束是一種規則,不占用任何資料庫空間。完整性約束存在資料字典中,在執行sq...

資料庫 約束

約束說白了就是限制條件 當你不給某引數賦值時,該引數會採用預設值。例子 建立資料庫 create database tx 選擇使用的資料庫 use tx go goods表 create table goods goodsid nvarchar 50 primary key,主鍵 goodsname...