1. 程式人生 > >MySQL完整性約束條件

MySQL完整性約束條件

作用:限制如何給欄位賦值

約束條件:

Null 允許為空,預設設定,not null不允許為空;注:" ""null"不為空

key 索引型別

Default 設定預設值,預設為null

Extra 額外設定

索引:

索引優缺點:

優點:通過建立唯一索引,保證資料唯一性;加快資料的檢索速度

缺點:當對資料進行增,刪,改,索引要動態維護,減慢寫的速度;索引要佔用物理空間

檢視是否有索引欄位:DESC 表名; #檢視"key"

檢視索引詳細:SHOW INDEX FROM 表名; #column_name:欄位 key_name:索引名,索引名預設和欄位同名

索引的型別:

INDEX:普通索引

建表時設定:

CREATE TABLE 表名(

……

INDEX(欄位名1),INDEX(欄位名2),INDEX(欄位名n) #設定完欄位後設置

);

已有表設定:CREATE INDEX 索引名 on 表名(欄位名);

刪除索引:DROP INDEX 索引名 on 表名;

   

UNIQUE:唯一索引

建表時設定:

CREATE TABLE 表名(

……

UNIQUE(欄位名1)UNIQUE(欄位名2),UNIQUE(欄位名n)

;

已有表設定: CREATE UNIQUE INDEX 索引名 ON 表名

刪除索引:DROP INDEX 索引名 ON 表名;

注:若欄位為not null並且是unique標誌會變為PRI

   

FULLTEXT

PRIMARY KEY:主鍵

建表時設定:

CREATE TAVLE 表名(

……

PRIMARY KEY(欄位名) #也可以直接寫在欄位後,多個欄位表示複合主鍵

);

已有表設定:

ALTER TABLE 表名

ADD

PRIMARY KEY(欄位名) #受資料影響,多個欄位名錶示覆合主鍵

刪除主鍵:

ALTER TABLE 表名

DROP

PRIMARY KEY; #複合主鍵必須同時刪除

注:複合主鍵的多個數據不能完全一樣;主鍵常和AUTO_INCREMENT連用,實現自增,從最大值開始加1

   

FOREIGN KEY:外來鍵

使用外來鍵的條件

  1. 表的儲存引擎必須是innodb
  2. 欄位型別要一致
  3. 被參照欄位必須要是索引型別的一種(primarykey)

外來鍵的作用:給表中欄位賦值時,欄位的值只能在另外一張表的欄位值裡選擇

注:用desc檢視時顯示MUI標誌,要用"show create table 表名;"檢視建表過程

建表時設定

無符號: UNSIGNED