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 TABLEkata kunci. Nama tabel tidak boleh diawali dengansqlite_karena dicadangkan untuk penggunaan internal SQLite. - Kedua, gunakan
IF NOT EXISTSpilihan untuk membuat tabel baru jika tidak ada. Mencoba membuat tabel yang sudah ada tanpa menggunakanIF NOT EXISTSopsi akan menghasilkan kesalahan. - Ketiga, secara opsional tentukan
schema_nameyang menjadi milik tabel baru. Skema dapat menjadi database utama,tempdatabase atau database terlampir. - Keempat, tentukan kolom daftar tabel. Setiap kolom memiliki nama, tipe data, dan batasan kolom. SQLite mendukung
PRIMARY KEY,UNIQUE,NOT NULL, danCHECKbatasan kolom. - Kelima, tentukan batasan tabel seperti
PRIMARY KEY,FOREIGN KEY,UNIQUE, danCHECKkendala. - Terakhir, secara opsional gunakan
WITHOUT ROWIDpilihan. Secara default, baris dalam tabel memiliki kolom implisit, yang disebut sebagairowid,oidatau_rowid_kolom.rowidkolom menyimpan kunci integer bertanda 64-bit yang secara unik mengidentifikasi baris di dalam tabel. Jika Anda tidak ingin SQLite membuatrowidkolom, Anda menentukanWITHOUT ROWIDpilihan. Tabel yang berisirowidkolom dikenal sebagairowidmeja. Perhatikan bahwaWITHOUT ROWIDopsi 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:
contactstabel yang menyimpan informasi kontak.groupstabel yang menyimpan informasi grup.contact_groupstabel 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 ACTIONCode language: SQL (Structured Query Language) (sql) FOREIGN KEY (group_id)
REFERENCES groups (group_id)
ON DELETE CASCADE
ON UPDATE NO ACTIONCode 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.