Menu

CLI SQLite: Memakai Shell Command Line sqlite3

Cara memakai shell command line sqlite3: membuka database, menjalankan query, dot command, serta mengimpor atau mengekspor data tanpa meninggalkan terminal.

Halaman ini dilengkapi editor yang bisa dijalankan. Edit, jalankan, dan lihat output-nya seketika.

Apa Itu CLI-nya

sqlite3 adalah shell command line resmi yang dibawa bersama SQLite. Shell ini membuka file database, memberimu prompt, dan membuatmu bisa menjalankan SQL di database itu. Tanpa server, tanpa login, tanpa konfigurasi: hanya sebuah file binary dan sebuah file database.

Kamu akan memakainya untuk pemeriksaan cepat, query sekali jalan, dump skema, dan impor data. Ini cara tercepat untuk mengutak-atik database tanpa menulis kode aplikasi.

$ sqlite3 mydata.db
SQLite version 3.45.0
Enter ".help" for usage hints.
sqlite>

Jika mydata.db belum ada, SQLite akan membuatnya begitu kamu melakukan perubahan pertama. Menjalankan sqlite3 tanpa nama file membuka database in-memory sekali pakai.

Menjalankan SQL di Prompt

Begitu masuk ke shell, ketik SQL dan akhiri setiap pernyataan dengan titik koma. Shell menunggu titik koma itu: jika kamu menekan Enter tanpanya, shell hanya menampilkan prompt lanjutan.

Titik koma adalah tanda "aku sudah selesai, jalankan ini." Lupakan titik koma, dan shell akan diam dengan prompt ...>, menunggu. Ketik ; di baris baru untuk menyelesaikannya.

Dot Command Bukan SQL

Apa pun yang diawali . adalah dot command, yaitu instruksi untuk shell itu sendiri, bukan untuk engine SQL. Perintah ini tidak memakai titik koma dan hanya berfungsi di dalam shell sqlite3.

sqlite> .tables
books

sqlite> .schema books
CREATE TABLE books (
  id INTEGER PRIMARY KEY,
  title TEXT NOT NULL,
  year INTEGER
);

sqlite> .help

Beberapa yang akan terus kamu pakai:

  • .tables: menampilkan daftar semua tabel di database saat ini.
  • .schema [table]: menampilkan pernyataan CREATE TABLE untuk satu tabel atau semuanya.
  • .databases: menampilkan daftar file database yang terpasang.
  • .mode <format>: mengubah cara hasil query ditampilkan.
  • .headers on: menampilkan nama kolom di atas hasil query.
  • .read file.sql: mengeksekusi file SQL.
  • .exit atau .quit: keluar dari shell.

.help menampilkan daftar lengkapnya. Jumlahnya puluhan, tapi kamu mungkin hanya akan sering memakai sekitar sepuluh.

Membuat Output Enak Dibaca

Output default-nya dipisahkan tanda pipa dan tanpa header: cocok untuk script, tapi jelek untuk dibaca. Dua dot command memperbaikinya:

sqlite> .headers on
sqlite> .mode column
sqlite> SELECT * FROM books;
id  title        year
--  -----------  ----
1   Dune         1965
2   Neuromancer  1984

Mode lain yang berguna:

  • .mode box: menggambar tabel dengan garis tepi Unicode. Bagus untuk screenshot.
  • .mode csv: dipisahkan koma, cocok untuk dialirkan ke tool lain.
  • .mode json: output JSON, satu objek per baris.
  • .mode line: satu kolom per baris, praktis saat barisnya lebar.

Pengaturan ini kembali ke awal setiap kali kamu menjalankan shell. Agar permanen, taruh di file ~/.sqliterc, dan sqlite3 akan memuatnya saat mulai.

Mengimpor dan Mengekspor CSV

CLI-nya punya dukungan CSV bawaan. Pindah ke mode CSV, lalu .import sebuah file ke dalam tabel:

sqlite> .mode csv
sqlite> .import authors.csv authors
sqlite> SELECT * FROM authors LIMIT 3;

Jika tabelnya belum ada, .import membuatnya dengan memakai baris pertama sebagai nama kolom. Jika tabelnya sudah ada, baris pertama dianggap sebagai data kecuali kamu memberikan --skip 1.

Ke arah sebaliknya, arahkan output ke sebuah file:

sqlite> .headers on
sqlite> .mode csv
sqlite> .output books.csv
sqlite> SELECT * FROM books;
sqlite> .output stdout

.output filename mengirim setiap hasil query berikutnya ke file itu sampai kamu kembali dengan .output stdout. Mekanismenya sama, baik saat kamu mengekspor CSV, JSON, maupun dump skema mentah.

Menjalankan File SQL

Untuk apa pun yang lebih panjang dari beberapa pernyataan, taruh SQL-nya di sebuah file lalu jalankan. Di dalam shell:

sqlite> .read setup.sql

Atau dari terminal biasa, tanpa masuk ke shell sama sekali:

$ sqlite3 mydata.db < setup.sql
$ sqlite3 mydata.db "SELECT count(*) FROM books;"

Bentuk kedua menjalankan satu query lalu keluar, sangat cocok untuk shell script atau pengecekan cepat. Gabungkan dengan pengaturan .mode lewat flag -cmd jika kamu butuh output yang terformat:

$ sqlite3 -header -column mydata.db "SELECT * FROM books;"

Memeriksa Database yang Belum Dikenal

Saat seseorang memberimu file .db dan kamu sama sekali tidak tahu isinya, inilah rutinitasnya:

$ sqlite3 mystery.db
sqlite> .tables
sqlite> .schema
sqlite> .indexes
sqlite> SELECT count(*) FROM some_table;

.schema tanpa argumen menampilkan setiap CREATE TABLE, CREATE INDEX, dan CREATE TRIGGER di file itu. .indexes menampilkan daftar index per tabel. Lima menit di shell biasanya memberitahumu lebih banyak tentang sebuah database daripada README mana pun.

Untuk snapshot teks lengkap yang bisa kamu buat ulang di tempat lain, pakai .dump:

sqlite> .output backup.sql
sqlite> .dump
sqlite> .output stdout

Perintah itu menulis script SQL yang membuat ulang database secara utuh, skema beserta datanya, jika dijalankan kembali lewat sqlite3.

Keluar dari Shell

Ada tiga cara keluar, semuanya setara:

sqlite> .exit
sqlite> .quit

Atau tekan Ctrl+D di macOS dan Linux (Ctrl+Z lalu Enter di Windows). Perubahanmu sudah tersimpan: SQLite melakukan commit setiap pernyataan saat dijalankan, kecuali kamu sudah memulai transaksi secara eksplisit.

Selanjutnya: Tool GUI untuk SQLite

CLI itu cepat dan bisa dipakai di script, tapi terkadang kamu ingin mengklik tabel satu per satu, mengurutkan kolom, dan mengedit baris secara visual. Ada beberapa tool GUI yang bagus untuk SQLite, dan itulah topik halaman berikutnya.

Pertanyaan yang sering diajukan

Bagaimana cara membuka database dengan CLI SQLite?

Jalankan sqlite3 mydata.db dari terminal. Jika filenya belum ada, SQLite membuatnya begitu kamu menulis tabel pertamamu. Menjalankan sqlite3 tanpa nama file membuka database in-memory sementara yang hilang saat kamu keluar.

Bagaimana cara keluar dari shell sqlite3?

Ketik .exit atau .quit lalu tekan Enter. Keduanya bekerja dengan cara yang sama. Di kebanyakan sistem, Ctrl+D (atau Ctrl+Z lalu Enter di Windows) juga menutup shell.

Apa itu dot command di SQLite?

Dot command adalah perintah bawaan shell yang diawali ., seperti .tables, .schema, .mode, dan .import. Perintah ini bukan SQL, melainkan instruksi untuk CLI itu sendiri, jadi tidak perlu titik koma di akhir dan hanya berfungsi di dalam shell sqlite3.

Bagaimana cara menjalankan file SQL di CLI SQLite?

Gunakan .read filename.sql dari dalam shell, atau alirkan dari luar dengan sqlite3 mydata.db < filename.sql. Keduanya mengeksekusi pernyataan-pernyataan itu secara berurutan pada database yang sedang terbuka.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai