What constraints does your selected DBMS support?
Constraints คือข้อจำกัดของค่าที่อยู่ใน Database
โดยสามารถระบุได้ เมื่อมีการสร้าง table (ในระหว่างที่สร้างตาราง) หรือหลังจากที่ตารางถูกสร้างขึ้นมาแล้ว(ในระหว่างที่แก้ไขตาราง)ใน SQL เราจะมี Constraints ดังต่อไปนี้
|
How to specify them?/Give examples
- Create table + Constraints
CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
)
รูปแบบของคำสั่งที่ใช้สร้างตารางและกำหนด Constraint
- NOT NULL
จากภาพด้านล่างจะสร้างตารางที่มีชื่อว่า money และมีการกำหนดให้ p_ID มี Constraint แบบ NOT NULL คือไม่สามารถ insert หรือ update new records ได้โดยไม่มีการใส่ค่าให้ fields นั้น 
รูปที่ 1 แสดงการสร้าง table ชื่อ money ระบุให้ p_ID เป็น NOT NULL
- UNIQUE
จากภาพด้านล่างจะแก้ตารางที่มีชื่อว่า money โดยใช้คำสั่ง ALTER และกำหนดให้ p_ID มี Constraint แบบ Unique คือ ไม่สามารถใส่ค่าในแต่ละ row ของ column ที่กำหนดซ้ำกันได้
ทดลองใส่ค่า p_ID เป็น 1 อีกครั้งหลังจากเรา Insert ค่า p_ID เป็นหนึ่งไปแล้ว จะสังเกตเห็นได้ว่ามีการแจ้งเตือน Error และไม่สามารถ Insert ค่า p_ID ที่ซ้ำกันได้
รูปที่ 3 แสดงการแก้ไข table ชื่อ money ระบุให้ p_ID เป็น UNIQUE 
รูปที่ 4 แสดงการเกิด Error เมื่อมีการใส่ค่าซ้ำกัน
ของ p_ID ที่เรากำหนดเป็น UNIQUE
- PRIMARY KEY
- FOREIGN KEY
- CHECK
- DEFAULT
| จากภาพด้านล่างจะแก้ตารางที่มีชื่อว่า money โดยใช้คำสั่ง ALTER และกำหนดให้ p_ID ใช้ Constraint แบบ PRIMARY KEY คือ ไม่สามารถใส่ค่าNULL และ ไม่สามารถใส่ค่าในแต่ละ row ของ column ที่กำหนดซ้ำกันได้ |
![]() |
| รูปที่ 5 แสดงการแก้ไข table ชื่อ money ระบุให้ p_ID เป็น PRIMARY KEY |
![]() |
| รูปที่ 6 แสดงข้อสังเกตของ column ที่มีการกำหนด Constraint แบบ PRIMARY KEY |
| จากภาพด้านล่างจะสร้างตารางใหม่ที่มีชื่อว่า OrderPro และมีการกำหนดให้ O_ID มี Constraint แบบ PRIMARY KEY และ กำหนด Constraint แบบ FOREIGN KEY ให้ p_ID ของตาราง OrderPro สามารถอ้างอิงไปยัง p_ID ของ table money |
![]() |
| รูปที่ 7 แสดงการสร้าง table ชื่อ OrderPro ระบุให้ p_ID เป็น PRIMARY KEY และใช้แบบ FOREIGN KEY ในการอิงไปยัง p_ID ของ money |
| จากภาพด้านล่างจะแก้ตารางที่มีชื่อว่า money โดยใช้คำสั่ง ALTER และกำหนดให้ p_ID ใช้ Constraint แบบ CHECK เวลาเรา insert ค่าลงไปในตาราง เราจะไม่สามารถ insert ค่าที่ไม่ตรงกับเงื่อนไขได้ เช่น ระบุให้ p_ID มากกว่า 0 ก็สามารถ insert p_ID ที่มากกว่า 0 ลงไปในตารางได้เท่านั้น |
![]() |
| รูปที่ 8 แสดงการแก้ไข table ชื่อ money ระบุให้ p_ID มีการ CHECK เงื่อนไข p_ID มากกว่า 0 |
| จากภาพด้านล่างจะแก้ตารางที่มีชื่อว่า money โดยใช้คำสั่ง ALTER และกำหนดให้ City ใช้ Constraint แบบ DEFAULT คือระบุค่า default ให้กับ City เป็น Bangkok หากตอน insert เรากำหนดให้เป็น DEFAULT ค่าใน column นั้นก็จะเป็นค่าตามที่กำหนดไว้ใน DEFAULT |
![]() |
| รูปที่ 9 แสดงการแก้ไข table ชื่อ money และ set default ของ City เป็น Bangkok |
![]() |
| รูปที่ 10 ลอง insert ค่าลงใน table โดยระบุ City เป็น default |
![]() |
| รูปที่ 11 ก็จะสังเกตเห็นว่า City ของ row ที่มี p_ID เท่ากับ 3 จะมีค่า City เป็น Bangkok ตามที่กำหนดไว้ใน default |








ไม่มีความคิดเห็น:
แสดงความคิดเห็น