คีย์หลักใน SQL: การสร้างและการเพิ่มคีย์ลงในตารางที่มีอยู่แล้ว
⚡ สรุปอย่างชาญฉลาด
คีย์หลักใน SQL Server คือคอลัมน์หรือชุดของคอลัมน์ที่มีค่าเฉพาะตัวระบุแต่ละแถวในตาราง แต่ละตารางจะมีคีย์หลักเพียงหนึ่งเดียว และคอลัมน์เหล่านั้นต้องไม่เป็นค่าว่าง (NULL)

คีย์หลักใน SQL คืออะไร
คีย์หลักใน SQL Server คีย์หลักคือฟิลด์ หรือชุดของฟิลด์ ที่ใช้ระบุระเบียนแต่ละรายการได้อย่างเฉพาะเจาะจง โดยเป็นคอลัมน์หรือชุดของคอลัมน์ที่ทุกค่าในคอลัมน์นั้นไม่ซ้ำกัน กล่าวคือ ไม่มีสองแถวใดที่มีค่าคีย์หลักเดียวกันได้
กฎสำหรับคีย์หลัก
- แต่ละตารางสามารถมีคีย์หลักได้เพียงหนึ่งเดียวเท่านั้น
- ค่าทั้งหมดไม่ซ้ำกัน และค่าคีย์หลักสามารถระบุแต่ละแถวได้อย่างเฉพาะเจาะจง
- ระบบจะไม่อนุญาตให้แทรกแถวที่มีค่าคีย์หลักซ้ำกับตารางเดิม
- คีย์หลักต้องไม่เป็นค่าว่าง (NULL)
แผนภาพด้านล่างสรุปประเด็นทั้งหมดข้างต้นเกี่ยวกับคีย์หลักใน SQL
วิธีสร้างคีย์หลักใน SQL Server
คุณสามารถสร้างคีย์หลักได้สองวิธี:
- สตูดิโอจัดการเซิร์ฟเวอร์ SQL
- T-SQL: สร้างคีย์หลักขณะสร้างตารางใหม่
เรามาศึกษาวิธีการแต่ละวิธีโดยละเอียดกันเถอะ
สตูดิโอจัดการเซิร์ฟเวอร์ SQL
ขั้นตอนที่ 1) คลิกขวาที่ชื่อตารางแล้วคลิก ออกแบบ.
ขั้นตอนที่ 2) คลิกขวาที่ชื่อคอลัมน์แล้วคลิก ตั้งค่าคีย์หลัก.
ผลลัพธ์: Course_Id ถูกกำหนดให้เป็นคีย์หลักแล้ว โดยแสดงด้วยไอคอนรูปกุญแจที่อยู่ข้างคอลัมน์
T-SQL: การสร้างคีย์หลักขณะสร้างตารางใหม่
ด้านล่างนี้คือไวยากรณ์สำหรับ สร้างตาราง โดยใช้คีย์หลักจาก T-SQL
ไวยากรณ์:
CREATE TABLE <Table_Name> ( Column1 datatype, Column2 datatype,CONSTRAINT <Name> PRIMARY KEY (Column name) . );
ในที่นี้ CONSTRAINT ระบุชื่อคีย์ PRIMARY KEY ระบุคอลัมน์ที่ต้องมีค่าไม่ซ้ำกัน และทุกคอลัมน์ก็ต้องการ PRIMARY KEY ด้วยเช่นกัน ประเภทข้อมูล.
เรามาสร้างตารางที่มีคอลัมน์เดียวเป็นคีย์หลักใน SQL กันเถอะ
ค้นหา:
CREATE TABLE COURSE_TSQL_PK (Course_ID Int not Null, Course_name Varchar(20) CONSTRAINT PK PRIMARY KEY (Course_ID) )
ขั้นตอนที่ 1) เรียกใช้คิวรีโดยคลิก ดำเนินงาน.
ผลลัพธ์: Course_Id ถูกกำหนดให้เป็นคีย์หลักในตาราง COURSE_TSQL_PK แล้ว
ตัวอย่าง: ลองมาดูกันว่าระบบอนุญาตให้ป้อนข้อมูลหลายรายการโดยใช้รหัสวิชาเดียวกันหรือไม่
ขั้นตอนที่ 1) แทรกข้อมูลสี่แถวที่มีค่า Course_ID แตกต่างกัน
Insert into COURSE_TSQL_PK values (1,'SQL'); Insert into COURSE_TSQL_PK values (2,'Python'); Insert into COURSE_TSQL_PK values (3,'SQL'); Insert into COURSE_TSQL_PK values (4,'C');
ขั้นตอนที่ 2) ตรวจสอบว่าข้อมูลทั้งหมดถูกแทรกสำเร็จแล้วโดยการเรียกใช้คำสั่ง SELECT
หมายเหตุ: คุณสามารถแทรกค่าซ้ำในคอลัมน์ที่ไม่ใช่คีย์หลักได้
ขั้นตอนที่ 3) ตอนนี้เรามาลองแทรกข้อมูลใหม่โดยใช้ Course_ID ที่มีอยู่แล้ว ซึ่งเป็นคีย์หลักกัน
Insert into COURSE_TSQL_PK values (4,'JAVA');
ผลลัพธ์: ระบบไม่อนุญาตให้แทรกค่าใหม่ เนื่องจากมีค่า 4 อยู่แล้วในคอลัมน์ Course_ID ซึ่งเป็นคีย์หลัก
จะเพิ่มคีย์หลักให้กับตารางที่มีอยู่ใน SQL ได้อย่างไร
ต่อไปนี้เราจะมาดูวิธีการเพิ่มคีย์หลักให้กับตารางที่มีอยู่แล้วใน SQL
คุณสามารถใช้คำสั่ง ALTER เพื่อสร้างคีย์หลักได้ อย่างไรก็ตาม คีย์หลักสามารถสร้างได้เฉพาะกับคอลัมน์ที่กำหนดไว้เป็น NOT NULL เท่านั้น คุณไม่สามารถสร้างคีย์หลักบนคอลัมน์ที่อนุญาตให้มีค่า NULL ได้ หากคอลัมน์ใดอนุญาตให้มีค่า NULL อยู่แล้ว คุณต้องเปลี่ยนให้เป็น NOT NULL ก่อน หรือลบและสร้างตารางใหม่
นี่คือไวยากรณ์:
ALTER TABLE tableName ADD CONSTRAINT constraintName PRIMARY KEY (column_1, column_2, ... column_n);
ตัวอย่างเช่น:
ALTER TABLE students ADD CONSTRAINT students_pk PRIMARY KEY (admission);
เราได้เพิ่มข้อจำกัดคีย์หลักให้กับตารางที่มีอยู่แล้ว เพิ่มข้อจำกัดในคอลัมน์การรับเข้าและกำหนดชื่อ students_pk
ข้อเท็จจริงที่น่าสนใจ!
- คีย์หลักสามารถเป็นการรวมกันของหลายคอลัมน์ได้ การรวมกันแบบนี้เรียกว่าคีย์หลักแบบผสม
- คีย์หลักสามารถมีได้สูงสุด 16 คอลัมน์









