วันอาทิตย์ที่ 31 มกราคม พ.ศ. 2559

Constraints of my selected DBMS

What constraints does your selected DBMS support?

Constraints  คือข้อจำกัดของค่าที่อยู่ใน Database 
โดยสามารถระบุได้ เมื่อมีการสร้าง table (ในระหว่างที่สร้างตาราง) หรือหลังจากที่ตารางถูกสร้างขึ้นมาแล้ว(ในระหว่างที่แก้ไขตาราง)



ใน SQL เราจะมี Constraints ดังต่อไปนี้

  • NOT NULL ใช้ระบุว่า column นั้นไม่สามารถเป็น NULL ได้
  • UNIQUE   เพื่อให้แน่ใจว่าข้อมูลแต่ละ row ของ column จะต้องไม่ซ้ำกัน (เป็นค่าที่ unique)
  • PRIMARY KEY  เป็นการรวมกันของ NOT NULL และ UNIQUE เพื่อให้ column นั้นมีคุณลักษณะที่ไม่ซ้ำกันและสามารถค้นหาข้อมูลนั้นได้ง่ายและเร็วขึ้น
  • FOREIGN KEY  เพื่อให้ข้อมูลในหนึ่ง Table สามารถอ้างอิงไปยังค่าหนึ่งใน Table อื่นๆได้
  • CHECK เพื่อให้ค่าใน column มีคุณสมบัติตรงตามเงื่อนไขที่ระบุ
  • DEFAULT ระบุค่า default ของแต่ละ column

How to specify them?/Give examples

  • Create table + Constraints

      CREATE TABLE table_name
    (
    column_name1 data_type(sizeconstraint_name,
    column_name2 data_type(sizeconstraint_name,
    column_name3 data_type(sizeconstraint_name,
    ....
    )

    รูปแบบของคำสั่งที่ใช้สร้างตารางและกำหนด Constraint
     
  • NOT NULL

     จากภาพด้านล่างจะสร้างตารางที่มีชื่อว่า money และมีการกำหนดให้ p_ID  มี Constraint แบบ NOT NULL คือไม่สามารถ insert หรือ update new records ได้โดยไม่มีการใส่ค่าให้ fields นั้น   

    รูปที่ 1 แสดงการสร้าง table ชื่อ money ระบุให้ p_ID เป็น NOT NULL
    รูปที่ 2 แสดงว่าเมื่อ เรามีการ insert ค่า NULL ให้ column p_ID ก็จะเกิด Error 
  • UNIQUE

    จากภาพด้านล่างจะแก้ตารางที่มีชื่อว่า money โดยใช้คำสั่ง ALTER และกำหนดให้ p_ID มี Constraint แบบ Unique คือ ไม่สามารถใส่ค่าในแต่ละ row ของ column ที่กำหนดซ้ำกันได้

    รูปที่ 3 แสดงการแก้ไข table ชื่อ money ระบุให้ p_ID เป็น UNIQUE
    ทดลองใส่ค่า p_ID เป็น 1 อีกครั้งหลังจากเรา Insert ค่า p_ID เป็นหนึ่งไปแล้ว จะสังเกตเห็นได้ว่ามีการแจ้งเตือน Error และไม่สามารถ Insert ค่า p_ID ที่ซ้ำกันได้

    รูปที่ 4 แสดงการเกิด Error เมื่อมีการใส่ค่าซ้ำกัน
    ของ p_ID ที่เรากำหนดเป็น UNIQUE

  • PRIMARY KEY

  • จากภาพด้านล่างจะแก้ตารางที่มีชื่อว่า money โดยใช้คำสั่ง ALTER และกำหนดให้ p_ID ใช้ Constraint แบบ PRIMARY KEY คือ ไม่สามารถใส่ค่าNULL และ ไม่สามารถใส่ค่าในแต่ละ row ของ column ที่กำหนดซ้ำกันได้

    รูปที่ 5 แสดงการแก้ไข table ชื่อ money
    ระบุให้ p_ID เป็น PRIMARY KEY

    รูปที่ 6 แสดงข้อสังเกตของ column
    ที่มีการกำหนด Constraint แบบ PRIMARY KEY 

  • FOREIGN 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

  • CHECK

  •  จากภาพด้านล่างจะแก้ตารางที่มีชื่อว่า money โดยใช้คำสั่ง ALTER และกำหนดให้ p_ID ใช้ Constraint แบบ CHECK เวลาเรา insert ค่าลงไปในตาราง เราจะไม่สามารถ insert ค่าที่ไม่ตรงกับเงื่อนไขได้ เช่น ระบุให้ p_ID มากกว่า 0 ก็สามารถ insert p_ID ที่มากกว่า 0 ลงไปในตารางได้เท่านั้น

    รูปที่ 8 แสดงการแก้ไข table ชื่อ money ระบุให้ p_ID
     มีการ CHECK เงื่อนไข p_ID มากกว่า 0

  • DEFAULT

  • จากภาพด้านล่างจะแก้ตารางที่มีชื่อว่า 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
    ขอบคุณที่มา : http://www.w3schools.com/sql/sql_constraints.asp


Database System

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

แสดงความคิดเห็น