หน้าเว็บ

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

CH3 SQL Constraints

ได้ทดลองดังนี้

SQL NULL Values

ที่คำสั่งSQL SELECT พร้อมคำสั่ง WHERE จะเป็นการดึงข้อมูลออกมาจาก DATABASE  แต่เมื่อเราทำตามเงื่อนไขแล้วค่าที่ได้จากการทำเป็น NULL
NULL Value เป็นค่าที่จะแสดงค่าที่ไม่รู้จักที่หายไป
เป็นค่าเริ่มต้นของคอลัมน์ตารางถือเป็นค่า NULL

ถ้ามีคอลัมน์ตารางแล้วเราเพิ่มเรคอร์ดเข้าไปใหม่หรืออัพเดทเรคอร์ดเดิมโดยปรารศจากการเพิ่มค่าลงในคอลัมน์  จะบันทึกค่าเรคอร์ดที่คอลัมน์นั้นเป็น NULL
How can we test for NULL values?
เราจะไม่ใช้การเปรียบเทียบด้วยเครื่องหมาย Operators เช่น =, >, <
แต่เราจะใช้ IS NULL และ IS NOT NULL แทน

ตัวอย่างการใช้คำสั่ง SQL IS NULL
เลือกใช้ตาราง Categories ที่มีข้อมูลเริ่มต้นที่ 8 เรคอร์ด ทำการ INSERT INTO แล้วตั้งใจเว่นให้ในคอลัมน์ Description ว่าง ดังภาพ
รูปแสดงข้อมูลทั้งหมด(*) ในตาราง Categories

รูปการ INSERT INTO ข้อมูลใหม่ ที่เว้น Description ไว้

รูปแสดงข้อมูลทั้งหมดหลังการเพิ่มเรคอร์ด

ปัญหาที่พบคือเมื่อเรียกใช้คำสั่ง
SELECT CategoryID,CategoryName,Description FROM Categories 
WHERE Description IS NULL

แล้วค่าไม่พบข้อมูลที่ค้นหา ทำให้ต้องกลับไปดูเงื่อนไขการเป็น  NULL  คือต้องไม่ใส่ค่าลงในคอลัมน์นั้นเลย ในก่อนหน้าได้ใช่ค่า ' ' (ช่องว่างไป)  จึงได้ทำการ INSERT ค่าใหม่

INSERT INTO Categories (CategoryID,CategoryName)
VALUES ('10','wine')

รูปผลลัพธ์ที่ได้เมื่อทำการ้พิ่มเรคอร์ดเข้าไปและค่า Description แสดงค่า NULL

เมื่อเรียกด้วยคำสั่ง SQL IS NULL อีกครั้ง
รูปแสดงผลที่ได้จากการค้นหาที่ IS NULL

ตัวอย่างการใช้คำสั่ง SQL IS NOT NULL
ข้อมูลที่ไม่ใช่ NULL จะแสดงผลออกมาเมื่อเลือกใช้คำสั่งนี้ที่ WHERE

SELECT CategoryID,CategoryName,Description FROM Categories 
WHERE Description IS NOT NULL

รูปผลที่ได้เมื่อใช้คำสั่ง IS NOT NULL


SQL NOT NULL Constraint

เป็นข้อจำกัดที่ห้ามให้ข้อมูลในคอลัมน์นั้นเป็น NULL


SQL UNIQUE Constraint

เป็นการระบุที่ให้ข้อมูลในฐานข้อมูลที่คอลัมน์นั้นไม่ซ้ำกัน คล้ายกับ PRIMARY KEY แตกต่างกันที่เราสามารถใช้ UNIQUE Constraint ได้หลายครั้งใน 1 ตาราง แต่ PRIMARY KEY Constraint จะมีแค่ตัวเดียวใน 1 ตาราง

ในการใช้ UNIQUE จะใช้ตั้งแต่เริ่มสร้างตารางหรือแก้ไขหลังสร้างตารางแล้วก็ได้
สามารถตั้งชื่อข้อจำกัด UNIQUE และกำหนดในหลายๆคอลัมน์พร้อมกันได้
ลดข้อจำกัด (Drop)  UNIQUE ได้

ALTER TABLE Categories
ADD CONSTRAINT uc_DEKD UNIQUE (CategoryID,CategoryName)

ใช้เมื่อต้องแก้ไขในตารางที่สร้างมาแล้วไม่ได้และการยกเลิกเงื่อนไข UNIQUE ไม่ได้ อาจจะใช้คำสั่งไม่ตรงกับ DBMS ที่ใช้

รูปกล่องข้อความที่ปรากฏขึ้นเมื่อใช้คำสั่ง UNIQUE


SQL DROP INDEX, DROP TABLE and DROP DATABASE
เป็นคำสั่งที่ใช้ลบข้อมูลที่เฉพาะ ข้อมูลทั้งตาราง และ ข้อมูลทั้งฐานข้อมูลทิ้ง

......................................................


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

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