คำสั่ง SQL มีความสำคัญและเป็นที่นิยมอย่างมากเพื่อการใช้งานที่หลากหลาย และเพื่อความเร็วในการค้นหาข้อมูลจากฐานข้อมูล ชนิดต่างๆ เช่น MySQL, Oracle, SQL SERVER, PGSQL และ SQL มาตรฐานอื่นๆ  บทความนี้จะว่าด้วยเรื่อง Constraint

Constraint ซึ่งเป็นการจำกัดข้อมูลภายใน table หรือ column หนึ่งในนั้นคือ UNIQUE Constraint โดยปกติการใช้คำสั่งในการ INSERT ข้อมูลลงฐานข้อมูล เราจะใช้ในการเพิ่มข้อมูลลงใน table ซึ่งบาง column อาจจะมีข้อมูลซ้ำกันกับบางบรรทัดก่อนหน้านี้ แต่การใช้ UNIQUE Constraint จะกำหนดให้ column นั้นห้ามมีข้อมูลซ้ำเป็นข้อมูลชุดที่ 2 เพื่อให้สามารถระบุข้อมูลได้ถูกต้องเวลาดึงข้อมูลเพื่อระบุตัวตนออกมา    

ตัวอย่าง กรณี UNIQUE Constraint

การสร้าง table ชื่อ CUSTOMERS  โดยคำสั่ง SQL 

CREATE TABLE CUSTOMERS(
   ID   INT              NOT NULL,
   NAME VARCHAR (255)    NOT NULL,
   AGE  INT              NOT NULL UNIQUE,
   ADDRESS  CHAR (25) ,
   SALARY   DECIMAL (18, 2),       
   PRIMARY KEY (ID)
);

ในส่วนของ AGE column ได้กำหนดไว้ว่า ห้ามมีค่า NULL และ ห้ามมีค่าซ้ำกัน (UNIQUE)

การเปลี่ยนค่า UNIQUE CONSTRAINT

ถ้าได้สร้างตางรางไปแล้ว แต่ลืมกำหรดหรือต้องการเพิ่ม หรือ เปลี่ยน UNIQUE Constraint บน column ที่กำหนด สามารถทำได้ดังนี้

ALTER TABLE CUSTOMERS MODIFY AGE INT NOT NULL UNIQUE;

หรือสามารถเพิ่ม UNIQUE Constraint โดยกำหนดจากข้อมูลหลาย column ได้ 

ALTER TABLE CUSTOMERS ADD CONSTRAINT myUniqueConstraint UNIQUE(AGE, SALARY);

 

การลบค่า UNIQUE CONSTRAINT

ในส่วนของการ การลบค่า UNIQUE CONSTRAINT สามารถทำได้โดยใช้คำ sql ดังนี้ 

ALTER TABLE CUSTOMERS DROP INDEX myUniqueConstraint;

ทั้งหมดเป็น ส่วนหนึ่งของเรื่อง UNIQUE CONSTRAINT ซึ่งจะมีเรื่องการ Select ด้วย แล้วจะมาเขียนน่ะครับ 

 

ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : SQL และ PHP

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
แนะนำการเดินทาง และสถานที่ท่องเที่ยวในจังหวัดขอนแก่น
โดย athirach.offcial จ 25 มี.ค. 2024 3:08 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
188
จ 25 มี.ค. 2024 3:08 pm โดย athirach.offcial View Topic แนะนำการเดินทาง และสถานที่ท่องเที่ยวในจังหวัดขอนแก่น
สอบถาม library หรือคำสั่งดู VDO ใช้เวลาดูไปเท่าไรและดูจบแล้วหรือไม่
โดย eange08 จ 25 มี.ค. 2024 1:28 pm บอร์ด Programming - PHP
2
907
พฤ 28 มี.ค. 2024 12:25 pm โดย eange08 View Topic สอบถาม library หรือคำสั่งดู VDO ใช้เวลาดูไปเท่าไรและดูจบแล้วหรือไม่
M181 - อธิราช กุลเมือง
โดย athirach.offcial จ 25 มี.ค. 2024 10:15 am บอร์ด Dev Teams
0
9
จ 25 มี.ค. 2024 10:15 am โดย athirach.offcial View Topic M181 - อธิราช กุลเมือง
การสำรองข้อมูล Backup Joomla! ทั้งเว็บ ด้วย MJClone
โดย mindphp อ 24 มี.ค. 2024 1:33 am บอร์ด MindPHP News & Feedback
0
218
อ 24 มี.ค. 2024 1:33 am โดย mindphp View Topic การสำรองข้อมูล Backup Joomla! ทั้งเว็บ ด้วย MJClone
Start Directadmin แบบเมนนวล
โดย mindphp ศ 22 มี.ค. 2024 5:35 am บอร์ด Linux - Web Server
1
234
ศ 22 มี.ค. 2024 5:43 am โดย mindphp View Topic Start Directadmin แบบเมนนวล
คำสั่ง Command Line สำรองเว็บไซต์ บน Directadmin Backup Website ขนาดใหญ่
โดย mindphp ศ 22 มี.ค. 2024 5:31 am บอร์ด Linux - Web Server
1
465
ศ 22 มี.ค. 2024 11:52 pm โดย mindphp View Topic คำสั่ง Command Line สำรองเว็บไซต์ บน Directadmin Backup Website ขนาดใหญ่
Vmware Exsi 5 เพิ่ม HDD เป็น data store ไม่ได้เจอ Error Call "HostDatastoreSystem.QueryVmfsDatastoreCreateOptions" for
โดย mindphp พฤ 21 มี.ค. 2024 6:53 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
3
505
ศ 05 เม.ย. 2024 10:04 am โดย mindphp View Topic Vmware Exsi 5 เพิ่ม HDD เป็น data store ไม่ได้เจอ Error  Call "HostDatastoreSystem.QueryVmfsDatastoreCreateOptions" for
ถ้าใช้เมนบอร์ดที่ใส่ cpu ได้สองตัว และ cpu รันปกติแต่ vmwere
โดย Anonymous พ 20 มี.ค. 2024 3:09 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
218
พฤ 21 มี.ค. 2024 6:48 am โดย mindphp View Topic ถ้าใช้เมนบอร์ดที่ใส่ cpu ได้สองตัว และ cpu รันปกติแต่ vmwere