Я использую оболочку командной строки SQLite. Как описано в документе, я могу открыть базу данных, предоставив ее в качестве аргумента для исполняемого файла:
sqlite3 data.db
Это может показаться совершенно несущественным - и это почти так! - но я не могу понять, как открыть файл базы данных внутри инструмента после его вызова, не поставляя файл в качестве аргумента командной строки (если я, скажем, дважды щелкните sqlite3.exe в Windows). Что такое команда в средстве оболочки SQLite для указания файла базы данных?
Вы можете подключить одну и более базы данных и работать с ним так же, как с помощью sqlite dbname.db
sqlite3
:
sqlite> attach "mydb.sqlite" as db1;
и вы можете видеть все прикрепленные базы данных с помощью .databases
где обычным образом основной используется для командной строки db
.databases
seq name file
--- --------------- ----------------------------------------------------------
0 main
1 temp
2 ttt c:\home\user\gg.ite
Я думаю, что самый простой способ просто открыть одну базу данных и начать запрос:
sqlite> .open "test.db"
sqlite> SELECT * FROM table_name ... ;
Примечание. Это работает только для версий 3.8.2 +
Точно так же, как вы это делаете в другой системе db, вы можете использовать имя db для идентификации двойных названных таблиц. уникальные имена таблеток могут использоваться напрямую.
select * from ttt.table_name;
или если имя таблицы во всех прикрепленных базах данных уникально
select * from my_unique_table_name;
Но я думаю, что оболочка sqlite-shell предназначена только для ручного поиска или ручного управления данными, и поэтому этот способ более несущественен.
обычно вы использовали бы sqlite-command-line в script
Команда в оболочке Sqlite для открытия базы данных:.open
Синтаксис:
sqlite> .open dbasename.db
Если это новая база данных, которую вы хотите создать и открыть, это
sqlite> .open --new dbasename.db
Если база данных существует в другой папке, путь должен быть указан следующим образом:
sqlite> .open D:/MainFolder/SubFolder/...database.db
В командной оболочке Windows вы должны использовать '\' для представления каталога, но в каталогах SQLite представлены '/'. Если вы все еще предпочитаете использовать нотацию Windows, вы должны использовать escape-последовательность для каждого '\'
Интересно, почему никто не смог получить то, что действительно задал вопрос. В нем указано Что такое команда в средстве оболочки SQLite для указания файла базы данных?
sqlite db находится на моем жестком диске E:\ABCD\efg\mydb.db
. Как мне получить доступ к интерфейсу командной строки sqlite3? .open E:\ABCD\efg\mydb.db
не работает. Это вопрос.
Я нашел лучший способ сделать работу
E:\ABCD\efg\mydbs
)sqlite3
, а затем .open mydb.db
Таким образом вы можете выполнить операцию join в разных таблицах, принадлежащих другим базам данных.
E:
сначала? Часто Windows не любит ссылаться на каталоги на других дисках, не меняя буквы самостоятельно.
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.