การสร้าง Primary Key (PK) และ Foreign Key (FK) PostgreSQL
วิธีบน pgAdmin 4
1) เมื่อเข้ามายังโปรแกรม pgAdmin 4 ให้ Double Click ที่ Server
2) ทำการ Double Click ที่ PostgreSQL 14
3) ทำการ Double Click ที่ Databases
4) ทำการ Click ขวาที่ ฐานข้อมูลที่ต้องการสร้าง Primary Key (PK) และ Foreign Key (FK)
5) ทำการ Click ที่ Query Tool

6) ทำการ พิมพ์คำสั่ง SQL ในการสร้างตารางและมีการกำหนด primary key จากนั้นลากแถบดำคลุมคำสั่งนั้น
ตัวอย่างคำสั่งในภาพ create table category (
category_id varchar(2) primary key,
descr varchar
);
7) ทำการ Click ที่ปุ่ม Execute หรือกด F5 ตารางเราก็จะถูกสร้างเรียบร้อย

วิธีดูข้อมูล PK และ FK ของตาราง
8) ทำการ Double Click ที่ ฐานข้อมูลที่เราพึ่งสร้างตารางไป
9) ทำการ Click ที่ Schemas
10) ทำการ Click ที่ Tables
11) ทำการ Click ขวาที่ ตารางที่เราพึ่งสร้าง
12) ทำการ Click ที่ Properties...

13) เมื่อขึ้นหน้าต่าง ชื่อตารางเรา ดังรูปภาพให้ทำ Click ที่ Columns

14) จะเห็นข้อมูลของ Columns ของตารางที่เราเลือกจะเห็นในภาพว่าได้มีการสร้าง PK ตามที่เราได้พิมพ์คำสั่งไปในข้อ 6
15) ทำการ Click ที่ Constraints

16) จะเห็นข้อมูล Constraints Primary Key ของตารางที่เราเลือกในภาพจะเห็นว่าได้มีการสร้าง PK โดยใช้ชื่อจาก ชื่อตาราง_pkey นั้นเอง
17) ทำการ Click ที่ปุ่ม Close

วิธีทำ FK โดยสร้างจากคำสั่ง SQL
18) ทำการ พิมพ์คำสั่ง SQL ในการสร้างตารางและมีการกำหนด primary key และ Foreign Key จากนั้นลากแถบดำคลุมคำสั่งนั้น
ตัวอย่างคำสั่งในภาพ create table drinkmenu (
id int primary key,
descr varchar,
category_id varchar(2),
price int,
foreign key (category_id) references category (category_id)
);
19) ทำการ Click ที่ปุ่ม Execute หรือกด F5 ตารางเราก็จะถูกสร้างเรียบร้อย

20) ทำการ ดูข้อมูล PK และ FK ของตารางเหมือนข้อที่ 11-13 จากนั้นจะเห็นข้อมูล Columns ของตารางที่เราเลือกจะเห็นในภาพว่าได้มีการสร้าง PK ตามที่เราได้พิมพ์คำสั่งไปในข้อ 18
21) ทำการ Click ที่ Constraints

22) จะเห็นข้อมูล Constraints ของ Primary Key ตารางที่เราเลือกในภาพจะเห็นว่าได้มีการสร้าง PK โดยใช้ชื่อจาก ชื่อตาราง_pkey นั้นเอง
23) ทำการ Click ที่ Foreign Key

24) จะเห็นข้อมูล Constraints ของ Foreign Key ตารางที่เราเลือกในภาพจะเห็นว่าได้มีการสร้าง FK โดยใช้ชื่อจาก ชื่อตาราง_ชื่อคอลัมน์_pkey นั้นเอง
25) ทำการ Click ที่ปุ่ม Close

วิธีเพิ่มข้อมูลลงตารางจากคำสั่ง SQL
26) ทำการ พิมพ์คำสั่ง SQL ในการเพิ่มข้อมูลลงในตารางแรกจากนั้นลากแถบดำคลุมคำสั่งนั้น
ตัวอย่างคำสั่งในภาพ insert into category values
('cf', 'coffee'),
('te', 'tea'),
('ju', 'juice');
27) ทำการ Click ที่ปุ่ม Execute หรือกด F5 ข้อมูลเราก็จะถูกเพิ่มเรียบร้อย

28) ทำการ พิมพ์คำสั่ง SQL ในการแสดงข้อมูลตารางแรกจากนั้นลากแถบดำคลุมคำสั่งนั้น
ตัวอย่างคำสั่งในภาพ select * from category;
29) ทำการ Click ที่ปุ่ม Execute หรือกด F5
30) ตารางก็จะโชว์ข้อมูลดังในรูปภาพ

31) ทำการ พิมพ์คำสั่ง SQL ในการเพิ่มข้อมูลลงในตารางที่สองจากนั้นลากแถบดำคลุมคำสั่งนั้น
ตัวอย่างคำสั่งในภาพ insert into drinkmenu values
('1', 'mocha', 'cf', '50'),
('2', 'latte', 'cf', '40'),
('3', 'green tea', 'te', '35');
32) ทำการ Click ที่ปุ่ม Execute หรือกด F5 ข้อมูลเราก็จะถูกเพิ่มเรียบร้อย

33) ทำการ พิมพ์คำสั่ง SQL ในการแสดงข้อมูลตารางที่สองจากนั้นลากแถบดำคลุมคำสั่งนั้น
ตัวอย่างคำสั่งในภาพ select * from drinkmenu;
34) ทำการ Click ที่ปุ่ม Execute หรือกด F5
35) ตารางก็จะโชว์ข้อมูลดังในรูปภาพ

ทบสอบ Primary Key (PK) และ Foreign Key (FK) ว่าใช้งานได้จริงไหม
ทำการ พิมพ์คำสั่ง SQL ในการเพิ่มข้อมูลลงในตารางที่สองมีการใส่ข้อมูลตัวเลขที่มีข้อมูลของ PK ซ้ำจากนั้นลากแถบดำคลุมคำสั่งนั้นและทำการกดที่ปุ่ม Execute
ตัวอย่างคำสั่งในภาพ insert into drinkmenu values
('3', 'jasmine tea', 'te', '35');
จากนั้นจะเห็นได้ว่าเกิดคำสั่ง ERROR ที่มุมแสดงด้านล่าง เพราะ PK (id) เลข 3 มีอยู่แล้วจึงไม่สามารถเพิ่มข้อมูลลงได้

ทำการ พิมพ์คำสั่ง SQL ในการเพิ่มข้อมูลลงในตารางที่สองมีการใส่ข้อมูลตัวเลขที่มีข้อมูลของ PK ไม่ซ้ำจากนั้นลากแถบดำคลุมคำสั่งนั้นและทำการกดที่ปุ่ม Execute
ตัวอย่างคำสั่งในภาพ insert into drinkmenu values
('4', 'jasmine tea', 'te', '35');
จากนั้นจะเห็นได้ว่าเกิดคำสั่ง SUCCESS ที่มุมแสดงด้านล่าง เพราะ PK (id) เลข 4 ไม่มีจึงสามารถเพิ่มข้อมูลลงได้นั้นเอง

ทำการ พิมพ์คำสั่ง SQL ในการแสดงข้อมูลตารางที่สองที่เราพึ่งทดลองไปจากนั้นลากแถบดำคลุมคำสั่งนั้นและทำการกดที่ปุ่ม Execute
ตัวอย่างคำสั่งในภาพ select * from category;
ตารางก็จะโชว์ข้อมูลดังในรูปภาพจะเห็นได้ว่าข้อมูลถูกต้องและครบถ้วน

ทำการ พิมพ์คำสั่ง SQL ในการเพิ่มข้อมูลลงในตารางที่สองมีการใส่ข้อมูลที่ไม่มีข้อมูลของ FK จากตารางแรกจากนั้นลากแถบดำคลุมคำสั่งนั้นและทำการกดที่ปุ่ม Execute
ตัวอย่างคำสั่งในภาพ insert into drinkmenu values
('5', 'coke', 'sd', '25');
จากนั้นจะเห็นได้ว่าเกิดคำสั่ง ERROR ที่มุมแสดงด้านล่าง เพราะข้อมูล FK (category_id)ในตารางไม่มีจึงไม่สามารถเพิ่มข้อมูลลงได้

ทำการ พิมพ์คำสั่ง SQL ในการเพิ่มข้อมูลลงในตารางแรกจากนั้นลากแถบดำคลุมคำสั่งนั้นและทำการกดที่ปุ่ม Execute
ตัวอย่างคำสั่งในภาพ insert into category values
('sd', 'soda');
จากนั้นจะเห็นได้ว่าเกิดคำสั่ง SUCCESS ที่มุมแสดงด้านล่างแสดงว่าเพิ่มข้อมูลลงในตารางแรกได้สำเร็จ

ทำการ พิมพ์คำสั่ง SQL ในการเพิ่มข้อมูลลงในตารางที่สองมีการใส่ข้อมูลที่มีข้อมูลของ FK จากตารางแรกจากนั้นลากแถบดำคลุมคำสั่งนั้นและทำการกดที่ปุ่ม Execute
ตัวอย่างคำสั่งในภาพ insert into drinkmenu values
('5', 'coke', 'sd', '35');
จากนั้นจะเห็นได้ว่าเกิดคำสั่ง SUCCESS ที่มุมแสดงด้านล่าง เพราะ FK (category_id) sd ได้มีข้อมูลแล้วจึงสามารถเพิ่มข้อมูลลงได้นั้นเอง

ทำการ พิมพ์คำสั่ง SQL ในการแสดงข้อมูลตารางที่สองที่เราพึ่งทดลองไปจากนั้นลากแถบดำคลุมคำสั่งนั้นและทำการกดที่ปุ่ม Execute
ตัวอย่างคำสั่งในภาพ select * from drinkmenu;
ตารางก็จะโชว์ข้อมูลดังในรูปภาพจะเห็นได้ว่าข้อมูลถูกต้องและครบถ้วน

ตัวอย่างการสร้าง Primary Key (PK) แบบมากกว่า 1 Columns
ทำการ พิมพ์คำสั่ง SQL ในการสร้างตารางและมีการสร้าง Primary Key (PK) แบบมากกว่า 1 columns จากนั้นลากแถบดำคลุมคำสั่งนั้น
ตัวอย่างคำสั่งในภาพ create table student_grade (
student_id int,
subject_id varchar(7),
grade varchar(2),
primary key (student_id, subject_id)
);
ความคิดเห็น
แสดงความคิดเห็น