第三章 sql 的約束
1.0 約束分類
約束型別: | 主鍵 | 預設值 | 唯一 | 外來鍵 | 非空 |
關鍵字: | PRIMARY KEY | DEFAULT | UNIQUE | FOREIGN | NOT NULL |
2.0 建立含約束的表
3.0 主鍵
約束英文:constraint
約束實際上就是表中資料的限制條件
主鍵是用於約束表中的一行,作為這一行的唯一識別符號,在一張表中通過主鍵就能準確定位到一行,主鍵不能有重複且不能為空
複合主鍵
CONSTRAINT P_ID PRIMARY KEY (s_name,d_age)
4.0 預設值約束
當有 DEFAULT 約束的列,插入資料為空時,將使用預設值
p_num int(10)DEFAULT'10',
p_num 有預設約束,預設值為10
# 正常插入資料
INSERT INTO department(dpt_name,people_num) VALUES('dpt1',11);
#插入新的資料,people_num 為空,使用預設值
INSERT INTO department(dpt_name) VALUES('dpt2');
SELECT + 表字段名 + FROM +資料表名
表字段名那個,如果想要獲得所有的欄位或者不知道有哪些欄位的情況下用*代表所有欄位。
比如
SELECT * FROM 獲取每條資訊全部欄位的值
SELECT id , name FROM 只能獲取每條資訊的id欄位和name欄位的值
5.0 唯一約束 (UNIQUE)
當 INSERT 語句新插入的資料和已有資料重複的時候,如果有 UNIQUE約束,則 INSERT 失敗
比如:
INSERT INTO employee VALUES(01,'Tom',25,3000,110110,'dpt1'); INSERT INTO employee VALUES(02,'Jack',30,3500,110110,'dpt2');
6.0 外來鍵約束 (FOREIGN KEY)
既能確保資料完整性,也能表現表之間的關係。一個表可以有多個外來鍵,每個外來鍵必須(參考)另一個表的主鍵,被外來鍵約束的列,取值必須在它參考的列中有對應值。
7.0 非空約束
PRIMAPY是主鍵的意思,表示定義的該列值在表中是唯一的意思,不可以有重複。
NSIGNED是無符號的意思,代表該欄位沒有正負。
AUTO_INCREMENT可以理解為自動遞增的意思,每增加一條記錄,值會自動加1。(例如在上面的例子中,ID列每增加一條記錄,便會從100自增) 。