คีย์หลัก SQL: วิธีสร้างและเพิ่มลงในตารางที่มีอยู่

คีย์หลักใน SQL คืออะไร

คีย์หลัก คือเขตข้อมูลหรือการรวมกันของเขตข้อมูลที่ระบุระเบียนไม่ซ้ำกัน คีย์หลักคือคอลัมน์หรือชุดของคอลัมน์ที่ไม่ซ้ำกัน กล่าวอีกนัยหนึ่ง ทุกค่าจะไม่ซ้ำกันสำหรับคีย์หลัก

กฎสำหรับคีย์หลัก

  • แต่ละตารางสามารถมีคีย์หลักของ SQL ได้เพียงคีย์เดียวเท่านั้น
  • ค่าทั้งหมดไม่ซ้ำกันและค่า SQL ของคีย์หลักสามารถระบุแต่ละแถวได้โดยไม่ซ้ำกัน
  • ระบบจะไม่อนุญาตให้แทรกแถวด้วย SQL Server Primary Key ที่มีอยู่แล้วในตาราง
  • คีย์หลักต้องไม่เป็น NULL

แผนภาพด้านล่างสรุปประเด็นทั้งหมดข้างต้นสำหรับคีย์หลักของ SQL

กฎสำหรับคีย์หลักใน SQL
หลักการทำงานของ SQL คีย์หลัก

วิธีสร้างคีย์หลักใน SQL Server

เราสามารถสร้างคีย์หลักได้ค่ะ 2 วิธี:

1. สตูดิโอจัดการเซิร์ฟเวอร์ SQL

2. T-SQL: สร้างหลักในขณะที่สร้างตารางใหม่

สตูดิโอจัดการเซิร์ฟเวอร์ SQL

ขั้นตอน 1) คลิกขวาที่ชื่อตาราง คลิกที่ ออกแบบ

สร้างคีย์หลักใน SQL Server

ขั้นตอน 2) คลิกขวาที่ชื่อคอลัมน์ คลิกที่ 'ตั้งค่าคีย์หลัก'

สร้างคีย์หลักใน SQL Server

ผลลัพธ์: Course_Id ตอนนี้เป็น a คีย์หลัก

สร้างคีย์หลักใน SQL Server

T-SQL: สร้างคีย์หลักขณะสร้างตารางใหม่

ด้านล่างนี้เป็นไวยากรณ์สำหรับสร้างตารางด้วยคีย์หลักจาก T-SQL

ไวยากรณ์:

CREATE TABLE <Table_Name>
(
Column1 datatype,
Column2 datatype,CONSTRAINT <Name> PRIMARY KEY (Column name)
.
);

มาสร้างตารางที่มีหนึ่งคอลัมน์เป็นคีย์หลักของ SQL กันดีกว่า

ค้นหา:

CREATE TABLE COURSE_TSQL_PK 
(Course_ID Int not Null,
 Course_name Varchar(20)
 CONSTRAINT PK PRIMARY KEY (Course_ID)	
)

ขั้นตอน 1) เรียกใช้แบบสอบถามโดยคลิกที่ 'ดำเนินการ'

สร้างคีย์หลักในขณะที่สร้างตารางใหม่

ผลลัพธ์: Course_Id ตอนนี้เป็น a คีย์หลัก

สร้างคีย์หลักในขณะที่สร้างตารางใหม่

ตัวอย่าง: มาดูกันว่าจะอนุญาตให้ป้อนหลายบันทึกด้วยรหัสหลักสูตรเดียวกันหรือไม่

ขั้นตอน 1) แทรก 4 แถวด้วย 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');

ผลลัพธ์: ระบบไม่อนุญาตให้ใส่ค่าใหม่เนื่องจากมีคอลัมน์ Course_ID ที่เป็นคีย์หลักอยู่ที่ 4

สร้างคีย์หลักในขณะที่สร้างตารางใหม่

จะเพิ่มคีย์หลักให้กับตารางที่มีอยู่ใน SQL ได้อย่างไร

ตอนนี้เราจะดูวิธีเพิ่มคีย์หลักให้กับตารางที่มีอยู่ใน SQL:

คุณสามารถใช้คำสั่ง ALTER เพื่อสร้างคีย์หลักได้ อย่างไรก็ตาม คีย์หลักสามารถสร้างขึ้นได้บนคอลัมน์ที่กำหนดเป็น NOT NULL เท่านั้น คุณไม่สามารถสร้างคีย์หลักบนคอลัมน์ที่อนุญาตให้มีค่า 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);

เพิ่มคีย์หลักให้กับตารางที่มีอยู่ใน SQL

เราได้เพิ่มข้อจำกัดคีย์หลักให้กับตารางที่มีอยู่แล้ว เพิ่มข้อจำกัดในคอลัมน์การรับเข้าและกำหนดชื่อ students_pk

ข้อเท็จจริงที่น่าสนใจ!

  • คีย์หลักสามารถเป็นการรวมกันของหลายคอลัมน์ได้ การรวมกันนี้เรียกว่า คีย์หลักแบบผสม.
  • คีย์หลักมีได้สูงสุด 16 คอลัมน์

สรุป

  • แต่ละตารางสามารถมีคีย์หลักได้เพียงคีย์เดียวเท่านั้น
  • ค่าทั้งหมดมีเอกลักษณ์เฉพาะซึ่งสามารถ ระบุแต่ละแถวโดยไม่ซ้ำกัน

สรุปโพสต์นี้ด้วย: