SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

SQLite Buat Tabel

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 dengan sqlite_ 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 menggunakan IF 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 , dan CHECK batasan kolom.
  • Kelima, tentukan batasan tabel seperti PRIMARY KEY , FOREIGN KEY , UNIQUE , dan CHECK kendala.
  • Terakhir, secara opsional gunakan WITHOUT ROWID pilihan. Secara default, baris dalam tabel memiliki kolom implisit, yang disebut sebagai rowid , 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 membuat rowid kolom, Anda menentukan WITHOUT ROWID pilihan. Tabel yang berisi rowid kolom dikenal sebagai rowid meja. Perhatikan bahwa WITHOUT 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
  • Email
  • 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 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana SQLite Upper() Bekerja

  2. Pastikan Kursor diinisialisasi dengan benar sebelum mengakses data darinya

  3. Bagaimana meningkatkan kinerja untuk database SQLite untuk android

  4. Cara Menambahkan Bulan ke Tanggal di SQLite

  5. bagaimana menerapkan pewarisan tabel di GreenDao