PostgreSQL ข้อจำกัด: ประเภทพร้อมตัวอย่าง
ข้อจำกัดคืออะไร?
ชนิดข้อมูลใช้เพื่อจำกัดประเภทของข้อมูลที่สามารถจัดเก็บไว้ในตารางได้ แต่มี 2 ปัญหาเกี่ยวกับวิธีการนี้
- ปัญหาที่ 1: ข้อจำกัดที่บังคับใช้โดยประเภทข้อมูลไม่เพียงพอสำหรับการใช้งานบางอย่าง ตัวอย่างเช่น คอลัมน์ที่มีราคาสินค้าควรยอมรับเฉพาะค่าบวกเท่านั้น อย่างไรก็ตาม ไม่มีประเภทข้อมูลเฉพาะที่ยอมรับเฉพาะจำนวนบวกเท่านั้น
- ปัญหา 2: คุณอาจต้องการจำกัดข้อมูลในข้อมูลแถว/คอลัมน์โดยสัมพันธ์กับคอลัมน์หรือแถวอื่นๆ ตัวอย่างเช่น ตารางที่มีข้อมูลรายการควรมีเพียงแถวเดียวสำหรับข้อจำกัดคอลัมน์ที่ไม่ซ้ำกันแต่ละคอลัมน์
คุณสามารถใช้เพื่อเอาชนะปัญหาดังกล่าวและกำหนดกฎเหล่านี้ การ จำกัดใน PostgreSQL- พูดง่ายๆ ก็คือ ข้อจำกัดคือกฎเกณฑ์ที่ข้อมูลของคุณต้องปฏิบัติตาม การเพิ่มข้อจำกัดของตารางทำให้ระบบฐานข้อมูลสามารถบังคับใช้ความสมบูรณ์ของข้อมูลได้
ดังนั้น หากผู้ใช้พยายามจัดเก็บข้อมูลในคอลัมน์ที่ละเมิดข้อจำกัดที่กำหนดไว้ ควรจะแสดงข้อความแสดงข้อผิดพลาด
ประเภทของ PostgreSQL ข้อ จำกัด
เรามาดูประเภทต่างๆกัน PostgreSQL ข้อจำกัดที่คุณสามารถสร้างได้เพื่อให้แน่ใจว่าข้อมูลถูกต้อง:
- เป็นเอกลักษณ์
- ไม่เป็นโมฆะ
- ตรวจสอบข้อจำกัด
- คีย์หลัก
- ต่างประเทศที่สำคัญ
- ข้อจำกัดในการดำเนินการ
1) PostgreSQL ข้อจำกัดที่ไม่ซ้ำใคร
ข้อจำกัดที่ไม่ซ้ำกันช่วยให้คุณมั่นใจได้ว่าข้อมูลที่อยู่ในคอลัมน์หรือกลุ่มข้อจำกัดของคอลัมน์ไม่ซ้ำกัน
ตัวอย่าง
CREATE TABLE Item( Item_no integer UNIQUE, Name text, );
2) ไม่ใช่ข้อจำกัดที่เป็นโมฆะ
ข้อจำกัดที่ไม่ใช่ค่าว่างจะกำหนดว่าคอลัมน์ไม่ควรเป็นค่าว่าง ข้อจำกัดประเภทนี้คล้ายกับการสร้างข้อจำกัดในการตรวจสอบเป็นอย่างมาก อย่างไรก็ตาม, PostgreSQL สร้างข้อจำกัดที่ไม่เป็นโมฆะซึ่งมีประสิทธิภาพมากกว่า ปัญหาของวิธีนี้คือ คุณไม่สามารถตั้งชื่อที่ชัดเจนให้กับข้อจำกัดที่ไม่เป็นค่าว่างได้
ข้อจำกัดที่ไม่เป็นโมฆะไม่ใช่ค่าเริ่มต้น PostgreSQL มาตรฐานและไม่ควรใช้ในแอปพลิเคชันพกพา ต่อมาได้มีการเพิ่มเข้ามา PostgreSQL เพื่อให้เข้ากันได้กับสิ่งอื่น ระบบดีบีเอ็มเอสหลายๆ คนใช้มันเนื่องจากมันทำให้การสลับข้อจำกัดในไฟล์สคริปต์เป็นเรื่องง่าย
ไวยากรณ์:
CREATE TABLE Item ( product no integer NULL, Item_name text NULL, Itm_price numeric NULL );
3) PostgreSQL ตรวจสอบข้อจำกัด
ข้อจำกัดในการตรวจสอบช่วยให้คุณระบุว่าค่าในบางคอลัมน์ต้องเป็นนิพจน์บูลีน
เหตุการณ์ PostgreSQL ข้อจำกัดในการตรวจสอบประกอบด้วยคีย์เวิร์ด CHECK ซึ่งตามด้วยนิพจน์ในวงเล็บ ข้อจำกัดในการตรวจสอบ Postgres ควรเกี่ยวข้องกับคอลัมน์ที่ควรถูกจำกัด มิฉะนั้นจะไม่สมเหตุสมผล
ไวยากรณ์:
CREATE TABLE Item( Item_id INTEGER PRIMARY KEY, name VARCHAR(20), Item_price NUMERIC CHECK(price>0) );
ตัวอย่าง:
CREATE TABLE Emp( ID INTEGER primary key, First_name VARCHAR(20), Last_name VARCHAR(20), Gender CHAR(l) check(gender gender='M'), Salary INTEGER NOT NULL, Dept_Num INTEGER );
CREATE TABLE ITEM( Id INTEGER PRIMARY KEY, name VARCHAR(15), price numeric CHECK (price > 0) );
4) ข้อจำกัดของคีย์หลัก
ข้อจำกัดคีย์หลักช่วยให้คุณใช้คอลัมน์หรือกลุ่มของคอลัมน์เป็นตัวระบุเฉพาะสำหรับแถวในตารางได้ ในการกำหนดข้อจำกัดคีย์หลัก ค่าที่ประกาศของคุณควรมีค่าไม่ซ้ำกันและไม่เป็นค่าว่าง ซึ่งช่วยให้คำจำกัดความของตารางสองรายการยอมรับข้อมูลเดียวกันได้
ไวยากรณ์:
Create Table Item( Item_no, integer PRIMARY KEY, Item_name text, Item_Price numeric );
1 ตัวอย่าง:
CREATE TABLE Employee( ID INTEGER PRIMARY KEY Fname VARCHAR(20), Lname VARCHAR(20), Gender CHAR(l), Salary INTEGER NOT NULL, Dept INTEGER, UNIQUE(FNAME, LNAME) );
2 ตัวอย่าง:
CREATE TABLE first( A1 INTEGER. A2 INTEGER. PRIMARY KEY (tl) ); Second way CREATE TABLE test( tl INTEGER PRIMARY KEY, t2 INTEGER. );
3 ตัวอย่าง:
CREATE TABLE Items ( Item_no integer UNIQUE NOT NULL, name text, price numeric CREATE TABLE Items ( Items_no no integer PRIMARY KEY, name text, price numeric
5) ข้อจำกัดคีย์ต่างประเทศ
ข้อจำกัดของคีย์ภายนอกระบุว่าค่าในคอลัมน์หรือกลุ่มของคอลัมน์ต้องตรงกับค่าที่ปรากฏในบางแถวของตารางอื่น สิ่งนี้ช่วยให้คุณสร้าง Referential Integrity ระหว่างสองตารางที่เกี่ยวข้องกัน
สมมติว่าคุณมีตารางที่เก็บคำสั่งซื้อสำหรับผลิตภัณฑ์ต่างๆ คุณต้องการให้แน่ใจว่าตารางมีคำสั่งซื้อผลิตภัณฑ์ที่มีอยู่ ดังนั้น คุณจำเป็นต้องกำหนดข้อจำกัดของคีย์ต่างประเทศในตารางคำสั่งซื้อที่อ้างอิงถึงตารางผลิตภัณฑ์
ไวยากรณ์:
CREATE TABLE ( id INTEGER PRIMARY KEY. name VARCHAR(IO) >; CREATE TABLE testable Id INTEGER PRIMARY KEY read INTEGER REFERENCES (id) );
2 ตัวอย่าง:
CREATE TABLE Student ( Std_ID INTEGER primary key, First_name VARCHAR(20), Last_name VARCHAR(20), Gender CHAR(l), Steam, VARCHAR(20), Dept_NUM INTEGER REFERENCES Department );
6) ข้อจำกัดในการยกเว้น
ข้อจำกัดการยกเว้นช่วยให้คุณแน่ใจได้ว่าหากมีการเปรียบเทียบสองแถวระหว่างกันในคอลัมน์หรือนิพจน์ที่ระบุด้วยตัวดำเนินการที่ระบุ การเปรียบเทียบตัวดำเนินการอย่างน้อยหนึ่งรายการจะส่งคืนค่าว่างหรือค่าเท็จ การเพิ่มสิ่งนี้ PostgreSQL ข้อ จำกัด จะสร้างดัชนีประเภทที่ระบุในการประกาศข้อ จำกัด โดยอัตโนมัติ
ตัวอย่าง:
ตัวอย่างเช่นต่อไปนี้ PostgreSQL คำสั่งจะสร้างตารางใหม่ชื่อ School และเพิ่มห้าคอลัมน์
CREATE TABLE SCHOOL6( STDID INT PRIMARY KEY NOT NULL, STDNAME TEXT NOT NULL, STDAGE INT NOT NULL, FEEDBACK CHAR(50), STANDARD INT NOT NULL,
ตัวอย่างเช่นต่อไปนี้ PostgreSQL คำสั่งจะสร้างตารางใหม่ชื่อ Branch ซึ่งจะเพิ่มสามคอลัมน์ คอลัมน์ STD_ID คือคีย์ภายนอก และอ้างอิงฟิลด์ ID ของตาราง SCHOOL6
CREATE TABLE BRANCH ( BRANCHCODE INT PRIMARY KEY NOT NULL, BRAMCHNAME CHAR(50) NOT NULL, STD_ID INT references SCHOOL6(ID) );