PostgreSQL Обмеження: типи з прикладом
Що таке обмеження?
Типи даних використовуються для обмеження типу інформації, яка може зберігатися в таблиці. Але є 2 проблеми з цим підходом.
- Випуск 1: Обмеження, встановлені типами даних, не є достатніми для певних програм. Наприклад, стовпець із ціною товару має приймати лише додатні значення. Однак не існує конкретного типу даних, який приймає лише додатне число.
- випуск 2: Ви можете обмежити інформацію в даних рядка/стовпця відносно інших стовпців або рядків. Наприклад, таблиця, що містить інформацію про елемент, повинна мати лише один рядок для кожного унікального обмеження стовпця.
Щоб подолати такі проблеми та визначити ці правила, ви можете використовувати обмеженняз в PostgreSQL. Простіше кажучи, обмеження — це правила, яким мають відповідати ваші дані. Додавання обмежень таблиць дозволяє системі баз даних забезпечити цілісність даних.
Таким чином, якщо користувач намагається зберегти дані в стовпці, який порушує визначене обмеження, має відобразитися повідомлення про помилку.
Тип PostgreSQL Обмеження
Давайте розглянемо різні типи PostgreSQL обмеження, яке можна створити для забезпечення коректності даних:
- Унікальний
- Не Null
- Перевірте обмеження
- Первинний ключ
- Зовнішній ключ
- Обмеження виконання
1) PostgreSQL Унікальне обмеження
Унікальні обмеження допомагають переконатися, що дані, які містяться в стовпці або групі обмежень стовпців, є унікальними.
Приклад
CREATE TABLE Item( Item_no integer UNIQUE, Name text, );
2) НЕ нульові обмеження
Обмеження not-null визначає, що стовпець ніколи не повинен мати нульове значення. Цей тип обмеження дуже схожий на створення перевірочного обмеження. однак, PostgreSQL створює ненульове обмеження, яке є більш ефективним. Проблема цього методу полягає в тому, що ви не можете дати явні назви обмеженням, які не є нульовими.
Обмеження not null не є стандартним 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) Обмеження зовнішнього ключа
Обмеження зовнішнього ключа вказує, що значення в стовпці або групі стовпців повинні відповідати значенням, які з’являються в якомусь рядку іншої таблиці. Це дозволяє встановити посилальну цілісність між двома пов’язаними таблицями.
Припустімо, у вас є таблиця, у якій зберігаються замовлення на різні продукти. Ви хочете переконатися, що таблиця містить замовлення наявних продуктів. Отже, тут вам потрібно визначити обмеження зовнішнього ключа в таблиці замовлень, яка посилається на таблицю продуктів.
Синтаксис:
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 constraint автоматично створить індекс типу, зазначеного в декларації обмеження.
приклад:
Наприклад, наступне 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) );