SQLite Buat, Ubah, Letakkan Tabel dengan Contoh

โšก Ringkasan Cerdas

SQLite Pengelolaan tabel bergantung pada tiga perintah definisi data, yaitu CREATE TABLE untuk mendefinisikan tabel, ALTER TABLE untuk mengganti namanya atau menambah dan mengubah kolom, dan DROP TABLE untuk menghapusnya sepenuhnya dari basis data.

  • ๐Ÿ“ Buat tabel: Pernyataan CREATE TABLE mendefinisikan nama tabel dan kolom-kolomnya, dan setiap kolom membutuhkan nama dan tipe data.
  • ๐Ÿ›ก๏ธ Hindari kesalahan: Menambahkan IF NOT EXISTS ke CREATE TABLE, atau IF EXISTS ke DROP TABLE, mencegah kegagalan ketika tabel sudah ada atau hilang.
  • ๏ธ Ubah tabel: Perintah ALTER TABLE mengubah nama tabel, menambahkan kolom, dan dalam bahasa pemrograman modern SQLite Mengganti nama atau menghapus satu kolom.
  • ๏ธ Tabel yang dapat dihapus: Perintah DROP TABLE menghapus tabel secara permanen beserta semua baris dan indeks yang terkait dengannya.
  • ๐Ÿ“‘ Salin tabel: Perintah CREATE TABLE AS SELECT membuat tabel baru dari kolom dan baris yang dikembalikan oleh sebuah kueri.
  • ๐Ÿค– Bantuan AI: Asisten AI text-to-SQL dan GitHub Copilot menghasilkan pernyataan CREATE, ALTER, dan DROP dari perintah bahasa Inggris sederhana.

SQLite Buat Ubah Hapus Tabel

Bagian-bagian di bawah ini menunjukkan cara membuat tabel, memodifikasi strukturnya, dan menghapus tabel. SQLite3 dengan contoh, yang mencakup perintah CREATE TABLE, ALTER TABLE, dan DROP TABLE.

SQLite Buat tabel

Sintaksis

Di bawah ini adalah sintaks pernyataan CREATE TABLE.

CREATE TABLE table_name(
column1 datatype,
column1 datatype
);

Untuk membuat tabel, Anda harus menggunakan perintah โ€œCREATE TABLEโ€ sebagai berikut:

CREATE TABLE guru99 (
  Id Int,
  Name Varchar
);

Di dalam dua tanda kurung setelah nama tabel, Anda menentukan kolom-kolom tabel. Setiap kolom harus memiliki properti berikut:

  • Sebuah nama, nama kolomnya harus unik di antara kolom-kolom tabel.
  • Tipe data โ€“ tipe data kolom.
  • Batasan kolom opsional seperti yang akan kami jelaskan di bagian selanjutnya dalam tutorial ini.

SQLite BUAT TABEL JIKA BELUM ADA

Ketika sebuah skrip dijalankan lebih dari sekali, pernyataan CREATE TABLE biasa akan gagal jika tabel sudah ada dan berhenti dengan kesalahan. SQLite Hal ini diatasi dengan klausa IF NOT EXISTS opsional, yang hanya membuat tabel jika belum ada dan tidak melakukan apa pun jika sudah ada.

CREATE TABLE IF NOT EXISTS guru99 (
  Id Int,
  Name Varchar
);

Pernyataan di atas tidak pernah menimbulkan kesalahan "tabel sudah ada", sehingga aman untuk tetap diletakkan di bagian atas skrip pengaturan atau migrasi.

Ide yang sama berlaku sebaliknya saat Anda menghapus tabel. Menambahkan IF EXISTS ke DROP TABLE menghindari kesalahan ketika tabel sudah hilang:

DROP TABLE IF EXISTS guru99;

Kedua klausa tersebut umum ditemukan dalam skrip otomatis, karena memungkinkan file yang sama dijalankan berulang kali tanpa pembersihan manual di antara setiap eksekusi.

Jatuhkan meja

Untuk menghapus tabel, gunakan perintah โ€œDROP TABLEโ€ diikuti dengan nama tabel sebagai berikut:

DROP TABLE guru99;

Ubah tabel

Anda dapat menggunakan perintah โ€œALTER TABLEโ€ untuk mengganti nama tabel sebagai berikut:

ALTER TABLE guru99 RENAME TO guru100;

Untuk memverifikasi bahwa nama tabel telah diubah, Anda dapat menggunakan perintah โ€œ.tablesโ€ untuk menampilkan daftar tabel, dan nama tabel seharusnya sekarang telah berubah seperti berikut:

SQLite Output .tables menunjukkan tabel yang diubah namanya dari guru99 menjadi guru100.

Seperti yang Anda lihat, nama tabel โ€œguru99โ€ diubah menjadi โ€œguru100โ€ setelah perintah โ€œalter tableโ€.

SQLite tambahkan kolom- Menggunakan Perintah ALTER TABLE

Anda juga dapat menggunakan perintah โ€œALTER TABLEโ€ untuk menambahkan kolom:

ALTER TABLE guru100 ADD COLUMN Age INT;

Ini akan mengubah tabel โ€œguru100โ€ dan menambahkan kolom baru bernama Usia ke dalamnya.

Jika Anda tidak melihat output apa pun, ini berarti pernyataan tersebut berhasil, dan kolom telah ditambahkan. Tidak adanya output berarti kursor akan berada setelah โ€œsqlite>โ€ tanpa teks apa pun setelahnya seperti ini:

SQLite Baris perintah tidak menampilkan output setelah perintah ALTER TABLE ADD COLUMN berhasil dijalankan.

Namun, untuk memverifikasi bahwa kolom tersebut telah ditambahkan, kita dapat menggunakan perintah โ€œ.schema guru100โ€. Perintah ini akan menampilkan definisi tabel, dan Anda akan melihat kolom baru yang baru saja kita tambahkan:

SQLite Output .schema guru100 menunjukkan kolom Usia baru yang ditambahkan ke tabel.

SQLite ALTER TABLE: Mengganti Nama dan Menghapus Kolom

Selain menambahkan kolom, versi modern dari SQLite Anda juga dapat mengganti nama satu kolom dan menghapus satu kolom. Penggantian nama kolom telah tersedia sejak SQLite 3.25, dan ini memperbarui nama di dalam definisi tabel serta di setiap indeks, pemicu, dan tampilan yang merujuk pada kolom tersebut.

ALTER TABLE guru100 RENAME COLUMN Name TO FullName;

Untuk menghapus kolom, SQLite 3.35 dan versi selanjutnya mendukung klausul DROP COLUMN langsung:

ALTER TABLE guru100 DROP COLUMN Age;

Kolom tidak dapat dihapus jika merupakan bagian dari kunci utama, batasan unik, atau indeks. Pada versi yang lebih lama SQLite Pada versi yang tidak memiliki perintah DROP COLUMN, solusi klasik adalah membuat tabel baru dengan kolom yang Anda inginkan, menyalin baris-barisnya, menghapus tabel lama, dan terakhir mengganti nama tabel baru tersebut.

Cara Menyalin Tabel di SQLite Menggunakan CREATE TABLE AS SELECT

Terkadang Anda memerlukan salinan tabel, baik sebagai cadangan sebelum perubahan yang berisiko atau sebagai titik awal untuk tabel baru. SQLite Ini dibangun dalam satu langkah dengan CREATE TABLE AS SELECT, yang membuat tabel baru yang kolom-kolomnya berasal dari kueri dan mengisinya dengan baris-baris yang dikembalikan oleh kueri tersebut.

CREATE TABLE guru100_backup AS SELECT * FROM guru100;

Tabel baru โ€œguru100_backupโ€ menerima kolom dan setiap baris yang sama dari โ€œguru100โ€. Untuk menyalin hanya beberapa baris, tambahkan klausa WHERE ke SELECT:

CREATE TABLE known_ages AS SELECT * FROM guru100 WHERE Age IS NOT NULL;

Satu hal yang perlu diingat adalah bahwa CREATE TABLE AS SELECT menyalin nama kolom, tipe data, dan data, tetapi tidak menyalin kunci utama, batasan lain, atau indeks. Anda perlu menambahkan hal-hal tersebut ke tabel baru sendiri jika salinan tersebut harus menerapkan aturan yang sama seperti tabel aslinya.

SQLite Masukkan nilai ke dalam tabel

Untuk memasukkan nilai ke dalam tabel, kita menggunakan pernyataan โ€œINSERT INTOโ€ sebagai berikut:

INSERT INTO Tablename(colname1, colname2, โ€ฆ.) VALUES(valu1, value2, โ€ฆ.);

Anda dapat menghilangkan nama kolom setelah nama tabel dan menuliskannya sebagai berikut:

INSERT INTO Tablename VALUES(value1, value2, โ€ฆ.);

Dalam kasus seperti ini, saat Anda menghilangkan nama kolom dari tabel, jumlah nilai yang dimasukkan harus sama persis dengan jumlah kolom tabel. Kemudian, setiap nilai akan dimasukkan ke dalam kolom korespondensi. Misalnya, untuk pernyataan insert berikut:

INSERT INTO guru100 VALUES(1, 'Mike', 25);

Hasil dari pernyataan ini akan menjadi sebagai berikut:

SQLite Pernyataan INSERT INTO menambahkan baris nilai ke dalam tabel guru100.

  • Nilai 1 akan dimasukkan ke dalam kolom โ€œidโ€.
  • Nilai 'Mike' akan dimasukkan ke dalam kolom โ€œNamaโ€, dan
  • Nilai 25 akan dimasukkan ke dalam kolom โ€œUsiaโ€.

MASUKKANโ€ฆ Pernyataan NILAI DEFAULT

Anda dapat mengisi tabel dengan nilai default untuk kolom sekaligus sebagai berikut:

INSERT INTO Tablename DEFAULT VALUES;

Jika suatu kolom tidak mengizinkan nilai null maupun nilai default, Anda akan mendapatkan kesalahan "NOT NULL constraint failed" untuk kolom tersebut. Seperti berikut:

SQLite Kesalahan "NOT NULL constraint failed" dari perintah INSERT DEFAULT VALUES

Pertanyaan Umum Demo Slot

Nomor SQLite Tidak ada perintah TRUNCATE TABLE. Untuk mengosongkan tabel, jalankan DELETE FROM table_name tanpa klausa WHERE, lalu gunakan VACUUM untuk mengklaim kembali ruang disk yang dibebaskan. Struktur tabel dan kolomnya tetap utuh.

Perintah DELETE menghapus baris dari sebuah tabel tetapi tetap menyimpan tabel, kolom, dan strukturnya agar siap untuk data baru. Perintah DROP TABLE menghapus seluruh tabel, termasuk definisi, indeks, dan pemicunya, sehingga tabel tersebut tidak lagi ada dalam basis data.

Pada SQLite Di baris perintah, perintah `.tables.dot` mencetak setiap nama tabel. Dari SQL, kueri tabel skema bawaan dengan `SELECT name FROM sqlite_master WHERE type = 'table';` yang juga berfungsi dari aplikasi apa pun yang terhubung ke basis data.

Tabel sementara dibuat dengan perintah CREATE TEMP TABLE atau CREATE TEMPORARY TABLE. Tabel ini hanya terlihat oleh koneksi basis data yang membuatnya dan akan dihapus secara otomatis ketika koneksi tersebut ditutup, sehingga berguna untuk menyimpan hasil kueri sementara.

Ya. Kunci utama bersifat opsional di SQLite. Ketika Anda menghilangkan salah satunya, SQLite Masih menyimpan rowid 64-bit tersembunyi yang mengidentifikasi setiap baris. Batasan kolom seperti PRIMARY KEY, UNIQUE, dan NOT NULL semuanya opsional saat Anda mendefinisikan tabel.

Secara default tidak. SQLite menggunakan tipe dinamisping dengan type affinity, sehingga sebuah kolom menerima nilai dari hampir semua tipe terlepas dari tipe yang dideklarasikan. Untuk menerapkan pengecekan ketat, buat tabel sebagai tabel STRICT, tambahkan di SQLite 3.37.

Ya. Asisten AI text-to-SQL mengubah deskripsi data Anda dalam bahasa Inggris sederhana menjadi pernyataan CREATE TABLE dengan kolom, tipe data, dan kunci. Akurasi meningkat ketika Anda memberikan skema yang sudah ada kepada model, karena model tersebut kemudian menggunakan kembali nama tabel dan kolom yang sebenarnya.

Ya. Kopilot GitHub menyarankan ALTER TABLE, DROP TABLE, dan lainnya SQLite pernyataan sebaris dalam editor seperti VS CodeProgram ini membaca file migrasi dan kueri yang sudah ada, sehingga penyelesaiannya sesuai dengan nama tabel dan kolom Anda yang sebenarnya.

Ringkaslah postingan ini dengan: