具有唯一性資料的表
//不具唯一性的資料表
name | age | gender | city |
江小魚 | 20 | 男 | 台北 |
林瀨瑤 | 20 | 女 | 東京 |
古小三 | 22 | 女 | 台北 |
古小三 | 22 | 女 | 台北 |
塵在天 | 26 | 男 | 高雄 |
- 表4-1出現同名的古小三,這兩筆資料無法辨識,簡單的說該表沒有唯一性。
- 修正方式加入一各欄位使其每一筆資料都具有唯一性。
employeeID | name | age | gender | city |
00001 | 江小魚 | 20 | 男 | 台北 |
00002 | 林瀨瑤 | 20 | 女 | 東京 |
00003 | 古小三 | 22 | 女 | 台北 |
00004 | 古小三 | 22 | 女 | 台北 |
00005 | 塵在天 | 26 | 男 | 高雄 |
- 如此加上employeeID之後我們可以辨識出兩筆古小三是不同筆的資料。
Primary Key的規則
- 主鍵不可為NULL
- 插入新紀錄時,也必須指定主鍵值
- 必須簡潔
- 主鍵值不可修改
- 是資料表中的某各資料欄位,它可以獨一無二的分辨出每一筆紀錄。
- 具有Primary Key的資料表,是資料表第一階正規化的步驟之一。
關於正規劃將於後面章節將會談論
查詢已存在資料表當時建立的SQL敘述碼
- SHOW CREATE TABLE yourTable;
建立一各不具Primary Key的資料表
CREATE TABLE employees_A
(
name varchar(20) NOT NULL,
age INT default NULL,
gender char(4),
city varchar(20)
)
建立一各具有Primary Key的資料表
CREATE TABLE employees_B
(
employeeID INT NOT NULL,
name varchar(20) NOT NULL,
age INT default NULL,
gender char(4),
city varchar(20),
PRIMARY KEY (employeeID)
)
- PRIMARY KEY (columnName),用於指定Primary Key。
CREATE TABLE employees_C
(
employeeID INT NOT NULL AUTO_INCREMENT,
name varchar(20) NOT NULL,
age INT default NULL,
gender char(4),
city varchar(20),
PRIMARY KEY (employeeID)
)
- AUTO_INCREMENT,讓employeeIDy自動遞增數值。
其實不用重新建立具有Primary Key的資料表,可以使用ALTER來修正
ALTER TABLE employees_A
ADD COLUMN employeeID INT NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (employeeID );
- FIRST要求將該欄位安至於最前面。
- ADD COLUMN,用於加入一各欄位。
- ADD PRIMARY KEY,設定主鍵。
沒有留言:
張貼留言