Cara menggunakan KUNCI UTAMA di SQLite

SQLite adalah sistem manajemen database, yang digunakan untuk mengelola data database relasional seperti MySQL, juga mengandung banyak kendala seperti UNIQUE, PRIMARY KEY, dan FOREIGN KEY seperti database lainnya.

Jadi apa kendalanya dan bagaimana cara kerjanya di SQLite? Artikel ini adalah panduan komprehensif tentang batasan dan tentang cara menggunakan batasan kunci PRIMARY di SQLite.

Apa kendala dalam SQLite

Batasan adalah prinsip, yang menurutnya data dengan tipe data yang sama dimasukkan ke dalam tabel, mengatur struktur kolom dan juga memastikan keandalan data yang disimpan dalam tabel. Ada banyak kendala, beberapa di antaranya adalah:

  • Kunci utama
  • Kunci asing
  • Kendala unik
  • Batasan default
  • Periksa batasan

Apa KUNCI UTAMA di SQLite?

Kunci utama adalah kolom unik dari tabel, yang memastikan entri yang dimasukkan ke dalam kolom harus unik dan juga digunakan untuk merujuk ke kunci asing dari tabel lain. Tabel dapat dibuat tanpa menggunakan kunci utama, tetapi jika tabel menggunakan kunci utama, maka hanya satu kunci utama yang dapat ditetapkan ke tabel. Kunci utama sangat penting saat membuat database yang memiliki berbagai tabel, dan untuk membuat hubungan di antara database yang berbeda, kunci utama digunakan.

Kunci utama harus mengikuti aturan berikut:

  • Kolom kunci utama tidak dapat ditentukan dengan nilai NULL
  • Data yang disisipkan di baris kolom dari kunci Utama harus unik
  • Kunci utama harus dirujuk sebagai kunci asing tertentu dari tabel lain
  • Tabel hanya dapat berisi satu kunci utama

Kunci utama tidak dapat berupa nilai NULL dalam database, tetapi dalam kasus SQLite, kunci tersebut dapat diberi nilai NULL, karena “pengawasan pengkodean yang sudah berlangsung lama”.

Sebuah tabel seharusnya hanya memiliki satu kunci utama, tetapi beberapa kolom dapat didefinisikan dalam satu kunci utama, ketika beberapa kolom digunakan sebagai satu kunci utama, maka itu disebut kunci primer komposit.

Berapa banyak cara untuk menambahkan kunci utama ke tabel apa pun di SQLite

Ada dua cara untuk menetapkan kunci utama saat membuat tabel, yaitu:

  • Ke satu kolom tabel
  • Ke beberapa kolom tabel

Cara membuat tabel yang menetapkan kunci utama ke satu kolom di SQLite

Kita dapat membuat tabel dengan menetapkan kunci utama ke satu kolom, sintaks umumnya adalah:

CREATE TABLE TABLE_NAME (column_name1 <datatype> PRIMARY KEY NOT NULL, column_name2 <datatype>);

Penjelasan dari sintaks ini adalah sebagai:

  • Klausa CREATE TABLE digunakan untuk membuat tabel
  • Ketik nama tabel, bukan nama_tabel
  • Ketik nama kolom alih-alih nama_kolom1, dan tulis juga tipe datanya
  • Gunakan klausa PRIMARY KEY, jika Anda menetapkan kolom sebagai kunci utama, dan juga mendefinisikannya sebagai NULL atau NOT NULL
  • Ketik nama kolom kedua menggantikan column_name2

Untuk memahaminya, perhatikan sebuah contoh: kita membuat tabel siswa sekolah, memiliki id siswa yang unik, bernama, (std_id), dan nama siswa, bernama, (std_name). Dalam tabel ini, nama siswa boleh sama tetapi id siswa tidak boleh sama, jadi kami menetapkan kunci utama ke std_id sebagai:

CREATE TABLE school_students (std_id INTEGER PRIMARY KEY NOT NULL, std_names);

Tabel siswa_sekolah telah dibuat, memiliki satu kolom sebagai kunci utama.

Cara membuat tabel yang menetapkan kunci utama ke beberapa kolom di SQLite

Kita dapat membuat tabel dengan menetapkan kunci utama ke beberapa kolom, sintaks umumnya adalah:

CREATE TABLE TABLE_NAME (column_name1 <datatype>, column_name2 <datatype>, column_name3 <datatype>, PRIMARY KEY(column_name1, column_name2));

Dalam sintaks di atas, kami mendefinisikan kunci utama di akhir pernyataan, dengan nama kolom dalam tanda kurung yang akan dimasukkan dalam kunci utama.

Sekali lagi untuk memahami hal ini, kita perhatikan contoh tabel employee_data, kita akan membuatnya dengan tiga kolom yaitu emp_id, emp_name, dan emp_dep, dan setelah ini kita menetapkan emp_id dan emp_name sebagai PRIMARY KEY:

CREATE TABLE employees_data (emp_id INTEGER, emp_name TEXT, emp_dep TEXT,emp_name PRIMARY KEY(emp_id, emp_email));

Tabel telah dibuat dengan kunci utama yang memiliki dua kolom di dalamnya.

Bagaimana cara menambahkan kunci utama ke tabel yang ada di SQLite

Kami tidak dapat menambahkan kunci utama ke tabel yang ada di SQLite menggunakan klausa ALTER, tetapi untuk menetapkan kunci utama ke tabel di SQLite, kami akan mengikuti langkah-langkah:

  • Batasan kunci asing harus dicentang
  • Ubah nama tabel menjadi nama lain
  • Buat tabel baru yang memiliki struktur yang sama, yang telah dibuat sebelumnya
  • Copy data dari tabel itu ke tabel ini
  • Hapus tabel yang diganti namanya
  • Pada akhirnya, aktifkan batasan kunci asing

Kami memiliki tabel dalam database, bernama, student_data, yang tidak memiliki kunci utama dan isinya dapat ditampilkan menggunakan:

SELECT * FROM students_data;

Untuk menetapkan “id” sebagai kunci utama, kami akan menjalankan perintah berikut:

PRAGMA foreign_keys=off;
BEGIN TRANSACTION;
ALTER TABLE students_data RENAME TO new_students_data;
CREATE TABLE students_data (id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, attendance INTEGER NOT NULL);
INSERT INTO students_data  SELECT * FROM new_students_data;
DROP TABLE new_students_data;
COMMIT;
PRAGMA foreign_keys=ON;

Untuk memeriksa apakah kunci utama ditetapkan ke kolom bernama, id, jalankan perintah:

PRAGMA table_info([students_data]);

Kunci utama telah berhasil ditetapkan ke tabel student_data.

Cara menghapus batasan kunci utama di SQLite

Seperti database lainnya, kita tidak bisa menghilangkan batasan dengan menggunakan perintah DROP dan ALTER, untuk menghapus batasan PRIMARY KEY kita harus mengikuti prosedur yang sama kita memilih untuk menambahkan batasan ke tabel yang ada dan mendefinisikan ulang struktur tabel tanpa mendefinisikan primer kunci untuk setiap kolom. Mari kita perhatikan contoh di atas lagi untuk menambahkan kunci utama, dan kami menghapus kunci utama sebagai:

PRAGMA foreign_keys=off;
BEGIN TRANSACTION;
ALTER TABLE students_data RENAME TO new_students_data;
CREATE TABLE students_data (id INTEGER NOT NULL, name TEXT NOT NULL, attendance INTEGER NOT NULL);
INSERT INTO students_data  SELECT * FROM new_students_data;
DROP TABLE new_students_data;
COMMIT;
PRAGMA foreign_keys=ON;

Kesimpu
lan

Sebuah primary key sangat berguna terutama untuk menjalin hubungan sebuah tabel dengan yang lain, karena foreign key selalu mengacu pada primary key dari tabel tersebut, apalagi sebuah tabel hanya memiliki satu primary key, tetapi field-fieldnya dapat berupa satu atau lebih dari satu.. Pada artikel ini, kita telah membahas bagaimana kunci utama digunakan dalam SQLite dan juga membahas dengan contoh bagaimana kunci utama ditetapkan ke satu atau lebih kolom serta ke tabel yang sudah ada tanpa kunci utama.

Related Posts