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) );