ในข้อมูล 1 ตาราง สามารถมี primary key ได้มากกว่า 1 ฟิลด์

ในข้อมูล 1 ตาราง สามารถมี primary key ได้มากกว่า 1 ฟิลด์

Keys

หมายถึง

  • ฟิลด์ (Field) แอตทริบิวต์ (Attribute) หรือ คอลัมน์ (Column) จำนวน 1 คอลัมน์ หรือ อาจเป็น หลาย ๆ คอลัมน์ มาประกอบกันก็ได้
  • มีค่า ไม่ซ้ำกัน ในแต่ละแถว มีคุณสมบัติที่เป็นเอกลักษณ์ (Unique)
  • สามารถใช้คอลัมนั้นในการระบุถึงคอลัมน์อื่น ๆ ในแถว (Row) เรคอร์ด (Record) หรือ ทูเพิล (Tuple) นั้นได้

Super Key

หมายถึง

  • คอลัมน์ หรือ กลุ่มของคอลัมน์ ที่สามารถใช้จำแนกความแตกต่างของแต่ละแถวได้
  • หากมีคอลัมน์หรือกลุ่มของคอลัมน์ใด ที่ไม่มีโอกาสมีค่าซ้ำกันเลยในแต่ละแถว (Unique) ก็จัดได้ว่าคอลัมน์นั้น หรือ กลุ่มของคอลัมน์นั้น เป็น Super Key

เช่น

Table : Employees

ในข้อมูล 1 ตาราง สามารถมี primary key ได้มากกว่า 1 ฟิลด์

เมื่อเราพิจารณาคำจำกัดความแล้ว เราอาจพิจารณาได้ว่ามี Super Key ใน Table Employees ทั้งหมดดังนี้

  1. EmpID
  2. EmpID + FirstName
  3. EmpID + LastName
  4. EmpID + DepID
  5. EmpID + Position
  6. EmpID + FirstName + LastName
  7. EmpID + FirstName + DepID
  8. EmpID + FirsttName + Position
  9. EmpID + LastName + DepID
  10. EmpID + LastName + Position
  11. EmpID + DepID + Position
  12. FirstName + LastName + DepID + Position

Composite Key

หมายถึง Key ที่ประกอบกัน หรือ มีมากกว่า 1 Key เช่น

  • EmpID + FirstName
  • EmpID + LastName
  • EmpID + FirstName + LastName
  • FirstName + LastName + DepID + Position

แต่ EmpID ไม่ใช่ Composite Key เนื่องจากเป็นเพียงแค่ Key เดียว

Candidate Key

หมายถึง

  • Super Key ที่มีคอลัมน์เดียว หรือ
  • Super Key ที่มีหลายคอลัมน์ แต่ ไม่มีบางส่วนของ Key เป็น Unique Subset

Unique Subset คือ มีค่าไม่ซ้ำกันในแต่ละแถว

จาก Table Employees เราจะได้ Candidate Key ทั้งหมดเป็นดังนี้

  1. EmpID ตรงตามเงื่อนไขแรก คือ เป็น Super Key ที่มีคอลัมน์เดียว
  2. FirstName + LastName + DepID + Position ตรงตามเงื่อนไขที่สอง คือ ไม่มีบางส่วนเป็น Unique Subset

ในข้อมูล 1 ตาราง สามารถมี primary key ได้มากกว่า 1 ฟิลด์

ส่วน Super Key อื่น ๆ ถือว่าผิดเงื่อนไขที่สอง คือ มี Unique Subset เกิดขึ้น

เช่น Super Key ในข้อ 2 EmpID + FirstName มี Unique Subset เกิดขึ้น

ในข้อมูล 1 ตาราง สามารถมี primary key ได้มากกว่า 1 ฟิลด์

EmpID + FirstName ถือเป็น Composite Key คือเป็น Key ประกอบ

และหนึ่งใน Key ประกอบมีความเป็น Unique Subset เกิดขึ้น นั่นคือ EmpID เป็น Unique ทำให้ไม่เป็น Candidate Key

Primary Key

หมายถึง Key ที่ถูกเลือกมาจาก Candidate Key โดยมีหลักเกณฑ์ดังนี้

  • ต้องไม่มีค่าซ้ำกันในแต่ละแถว
  • ต้องไม่มีค่าเป็น NULL (ค่าว่าง)
  • Primary Key จะถูกเปลี่ยนแปลงค่าไม่ได้

พิจารณา Candidate Key ที่เรามีอยู่

ในข้อมูล 1 ตาราง สามารถมี primary key ได้มากกว่า 1 ฟิลด์

ฉะนั้นจึงเลือก EmpID เป็น Primary Key

Alternate Key

หมายถึง Key ที่ไม่ได้ถูกเลือกให้เป็น Primary Key
นั่นก็คือ FirstName + LastName + DepID + Position

Foreign Key

หมายถึง Key ที่อ้างไปยัง Primary Key ของ Table หนึ่ง
เช่น ใน Table Employees DepID ถือเป็น Foreign Key เพราะ DepID ได้อ้างไปยัง Primary Key ของอีก Table หนึ่ง

ในข้อมูล 1 ตาราง สามารถมี primary key ได้มากกว่า 1 ฟิลด์

หมายเหตุ

เป็นบทความที่ถูกย้ายมาจาก https://na5cent.blogspot.com/2011/12/keys-database.html ซึ่งผู้เขียน เขียนไว้เมื่อ วันศุกร์ที่ 16 ธันวาคม พ.ศ. 2554

สำหรับเพื่อน ๆ คนไหน ที่ชื่นชอบบทความ และอยากจะสนุนสนันค่ากาแฟเล็ก ๆ น้อย ๆ สามารถคลิกที่ปุ่มนี้เพื่อไปยังหน้า Buy me a coffee ได้ครับ

เพิ่มหรือเปลี่ยนคีย์หลักของตารางใน Access

Access for Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 เพิ่มเติม...น้อยลง

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

เมื่อต้องการตั้งค่าคีย์หลักของตาราง ให้เปิดตารางในมุมมองออกแบบ เลือกเขตข้อมูล (หรือหลายเขตข้อมูล) ที่คุณต้องการใช้ จากนั้นบน Ribbon ให้คลิก คีย์หลัก

หมายเหตุ:  บทความนี้ใช้กับฐานข้อมูลบนเดสก์ท็อปของ Access เท่านั้น Access จะจัดการคีย์หลักของตารางใหม่ใน Access Web App และในฐานข้อมูลบนเว็บโดยอัตโนมัติ ถึงแม้ว่าคุณจะสามารถแทนที่คีย์หลักแบบอัตโนมัติเหล่านี้ได้ แต่เราไม่แนะนำให้คุณทำเช่นนั้น

ในบทความนี้

  • ภาพรวมของคีย์หลักใน Access

  • ตั้งค่าคีย์หลักโดยใช้เขตข้อมูลที่คุณมีอยู่แล้วใน Access

  • เอาคีย์หลักออก

  • เปลี่ยนคีย์หลักใน Access

  • ข้อมูลเพิ่มเติม

ภาพรวมของคีย์หลักใน Access

Access ใช้เขตข้อมูลคีย์หลักเพื่อเชื่อมโยงข้อมูลจากหลายตารางและรวมข้อมูลเหล่านั้นให้มีความหมายอย่างรวดเร็ว คุณสามารถรวมเขตข้อมูลคีย์หลักในตารางอื่นเพื่ออ้างกลับมายังตารางที่เป็นแหล่งของคีย์หลักได้ ในตารางอื่นเหล่านั้น เขตข้อมูลของคีย์หลักจากตารางอื่นจะเรียกว่าคีย์นอก ตัวอย่างเช่น เขตข้อมูล ID ลูกค้าในตารางลูกค้าอาจปรากฏในตารางการสั่งซื้อ ในตารางลูกค้า เขตข้อมูลนี้เป็นคีย์หลัก ในตารางการสั่งซื้อ เขตข้อมูลนี้จะเรียกว่าคีย์นอก เมื่ออธิบายอย่างง่ายๆ คีย์นอกก็คือคีย์หลักของตารางอื่น สำหรับข้อมูลเพิ่มเติม ให้ดู พื้นฐานการออกแบบฐานข้อมูล

ในข้อมูล 1 ตาราง สามารถมี primary key ได้มากกว่า 1 ฟิลด์

1. คีย์หลัก

2. Foreign Key

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

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

เมื่อคุณสร้างตารางใหม่ในมุมมองแผ่นข้อมูล Access จะสร้างคีย์หลักให้คุณและกำหนดชื่อเขตข้อมูลของ "ID" และชนิดข้อมูล AutoNumber ให้โดยอัตโนมัติ

คีย์หลักที่ดีมีลักษณะอย่างไร

เขตข้อมูลที่ดีที่เหมาะจะเป็นคีย์หลักจะมีคุณลักษณะหลายประการดังนี้

  • ระบุแต่ละแถวโดยไม่ซ้ำกัน

  • ไม่เคยมีค่าว่าง หรือ Null กล่าวคือ ต้องมีค่าบรรจุอยู่เสมอ

  • ค่าในเขตข้อมูลคีย์หลักจะไม่ค่อยเปลี่ยนแปลง (ให้ดีที่สุดคือ ไม่เปลี่ยนแปลงเลย)

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

ในข้อมูล 1 ตาราง สามารถมี primary key ได้มากกว่า 1 ฟิลด์

เขตข้อมูล AutoNumber สร้างคีย์หลักที่ดีได้

ตัวอย่างของคีย์หลักที่ไม่ดี

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

คีย์หลักที่ไม่ดี

เหตุผล

ชื่อส่วนบุคคล

อาจซ้ำกันได้และอาจเปลี่ยนแปลงได้

หมายเลขโทรศัพท์

มีแนวโน้มที่จะเปลี่ยนแปลง

ที่อยู่อีเมล

มีแนวโน้มที่จะเปลี่ยนแปลง

รหัสไปรษณีย์

อาจมีหลายคนใช้รหัสไปรษณีย์เดียวกัน

การรวมข้อเท็จจริงกับตัวเลข

ส่วนข้อเท็จจริงนั้นอาจเปลี่ยนไป ทำให้เกิดภาระการซ่อมบำรุงได้ สามารถนำไปสู่ความสับสนได้ ถ้าส่วนข้อเท็จจริงนั้นถูกทำซ้ำเป็นเขตข้อมูลที่แยกจากกัน ตัวอย่างเช่น การรวมเมืองและเพิ่มค่าตัวเลขเข้าไว้ด้วยกัน (เช่น NEWYORK0579) จะเป็นตัวเลือกที่ไม่เหมาะสมได้ ถ้าเมืองถูกเก็บไว้เป็นเขตข้อมูลด้วย

หมายเลขประกันสังคม

  • เป็นข้อมูลส่วนบุคคลและไม่อนุญาตให้ใช้ในหน่วยงานของรัฐและองค์กรบางแห่ง

  • บางคนก็ไม่มีหมายเลขประกันสังคม

  • ตลอดช่วงชีวิตบุคคลหนึ่งอาจมีหมายเลขประกันสังคมได้มากกว่าหนึ่งหมายเลข

คีย์ผสม กล่าวคือใช้หลายเขตข้อมูลรวมกันเป็นคีย์หลัก

ในบางกรณี คุณอาจต้องการใช้มากกว่าหนึ่งเขตข้อมูลเป็นคีย์หลัก ตัวอย่างเช่น ตารางรายละเอียดการสั่งซื้อที่มีสินค้าในรายการสำหรับการสั่งซื้ออาจใช้สองเขตข้อมูลเป็นคีย์หลัก ได้แก่ ID การสั่งซื้อ และ ID ผลิตภัณฑ์ คีย์ที่มีมากกว่าหนึ่งเขตข้อมูลจะเรียกว่าคีย์รวม

ตั้งค่าคีย์หลักโดยใช้เขตข้อมูลที่คุณมีอยู่แล้วใน Access

เพื่อให้คีย์หลักทำงานได้ดี เขตข้อมูลนี้จะต้องระบุแต่ละแถวได้โดยไม่ซ้ำกัน จะต้องไม่เป็นค่าว่างหรือค่า Null และค่านั้นจะต้องแทบจะไม่เปลี่ยนแปลง (ไม่เปลี่ยนแปลงเลยจะดีที่สุด) วิธีตั้งค่าคีย์หลัก ดังนี้

  1. เปิดฐานข้อมูลที่คุณต้องการปรับเปลี่ยน

  2. ในบานหน้าต่างนำทาง ให้คลิกขวาที่ตารางที่คุณต้องการตั้งค่าคีย์หลัก แล้วคลิก มุมมองออกแบบ บนเมนูทางลัด

    เคล็ดลับ: ถ้าคุณไม่เห็นบานหน้าต่างนำทาง ให้กด F11 เพื่อแสดง

  3. เลือกหนึ่งเขตข้อมูลหรือหลายเขตข้อมูลที่คุณต้องการใช้เป็นคีย์หลัก

    เมื่อต้องการเลือกเขตข้อมูลเดียว ให้คลิกตัวเลือกแถวสำหรับเขตข้อมูลที่คุณต้องการ

    เมื่อต้องการเลือกหลายเขตข้อมูลเพื่อสร้างคีย์รวม ให้กด CTRL ค้างไว้แล้วคลิกตัวเลือกแถวของแต่ละเขตข้อมูล

  4. บนแท็บ ออกแบบ ในกลุ่ม เครื่องมือ ให้คลิกที่ คีย์หลัก

    ในข้อมูล 1 ตาราง สามารถมี primary key ได้มากกว่า 1 ฟิลด์

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

เอาคีย์หลักใน Access ออก

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

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

  1. ก่อนที่คุณจะสามารถเอาคีย์หลักออกได้ คุณต้องตรวจสอบให้แน่ใจเสียก่อนว่าคีย์หลักนั้นไม่ได้มีส่วนร่วมอยู่ในความสัมพันธ์ของตารางใดๆ ถ้าคุณพยายามเอาคีย์หลักที่เป็นส่วนหนึ่งของความสัมพันธ์หนึ่งหรือหลายความสัมพันธ์ออก Access จะเตือนให้คุณลบความสัมพันธ์นั้นๆ ก่อน

    เมื่อต้องการลบความสัมพันธ์ของตาราง ให้ทำตามขั้นตอนต่อไปนี้ให้เสร็จสิ้น:

    1. ถ้าตารางที่มีส่วนร่วมในความสัมพันธ์ของตารางนั้นเปิดอยู่ ให้ปิดตารางก่อน คุณไม่สามารถลบความสัมพันธ์ของตารางที่เปิดอยู่ได้

    2. บนแท็บ เครื่องมือฐานข้อมูล ในกลุ่ม ความสัมพันธ์ ให้คลิก ความสัมพันธ์

      ในข้อมูล 1 ตาราง สามารถมี primary key ได้มากกว่า 1 ฟิลด์

    3. เลือกเพิ่มตาราง (แสดงตาราง ใน Access 2013)

    4. คลิกเส้นความสัมพันธ์ของตารางสำหรับความสัมพันธ์ของตารางที่คุณต้องการลบ (เส้นนี้จะกลายเป็นเส้นที่หนาเมื่อถูกเลือก) จากนั้นให้กดแป้น DELETE

    5. บนแท็บ ออกแบบ ในกลุ่ม ความสัมพันธ์ ให้คลิก ปิด

  2. หลังจากที่คุณลบความสัมพันธ์แล้ว ในบานหน้าต่างนำทาง ให้คลิกขวาตารางที่คุณต้องการเอาคีย์หลักออก แล้วคลิก มุมมองออกแบบ

    เคล็ดลับ: ถ้าคุณไม่เห็นบานหน้าต่างนำทาง ให้กด F11 เพื่อแสดง

  3. คลิกที่ตัวเลือกแถวของคีย์หลักปัจจุบัน

    โดยถ้าคีย์หลักประกอบด้วยเขตข้อมูลเดียว ให้คลิกตัวเลือกแถวของเขตข้อมูลนั้นเลย

    ถ้าคีย์หลักประกอบขึ้นจากหลายเขตข้อมูล ให้คลิกตัวเลือกแถวของเขตข้อมูลใดๆ ก็ได้ในคีย์หลักนั้น

  4. บนแท็บ ออกแบบ ในกลุ่ม เครื่องมือ ให้คลิกที่ คีย์หลัก

    ตัวบ่งชี้คีย์จะถูกเอาออกจากเขตข้อมูลหนึ่งหรือหลายเขตข้อมูลที่ก่อนหน้านี้คุณได้ระบุให้เป็นคีย์หลัก

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

เปลี่ยนคีย์หลักใน Access

ถ้าคุณตัดสินใจที่จะเปลี่ยนคีย์หลักของตาราง คุณสามารถทำได้โดยทำตามขั้นตอนต่อไปนี้:

  1. เอาคีย์หลักที่มีอยู่แล้วออกโดยทำตามคำแนะนำในส่วน เอาคีย์หลักออก

  2. ตั้งค่าคีย์หลักโดยทำตามคำแนะนำในส่วน ตั้งค่าคีย์หลัก

ข้อมูลเพิ่มเติม

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการออกแบบฐานข้อมูลและการเลือกคีย์หลักที่เหมาะสม ให้ดูบทความ:

  • ข้อมูลพื้นฐานเกี่ยวกับฐานข้อมูล

  • เรียนรู้โครงสร้างของฐานข้อมูล Access

  • สร้างฐานข้อมูล Access

  • สร้างตาราง

ด้านบนของหน้า

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่