PostgreSQL Batasan: Tipe dengan Contoh

Apa itu Kendala?

Tipe data digunakan untuk membatasi jenis informasi yang dapat disimpan dalam tabel. Namun ada 2 masalah dengan pendekatan ini.

  • Masalah 1: Pembatasan yang diterapkan oleh tipe data tidak memadai untuk aplikasi tertentu. Misalnya, kolom yang berisi harga Barang hanya boleh menerima nilai positif. Namun, tidak ada tipe data khusus yang hanya menerima bilangan positif.
  • masalah 2: Anda mungkin ingin membatasi informasi dalam data baris/kolom dalam kaitannya dengan kolom atau baris lain. Misalnya, tabel yang berisi informasi Item hanya boleh memiliki satu baris untuk setiap batasan kolom unik.

Untuk mengatasi masalah tersebut dan menentukan aturan-aturan ini, Anda dapat menggunakan paksaans di PostgreSQL. Secara sederhana, batasan adalah aturan yang harus dipatuhi oleh data Anda. Menambahkan batasan tabel memungkinkan sistem database untuk menegakkan integritas data.

Oleh karena itu, jika pengguna mencoba menyimpan data dalam kolom yang melanggar batasan yang ditentukan, pesan kesalahan akan ditampilkan.

Jenis PostgreSQL kendala

Mari kita lihat berbagai jenisnya PostgreSQL batasan yang dapat Anda buat untuk memastikan kebenaran data:

  • Khas Papua
  • Bukan Nol
  • Periksa Batasan
  • Kunci utama
  • Kunci asing
  • Kendala Eksekusi

1) PostgreSQL Kendala Unik

Batasan unik membantu Anda memastikan bahwa data yang terdapat dalam kolom, atau sekelompok batasan kolom adalah unik.

Example

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

2) BUKAN Batasan Nol

Batasan bukan nol mendefinisikan bahwa suatu kolom tidak boleh bernilai nol. Jenis batasan ini sangat mirip dengan membuat batasan pemeriksaan. Namun, PostgreSQL menciptakan batasan bukan nol, yang lebih efisien. Masalah dengan metode ini adalah Anda tidak dapat memberikan nama eksplisit pada batasan bukan nol.

Batasan not null bukan merupakan batasan default PostgreSQL standar dan tidak boleh digunakan dalam aplikasi portabel. Kemudian ditambahkan dalam PostgreSQL untuk membuatnya kompatibel dengan yang lain sistem DBMS. Banyak yang menggunakannya karena memudahkan untuk mengubah batasan dalam file skrip.

sintaks:

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

3) PostgreSQL Periksa Kendala

Batasan pemeriksaan membantu Anda menentukan bahwa nilai di beberapa kolom harus berupa ekspresi Boolean.

PostgreSQL batasan check terdiri dari kata kunci CHECK, yang diikuti dengan ekspresi dalam tanda kurung. Batasan pemeriksaan Postgres harus melibatkan kolom yang harus dibatasi jika tidak maka tidak masuk akal.

sintaks:

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

Contoh:

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) Kendala Kunci Utama

Batasan kunci utama memungkinkan Anda menggunakan kolom atau grup kolom sebagai pengidentifikasi unik untuk baris dalam tabel. Untuk menentukan batasan kunci utama, nilai yang Anda nyatakan harus unik dan bukan nol. Hal ini memungkinkan dua definisi tabel untuk menerima data yang sama.

sintaks:

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

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

Contoh 2:

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

Contoh 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) Batasan Kunci Asing

Batasan kunci asing menetapkan bahwa nilai dalam kolom atau sekelompok kolom harus cocok dengan nilai yang muncul di beberapa baris tabel lain. Hal ini memungkinkan Anda untuk menetapkan integritas referensial antara dua tabel terkait.

Anggaplah Anda memiliki tabel yang menyimpan pesanan untuk berbagai produk. Anda ingin memastikan bahwa tabel tersebut berisi pesanan produk yang ada. Jadi, di sini, Anda perlu menentukan batasan kunci asing di tabel pesanan yang mereferensikan tabel produk.

sintaks:

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

Contoh 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) Batasan Pengecualian

Batasan pengecualian membantu Anda memastikan bahwa jika dua baris dibandingkan satu sama lain pada kolom atau ekspresi tertentu dengan operator tertentu, maka setidaknya satu dari perbandingan operator ini akan mengembalikan nilai null atau salah. Menambahkan ini PostgreSQL batasan akan secara otomatis membuat indeks dari tipe yang ditentukan dalam deklarasi batasan.

Contoh:

Sebagai contoh, berikut ini PostgreSQL pernyataan membuat tabel baru bernama Sekolah dan menambahkan lima kolom.

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

Sebagai contoh, berikut ini PostgreSQL pernyataan membuat tabel baru bernama Cabang, yang menambahkan tiga kolom. Kolom STD_ID adalah kunci asing, dan mereferensikan bidang ID pada tabel SCHOOL6.

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