SQLite - Batasan

Batasan adalah aturan yang diberlakukan pada kolom data pada tabel. Ini digunakan untuk membatasi jenis data yang bisa masuk ke dalam tabel. Ini memastikan keakuratan dan keandalan data dalam database.

Batasan dapat berupa tingkat kolom atau tingkat tabel. Batasan tingkat kolom diterapkan hanya untuk satu kolom, sedangkan batasan tingkat tabel diterapkan ke seluruh tabel.

Berikut ini adalah batasan yang umum digunakan yang tersedia di SQLite.

  • NOT NULL Constraint - Memastikan bahwa kolom tidak boleh memiliki nilai NULL.

  • DEFAULT Constraint - Memberikan nilai default untuk kolom jika tidak ada yang ditentukan.

  • UNIQUE Constraint - Memastikan bahwa semua nilai dalam kolom berbeda.

  • PRIMARY Key - Secara unik mengidentifikasi setiap baris / record dalam tabel database.

  • CHECK Constraint - Memastikan bahwa semua nilai dalam kolom memenuhi kondisi tertentu.

BUKAN Batasan NULL

Secara default, kolom dapat menampung nilai NULL. Jika Anda tidak ingin kolom memiliki nilai NULL, maka Anda perlu menentukan batasan tersebut pada kolom ini dengan menetapkan bahwa NULL sekarang tidak diizinkan untuk kolom itu.

NULL tidak sama dengan tidak ada data, melainkan mewakili data yang tidak diketahui.

Contoh

Misalnya, pernyataan SQLite berikut membuat tabel baru yang disebut PERUSAHAAN dan menambahkan lima kolom, tiga di antaranya, ID dan NAMA dan UMUR, menentukan untuk tidak menerima NULL.

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

Batasan DEFAULT

Batasan DEFAULT memberikan nilai default ke kolom saat pernyataan INSERT INTO tidak memberikan nilai tertentu.

Contoh

Misalnya, pernyataan SQLite berikut membuat tabel baru bernama PERUSAHAAN dan menambahkan lima kolom. Di sini, kolom SALARY diatur ke 5000.00 secara default, jadi jika pernyataan INSERT INTO tidak memberikan nilai untuk kolom ini, maka secara default, kolom ini akan diatur ke 5000.00.

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL    DEFAULT 50000.00
);

Kendala UNIK

Batasan UNIQUE mencegah dua rekaman memiliki nilai yang identik dalam kolom tertentu. Dalam tabel PERUSAHAAN, misalnya, Anda mungkin ingin mencegah dua orang atau lebih memiliki usia yang sama.

Contoh

Misalnya, pernyataan SQLite berikut membuat tabel baru bernama PERUSAHAAN dan menambahkan lima kolom. Di sini, kolom USIA diatur ke UNIK, sehingga Anda tidak bisa memiliki dua catatan dengan usia yang sama -

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL UNIQUE,
   ADDRESS        CHAR(50),
   SALARY         REAL    DEFAULT 50000.00
);

Kendala KUNCI UTAMA

Batasan PRIMARY KEY secara unik mengidentifikasi setiap record dalam tabel database. Bisa ada lebih banyak kolom UNIK, tapi hanya satu kunci utama dalam sebuah tabel. Kunci utama penting saat mendesain tabel database. Kunci utama adalah ID unik.

Kami menggunakannya untuk merujuk ke baris tabel. Kunci utama menjadi kunci asing di tabel lain, saat membuat relasi antar tabel. Karena 'pengawasan pengkodean yang sudah berlangsung lama', kunci utama dapat berupa NULL di SQLite. Ini tidak terjadi dengan database lain.

Kunci utama adalah bidang dalam tabel yang secara unik mengidentifikasi setiap baris / rekaman dalam tabel database. Kunci utama harus berisi nilai unik. Kolom kunci utama tidak boleh memiliki nilai NULL.

Tabel hanya dapat memiliki satu kunci utama, yang mungkin terdiri dari satu atau beberapa bidang. Ketika beberapa bidang digunakan sebagai kunci utama, mereka disebut acomposite key.

Jika tabel memiliki kunci utama yang ditentukan di bidang mana pun, Anda tidak dapat memiliki dua rekaman yang memiliki nilai yang sama dari bidang itu.

Contoh

Anda sudah melihat berbagai contoh di atas dimana kami telah membuat tabel PERUSAHAAN dengan ID sebagai kunci utama.

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

PERIKSA Kendala

PERIKSA Batasan memungkinkan kondisi untuk memeriksa nilai yang dimasukkan ke dalam catatan. Jika kondisi bernilai false, record melanggar batasan dan tidak dimasukkan ke dalam tabel.

Contoh

Misalnya, SQLite berikut membuat tabel baru bernama PERUSAHAAN dan menambahkan lima kolom. Di sini, kami menambahkan kolom CHECK with SALARY, sehingga Anda tidak dapat memiliki SALARY Zero.

CREATE TABLE COMPANY3(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL    CHECK(SALARY > 0)
);

Menjatuhkan Kendala

SQLite mendukung subset terbatas dari ALTER TABLE. Perintah ALTER TABLE di SQLite memungkinkan pengguna untuk mengganti nama tabel atau menambahkan kolom baru ke tabel yang sudah ada. Tidak dimungkinkan untuk mengganti nama kolom, menghapus kolom, atau menambah atau menghapus batasan dari tabel.