PostgreSQL القيود: الأنواع مع المثال
⚡ ملخص ذكي
PostgreSQL تفرض القيود ستة قواعد سلامة مدمجة على مستوى قاعدة البيانات: UNIQUE، NOT NULL، CHECK، PRIMARY KEY، FOREIGN KEY، وEXCLUSION. Lessتغطي هذه الدروس قواعد اللغة، والأمثلة، ومتى يتم تطبيق كل قاعدة.

ما هو القيد؟
تُستخدم أنواع البيانات لتحديد نوع المعلومات التي يمكن تخزينها في الجدول. ولكن هناك مشكلتان في هذا النهج.
- القضية 1: القيود التي تفرضها أنواع البيانات ليست كافية لتطبيقات معينة. على سبيل المثال، يجب أن يقبل العمود الذي يحتوي على سعر السلعة القيم الإيجابية فقط. ومع ذلك، لا يوجد نوع بيانات محدد يقبل الرقم الموجب فقط.
- قضية 2: قد ترغب في تحديد المعلومات الموجودة في بيانات الصف/العمود فيما يتعلق بالأعمدة أو الصفوف الأخرى. على سبيل المثال، يجب أن يحتوي الجدول الذي يحتوي على معلومات العنصر على صف واحد فقط لكل قيد عمود فريد.
للتغلب على مثل هذه المشكلات وتحديد هذه القواعد، يمكنك استخدام قيودق في PostgreSQL. بعبارات بسيطة، القيود هي القواعد التي يجب أن تتبعها بياناتك. تؤدي إضافة قيود الجدول إلى تمكين نظام قاعدة البيانات من فرض تكامل البيانات.
لذلك، إذا حاول المستخدم تخزين البيانات في عمود ينتهك قيدًا محددًا، فيجب عرض رسالة خطأ.
نوع من PostgreSQL القيود
دعونا نلقي نظرة على أنواع مختلفة من PostgreSQL القيد الذي يمكنك إنشاؤه لضمان صحة البيانات:
- التفرُّد
- غير فارغة
- تحقق القيد
- المفتاح الأساسي
- مفتاح غريب
- قيد التنفيذ
PostgreSQL القيد الفريد
تساعدك القيود الفريدة على التأكد من أن البيانات الموجودة في عمود أو مجموعة من قيود الأعمدة فريدة.
مثال
CREATE TABLE Item( Item_no integer UNIQUE, Name text, );
PostgreSQL ليس القيد فارغة
يحدد القيد غير الفارغ أن العمود يجب ألا يكون قيمة فارغة أبدًا. هذا النوع من القيود يشبه إلى حد كبير إنشاء قيد التحقق. لكن، PostgreSQL ينشئ قيدًا غير فارغ، وهو أكثر كفاءة. المشكلة في هذه الطريقة هي أنه لا يمكنك إعطاء أسماء صريحة للقيود غير الخالية.
القيد غير الفارغ ليس قيدًا افتراضيًا PostgreSQL قياسي ولا ينبغي استخدامه في التطبيقات المحمولة. تمت إضافته لاحقًا في PostgreSQL لجعله متوافقا مع البعض الآخر أنظمة إدارة قواعد البياناتيستخدمه الكثيرون لأنه يسهل تبديل القيد في ملف البرنامج النصي.
بناء الجملة:
CREATE TABLE Item ( product no integer NULL, Item_name text NULL, Itm_price numeric NULL );
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) );
PostgreSQL القيد الرئيسي الأساسي
يسمح لك قيد المفتاح الأساسي باستخدام عمود أو مجموعة من الأعمدة كمعرف فريد للصفوف في الجدول. لتحديد قيود المفتاح الأساسي، يجب أن تكون قيمك المعلنة فريدة وليست فارغة. يسمح هذا لتعريفين للجدول بقبول نفس البيانات.
بناء الجملة:
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
PostgreSQL قيد المفتاح الخارجي
يحدد قيد المفتاح الخارجي أن القيم الموجودة في عمود أو مجموعة من الأعمدة يجب أن تتطابق مع القيم التي تظهر في بعض الصفوف في جدول آخر. يتيح لك هذا إنشاء التكامل المرجعي بين جدولين مرتبطين.
لنفترض أن لديك جدولًا يخزن طلبات المنتجات المختلفة. تريد التأكد من أن الجدول يحتوي على طلبات المنتجات الموجودة. لذلك، تحتاج هنا إلى تحديد قيد المفتاح الخارجي في جدول الطلبات الذي يشير إلى جدول المنتجات.
بناء الجملة:
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 );
PostgreSQL قيد الاستبعاد
تساعدك قيود الاستبعاد على التأكد من أنه في حالة مقارنة أي صفين ببعضهما البعض في الأعمدة المحددة أو التعبيرات باستخدام عوامل تشغيل محددة، فسوف تقوم إحدى مقارنات هذه العوامل على الأقل بإرجاع قيمة فارغة أو خاطئة. إضافة هذا PostgreSQL سيقوم القيد تلقائيًا بإنشاء فهرس من النوع المحدد في إعلان القيد.
على سبيل المثال:
على سبيل المثال ، ما يلي PostgreSQL يقوم البيان بإنشاء جدول جديد يسمى المدرسة وإضافة خمسة أعمدة.
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 تقوم العبارة بإنشاء جدول جديد يسمى الفرع، والذي يضيف ثلاثة أعمدة. العمود STD_ID هو المفتاح الخارجي، وهو يشير إلى حقل المعرف الخاص بالجدول SCHOOL6.
CREATE TABLE BRANCH ( BRANCHCODE INT PRIMARY KEY NOT NULL, BRAMCHNAME CHAR(50) NOT NULL, STD_ID INT references SCHOOL6(ID) );
