ล่าสุดการพัฒนาเว็บบทเรียน
 

SQLคีย์หลักข้อ จำกัด


SQL คีย์หลักข้อ จำกัด

ข้อ จำกัด ที่สำคัญ PRIMARY ระบุแต่ละระเบียนในตารางฐานข้อมูล

คีย์หลักจะต้องมีค่าที่ไม่ซ้ำ

คอลัมน์คีย์หลักไม่สามารถมีค่าเป็นศูนย์

ตารางส่วนใหญ่ควรจะมีคีย์หลักและโต๊ะแต่ละคนสามารถมีได้เพียงหนึ่งคีย์หลัก


SQL คีย์หลักข้อ จำกัด ในการสร้างตาราง

ต่อไปนี้ SQL สร้างคีย์หลักใน "P_Id" คอลัมน์เมื่อ "Persons" ตารางสร้าง:

MySQL:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

เพื่ออนุญาตให้มีการตั้งชื่อของข้อ จำกัด คีย์หลักสำหรับการกำหนดข้อ จำกัด คีย์หลักในหลายคอลัมน์ใช้ไวยากรณ์ SQL ต่อไปนี้:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)

Note: ในตัวอย่างข้างต้นมีเพียงหนึ่งคีย์หลัก (pk_PersonID) แต่ค่าของคีย์หลักถูกสร้างขึ้นจากสองคอลัมน์ (P_Id + นามสกุล)


SQL คีย์หลักข้อ จำกัด เกี่ยวกับการเปลี่ยนแปลงตาราง

เพื่อสร้างข้อ จำกัด คีย์หลักใน "P_Id" คอลัมน์เมื่อตารางจะถูกสร้างขึ้นแล้วใช้ SQL ต่อไปนี้:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)

เพื่ออนุญาตให้มีการตั้งชื่อของข้อ จำกัด คีย์หลักสำหรับการกำหนดข้อ จำกัด คีย์หลักในหลายคอลัมน์ใช้ไวยากรณ์ SQL ต่อไปนี้:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)

Note: หากคุณใช้คำสั่งเปลี่ยนแปลงตารางการเพิ่มคีย์หลักคอลัมน์คีย์หลัก (s) จะต้องมีอยู่แล้วได้รับการประกาศเพื่อไม่ให้มีค่าเป็นศูนย์ (เมื่อตารางถูกสร้างขึ้นครั้งแรก)


ที่จะลดข้อ จำกัด คีย์หลัก

ที่จะลดข้อ จำกัด คีย์หลักใช้ SQL ต่อไปนี้:

MySQL:

ALTER TABLE Persons
DROP PRIMARY KEY

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID