ความแตกต่างระหว่างคีย์หลักและคีย์เฉพาะ
ความแตกต่างที่สำคัญระหว่างคีย์หลักและคีย์เฉพาะ
- ตารางสามารถมีคีย์หลักได้เพียงคีย์เดียว ในขณะที่ตารางสามารถมีคีย์ที่ไม่ซ้ำกันได้หลายคีย์
- วัตถุประสงค์ของคีย์หลักคือการบังคับใช้ความสมบูรณ์ของเอนทิตี ในทางกลับกัน วัตถุประสงค์ของคีย์เฉพาะคือการบังคับใช้ข้อมูลที่ไม่ซ้ำ
- ในคีย์หลัก ดัชนีเริ่มต้นจะถูกจัดกลุ่ม ในขณะที่คีย์เฉพาะ ดัชนีเริ่มต้นจะไม่ถูกจัดกลุ่ม
- คีย์หลักไม่อนุญาตให้มีคอลัมน์ว่าง ในขณะที่คีย์เฉพาะอนุญาตให้มีคอลัมน์ว่าง
- ในคีย์หลัก ไม่อนุญาตให้ใช้คีย์ที่ซ้ำกัน ในขณะที่คีย์ที่ไม่ซ้ำกัน หากส่วนหนึ่งของคีย์ตั้งแต่หนึ่งส่วนขึ้นไปเป็นโมฆะ ก็จะอนุญาตให้ใช้คีย์ที่ซ้ำกัน

ที่นี่ ฉันได้วิเคราะห์ความแตกต่างระหว่างคีย์หลักและคีย์เฉพาะแล้ว และจะประเมินข้อดีข้อเสียอย่างครอบคลุม
คีย์หลักคืออะไร?
ข้อจำกัดคีย์หลักคือคอลัมน์หรือกลุ่มของคอลัมน์ในตารางที่ระบุทุกแถวในตารางนั้นโดยไม่ซ้ำกัน คีย์หลักต้องไม่ซ้ำกัน ซึ่งหมายความว่าค่าเดียวกันไม่สามารถปรากฏในตารางได้มากกว่าหนึ่งครั้ง
ตารางสามารถมีคีย์หลักได้เพียงคีย์เดียวเท่านั้น คีย์หลัก สามารถกำหนดได้ในระดับคอลัมน์หรือตาราง หากคุณสร้างคีย์หลักแบบผสม ควรกำหนดไว้ที่ระดับตาราง
ตัวอย่างการสร้างคีย์หลัก
ตัวอย่างต่อไปนี้จะอธิบายว่ามีตารางชื่อ student ซึ่งมีแอตทริบิวต์ 1 รายการ ได้แก่ 2) StudID, 3) Roll No., 4) First Name, 5) Last Name และ XNUMX) Email
แอตทริบิวต์ Roll No ไม่สามารถมีค่าซ้ำหรือค่าว่างได้ เนื่องจากนักศึกษาทุกคนที่ลงทะเบียนในมหาวิทยาลัยสามารถมีหมายเลขประจำตัวที่ไม่ซ้ำกันได้ คุณสามารถระบุแต่ละแถวของตารางได้อย่างง่ายดายด้วยหมายเลขม้วนของนักเรียน ดังนั้นจึงถือเป็นคีย์หลัก
คุณสมบัติของคีย์หลัก
จากการสังเกตของฉัน นี่คือคุณสมบัติที่สำคัญของคีย์หลัก:
- คีย์หลักใช้ความสมบูรณ์ของเอนทิตีของตาราง
- คุณสามารถเก็บหลักไว้ในตารางได้เพียงรายการเดียวเท่านั้น
- คีย์หลักประกอบด้วยคอลัมน์ตารางตั้งแต่หนึ่งคอลัมน์ขึ้นไป
- คอลัมน์ถูกกำหนดให้เป็นค่าว่าง
เหตุใดจึงต้องใช้คีย์หลัก
จากความรู้เชิงปฏิบัติของฉัน ต่อไปนี้เป็นเหตุผลสำคัญในการใช้คีย์หลัก:
- จุดมุ่งหมายหลักของคีย์หลักคือการระบุแต่ละระเบียนในตารางฐานข้อมูล
- คุณสามารถใช้คีย์หลักได้เมื่อคุณไม่อนุญาตให้ผู้อื่นป้อนค่าว่าง
- หากคุณลบหรืออัปเดตบันทึก การดำเนินการที่คุณระบุจะถูกดำเนินการเพื่อให้แน่ใจว่าข้อมูลฐานข้อมูลมีความสมบูรณ์
- ดำเนินการจำกัดเพื่อปฏิเสธการดำเนินการลบหรืออัปเดตสำหรับตารางหลัก
- ข้อมูลจะได้รับการจัดระเบียบในลำดับของดัชนีคลัสเตอร์ทุกครั้งที่คุณจัดระเบียบตาราง DBMS ทางกายภาพ
คีย์เฉพาะคืออะไร?
คีย์เฉพาะคือกลุ่มของเขตข้อมูลหรือคอลัมน์ตั้งแต่หนึ่งรายการขึ้นไปในตารางที่ระบุบันทึกฐานข้อมูลโดยไม่ซ้ำกัน
คีย์เฉพาะจะเหมือนกับคีย์หลัก แต่สามารถรับค่า Null หนึ่งค่าสำหรับคอลัมน์ตารางได้ นอกจากนี้ยังไม่สามารถมีค่าที่เหมือนกันได้ ข้อจำกัดเฉพาะมีการอ้างอิงโดยคีย์ต่างประเทศของตารางอื่น
ตัวอย่างการสร้างคีย์เฉพาะ
พิจารณาตารางนักเรียนเดียวกันที่มีแอตทริบิวต์ดังต่อไปนี้: 1) StudID, 2) หมายเลขประจำตัว, 3) ชื่อ, 4) นามสกุล และ 5) อีเมล
รหัสนักศึกษาอาจมีข้อจำกัดเฉพาะ โดยที่รายการในคอลัมน์รหัสนักศึกษาต้องไม่ซ้ำกัน เนื่องจากนักศึกษาแต่ละคนในมหาวิทยาลัยจะต้องมีหมายเลขประจำตัวที่ไม่ซ้ำกัน หากนักศึกษากำลังจะเปลี่ยนมหาวิทยาลัย เขาหรือเธอจะไม่มีบัตรประจำตัวนักศึกษา รายการอาจมีค่าว่าง เนื่องจากอนุญาตให้ใช้ค่าว่างเพียงค่าเดียวในข้อจำกัดคีย์เฉพาะ
คุณสมบัติของคีย์เฉพาะ
ที่นี่ ฉันจะสรุปคุณลักษณะที่สำคัญของคีย์เฉพาะ:
- คุณสามารถกำหนดคีย์เฉพาะได้มากกว่าหนึ่งคีย์ในตาราง
- โดยค่าเริ่มต้น คีย์เฉพาะจะอยู่ในดัชนีเฉพาะที่ไม่อยู่ในคลัสเตอร์
- ประกอบด้วยคอลัมน์ตารางตั้งแต่หนึ่งคอลัมน์ขึ้นไป
- คอลัมน์ในตารางอาจเป็นค่าว่างได้ แต่ควรใช้ค่าว่างเพียงค่าเดียวต่อคอลัมน์
- ข้อจำกัดเฉพาะสามารถอ้างอิงได้อย่างง่ายดายด้วยข้อจำกัดของคีย์ภายนอก
เหตุใดจึงต้องใช้คีย์เฉพาะ
ต่อไปนี้เป็นเหตุผลสำคัญที่ฉันแนะนำให้ใช้คีย์เฉพาะ:
- วัตถุประสงค์ของคีย์เฉพาะคือเพื่อให้แน่ใจว่าข้อมูลในคอลัมน์สำหรับบันทึกตารางแต่ละรายการไม่ซ้ำกัน
- เมื่อคุณอนุญาตให้ผู้ใช้ป้อนค่าว่าง
- คีย์ที่ไม่ซ้ำ ถูกใช้เพราะจะสร้างดัชนีที่ไม่อยู่ในคลัสเตอร์ตามค่าเริ่มต้น
- รหัสเฉพาะสามารถใช้ได้เมื่อคุณต้องเก็บค่า Null ไว้ในคอลัมน์
- เมื่อหนึ่งหรือมากกว่าหนึ่งฟิลด์/คอลัมน์ของตารางระบุบันทึกในตารางฐานข้อมูลโดยไม่ซ้ำกัน
ความแตกต่างระหว่างคีย์หลักและคีย์เฉพาะ
ในการวิเคราะห์ของฉัน นี่คือความแตกต่างที่สำคัญระหว่างคีย์หลักและคีย์เฉพาะ:
เกณฑ์การเปรียบเทียบ | คีย์หลัก | คีย์เฉพาะ |
---|---|---|
หมายเลขคีย์ | สามารถมีคีย์หลักได้หนึ่งคีย์ในตาราง | สามารถมีได้หลายคีย์ที่ไม่ซ้ำกันในตาราง |
NULL | ไม่อนุญาตให้มีคอลัมน์ว่าง | อนุญาตให้มีคอลัมน์ว่าง |
ดัชนี | ดัชนีเริ่มต้นถูกจัดกลุ่ม | ดัชนีเริ่มต้นคือไม่มีคลัสเตอร์ |
จุดมุ่งหมาย | วัตถุประสงค์ของคีย์หลักคือการบังคับใช้ความสมบูรณ์ของเอนทิตี | วัตถุประสงค์ของคีย์เฉพาะคือการบังคับใช้ข้อมูลที่ไม่ซ้ำ |
ใช้ | เป็นข้อจำกัดของ SQL ที่อนุญาตให้คุณระบุแต่ละระเบียนหรือแถวในตารางฐานข้อมูลโดยไม่ซ้ำกัน | เป็นข้อจำกัดของ SQL ที่ไม่อนุญาตให้กำหนดค่าเดียวกันให้กับสองระเบียนที่แยกออกจากกันในตารางฐานข้อมูล |
การปรับเปลี่ยนค่า | ในคีย์หลัก ไม่อนุญาตให้ใช้คีย์ซ้ำกัน | ในคีย์เฉพาะ หากคีย์ตั้งแต่หนึ่งส่วนขึ้นไปเป็นโมฆะ ก็จะอนุญาตให้คีย์ซ้ำได้ |
วากยสัมพันธ์ |
คีย์หลักสามารถสร้างขึ้นได้โดยใช้ไวยากรณ์: CREATE TABLE Employee ( ID int PRIMARY KEY, Name varchar(255), City varchar(150) ) |
คีย์เฉพาะสามารถสร้างขึ้นได้โดยใช้ไวยากรณ์: CREATE TABLE Employee ( ID int UNIQUE. Name varchar(255) NOT NULL. City varchar(150) ) |
คุณยังสามารถสำรวจ: ความแตกต่างระหว่างคีย์หลักและคีย์ต่างประเทศ
วิธีเลือกระหว่างคีย์หลักและคีย์เฉพาะ
- คีย์ที่ไม่ซ้ำจะดีกว่าเมื่อเรามีคอลัมน์ที่เรารู้ว่าไม่ควรมีการซ้ำกัน
- คีย์หลักเหมาะอย่างยิ่งเมื่อคุณไม่สามารถเก็บค่าว่างในตารางได้ นอกจากนี้ยังสามารถใช้เมื่อคุณมีคีย์นอกในตารางอื่นเพื่อสร้างความสัมพันธ์