Postgresql Constraints

Postgresql kısıtlamaları; check, not null, unique, primary keys

 1) SQL Primary key:

Tablolarda arama yapmamızı kolaylaştırır.Tekrarlanamaz.Aynı primary keyi tekrar kullanmamızı engeller.

Örnek:

 

CREATE TABLE employee
( id number(5) PRIMARY KEY,
name char(20),
dept char(10),
age number(2),
salary number(10),
location char(10)
);
 


2) SQL Foreign key

Aynı tabloda iki sütun arasında bir ilişki veya farklı tablolar arasında ilişki kurar. Bir veya daha fazla sütun Yabancı anahtar olarak tanımlanabilir.


Örnek :

 

CREATE TABLE product
( product_id number(5) CONSTRAINT pd_id_pk PRIMARY KEY,
product_name char(20),
supplier_name char(20),
unit_price number(10)
);

 



 

CREATE TABLE order_items
( order_id number(5) ,
product_id number(5),
product_name char(20),
supplier_name char(20),
unit_price number(10)
CONSTRAINT od_id_pk PRIMARY KEY(order_id),
CONSTRAINT pd_id_fk FOREIGN KEY(product_id) REFERENCES product(product_id)
);

 



3) SQL Not Null Constraint

Girilen Degerin Boş olmamasını sağlar.Kullanıcı boş bırakamaz..

 

CREATE TABLE employee
( id number(5),
name char(20) CONSTRAINT nm_nn NOT NULL,
dept char(10),
age number(2),
salary number(10),
location char(10)
);




4)SQL Unique Key

Bu sınırlama her satır veya sütun ayrı bir değere sahip olmasını sağlar. Sütun (lar) değerleri çoğaltılamaz .Boş değer ama olabilir.

Örneğin, sorgu gibi olacak bir anahtar ile çalışan bir tablo oluşturmak için:

 

CREATE TABLE employee
( id number(5) PRIMARY KEY,
name char(20),
dept char(10),
age number(2),
salary number(10),
location char(10) UNIQUE
);
 


5) SQL Check Constraint


Bu kısıtlama bir kolon üzerinde bir iş kuralı tanımlar. Tüm satırlar bu kural yerine getirmek zorundadırlar. Kısıtı tek bir sütun veya sütun grubu için uygulanabilir.

 

CREATE TABLE employee
( id number(5) PRIMARY KEY,
name char(20),
dept char(10),
age number(2),
gender char(1) CHECK (gender in ('M','F')),
salary number(10),
location char(10)
);




ABBAS TOPUZ 12 ATL



 

Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...