資料庫約束
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...