Ringkasan :dalam tutorial ini, Anda akan belajar cara membuat tabel baru menggunakan SQLite CREATE TABLE
pernyataan menggunakan berbagai opsi.
Pengantar SQLite CREATE TABLE
pernyataan
Untuk membuat tabel baru di SQLite, gunakan CREATE TABLE
pernyataan menggunakan sintaks berikut:
CREATE TABLE [IF NOT EXISTS] [schema_name].table_name (
column_1 data_type PRIMARY KEY,
column_2 data_type NOT NULL,
column_3 data_type DEFAULT 0,
table_constraints
) [WITHOUT ROWID];
Code language: SQL (Structured Query Language) (sql)
Dalam sintaks ini:
- Pertama, tentukan nama tabel yang ingin Anda buat setelah
CREATE TABLE
kata kunci. Nama tabel tidak boleh diawali dengansqlite_
karena dicadangkan untuk penggunaan internal SQLite. - Kedua, gunakan
IF NOT EXISTS
pilihan untuk membuat tabel baru jika tidak ada. Mencoba membuat tabel yang sudah ada tanpa menggunakanIF NOT EXISTS
opsi akan menghasilkan kesalahan. - Ketiga, secara opsional tentukan
schema_name
yang menjadi milik tabel baru. Skema dapat menjadi database utama,temp
database atau database terlampir. - Keempat, tentukan kolom daftar tabel. Setiap kolom memiliki nama, tipe data, dan batasan kolom. SQLite mendukung
PRIMARY KEY
,UNIQUE
,NOT NULL
, danCHECK
batasan kolom. - Kelima, tentukan batasan tabel seperti
PRIMARY KEY
,FOREIGN KEY
,UNIQUE
, danCHECK
kendala. - Terakhir, secara opsional gunakan
WITHOUT ROWID
pilihan. Secara default, baris dalam tabel memiliki kolom implisit, yang disebut sebagairowid
,oid
atau_rowid_
kolom.rowid
kolom menyimpan kunci integer bertanda 64-bit yang secara unik mengidentifikasi baris di dalam tabel. Jika Anda tidak ingin SQLite membuatrowid
kolom, Anda menentukanWITHOUT ROWID
pilihan. Tabel yang berisirowid
kolom dikenal sebagairowid
meja. Perhatikan bahwaWITHOUT ROWID
opsi ini hanya tersedia di SQLite 3.8.2 atau lebih baru.
Perhatikan bahwa kunci utama tabel adalah kolom atau sekelompok kolom yang secara unik mengidentifikasi setiap baris dalam tabel.
SQLite CREATE TABLE
contoh
Misalkan Anda harus mengelola kontak menggunakan SQLite.
Setiap kontak memiliki informasi berikut:
- Nama depan
- Nama belakang
- Telepon
Syaratnya, email dan telepon harus unik. Selain itu, setiap kontak dimiliki oleh satu atau banyak grup, dan setiap grup dapat memiliki nol atau banyak kontak.
Berdasarkan persyaratan ini, kami membuat tiga tabel:
contacts
tabel yang menyimpan informasi kontak.groups
tabel yang menyimpan informasi grup.contact_groups
tabel yang menyimpan hubungan antara kontak dan grup.
Diagram database berikut mengilustrasikan tabel:contacts
groups
, dan contact_groups.
Pernyataan berikut membuat contacts
tabel.
CREATE TABLE contacts (
contact_id INTEGER PRIMARY KEY,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
email TEXT NOT NULL UNIQUE,
phone TEXT NOT NULL UNIQUE
);
Code language: SQL (Structured Query Language) (sql)
Cobalah
contact_id
adalah kunci utama contacts
tabel.
Karena kunci utama terdiri dari satu kolom, Anda dapat menggunakan batasan kolom.
first_name
dan last_name
kolom memiliki TEXT
kelas penyimpanan dan kolom ini NOT NULL
. Artinya, Anda harus memberikan nilai saat menyisipkan atau memperbarui baris di contacts
tabel.
Email dan telepon unik oleh karena itu kami menggunakan UNIQUE
batasan untuk setiap kolom.
Pernyataan berikut membuat groups
tabel:
CREATE TABLE groups (
group_id INTEGER PRIMARY KEY,
name TEXT NOT NULL
);
Code language: SQL (Structured Query Language) (sql)
Cobalah
groups
tabel cukup sederhana dengan dua kolom:group_id
dan name
. group_id
kolom adalah kolom kunci utama.
Pernyataan berikut membuat contact_groups
tabel:
CREATE TABLE contact_groups(
contact_id INTEGER,
group_id INTEGER,
PRIMARY KEY (contact_id, group_id),
FOREIGN KEY (contact_id)
REFERENCES contacts (contact_id)
ON DELETE CASCADE
ON UPDATE NO ACTION,
FOREIGN KEY (group_id)
REFERENCES groups (group_id)
ON DELETE CASCADE
ON UPDATE NO ACTION
);
Code language: SQL (Structured Query Language) (sql)
Cobalah
contact_groups
tabel memiliki kunci utama yang terdiri dari dua kolom:contact_id
dan group_id
.
Untuk menambahkan batasan kunci utama tabel, Anda menggunakan sintaks ini:
PRIMARY KEY (contact_id, group_id)
Code language: SQL (Structured Query Language) (sql)
Selain itu, contact_id
dan group_id
adalah kunci asing. Oleh karena itu, Anda menggunakan FOREIGN KEY
batasan untuk mendefinisikan kunci asing untuk setiap kolom.
FOREIGN KEY (contact_id)
REFERENCES contacts (contact_id)
ON DELETE CASCADE
ON UPDATE NO ACTION
Code language: SQL (Structured Query Language) (sql)
FOREIGN KEY (group_id)
REFERENCES groups (group_id)
ON DELETE CASCADE
ON UPDATE NO ACTION
Code language: SQL (Structured Query Language) (sql)
Perhatikan yang akan kita bahas di FOREIGN KEY
kendala secara rinci dalam tutorial berikutnya.
Dalam tutorial ini, Anda telah mempelajari cara membuat tabel baru dengan berbagai opsi menggunakan SQLite CREATE TABLE
pernyataan.