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

ข้อจำกัดเฉพาะใน SQL Server

บทช่วยสอนนี้จะอธิบายวิธีสร้าง เพิ่ม และลบข้อจำกัดเฉพาะใน SQL Server

ข้อจำกัดเดียวใน SQL Server คืออะไร

ข้อจำกัดเพียงอย่างเดียวคือฟิลด์หรือการรวมกันของฟิลด์ข้อมูล ซึ่งระบุเร็กคอร์ดได้โดยไม่ซ้ำกัน บางฟิลด์อาจมีค่า NULL ตราบใดที่ค่าผสมไม่ซ้ำกัน

ความแตกต่างระหว่างข้อจำกัดเฉพาะและคีย์หลัก

คีย์หลัก คีย์หลัก ข้อจำกัดที่ไม่ซ้ำ ข้อจำกัดเฉพาะ ไม่มีฟิลด์ในคีย์หลักได้รับอนุญาตให้มีค่า NULL ฟิลด์ที่มีข้อจำกัดเฉพาะบางฟิลด์อาจมีค่า NULL โดยมีเงื่อนไขว่าการรวมกันของค่าต่างๆ จะไม่ซ้ำกัน

สร้างข้อจำกัดเฉพาะด้วยคำสั่ง CREATE TABLE

  CREATE TABL E 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

ชื่อของการเชื่อมโยงที่ไม่ซ้ำ

cot1_rb, cot2_rb, . cot_n_rb

คอลัมน์ประกอบขึ้นเป็นข้อจำกัดเฉพาะ

ประเภทข้อมูลใน SQL Server

ตัวอย่างเช่น

  CRE ATE 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)
);

ในตัวอย่างนี้ เราได้สร้างข้อจำกัดเฉพาะชื่อ nhanvien_duynhat บนตารางที่สร้างโดยคำสั่ง CREATE TABLE รวมถึงฟิลด์เดียว so_nhanvien

สามารถสร้างข้อจำกัดเฉพาะที่มีมากกว่า 1 ฟิลด์ดังตัวอย่างด้านล่าง

  CREATE TABL E 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)
);

สร้างข้อจำกัดเฉพาะด้วยคำสั่ง ALTER TABLE

  ALTER T ABLE ten_bang 
ADD CON STRAINT ten_rangbuoc UNIQUE (cot1, cot2, . cot_n);

ten_bang

ชื่อของตารางที่คุณต้องการแก้ไข นี่คือตารางที่คุณต้องการเพิ่มข้อจำกัดเฉพาะ

ten_rangbuoc

ชื่อของข้อจำกัดเฉพาะที่คุณต้องการสร้าง

cot1, cot2 cot_n

คอลัมน์ประกอบขึ้นเป็นข้อจำกัดเฉพาะ

ตัวอย่างเช่น

  ALTER TABL E nhanvien 
ADD CONSTR AINT nhanvien_duynhat UNIQUE (so_nhanvien);

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

  ALTER TABLE nhanvi en 
ADD CONSTRAINT ten _nhanvien_duynhat UNIQUE (cough, ten);

ลบการเชื่อมโยงที่ไม่ซ้ำ

ไวยากรณ์

  ALTER TABLE ten_ bang 
DROP CONSTRAINT ten_rangbuoc;

ten_bang

ชื่อของตารางที่คุณต้องการแก้ไข นี่คือตารางที่คุณต้องการลบข้อจำกัดเฉพาะ

ten_rangbuoc

ชื่อของข้อจำกัดเฉพาะที่คุณต้องการลบ

ตัวอย่างเช่น

  ALTER TABL E nhanvien 
DROP CONST RAINT nhanvien_duynhat;

ตัวอย่างด้านบนลบข้อจำกัดเฉพาะชื่อ nhanvien_duynhat ออกจากตาราง