Saya menggunakan SQLite Command Line Shell . Seperti yang didokumentasikan, saya bisa membuka database dengan menyediakannya sebagai argumen untuk executable:
sqlite3 data.db
Saya tidak tahu cara membuka file database dari dalam alat setelah menjalankannya tanpa menyediakan file tersebut sebagai argumen baris perintah (jika saya, katakanlah, klik dua kali sqlite3.exe di Windows). Apa perintah dalam alat shell SQLite untuk menentukan file database?
SELECT * FROM db1.tbl1;
Saya pikir cara paling sederhana untuk membuka satu database dan mulai membuat kueri adalah:
sqlite> .open "test.db" sqlite> SELECT * FROM table_name ... ;
Perhatian: Ini hanya berfungsi untuk versi 3.8.2+
sumber
Perintah di dalam shell Sqlite untuk membuka database adalah .open
Sintaksnya adalah,
Jika itu adalah database baru yang ingin Anda buat dan buka, itu
sqlite> .open --new dbasename.db
Jika database ada di folder yang berbeda, jalurnya harus disebutkan seperti ini:
Di shell Windows Command, Anda harus menggunakan '\' untuk mewakili direktori, tetapi di SQLite direktori diwakili oleh '/'. Jika Anda masih lebih suka menggunakan notasi Windows, Anda harus menggunakan urutan escape untuk setiap '\'
sumber
Dengan cara yang sama Anda melakukannya di sistem db lain, Anda dapat menggunakan nama db untuk mengidentifikasi tabel bernama ganda. tablenames unik dapat digunakan secara langsung.
select * from ttt.table_name;
atau jika nama tabel di semua database terlampir unik
select * from my_unique_table_name;
Tapi menurut saya dari sqlite-shell hanya untuk pencarian manual atau manipulasi data manual dan oleh karena itu cara ini lebih tidak penting
biasanya Anda akan menggunakan sqlite-command-line dalam skrip
sumber
Anda cukup menentukan nama file database di baris perintah:
bash-3.2 # sqlite3 UserDb.sqlite SQLite version 3.16.2 2017-01-06 16:32:41 Enter ".help" for usage hints. sqlite> .databases main: /db/UserDb.sqlite sqlite> .tables accountLevelSettings genres syncedThumbs collectionActivity recordingFilter thumbs contentStatus syncedContentStatus sqlite> select count(*) from genres; 10
Selain itu, Anda dapat menjalankan kueri Anda dari baris perintah:
bash-3.2 # sqlite3 UserDb.sqlite 'select count(*) from genres' 10
Anda dapat melampirkan file database lain dari shell SQLite:
Tabel dari database ke-2 ini akan dapat diakses melalui prefiks database:
sqlite> select count(*) from RelDb.localizedString; 2442
Tetapi siapa yang tahu bagaimana menentukan beberapa file database dari baris perintah untuk menjalankan kueri dari baris perintah?
sumber
create different db files using >sqlite3 test1.db sqlite> create table test1 (name text); sqlite> insert into test1 values('sourav'); sqlite>.exit >sqlite3 test2.db sqlite> create table test2 (eid integer); sqlite> insert into test2 values (6); sqlite>.exit >sqlite SQLite version 3.8.5 2014-06-04 14:06:34 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .open test1.db sqlite> select * from test1; sourav sqlite> .open test2.db sqlite> select * from test1; Error: no such table: test1 sqlite> select * from test2; 6 sqlite> .exit > Thank YOU.
sumber
Shell baris perintah SQLite yang lebih lama (
sqlite3.exe
) tampaknya tidak menawarkan.open
perintah atau alternatif yang mudah diidentifikasi.Meskipun saya tidak menemukan referensi yang pasti, sepertinya
.open
perintah tersebut diperkenalkan sekitar versi 3.15 . The SQLite Rilis Sejarah pertama menyebutkan.open
perintah dengan 2016/10/14 (3.15.0).sumber
Saya bertanya-tanya mengapa tidak ada yang bisa mendapatkan apa yang sebenarnya ditanyakan oleh pertanyaan itu. Ini menyatakan Apa perintah dalam alat shell SQLite untuk menentukan file database?
Sebuah sqlite db ada di hard disk saya
E:\ABCD\efg\mydb.db
. Bagaimana cara mengaksesnya dengan antarmuka baris perintah sqlite3?.open E:\ABCD\efg\mydb.db
tidak bekerja. Inilah pertanyaan yang diajukan.Saya menemukan cara terbaik untuk melakukan pekerjaan itu
E:\ABCD\efg\mydbs
)sqlite3
lalu.open mydb.db
Dengan cara ini Anda dapat melakukan operasi penggabungan pada tabel yang berbeda milik database yang berbeda juga.
sumber
E:
dulu? Seringkali Windows tidak suka mereferensikan direktori pada drive lain tanpa mengubah hurufnya sendiri.