SQL Constraint : สอน คำสั่ง ของ Constraint, เรียน คำสั่ง ของ Constraint
 

Reference

Reference ในเว็บไซต์ Function.in.th เป็นการนำเสนอความรู้ในรูปแบบของแหล่งอ้างอิงของคำสั่งต่าง ๆ ที่ใช้ในการเขียนโปรแกรม โดยผู้ที่สนใจสามารถเข้ามาเรียนรู้การใช้งานคำสั่งของการเขียนโปรแกรมเหล่านี้ได้ ผ่านทาง URL code.function.in.th ทั้งนี้ผู้อ่านยังสามารถร่วมแสดงความคิดเห็นบนเนื้อหาที่มีสอนได้ ซึ่งถือเป็นการส่งเสริมให้มีการแลกเปลี่ยนประสบการณ์และความรู้ระหว่างผู้อ่านด้วยกันเอง
  • ประเภทของ CONSTRAINT ของ sql ได้แก่ not null, unique, check, default, primary key, foreign key เป็นต้น
    CONSTRAINT NOT NULL กำหนดตอนสร้างตาราง ใช้กำหนดว่า column นั้นๆจะไม่ยอมรับ ค่าข้อมูล NULL
    CONSTRAINT NOT NULL กำหนดหลังสร้างตาราง ใช้กำหนดว่า column นั้นๆจะไม่ยอมรับ ค่าข้อมูล NULL
    CONSTRAINT UNIQUE กำหนดตอนสร้างตาราง ใช้กำหนดว่า column นั้นจะไม่ยอมรับ ค่าข้อมูลที่ซ้ำกัน
    CONSTRAINT UNIQUE กำหนดตอนสร้างตาราง แบบที่ 2 ใช้กำหนดว่า column นั้นจะไม่ยอมรับ ค่าข้อมูลที่ซ้ำกัน
    CONSTRAINT UNIQUE กำหนดหลังสร้างตาราง ใช้กำหนดว่า column นั้นจะไม่ยอมรับ ค่าข้อมูลที่ซ้ำกัน
    CONSTRAINT CHECK กำหนดตอนสร้างตาราง ใช้ตรวจสอบเงื่อนไขของคอลัมน์ ก่อนเก็บข้อมูล โดยถ้าเงื่อนไขเป็นเท็จก็จะไม่มีการจัดเก็บข้อมูล
    CONSTRAINT CHECK กำหนดตอนสร้างตาราง แบบที่ 2 ใช้ตรวจสอบเงื่อนไขของคอลัมน์ ก่อนเก็บข้อมูล โดยถ้าเงื่อนไขเป็นเท็จก็จะไม่มีการจัดเก็บข้อมูล
    CONSTRAINT CHECK กำหนดหลังสร้างตาราง ใช้ตรวจสอบเงื่อนไขของคอลัมน์ ก่อนเก็บข้อมูล โดยถ้าเงื่อนไขเป็นเท็จก็จะไม่มีการจัดเก็บข้อมูล
    CONSTRAINT PRIMARY KEY กำหนดตอนสร้างตาราง จะมีคุณสมบัติ UNIQUE และ NOT NULL ภายในโดยทันที และจะใช้งานร่วมกับ FOREIGN KEY ด้วย
    CONSTRAINT PRIMARY KEY กำหนดตอนสร้างตาราง แบบที่ 2 จะมีคุณสมบัติ UNIQUE และ NOT NULL ภายในโดยทันที และจะใช้งานร่วมกับ FOREIGN KEY ด้วย
    CONSTRAINT PRIMARY KEY กำหนดหลังสร้างตาราง จะมีคุณสมบัติ UNIQUE และ NOT NULL ภายในโดยทันที และจะใช้งานร่วมกับ FOREIGN KEY ด้วย
    CONSTRAINT FOREIGN KEY กำหนดตอนสร้างตาราง จะใช้งานร่วมกับ PRIMARY KEY เพื่อสร้างความสัมพันธ์ระหว่าง table
    CONSTRAINT FOREIGN KEY กำหนดหลังสร้างตาราง จะใช้งานร่วมกับ PRIMARY KEY เพื่อสร้างความสัมพันธ์ระหว่าง table
    CONSTRAINT DEFAULT ในกรณีที่ column นั้นๆ ไม่มีการเพิ่มค่าข้อมูลลงไป ก็จะเพิ่มค่าที่กำหนดใน default นี้โดยอัตโนมัติ
    การลบ CONSTRAINT ใช้ลบ constraint
  • subject :
    ประเภทของ CONSTRAINT ของ sql

    content :
    ประเภทของ CONSTRAINT ของ sql ดังนี้
    - NOT NULL
    - UNIQUE
    - CHECK
    - PRIMARY KEY
    - FOREIGN KEY
    - DEFAULT

  • subject :
    CONSTRAINT NOT NULL กำหนดตอนสร้างตาราง

    syntax :
    CREATE TABLE table_name
    (
         column_name column_type NOT NULL
    );

    example :
    CREATE TABLE person
    (
         serial int(11) NOT NULL
    );

    content :
    ใช้กำหนดว่า column นั้นๆจะไม่ยอมรับ ค่าข้อมูล NULL

  • subject :
    CONSTRAINT NOT NULL กำหนดหลังสร้างตาราง

    content :
    ใช้กำหนดว่า column นั้นๆจะไม่ยอมรับ ค่าข้อมูล NULL

    syntax :
    CREATE TABLE table_name
    (
         column_name column_type
    );
    ALTER TABLE table_name
    ALTER COLUMN column_name column_type NOT NULL;

    example :
    CREATE TABLE person
    (
         serial int(11)
    );
    ALTER TABLE person
    ALTER COLUMN serial int(11) NOT NULL;

  • subject :
    CONSTRAINT UNIQUE กำหนดตอนสร้างตาราง

    content :
    ใช้กำหนดว่า column นั้นจะไม่ยอมรับ ค่าข้อมูลที่ซ้ำกัน
    จะแตกต่างจาก PRIMARY KEY ตรงที่ UNIQUE นั้นจะไม่มีส่วนเกี่ยวข้องใดๆกับ FOREIGN KEY
    โดย column ที่มี constraint unique สามารถมีค่าข้อมูล NULL และค่าข้อมูล NULL นั้นซ้ำกันได้

    syntax :
    CREATE TABLE table_name
    (
         column_name column_type UNIQUE
    );

    example :
    CREATE TABLE person
    (
         serial int(11) UNIQUE
    );

  • subject :
    CONSTRAINT UNIQUE กำหนดตอนสร้างตาราง แบบที่ 2

    content :
    ใช้กำหนดว่า column นั้นจะไม่ยอมรับ ค่าข้อมูลที่ซ้ำกัน
    จะแตกต่างจาก PRIMARY KEY ตรงที่ UNIQUE นั้นจะไม่มีส่วนเกี่ยวข้องใดๆกับ FOREIGN KEY
    โดย column ที่มี constraint unique สามารถมีค่าข้อมูล NULL และค่าข้อมูล NULL นั้นซ้ำกันได้

    syntax :
    CREATE TABLE table_name
    (
         column_name column_type,
    
         CONSTRAINT constraint_name UNIQUE ( column_name )
    );

    example :
    CREATE TABLE person
    (
         serial int(11),
    
         CONSTRAINT serial_unique UNIQUE ( serial )
    );

  • subject :
    CONSTRAINT UNIQUE กำหนดหลังสร้างตาราง

    content :
    ใช้กำหนดว่า column นั้นจะไม่ยอมรับ ค่าข้อมูลที่ซ้ำกัน
    จะแตกต่างจาก PRIMARY KEY ตรงที่ UNIQUE นั้นจะไม่มีส่วนเกี่ยวข้องใดๆกับ FOREIGN KEY
    โดย column ที่มี constraint unique สามารถมีค่าข้อมูล NULL และค่าข้อมูล NULL นั้นซ้ำกันได้

    syntax :
    CREATE TABLE table_name
    (
         column_name column_type
    );
    ALTER TABLE table_name
    ADD CONSTRAINT constraint_name UNIQUE ( column_name );

    example :
    CREATE TABLE person
    (
         serial int(11)
    );
    ALTER TABLE person
    ADD CONSTRAINT serial_unique UNIQUE ( serial );

  • subject :
    CONSTRAINT CHECK กำหนดตอนสร้างตาราง

    content :
    ใช้ตรวจสอบเงื่อนไขของคอลัมน์ ก่อนเก็บข้อมูล โดยถ้าเงื่อนไขเป็นเท็จก็จะไม่มีการจัดเก็บข้อมูล

    syntax :
    CREATE TABLE table_name
    (
         column_name column_type CHECK ( condition )
    );

    example :
    CREATE TABLE person
    (
         age int(11) CHECK ( age > 18 )
    );

  • subject :
    CONSTRAINT CHECK กำหนดตอนสร้างตาราง แบบที่ 2

    content :
    ใช้ตรวจสอบเงื่อนไขของคอลัมน์ ก่อนเก็บข้อมูล โดยถ้าเงื่อนไขเป็นเท็จก็จะไม่มีการจัดเก็บข้อมูล

    syntax :
    CREATE TABLE table_name
    (
         column_name column_type,
    
         CONSTRAINT constraint_name CHECK ( condition )
    );

    example :
    CREATE TABLE person
    (
         age int(11),
    
         CONSTRAINT age_check CHECK ( age > 18 )
    );

  • subject :
    CONSTRAINT CHECK กำหนดหลังสร้างตาราง

    content :
    ใช้ตรวจสอบเงื่อนไขของคอลัมน์ ก่อนเก็บข้อมูล โดยถ้าเงื่อนไขเป็นเท็จก็จะไม่มีการจัดเก็บข้อมูล

    syntax :
    CREATE TABLE table_name
    (
         column_name column_type
    );
    ALTER TABLE table_name
    ADD CONSTRAINT constraint_name CHECK ( condition );

    example :
    CREATE TABLE person
    (
         age int(11)
    );
    ALTER TABLE person
    ADD CONSTRAINT age_check CHECK ( age > 18 );

  • subject :
    CONSTRAINT PRIMARY KEY กำหนดตอนสร้างตาราง

    content :
    จะมีคุณสมบัติ UNIQUE และ NOT NULL ภายในโดยทันที และจะใช้งานร่วมกับ FOREIGN KEY ด้วย

    syntax :
    CREATE TABLE table_name
    (
          column_name column_type PRIMARY KEY
    );

    example :
    CREATE TABLE person
    (
          id int(11) PRIMARY KEY
    );

  • subject :
    CONSTRAINT PRIMARY KEY กำหนดตอนสร้างตาราง แบบที่ 2

    content :
    จะมีคุณสมบัติ UNIQUE และ NOT NULL ภายในโดยทันที และจะใช้งานร่วมกับ FOREIGN KEY ด้วย

    syntax :
    CREATE TABLE table_name
    (
          column_name column_type,
    
          CONSTRAINT constraint_name PRIMARY KEY ( column_name )
    );

    example :
    CREATE TABLE person
    (
          id int(11),
    
          CONSTRAINT person_pk PRIMARY KEY ( id )
    );

  • subject :
    CONSTRAINT PRIMARY KEY กำหนดหลังสร้างตาราง

    content :
    จะมีคุณสมบัติ UNIQUE และ NOT NULL ภายในโดยทันที และจะใช้งานร่วมกับ FOREIGN KEY ด้วย

    syntax :
    CREATE TABLE table_name
    (
          column_name column_type
    );
    ALTER TABLE table_name
    ADD CONSTRAINT constraint_name PRIMARY KEY ( column_name );

    example :
    CREATE TABLE person
    (
          id int(11)
    );
    ALTER TABLE person
    ADD CONSTRAINT person_pk PRIMARY KEY ( id );

  • subject :
    CONSTRAINT FOREIGN KEY กำหนดตอนสร้างตาราง

    content :
    จะใช้งานร่วมกับ PRIMARY KEY เพื่อสร้างความสัมพันธ์ระหว่าง table

    syntax :
    CREATE TABLE table_name
    (
         column_name column_type,
    
         CONSTRAINT constraint_name FOREIGN KEY ( column_name ) 
              REFERENCES table_pk_name ( column_pk_name )
              [ ON UPDATE RESTRICT | CASCADE | SET NULL ]
              [ ON DELETE RESTRICT | CASCADE | SET NULL ]
    );

    example :
    CREATE TABLE person
    (
         id int(11) PRIMARY KEY
    );
    CREATE TABLE member_type
    (
         id int(11) PRIMARY KEY,
         name varchar(30)
    );
    CREATE TABLE member
    (
         id int(11) PRIMARY KEY,
         user varchar(15),
         pass varchar(50),
         person_id int(11),
         member_type_id int(11),
    
         CONSTRAINT member_fk_person FOREIGN KEY ( person_id ) REFERENCES person ( id )
    );

    comment :
    RESTRICT เป็นค่า default คือ ไม่อนุญาติให้ ลบ หรือ แก้ไข ค่าข้อมูล ใน PRIMARY KEY ได้
    ถ้ายังมีค่าข้อมูลใน FOREIGN KEY อยู่
    CASCADE คือ ถ้ามีการลบหรือแก้ไขค่าข้อมูลใน PRIMARY KEY แล้วค่าข้อมูลใน FOREIGN KEY จะเปลี่ยนแปลงตาม
    SET NULL คือ ถ้ามีการลบหรือแก้ไขค่าข้อมูลใน PRIMARY KEY แล้วค่าข้อมูลใน FOREIGN KEY จะเป็นค่า NULL

  • subject :
    CONSTRAINT FOREIGN KEY กำหนดหลังสร้างตาราง

    content :
    จะใช้งานร่วมกับ PRIMARY KEY เพื่อสร้างความสัมพันธ์ระหว่าง table

    syntax :
    CREATE TABLE table_name
    (
         column_name column_type
    );
    ALTER TABLE table_name
    ADD CONSTRAINT constraint_name FOREIGN KEY ( column_name )
    REFERENCES table_pk_name ( column_pk_name )
    [ ON UPDATE RESTRICT | CASCADE | SET NULL ]
    [ ON DELETE RESTRICT | CASCADE | SET NULL ];

    example :
    CREATE TABLE person
    (
         id int(11) PRIMARY KEY
    );
    CREATE TABLE member_type
    (
         id int(11) PRIMARY KEY,
         name varchar(30)
    );
    CREATE TABLE member
    (
         id int(11) PRIMARY KEY,
         user varchar(15),
         pass varchar(50),
         person_id int(11),
         member_type_id int(11)
    );
    ALTER TABLE member
    ADD CONSTRAINT member_fk_member_type FOREIGN KEY ( member_type_id )
    REFERENCES member_type ( id )
    ON UPDATE CASCADE ON DELETE SET NULL;

    comment :
    RESTRICT เป็นค่า default คือ ไม่อนุญาติให้ ลบ หรือ แก้ไข ค่าข้อมูล ใน PRIMARY KEY ได้
    ถ้ายังมีค่าข้อมูลใน FOREIGN KEY อยู่
    CASCADE คือ ถ้ามีการลบหรือแก้ไขค่าข้อมูลใน PRIMARY KEY แล้วค่าข้อมูลใน FOREIGN KEY จะเปลี่ยนแปลงตาม
    SET NULL คือ ถ้ามีการลบหรือแก้ไขค่าข้อมูลใน PRIMARY KEY แล้วค่าข้อมูลใน FOREIGN KEY จะเป็นค่า NULL

  • subject :
    CONSTRAINT DEFAULT

    content :
    ในกรณีที่ column นั้นๆ ไม่มีการเพิ่มค่าข้อมูลลงไป ก็จะเพิ่มค่าที่กำหนดใน default นี้โดยอัตโนมัติ

    syntax :
    CREATE TABLE table_name
    (
         column_name column_type DEFAULT 'default_value'
    );

    example :
    CREATE TABLE person
    (
         sex varchar(10) DEFAULT 'man'
    );

    comment :
    ตอนเพิ่มข้อมูลสามารถใส่คำว่า DEFAULT ได้เลย
    เช่น INSERT INTO table_name VALUES ( DEFAULT );

  • subject :
    การลบ CONSTRAINT 

    content :
    ใช้ลบ constraint

    syntax :
    ALTER TABLE table_name
    DROP CONSTRAINT constraint_name;

    example :
    CREATE TABLE person
    (
         age int(11),
    
         CONSTRAINT age_check CHECK ( age > 18 )
    );
    ALTER TABLE person
    DROP CONSTRAINT age_check;

 
Share This Chapter Login with Facebook