เรียนรู้วิธีสร้าง ลบ ปิดใช้งาน หรือเปิดใช้งานคีย์หลักใน SQL Server พร้อมไวยากรณ์และตัวอย่าง
คีย์หลักใน SQL Server คืออะไร
ใน SQL Server (Transact-SQL) คีย์หลักคือฟิลด์หรือการรวมกันของฟิลด์และถูกกำหนดเป็นเรกคอร์ดเดียว ไม่มีฟิลด์ในคีย์หลักที่มีค่า NULL ตารางมีคีย์หลักเพียงรายการเดียว คีย์หลักสามารถกำหนดได้ด้วยคำสั่ง CREATE TABLE หรือคำสั่ง ALTER TABLE
สร้างคีย์หลัก - ด้วยคำสั่ง CREATE TABLE
ไวยากรณ์การสร้างคีย์หลักอยู่ที่คำสั่ง CREATE TABLE
CREATE TABLE ten_bang
(
cot1 kieu_du_lieu [ NULL | NOT NULL ] [ PRIMARY KEY ],
cot2 kieu_du_lieu [ NULL | NOT NULL ],
.
);
หรือ
CREATE TABLEten_bang
(
cot1 kieu_du_lieu [ NULL | NOT NULL ],
cot2 kieu_du_lieu [ NULL | NOT NULL ],
…
CONSTRAINT ten_rang_buoc PRIMARY KEY (cot1, cot2, … cot_n)
);
ตัวอย่างการสร้างคีย์หลักคือการใช้คำสั่ง CREATE TABLE
CREATE TABLE nhanvien
( nhanvien_id INT PRIMARY KEY,
ho VARCHAR(50) NOT NULL,
ten VARCHAR(50), NOT NULL,
luong MONEY
);
ในตัวอย่างนี้ คีย์หลักสำหรับตาราง nhanvien ประกอบด้วยฟิลด์ที่เรียกว่า nhanvien_id นอกจากนี้ สามารถสร้างคีย์หลักได้ดังนี้:
CREATE TABLE nhanvien
( nhanvien_id INT,
ho VARCHAR(50) NOT NULL,
ten VARCHAR(50), NOT NULL,
luong MONEY
CONSTRAINT nhanvien_pk PRIMARY KEY (nhanvien_id)
);
ต่อไปนี้คือตัวอย่างการสร้างคีย์หลักที่มีมากกว่า 1 ฟิลด์ใน SQL Server
CREATE TABLE vnien
( ho VARCHAR(50) NOT NULL,
ten VARCHAR(50), NOT NULL,
luong MONEY
CONSTRAINT nhanvien_pk PRIMARY KEY (ho, ten)
);
ในตัวอย่างนี้ เราได้สร้างคีย์หลักที่ประกอบด้วยสองคอลัมน์ ho
และ ten
. สองฟิลด์นี้จะระบุระเบียนในตารางโดยไม่ซ้ำกัน
สร้างคีย์หลัก - ด้วยคำสั่ง ALTER TABLE
สร้างคีย์หลักได้ด้วยคำสั่ง ALTER TABLE ในคอลัมน์ที่กำหนดเป็น NOT NULL หากคอลัมน์อนุญาตค่า NULL จะไม่สามารถเพิ่มคีย์หลักโดยไม่ลบหรือสร้างตารางใหม่ได้
ไวยากรณ์สำหรับการสร้างคีย์หลักคือการใช้คำสั่ง ALTER TABLE
ALTER TABLE ten_bang
ADD CONSTRAINT t
en_rang_buoc PRIMARY KEY (cot1, cot2, . cot_n);
ตัวอย่างการสร้างคีย์หลักด้วยคำสั่ง ALTER TABLE
ALTER TABLE nhanvien
ADD CON
STRAINT nhanvien_pk PRIMARY KEY (nhanvien_id);
ในตัวอย่างนี้ เราสร้างคีย์หลักสำหรับตารางที่พร้อมใช้งาน รวมถึง nhanvien_id ฟิลด์ โปรดทราบว่า nhanvien_id ต้องกำหนดฟิลด์เป็น NOT NULL ก่อน มิฉะนั้นจะต้องถูกลบและสร้างตารางใหม่ และกำหนดฟิลด์นี้เป็น NOT NULL
คุณสามารถสร้างคีย์หลักที่มีมากกว่า 1 ฟิลด์ดังในตัวอย่างต่อไปนี้
ALTER TABLE staff
ADD CONSTRAINT n
hanvien_pk PRIMARY KEY (cough, ten);
คีย์หลักสำหรับตารางประกอบด้วย 2 ฟิลด์ ได้แก่ ชื่อและนามสกุล ต้องกำหนดทั้งคู่เป็น NOT NULL
ลบคีย์หลักใน SQL Server
ไวยากรณ์สำหรับการลบคีย์หลักคือการใช้คำสั่ง ALTER TABLE
ALTER TABLE ten_bang
DROP CONS
TRAINT ten_rang_buoc;
ตัวอย่างการลบคีย์หลักด้วยคำสั่ง ALTER TABLE
ALTER TABLE staff
DROP CONSTRAINT
nhanvien_pk;
ตัวอย่างด้านบนจะลบคีย์หลักในตาราง
ปิดการใช้งานคีย์หลักใน SQL Server
ไวยากรณ์ในการปิดใช้งานคีย์หลักด้วยคำสั่ง ALTER INDEX
ALTER INDEX ten_rang_buoc ON ten_bang
DISABLE;
ตัวอย่างเช่น ปิดใช้งานคีย์หลักด้วยคำสั่ง ALTER INDEX
ALTERINDEX nhanvien_pk ON nhanvien
DISABLE
;
ตัวอย่างด้านบนปิดใช้งานคีย์หลักในตาราง
เปิดใช้งานคีย์หลักใน SQL Server
ไวยากรณ์สำหรับการเปิดใช้งานคีย์หลักคือการใช้คำสั่ง ALTER INDEX
ALTER INDEX ten_rang_buoc ON ten_bang
REBU
ILD;
ตัวอย่างเช่น เปิดใช้งานคีย์หลักด้วยคำสั่ง ALTER INDEX
ALTER INDEX nhanvien_pk ON nhanvien
REBUI
LD;
ตัวอย่างด้านบนเปิดใช้งานคีย์หลักของตารางอีกครั้ง