PostgreSQL Ograniczenia: typy z przykładem

Co to jest ograniczenie?

Typy danych służą do ograniczenia rodzaju informacji, które można przechowywać w tabeli. Ale z tym podejściem wiążą się 2 problemy.

  • Problem 1: Ograniczenia narzucane przez typy danych nie są odpowiednie w przypadku niektórych aplikacji. Na przykład kolumna zawierająca cenę przedmiotu powinna przyjmować tylko wartości dodatnie. Nie ma jednak określonego typu danych, który akceptuje tylko liczbę dodatnią.
  • Wydanie 2: Możesz chcieć ograniczyć informacje zawarte w danych wiersza/kolumny w stosunku do innych kolumn lub wierszy. Na przykład tabela zawierająca informacje o elemencie powinna zawierać tylko jeden wiersz dla każdego ograniczenia dotyczącego unikalnej kolumny.

Aby przezwyciężyć takie problemy i zdefiniować te zasady, możesz użyć przymusów w PostgreSQL. Krótko mówiąc, ograniczenia to zasady, których muszą przestrzegać dane. Dodanie ograniczeń tabeli umożliwia systemowi bazy danych egzekwowanie integralności danych.

Dlatego też, jeśli użytkownik próbuje zapisać dane w kolumnie, która narusza określone ograniczenie, powinien zostać wyświetlony komunikat o błędzie.

Typ PostgreSQL ograniczenia

Przyjrzyjmy się różnym typom PostgreSQL ograniczenie, które możesz utworzyć, aby zapewnić poprawność danych:

  • Wyjątkowy
  • Nie jest zerem
  • Sprawdź ograniczenie
  • Główny klucz
  • klucz obcy
  • Ograniczenie wykonania

1) PostgreSQL Unikalne ograniczenie

Unikalne ograniczenia pomagają zapewnić, że dane zawarte w kolumnie lub grupie ograniczeń kolumn są unikatowe.

Przykład

CREATE TABLE Item(
Item_no integer UNIQUE,
Name text,
);

2) NIE ograniczenia zerowe

Ograniczenie inne niż null definiuje, że kolumna nigdy nie powinna mieć wartości null. Ten typ ograniczenia jest bardzo podobny do tworzenia ograniczenia sprawdzającego. Jednakże, PostgreSQL tworzy ograniczenie inne niż null, które jest bardziej wydajne. Problem z tą metodą polega na tym, że nie można nadać wyraźnych nazw ograniczeniom innym niż null.

Ograniczenie not null nie jest ograniczeniem domyślnym PostgreSQL standard i nie powinien być używany w aplikacjach przenośnych. Został dodany później w PostgreSQL aby był kompatybilny z jakimś innym Systemy DBMS. Wielu używa go, ponieważ ułatwia przełączanie ograniczenia w pliku skryptu.

Składnia:

CREATE TABLE Item (
product no integer NULL, Item_name text NULL, Itm_price numeric NULL
);

3) PostgreSQL Sprawdź ograniczenia

Ograniczenie sprawdzające pomaga określić, że wartość w jakiejś kolumnie musi być wyrażeniem boolowskim.

Kurs PostgreSQL ograniczenie check składa się ze słowa kluczowego CHECK, po którym następuje wyrażenie w nawiasach. Ograniczenie kontrolne Postgres powinno obejmować kolumnę, która powinna być ograniczona, w przeciwnym razie nie ma to żadnego sensu.

Składnia:

CREATE TABLE Item(
Item_id INTEGER PRIMARY KEY,
name VARCHAR(20),
Item_price NUMERIC CHECK(price>0)
);

Przykład:

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) Ograniczenia klucza podstawowego

Ograniczenie klucza podstawowego umożliwia użycie kolumny lub grupy kolumn jako unikalnego identyfikatora wierszy w tabeli. Aby zdefiniować ograniczenia klucza podstawowego, zadeklarowane wartości powinny być unikatowe i nie powinny mieć wartości null. Dzięki temu dwie definicje tabel mogą akceptować te same dane.

Składnia:

Create Table Item(
Item_no, integer PRIMARY KEY,
Item_name text,
Item_Price numeric
);

1 przykład:

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 przykład:

CREATE TABLE first(
A1 INTEGER. A2 INTEGER. PRIMARY KEY (tl)
);
Second way CREATE TABLE test( tl INTEGER PRIMARY KEY, t2 INTEGER.
);

3 przykład:

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) Ograniczenia klucza obcego

Ograniczenie klucza obcego określa, że ​​wartości w kolumnie lub grupie kolumn muszą odpowiadać wartościom występującym w jakimś wierszu innej tabeli. Umożliwia to ustalenie integralności referencyjnej między dwiema powiązanymi tabelami.

Załóżmy, że masz tabelę, w której przechowywane są zamówienia na różne produkty. Chcesz mieć pewność, że tabela zawiera zamówienia istniejących produktów. Zatem tutaj musisz zdefiniować ograniczenie klucza obcego w tabeli zamówień, które odwołuje się do tabeli produktów.

Składnia:

CREATE TABLE	(
id INTEGER PRIMARY KEY. name VARCHAR(IO)
>;
CREATE TABLE testable
Id INTEGER PRIMARY KEY
read INTEGER REFERENCES	(id)
);

2 przykład:

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) Ograniczenia wykluczające

Ograniczenia wykluczenia pomagają upewnić się, że jeśli dwa wiersze zostaną porównane ze sobą w określonych kolumnach lub wyrażeniach z określonymi operatorami, to przynajmniej jedno z tych porównań operatorów zwróci wartość null lub false. Dodanie tego PostgreSQL constraint automatycznie utworzy indeks typu określonego w deklaracji ograniczenia.

Przykład:

Na przykład następujące PostgreSQL instrukcja tworzy nową tabelę o nazwie Szkoła i dodaje pięć kolumn.

CREATE TABLE SCHOOL6(
STDID INT PRIMARY KEY NOT NULL,
STDNAME TEXT NOT NULL,
STDAGE INT NOT NULL,
FEEDBACK CHAR(50),
STANDARD INT NOT NULL,

Na przykład następujące PostgreSQL instrukcja tworzy nową tabelę o nazwie Branch, która dodaje trzy kolumny. Kolumna STD_ID jest kluczem obcym i odwołuje się do pola ID tabeli SCHOOL6.

CREATE TABLE BRANCH (
BRANCHCODE INT PRIMARY KEY NOT NULL,
BRAMCHNAME CHAR(50) NOT NULL,
STD_ID INT references SCHOOL6(ID)
);