Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL Server

เงื่อนไข UNIQUE (Unique Constraint) ใน SQL Server

บทช่วยสอนนี้อธิบายวิธีสร้าง เพิ่ม และลบเงื่อนไข UNIQUE ใน SQL Server

เงื่อนไข UNIQUE ใน SQL Server คืออะไร?

เงื่อนไข UNIQUE เป็นฟิลด์หรือชุดฟิลด์ข้อมูลที่ระบุระเบียนได้อย่างเฉพาะเจาะจง ฟิลด์บางส่วนอาจมีค่า NULL ได้ ตราบใดที่ชุดค่ามีความเฉพาะเจาะจง

ความแตกต่างระหว่างเงื่อนไข UNIQUE และ Primary Key

Primary KeyUnique Constraint
ไม่มีฟิลด์ใน Primary Key ที่อนุญาตให้มีค่า NULLฟิลด์บางส่วนของ Unique Constraint อาจมีค่า NULL ได้ ตราบใดที่ชุดค่ามีความเฉพาะเจาะจง

สร้างเงื่อนไข UNIQUE ด้วยคำสั่ง CREATE TABLE

CREATE TABLE ten_bang
(
 cot1 kieudulieu [ NULL | NOT NULL ],
 cot2 kieudulieu [ NULL | NOT NULL ],
 ...
 CONSTRAINT ten_rangbuoc UNIQUE (cot1_rb, cot2_rb, ... cot_n_rb)
);

ten_bang: ชื่อตารางที่ต้องการสร้าง

cot1, cot2: คอลัมน์ที่ต้องการสร้างในตาราง

ten_rangbuoc: ชื่อเงื่อนไข UNIQUE

cot1_rb, cot2_rb, ..., cot_n_rb: คอลัมน์ที่ประกอบเป็นเงื่อนไข UNIQUE

ตัวอย่าง

CREATE TABLE nhanvien
( id_nhanvien INT PRIMARY KEY,
 so_nhanvien INT NOT NULL,
 ho VARCHAR(50) NOT NULL,
 ten VARCHAR(50),
 luong MONEY,
 CONSTRAINT nhanvien_duynhat UNIQUE (so_nhanvien)
);

ในตัวอย่างนี้ เราสร้างเงื่อนไข UNIQUE ชื่อ nhanvien_duynhat บนตารางที่สร้างด้วยคำสั่ง CREATE TABLE ประกอบด้วยฟิลด์เดียวคือ so_nhanvien

สามารถสร้างเงื่อนไข UNIQUE ที่มีมากกว่า 1 ฟิลด์ได้ ดังตัวอย่างด้านล่าง

CREATE TABLE nhanvien
( id_nhanvien INT PRIMARY KEY,
 so_nhanvien INT NOT NULL,
 ho VARCHAR(50) NOT NULL,
 ten VARCHAR(50),
 luong MONEY,
 CONSTRAINT nhanvien_duynhat UNIQUE (ho, ten)
);

สร้างเงื่อนไข UNIQUE ด้วยคำสั่ง ALTER TABLE

ALTER TABLE ten_bang
ADD CONSTRAINT ten_rangbuoc UNIQUE (cot1, cot2, ..., cot_n);

ten_bang: ชื่อตารางที่ต้องการแก้ไข นี่คือตารางที่ต้องการเพิ่มเงื่อนไข UNIQUE

ten_rangbuoc: ชื่อเงื่อนไข UNIQUE ที่ต้องการสร้าง

cot1, cot2, ..., cot_n: คอลัมน์ที่ประกอบเป็นเงื่อนไข UNIQUE

ตัวอย่าง

ALTER TABLE nhanvien
ADD CONSTRAINT nhanvien_duynhat UNIQUE (so_nhanvien);

ตัวอย่างด้านบนใช้คำสั่ง ALTER TABLE เพื่อสร้างเงื่อนไข UNIQUE บนตารางที่มีอยู่แล้ว ชื่อ nhanvien ฟิลด์ so_nhanvien สำหรับสร้างเงื่อนไขมากกว่า 1 ฟิลด์ ดูตัวอย่างด้านล่าง

ALTER TABLE nhanvien
ADD CONSTRAINT nhanvien_duynhat UNIQUE (ho, ten);

ลบเงื่อนไข UNIQUE

ไวยากรณ์

ALTER TABLE ten_bang
DROP CONSTRAINT ten_rangbuoc;

ten_bang: ชื่อตารางที่ต้องการแก้ไข นี่คือตารางที่ต้องการลบเงื่อนไข UNIQUE

ten_rangbuoc: ชื่อเงื่อนไข UNIQUE ที่ต้องการลบ

ตัวอย่าง

ALTER TABLE nhanvien
DROP CONSTRAINT nhanvien_duynhat;

ตัวอย่างด้านบนลบเงื่อนไข UNIQUE ชื่อ nhanvien_duynhat บนตาราง