เขียนเว็บ เดอะ ซีรีส์ ตอนที่ 32: คีย์หลักของตาราง (Primary Key)

Sattaya Metharakcheep
6 min readJan 24, 2021

--

ทุก ๆ ครั้งที่มีการสร้างตารางภายในฐานข้อมูลควรจะมี 1 คอลัมน์ที่มีข้อมูลไม่ซ้ำกันเพื่อที่เราจะสามารถระบุตำแหน่งของข้อมูลก่อนที่จะทำการแก้ไขหรือลบข้อมูล คอลัมน์ใดที่มีข้อมูลไม่ซ้ำกันเราจะกำหนดให้คอลัมน์นั้นเป็นคีย์หลัก หรือ Primary Key ของตาราง

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

นอกจากข้อมูลที่ไม่ซ้ำกันแล้ว คอลัมน์ที่จะเป็น Primary Key จะต้องไม่มีค่า NULL (หรือระบุค่าไม่ได้) อยู่ในคอลัมน์ด้วย

ตัวอย่างต่อไปนี้จะเป็นการสร้างฐานข้อมูลเพื่อจัดเก็บข้อมูลท่าอากาศยานต่าง ๆ ทั่วโลก

ท่าอากาศยานทั่วโลกจะมีข้อมูลต่าง ๆ เช่น ชื่อท่าอากาศยาน ที่ตั้ง จำนวนผู้โดยสารเฉลี่ยต่อปี เป็นต้น แต่ท่าอากาศยานจะมีข้อมูลเฉพาะที่ไม่ซ้ำกัน คือ “รหัสท่าอากาศยาน” เมื่อมีการสร้างตารางเก็บข้อมูลรายชื่อท่าอากาศยาน เราสามารถกำหนดให้รหัสท่าอากาศยานเป็น Primary Key ได้

ตัวอย่างรายชื่อท่าอากาศยานทั่วโลก (จาก World Airport Codes)
ตัวอย่างรายชื่อท่าอากาศยานทั่วโลก (จาก World Airport Codes)

เริ่มต้นให้สร้างฐานข้อมูลชื่อ airport_db กำหนดให้รองรับรหัสอักขระ utf8_unicode_ci จากนั้นให้สร้างตารางชื่อ airport_list โดยมี 5 คอลัมน์ พร้อมตั้งค่าต่าง ๆ (ยังไม่ต้องคลิก Save เพื่อสร้างตาราง) ตามภาพด้านล่าง (ดูวิธีการสร้างฐานข้อมูลและตารางในตอนที่ 27, 28, 29)

ตั้งค่าระหว่างการสร้างตาราง airport_list
ตั้งค่าระหว่างการสร้างตาราง airport_list

รายละเอียดของแต่ละคอลัมน์ในตาราง airport_list มีดังนี้

  • airport_code คือ รหัสท่าอากาศยาน โดยในตัวอย่างนี้จะใช้รหัสตัวอักษร 4 ตัว ตามมาตรฐานขององค์การการบินพลเรือนระหว่างประเทศ (ICAO) ซึ่งแต่ละท่าอากาศยานจะมีรหัสที่ไม่ซ้ำกัน
  • airport_name คือ ชื่อท่าอากาศยาน
  • location_city คือ เมืองที่ตั้งของท่าอากาศยาน
  • location_state คือ รัฐ/มลรัฐ/จังหวัด ที่ตั้งของท่าอากาศยาน
  • location_country คือ ประเทศที่ตั้งของท่าอากาศยาน

ถ้าต้องการให้คอลัมน์ airport_code เป็น Primary Key ให้ไปที่ Index แล้วเลือก PRIMARY (กรอบสีแดงตามภาพ)

ที่ช่อง Index ในคอลัมน์ airport_code ให้เลือก PRIMARY เพื่อกำหนดให้เป็น Primary Key
ที่ช่อง Index ในคอลัมน์ airport_code ให้เลือก PRIMARY เพื่อกำหนดให้เป็น Primary Key

คลิก Go เพื่อกำหนดให้คอลัมน์ airport_code เป็น Primary Key

คลิก Go เพื่อกำหนดให้คอลัมน์ airport_code เป็น Primary Key
คลิก Go เพื่อกำหนดให้คอลัมน์ airport_code เป็น Primary Key

เมื่อกำหนด Primary Key เรียบร้อยแล้วให้คลิก Save เพื่อสร้างตาราง และเมื่อมาที่หน้า Structure จะพบกับรูปกุญแจสีเหลืองในคอลัมน์ airport_code เพื่อบ่งบอกว่าคอลัมน์ airport_code เป็น Primary Key

รูปกุญแจสีเหลืองเพื่อบ่งบอกว่าคอลัมน์ airport_code เป็น Primary Key
รูปกุญแจสีเหลืองเพื่อบ่งบอกว่าคอลัมน์ airport_code เป็น Primary Key

และในหมวด Indexes ที่อยู่ด้านล่างรายการคอลัมน์ จะมีข้อมูลคีย์แสดงอยู่ว่ามี 1 คีย์ที่เป็น Primary Key บนคอลัมน์ airport_code

หมวด Indexes จะมีข้อมูลคีย์อยู่ 1 คีย์ที่เป็น Primary Key บนคอลัมน์ airport_code
หมวด Indexes จะมีข้อมูลคีย์อยู่ 1 คีย์ที่เป็น Primary Key บนคอลัมน์ airport_code

ถ้าต้องการลบ Primary Key ให้มาที่หมวด Indexes ที่อยู่ด้านล่างรายการคอลัมน์ แล้วคลิก Drop

คลิก Drop ในหมวด Indexes เพื่อลบ Primary Key
คลิก Drop ในหมวด Indexes เพื่อลบ Primary Key

ระบบจะถามว่าต้องการลบ Primary Key หรือไม่ ให้คลิก OK

ระบบจะถามว่าต้องการลบ Primary Key หรือไม่
ระบบจะถามว่าต้องการลบ Primary Key หรือไม่

เมื่อคลิก OK ที่คอลัมน์ airport_code จะไม่มีรูปกุญแจสีเหลือง และที่หมวด Indexes จะไม่มีข้อมูล Primary Key

เมื่อลบ Primary Key แล้ว รูปกุญแจสีเหลืองจะถูกลบออกไปด้วย
เมื่อลบ Primary Key แล้ว รูปกุญแจสีเหลืองจะถูกลบออกไปด้วย

และถ้าต้องการกำหนดให้คอลัมน์ airport_code เป็น Primary Key อีกครั้ง ให้ไปที่ More บนแถวคอลัมน์ airport_code

คลิก More บนคอลัมน์ที่ต้องการเพื่อเพิ่ม Primary Key
คลิก More บนคอลัมน์ที่ต้องการเพื่อเพิ่ม Primary Key

จากนั้นเลือก “Primary” ที่มีรูปกุญแจสีเหลือง

ภายใน More เลือก Primary เพื่อกำหนดให้เป็น Primary Key
ภายใน More เลือก Primary เพื่อกำหนดให้เป็น Primary Key

ระบบจะถามว่าต้องการกำหนด Primary Key ให้กับคอลัมน์ airport_code หรือไม่ ให้คลิก OK

ระบบจะถามว่าต้องการกำหนด Primary Key หรือไม่
ระบบจะถามว่าต้องการกำหนด Primary Key หรือไม่

เมื่อคลิก OK ระบบจะแจ้งว่าได้กำหนดให้คอลัมน์ airport_code เป็น Primary Key แล้ว โดยดูจากรูปกุญแจสีเหลืองที่คอลัมน์ airport_code และมีข้อมูลคีย์ในหมวด Indexes

เมื่อเพิ่ม Primary Key แล้ว ที่คอลัมน์ airport_code จะแสดงรูปกุญแจสีเหลืองให้เห็น
เมื่อเพิ่ม Primary Key แล้ว ที่คอลัมน์ airport_code จะแสดงรูปกุญแจสีเหลืองให้เห็น

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

  • เราสามารถพิมพ์คำสั่งภาษา SQL ในการกำหนดให้คอลัมน์ใดเป็น Primary Key โดยตรงได้ ไม่ว่าจะกำหนดก่อน/หลัง การสร้างตาราง รวมทั้งสามารถใช้คำสั่งภาษา SQL ในการลบ Primary Key ออกจากคอลัมน์ได้ด้วย
  • Primary Key สามารถมีมากกว่า 1 คอลัมน์ต่อ 1 ตารางก็ได้ แต่การสร้างระบบฐานข้อมูลที่ดี ใน 1 ตาราง ควรจะมี Primary Key เพียง 1 คอลัมน์เท่านั้น
  • ควรจะกำหนด Primary Key ในตารางให้เรียบร้อยก่อนทำการเพิ่มข้อมูลลงในตารางทุกครั้ง

ทดลองเพิ่มข้อมูลลงในตาราง

ให้พิมพ์คำสั่งภาษา SQL เพื่อเพิ่มข้อมูลดังนี้

INSERT INTO airport_list VALUES ('KATL', 'Hartsfield–Jackson Atlanta International Airport', 'Atlanta', 'Georgia', 'United States'),
('ZBAA', 'Beijing Capital International Airport', 'Chaoyang-Shunyi', 'Beijing', 'China'),
('KLAX', 'Los Angeles International Airport', 'Los Angeles', 'California', 'United States'),
('RJTT', 'Tokyo Haneda Airport', 'Ōta', 'Tokyo', 'Japan'),
('EGLL', 'London Heathrow Airport', 'Hillingdon', 'London', 'United Kingdom'),
('ZSPD', 'Shanghai Pudong International Airport', 'Pudong', 'Shanghai', 'China'),
('RKSI', 'Seoul Incheon International Airport', '', 'Incheon', 'South Korea'),
('EDDF', 'Frankfurt Airport', 'Frankfurt', 'Hesse', 'Germany'),
('WSSS', 'Singapore Changi Airport', 'Changi', 'East Region', 'Singapore'),
('VTBS', 'Suvarnabhumi Airport', 'Bang Phli', 'Samut Prakan', 'Thailand');
พิมพ์คำสั่งภาษา SQL เพื่อเพิ่มข้อมูล
พิมพ์คำสั่งภาษา SQL เพื่อเพิ่มข้อมูล

เมื่อเพิ่มข้อมูลแล้ว ตารางจะมีรายการข้อมูลตามภาพด้านล่าง โดยระบบจะเรียงตามตัวอักษรของรหัสท่าอากาศยานในคอลัมน์ airport_code จาก A ถึง Z ให้โดยอัตโนมัติ

รายการข้อมูลท่าอากาศยานในตาราง airport_list
รายการข้อมูลท่าอากาศยานในตาราง airport_list

ต่อไปให้พิมพ์คำสั่งเพิ่มข้อมูล “ท่าอากาศดอนเมือง” ดังนี้

INSERT INTO airport_list VALUES ('VTBS', 'Don Mueang International Airport', 'Don Mueang', 'Bangkok', 'Thailand');
พิมพ์คำสั่งเพิ่มข้อมูล “ท่าอากาศดอนเมือง”
พิมพ์คำสั่งเพิ่มข้อมูล “ท่าอากาศดอนเมือง”

เมื่อให้คำสั่งทำงานระบบจะแจ้งข้อผิดพลาดว่าไม่สามารถเพิ่มข้อมูลได้เนื่องจากมีรหัส “VTBS” อยู่ในตารางอยู่แล้ว

ระบบแจ้งข้อผิดพลาดว่าไม่สามารถเพิ่มข้อมูลได้เนื่องจากมีรหัส “VTBS” อยู่ในตารางอยู่แล้ว
ระบบแจ้งข้อผิดพลาดว่าไม่สามารถเพิ่มข้อมูลได้เนื่องจากมีรหัส “VTBS” อยู่ในตารางอยู่แล้ว

โดยรหัส VTBS อยู่ในคอลัมน์ airport_code เป็นรหัสท่าอากาศยานของท่าอากาศสุวรรณภูมิ

รหัส VTBS เป็นรหัสท่าอากาศยานของท่าอากาศสุวรรณภูมิ
รหัส VTBS เป็นรหัสท่าอากาศยานของท่าอากาศสุวรรณภูมิ

เมื่อมีรหัส VTBS อยู่ในตารางแล้ว เราจึงไม่สามารถเพิ่มข้อมูลที่เป็นรหัส VTBS เหมือนกันได้เนื่องจากเรากำหนดให้คอลัมน์ airport_code เป็น Primary Key ข้อมูลที่เป็น Primary Key จึงไม่สามารถซ้ำกันได้ และถ้ามีการแก้ไขข้อมูล จะไม่สามารถแก้ไขข้อมูลให้มีรหัสท่าอากาศยานซ้ำกันได้ด้วยเช่นกัน

แต่ถ้าพิมพ์คำสั่งเพิ่มข้อมูล “ท่าอากาศดอนเมือง” เป็นดังนี้

INSERT INTO airport_list VALUES ('VTBD', 'Don Mueang International Airport', 'Don Mueang', 'Bangkok', 'Thailand');
พิมพ์คำสั่งเพิ่มข้อมูล “ท่าอากาศดอนเมือง” อีกครั้ง
พิมพ์คำสั่งเพิ่มข้อมูล “ท่าอากาศดอนเมือง” อีกครั้ง

ระบบจะแจ้งว่าได้เพิ่มข้อมูลเรียบร้อยแล้ว เนื่องจากเราใช้รหัสท่าอากาศยานเป็น “VTBD” ซึ่งยังไม่มีข้อมูลรหัสนี้อยู่ในตาราง เราจึงสามารถเพิ่มข้อมูลท่าอากาศยานดอนเมืองลงในตาราง airport_list ได้

ระบบแจ้งว่าได้เพิ่มข้อมูลเรียบร้อยแล้ว
ระบบแจ้งว่าได้เพิ่มข้อมูลเรียบร้อยแล้ว
ข้อมูลของท่าอากาศดอนเมืองในตาราง airport_list โดยมีรหัสท่าอากาศยาน คือ VTBD
ข้อมูลของท่าอากาศดอนเมืองในตาราง airport_list โดยมีรหัสท่าอากาศยาน คือ VTBD

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

ยกตัวอย่างเช่นฐานข้อมูล airport_db นี้ ในตาราง airport_list จะมีข้อมูลชื่อประเทศที่ตั้งของท่าอากาศยานอยู่ในคอลัมน์ location_country ซึ่งเราสามารถแบ่งข้อมูลประเทศที่ตั้งออกมาเป็นอีกตารางหนึ่งได้ โดยให้ข้อมูลในคอลัมน์ location_country เป็นรหัสประเทศแทนการใช้ชื่อประเทศ แล้วสร้างตารางใหม่โดยตั้งชื่อตารางใหม่นี้ว่า country มี 2 คอลัมน์ คือ country_code (รหัสประเทศ) และ country_name (ชื่อประเทศ)

หมายเหตุ:

  • รหัสประเทศที่ใช้ในตัวอย่างนี้ยึดตามมาตรฐาน ISO 3166–1 alpha-2 ขององค์การระหว่างประเทศว่าด้วยการมาตรฐาน หรือ ISO
รหัสประเทศในคอลัมน์ location_country ของตาราง airport_list
รหัสประเทศในคอลัมน์ location_country ของตาราง airport_list
รหัสประเทศในคอลัมน์ country_code ของตาราง country
รหัสประเทศในคอลัมน์ country_code ของตาราง country

จะเห็นว่าทั้งตาราง airport_list และตาราง country มีข้อมูลที่ตรงกัน คือ รหัสประเทศในคอลัมน์ location_country ของตาราง airport_list และรหัสประเทศในคอลัมน์ country_code ของตาราง country โดยเราสามารถกำหนดให้คอลัมน์ location_country เป็นคีย์นอก หรือ Foreign Key ของตาราง airport_list ได้ และสามารถให้ตาราง airport_list เชื่อมต่อกับตาราง country ได้เนื่องจากมีข้อมูลรหัสประเทศเหมือนกัน

สำหรับคีย์นอก หรือ Foreign Key จะมีการอธิบายเพิ่มเติมในตอนต่อ ๆ ไป

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

ลำดับข้อมูลอัตโนมัติ (Auto Increment)

Auto Increment เป็นฟังก์ชันที่สำคัญสำหรับคอลัมน์ที่เป็น Primary Key เมื่อเพิ่มข้อมูลลงในตารางแล้ว ตารางจะสร้างลำดับของข้อมูลเป็น 1, 2, 3,… ให้เองโดยอัตโนมัติ ซึ่งลำดับของข้อมูลที่ถูกสร้างจะเก็บไว้ในคอลัมน์ที่เป็น Primary Key โดย Auto Increment จะมีค่าเริ่มต้น คือ 1 และจะเพิ่มลำดับมาทีละ 1 ลำดับ

ให้เข้าไปที่ฐานข้อมูล airport_db แล้วสร้างตารางใหม่ชื่อ airport_list_thai เพื่อใช้เก็บข้อมูลท่าอากาศยานในประเทศไทย โดยมี 5 คอลัมน์ พร้อมตั้งค่าต่าง ๆ (ยังไม่ต้องคลิก Save เพื่อสร้างตาราง) ตามภาพด้านล่าง

ตั้งค่าระหว่างการสร้างตาราง airport_list_thai
ตั้งค่าระหว่างการสร้างตาราง airport_list_thai

รายละเอียดของแต่ละคอลัมน์ในตาราง airport_list_thai มีดังนี้

  • airport_no คือ ลำดับข้อมูลของท่าอากาศยานซึ่งเราจะกำหนดประเภทของข้อมูล (Data type) ให้เป็น Int เพื่อใช้ในการตั้งค่า Auto Increment
  • airport_code คือ รหัสท่าอากาศยาน โดยในตัวอย่างนี้จะใช้รหัสตัวอักษร 4 ตัว ตามมาตรฐานขององค์การการบินพลเรือนระหว่างประเทศ (ICAO) ซึ่งแต่ละท่าอากาศยานจะมีรหัสที่ไม่ซ้ำกัน
  • airport_name คือ ชื่อท่าอากาศยาน
  • province คือ จังหวัดที่ตั้งของท่าอากาศยาน
  • response_agency คือ หน่วยงานที่รับผิดชอบท่าอากาศยาน

ที่คอลัมน์ airport_no จะมีหมวด A_I อยู่ข้าง ๆ Index ให้ทำเครื่องหมายถูกที่ช่องของ A_I เพื่อตั้งค่า Auto Increment โดยระบบจะกำหนดให้คอลัมน์ airport_no เป็น Primary Key ให้เองโดยอัตโนมัติ พร้อมทั้งให้คอลัมน์ airport_no มีการเรียงลำดับแบบ Auto Increment

การตั้งค่า Auto Increment จะทำให้คอลัมน์นั้นเป็น Primary Key โดยอัตโนมัติ
การตั้งค่า Auto Increment จะทำให้คอลัมน์นั้นเป็น Primary Key โดยอัตโนมัติ

เมื่อกำหนด Primary Key และ Auto Increment เรียบร้อยแล้วให้คลิก Save เพื่อสร้างตาราง และเมื่อมาที่หน้า Structure จะพบกับรูปกุญแจสีเหลืองในคอลัมน์ airport_no และมีคำว่า “AUTO_INCREMENT” อยู่ในหมวด Extra (กรอบสีแดงตามภาพ) เพื่อบอกให้รู้ว่าคอลัมน์ airport_no เป็น Primary Key และมีการเรียงลำดับของข้อมูลแบบ Auto Increment

รูปกุญแจสีเหลืองและมีคำว่า AUTO_INCREMENT
รูปกุญแจสีเหลืองและมีคำว่า AUTO_INCREMENT

ถ้าต้องการลบ Auto Increment ให้คลิก Change

คลิก Change เพื่อเพิ่ม/ลบ Auto Increment
คลิก Change เพื่อเพิ่ม/ลบ Auto Increment

จากนั้นนำเครื่องหมายถูกออกจากช่อง A_I (กรอบสีแดงตามภาพ) เสร็จเรียบร้อยแล้วให้คลิก Save

นำเครื่องหมายถูกออกจากช่อง A_I เพื่อลบ Auto Increment
นำเครื่องหมายถูกออกจากช่อง A_I เพื่อลบ Auto Increment

เมื่อคลิก Save แล้ว จะไม่มีคำว่า “AUTO_INCREMENT” ในหมวด Extra ของคอลัมน์ airport_no แล้ว

เมื่อนำเครื่องหมายถูกออกจากช่อง A_I จะไม่มีคำว่า “AUTO_INCREMENT” ในหมวด Extra
เมื่อนำเครื่องหมายถูกออกจากช่อง A_I จะไม่มีคำว่า “AUTO_INCREMENT” ในหมวด Extra

ถ้าจะกลับไปตั้งค่า Auto Increment เหมือนเดิมให้คลิกที่ Change แล้วทำเครื่องหมายถูกลงในช่อง A_I คอลัมน์ airport_no ก็จะกลับมาเป็น Auto Increment เหมือนเดิม

ทดลองเพิ่มข้อมูลใน Auto Increment

ให้พิมพ์คำสั่งภาษา SQL เพื่อเพิ่มข้อมูลดังนี้

INSERT INTO airport_list_thai (airport_code, airport_name, province, response_agency) VALUES ('VTBS', 'ท่าอากาศยานสุวรรณภูมิ', 'สมุทรปราการ', 'บริษัท ท่าอากาศยานไทย จำกัด (มหาชน)'),
('VTCT', 'ท่าอากาศยานแม่ฟ้าหลวง เชียงราย', 'เชียงราย', 'บริษัท ท่าอากาศยานไทย จำกัด (มหาชน)'),
('VTUD', 'ท่าอากาศยานอุดรธานี', 'อุดรธานี', 'กรมท่าอากาศยาน'),
('VTBU', 'ท่าอากาศยานอู่ตะเภา', 'ระยอง', 'กองทัพเรือ'),
('VTSM', 'ท่าอากาศยานนานาชาติสมุย', 'สุราษฎร์ธานี', 'บริษัท การบินกรุงเทพ จำกัด (มหาชน)');
พิมพ์คำสั่งภาษา SQL เพื่อเพิ่มข้อมูล
พิมพ์คำสั่งภาษา SQL เพื่อเพิ่มข้อมูล

คำอธิบาย:

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

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

รายการข้อมูลโดยจะเรียงตามเลขลำดับของข้อมูลในคอลัมน์ airport_no โดยอัตโนมัติ
รายการข้อมูลโดยจะเรียงตามเลขลำดับของข้อมูลในคอลัมน์ airport_no โดยอัตโนมัติ

ถ้ามีการเพิ่มข้อมูลเพิ่มเติม ลำดับของข้อมูลจะเพิ่มขึ้นเรื่อย ๆ โดยจะเพิ่มขึ้นมาทีละ 1 ถึงแม้ว่าจะมีการลบข้อมูลออกไปแล้วแต่ลำดับของข้อมูลก็จะเพิ่มขึ้นเรื่อย ๆ โดยลำดับของข้อมูลจะนับต่อจากลำดับล่าสุด

สรุป

  • คอลัมน์ใดที่มีข้อมูลไม่ซ้ำกันเราจะกำหนดให้คอลัมน์นั้นเป็นคีย์หลัก หรือ Primary Key ของตาราง
  • นอกจากข้อมูลที่ไม่ซ้ำกันแล้ว คอลัมน์ที่จะเป็น Primary Key จะต้องไม่มีค่า NULL (หรือระบุค่าไม่ได้) อยู่ในคอลัมน์
  • ข้อมูลที่ไม่ซ้ำกันสามารถเป็นได้ทั้งตัวเลขอย่างเดียว ตัวอักษรอย่างเดียว หรือตัวเลขผสมตัวอักษร
  • สามารถพิมพ์คำสั่งภาษา SQL โดยตรงในการกำหนดให้คอลัมน์ใดเป็น Primary Key หรือลบ Primary Key ออกจากคอลัมน์ได้
  • Primary Key สามารถมีมากกว่า 1 คอลัมน์ต่อ 1 ตารางก็ได้ แต่การสร้างระบบฐานข้อมูลที่ดี ใน 1 ตาราง ควรจะมี Primary Key เพียง 1 คอลัมน์เท่านั้น
  • ควรจะกำหนด Primary Key ในตารางให้เรียบร้อยก่อนทำการเพิ่มข้อมูลลงในตารางทุกครั้ง
  • Primary Key นอกจากจะเป็นตัวช่วยระบุตำแหน่งของข้อมูลในตารางแล้ว ยังสามารถใช้ฟังก์ชันลำดับข้อมูลอัตโนมัติ (Auto Increment) เพื่อช่วยในการจัดเรียงลำดับข้อมูลได้อีกด้วย

--

--