เคยสงสัยไหมว่า Key ในระบบฐานข้อมูลนั้นมีอะไรบ้าง ? แล้วแต่ละอย่างมันใช้งานต่างกันยังไงนะ วันนี้มาไขข้อสงสัยกันจ้า
ก่อนอื่นเรามาทำความรู้จักกับ “Key” กันก่อน
Key เป็นแอตทริบิวต์ที่ช่วยให้เราสามารถระบุแถว และช่วยเราค้นหาความสัมพันธ์ระหว่าง 2 ตารางได้ และยังช่วยให้เราสามารถค้นหาข้อมูลได้อย่างง่ายอีกด้วย
มาดูกันดีกว่าว่า Key แต่ละอย่างนั้นมันคืออะไร และใช้งานยังไงกันนะ ??
Primary Key เป็น Key ที่ใช้กำหนดว่าข้อมูลในคอมลัมน์นั้น ๆ ห้ามซ้ำกัน เช่น เบอร์โทร, E-mail, รหัสบัตร เป็นต้น และในตารางห้ามมีข้อมูลที่เป็น NULL
SQL Syntax :
CREATE TABLE <Table-Name>
(
Column1 datatype,
Column2 datatype, PRIMARY KEY (Column-Name)
);
มาดูตัวอย่างการใช้งานกันเลยย
ทำการสร้างตาราง CustomerInfo โดยมีคอลัมน์ดังนี้ ID, FIRST_NAME, LAST_NAME, ID_CARD_NUM, และ EMAIL โดยที่จะกำหนดให้ ID เป็น Primary Key
SQL Script :
CREATE TABLE CustomerInfo
(
ID INT NOT NULL,
FIRST_NAME VARCHAR(255),
LAST_NAME VARCHAR(255),
ID_CARD_NUM VARCHAR(255),
EMAIL VARCHAR(255),
PRIMARY KEY (ID)
)
ผลลัพธ์
CustomerInfo
ID | FIRST_NAME | LAST_NAME | ID_CARD_NUM | |
1 | หนู | ตัวเล็ก | 1999999999999 | nongnoo_zaza@hotmail.com |
2 | ไก่ | ขัน | 1888888888888 | Inw_kai555@hotmail.com |
3 | หมู | กินเยอะ | 1777777777777 | moo_eiei1234@gmail.com |
*โดยที่คอลลัมน์ ID ให้เป็น Primary Key เพราะมันจะสามารถทำให้เราสามารถระบุข้อมูลในแถวอื่น ๆ โดยไม่ซ้ำกัน
Foreign Key เป็นการกำหนดคอลัมน์เพื่อสร้างความสัมพันธ์กับตารางอื่น ๆ ซึ่งมันจะให้เราสามารถเชื่อมข้อมูลกับตารางอื่น ๆ ได้ และทำให้ข้อมูลในฐานข้อมูลสอดคล้องกันนั่นเองจ้า
SQL Syntax :
CREATE TABLE <Table Name>(
column1 datatype,
column2 datatype,
constraint (name of constraint)
FOREIGN KEY [column1, column2...]
REFERENCES [primary key table name] (List of primary key table column) ...);
และตัวอย่างตารางที่มี Foreign Key ดังนี้
มีตาราง SubjectName ซึ่งใช้เก็บข้อมูลของวิชาเรียน, TeacherName ใช้เก็บชื่อและนามสกุลของครู, และตาราง TecherInfo เก็บข้อมูลครูที่สอนแต่ละวิชา ซึ่งทั้ง 3 ตารางนี้จะคอลัมน์ Code, และ TeacherID เป็น Foreign Key ดูง่าย ๆ
สรุป : จำแบบง่ายๆ เลยคือ Primary Key คือ คีย์ที่ห้ามซ้ำ!! ส่วน Foreign Key คีย์ที่ใช้เชื่อมความสัมพันธ์ระหว่างตาราง ทีนี้ก็พอจะรู้ความแตกต่างของเจ้า Key 2 ตัวนี้แล้วเนอะ อย่าไปใช้ผิดกันล่ะ555 หวังว่าบทความนี้จะเป็นประโยชน์กับเพื่อนๆ ไม่มากก็น้อยนะคะ ❤️