SQLite - ข้อ จำกัด
ข้อ จำกัด คือกฎที่บังคับใช้กับคอลัมน์ข้อมูลบนตาราง สิ่งเหล่านี้ใช้เพื่อ จำกัด ประเภทของข้อมูลที่สามารถเข้าไปในตารางได้ สิ่งนี้ทำให้มั่นใจได้ถึงความถูกต้องและความน่าเชื่อถือของข้อมูลในฐานข้อมูล
ข้อ จำกัด อาจเป็นระดับคอลัมน์หรือระดับตาราง ข้อ จำกัด ระดับคอลัมน์จะใช้กับคอลัมน์เดียวเท่านั้นในขณะที่ข้อ จำกัด ระดับตารางจะใช้กับทั้งตาราง
ต่อไปนี้เป็นข้อ จำกัด ที่ใช้กันทั่วไปใน SQLite
NOT NULL Constraint - ตรวจสอบให้แน่ใจว่าคอลัมน์ต้องไม่มีค่า NULL
DEFAULT Constraint - ระบุค่าเริ่มต้นสำหรับคอลัมน์เมื่อไม่มีการระบุ
UNIQUE Constraint - ตรวจสอบให้แน่ใจว่าค่าทั้งหมดในคอลัมน์แตกต่างกัน
PRIMARY Key - ระบุแต่ละแถว / ระเบียนในตารางฐานข้อมูลโดยไม่ซ้ำกัน
CHECK Constraint - ตรวจสอบให้แน่ใจว่าค่าทั้งหมดในคอลัมน์เป็นไปตามเงื่อนไขบางประการ
ไม่ใช่ข้อ จำกัด ที่เป็นโมฆะ
ตามค่าเริ่มต้นคอลัมน์สามารถเก็บค่า NULL ได้ หากคุณไม่ต้องการให้คอลัมน์มีค่า NULL คุณต้องกำหนดข้อ จำกัด ดังกล่าวในคอลัมน์นี้โดยระบุว่าตอนนี้ไม่อนุญาตให้มีค่า NULL สำหรับคอลัมน์นั้น
NULL ไม่เหมือนกับไม่มีข้อมูล แต่แสดงถึงข้อมูลที่ไม่รู้จัก
ตัวอย่าง
ตัวอย่างเช่นคำสั่ง SQLite ต่อไปนี้จะสร้างตารางใหม่ชื่อ COMPANY และเพิ่มคอลัมน์ห้าคอลัมน์ซึ่งสามคอลัมน์คือ ID และ NAME และ AGE ระบุว่าไม่ยอมรับ NULL
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
ข้อ จำกัด เริ่มต้น
ข้อ จำกัด DEFAULT จัดเตรียมค่าเริ่มต้นให้กับคอลัมน์เมื่อคำสั่ง INSERT INTO ไม่ได้ระบุค่าเฉพาะ
ตัวอย่าง
ตัวอย่างเช่นคำสั่ง SQLite ต่อไปนี้จะสร้างตารางใหม่ชื่อ COMPANY และเพิ่มห้าคอลัมน์ ที่นี่คอลัมน์เงินเดือนถูกตั้งค่าเป็น 5,000.00 โดยค่าเริ่มต้นดังนั้นในกรณีที่คำสั่ง INSERT INTO ไม่ได้ให้ค่าสำหรับคอลัมน์นี้จากนั้นโดยค่าเริ่มต้นคอลัมน์นี้จะถูกตั้งค่าเป็น 5,000.00
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL DEFAULT 50000.00
);
ข้อ จำกัด ที่ไม่ซ้ำใคร
UNIQUE Constraint ป้องกันไม่ให้สองระเบียนมีค่าเหมือนกันในคอลัมน์หนึ่ง ๆ ตัวอย่างเช่นในตาราง COMPANY คุณอาจต้องการป้องกันไม่ให้คนสองคนหรือมากกว่านั้นมีอายุเท่ากัน
ตัวอย่าง
ตัวอย่างเช่นคำสั่ง SQLite ต่อไปนี้จะสร้างตารางใหม่ชื่อ COMPANY และเพิ่มห้าคอลัมน์ ที่นี่คอลัมน์ AGE ถูกตั้งค่าเป็น UNIQUE ดังนั้นคุณจึงไม่สามารถมีสองระเบียนที่มีอายุเท่ากันได้ -
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL UNIQUE,
ADDRESS CHAR(50),
SALARY REAL DEFAULT 50000.00
);
ข้อ จำกัด ที่สำคัญหลัก
ข้อ จำกัด ของคีย์หลักจะระบุแต่ละระเบียนในตารางฐานข้อมูลโดยไม่ซ้ำกัน สามารถมีคอลัมน์ที่ไม่ซ้ำกันได้มากกว่า แต่มีคีย์หลักเพียงรายการเดียวในตาราง คีย์หลักมีความสำคัญเมื่อออกแบบตารางฐานข้อมูล คีย์หลักคือรหัสเฉพาะ
เราใช้เพื่ออ้างถึงแถวของตาราง คีย์หลักกลายเป็นคีย์ต่างประเทศในตารางอื่นเมื่อสร้างความสัมพันธ์ระหว่างตาราง เนื่องจาก 'การกำกับดูแลการเข้ารหัสเป็นเวลานาน' คีย์หลักอาจเป็น NULL ใน SQLite นี่ไม่ใช่กรณีของฐานข้อมูลอื่น
คีย์หลักคือฟิลด์ในตารางซึ่งระบุแต่ละแถว / ระเบียนในตารางฐานข้อมูลโดยไม่ซ้ำกัน คีย์หลักต้องมีค่าที่ไม่ซ้ำกัน คอลัมน์คีย์หลักต้องไม่มีค่า NULL
ตารางสามารถมีคีย์หลักได้เพียงคีย์เดียวซึ่งอาจประกอบด้วยฟิลด์เดียวหรือหลายฟิลด์ เมื่อใช้หลายช่องเป็นคีย์หลักจะเรียกว่า acomposite key.
หากตารางมีคีย์หลักที่กำหนดไว้ในฟิลด์ใด ๆ คุณจะไม่สามารถมีสองระเบียนที่มีค่าเดียวกันของฟิลด์นั้น
ตัวอย่าง
คุณได้เห็นตัวอย่างต่างๆด้านบนแล้วซึ่งเราได้สร้างตาราง COMPANY โดยมี ID เป็นคีย์หลัก
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
ตรวจสอบข้อ จำกัด
CHECK Constraint เปิดใช้งานเงื่อนไขเพื่อตรวจสอบค่าที่ป้อนลงในเรกคอร์ด หากเงื่อนไขประเมินว่าเป็นเท็จบันทึกจะละเมิดข้อ จำกัด และไม่ได้ป้อนลงในตาราง
ตัวอย่าง
ตัวอย่างเช่น SQLite ต่อไปนี้สร้างตารางใหม่ชื่อ COMPANY และเพิ่มห้าคอลัมน์ ที่นี่เราเพิ่มคอลัมน์ CHECK with SALARY เพื่อไม่ให้คุณมี SALARY Zero
CREATE TABLE COMPANY3(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL CHECK(SALARY > 0)
);
ข้อ จำกัด ในการลดลง
SQLite สนับสนุนชุดย่อยที่ จำกัด ของ ALTER TABLE คำสั่ง ALTER TABLE ใน SQLite อนุญาตให้ผู้ใช้เปลี่ยนชื่อตารางหรือเพิ่มคอลัมน์ใหม่ลงในตารางที่มีอยู่ ไม่สามารถเปลี่ยนชื่อคอลัมน์ลบคอลัมน์หรือเพิ่มหรือลบข้อ จำกัด ออกจากตารางได้