วันจันทร์ที่ 1 กุมภาพันธ์ พ.ศ. 2559

SQL constraints for select in my DBMS


         SQL Constraints คือข้อกำหนดหรือข้อบังคับที่ใช้ในการเก็บข้อมูลในตารางให้เป็นระเบียบ และหากมีการดำเนินการที่ไม่เป็นไปตามข้อบังคับนั้นจะถูกยกเลิกโดยข้อบังคับนั้น  การระบุ constraints ต่างๆ สามารถทำได้โดย
        1 ระบุเมื่อมีการสร้างตารางข้อมูล(ภายในคำสั่ง CREATE)
        2  ระบุหลังจากที่ทำการสร้างตารางข้อมูลแล้ว

Constraints ต่างๆ


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

  • NOT NULL 
              : Constraints นี้จะบังคับให้ column นั้นๆไม่ยอบรับข้อมูลที่มีค่าเป็น null ซึ่งก็คือจะบังคับให้ใส่ค่า ถ้าไม่ใส่ค่าหรือใส่ค่าเป็น null ไปเราจะไม่สามารถ  insert หรือ update ข้อมูลได้ได้

    รูปภาพแสดงการสร้างตารางและการกำหนดข้อบังคับในการเก็บข้อมูลในตารางของแต่ละ column ให้เป็น NOT NULL ที่ column Id และ LastName
    รูปภาพแสดงการเกิด error เมื่อมีการใส่ค่าของ Id ให้เป็น null 
    ซึ่งไม่เป็นไปตามข้อบังคับในการเก็บข้อมูลที่ได้ตั้งค่าให้เป็น Not Null Constraint เอาไว้

    รูปภาพแสดงการผลหลังจากตั้งค่า Constraints ขณะสร้างตาราง
     สังเกตจะพบว่า column ชื่อ Id และ LastName ไม่รับค่าที่เป็น null (กรอบสีฟ้า)เหมือน column อื่นๆ


    UNIQUE 
            :Constraint นี้จะบังคับให้ข้อมูลแต่ละ record มีค่าไม่ซำ้กัน โดย unique กับ primary key เป็นตัวที่บอกว่า column และเซตของ column มีข้อมูลที่ไม่ซ้ำกัน primary key จะมีคุณสมบัติเป็น unique โดยอัติโนมัติ ในหนึ่งตารางสามารถมีได้หลาย unique แต่ primary key มีเพียงตัวเดียว
    รูปภาพแสดงการสร้างตารางและการกำหนดข้อบังคับในการเก็บข้อมูลในตาราง
    ของแต่ละ column ให้เป็น NOT NULL ที่ column P_Id และ LastName และกำหนดให้ P_Id เป็น UNIQUE
    รูปภาพแสดงการ insert ค่าให้แก่ตารางสองครั้ง โดยครั้งที่สองไม่เปลี่ยนค่า P_Id 
    ทำให้เกิด error ว่า "#1062 - Duplicate entry '109' for key 'P_Id'"เนื่องจากมีข้อมูลซ้ำซึ่งไม่เป็นไปตามข้อบังคับที่เราได้ตั้งค่าให้ P_Id เป็น UNIQUE จะมีข้อมูลซ้ำกันไม่ได้

    PRIMARY  KEY 
                 :Constraint นี้บังคับว่า column ที่เราได้เลือกให้เป็น Primary key นั้น จะต้องมีค่าของแต่ละ record ที่ไม่ซ้ำกันสามารถนำไปใช้เป็นตัวแทนของข้อมูลทั้งหมดได้ และนอกจากนี้ Primary key จะต้องไม่มีค่าเป็น null และในหนึ่งตารางสามารถมี Primary key ได้เพียงตัวเดียว

    รูปภาพแสดงการกำหนดให้ P_Id เป็น PRIMARY KEY (หมายเลข 1) จากนั้นไปดูที่ structure ของตารางจะพบว่า column P_Id นั้นมีการกำหนดให้เป็น UNIQUE และ PRIMARY KEY(หมายเลข 2)

    FOREIGN  KEY
                 :Constraint นี้จะตัวที่เชื่อมจากตารางหนึ่งไปยัง Primary key ของอีกตารางหนึ่ง

    related info/link/reference : 
                     http://www.w3schools.com/sql/default.asp

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

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