Я использую оболочку командной строки SQLite . Как указано в документации, я могу открыть базу данных, указав ее в качестве аргумента исполняемого файла:
sqlite3 data.db
Я не могу понять, как открыть файл базы данных из инструмента после его вызова без указания файла в качестве аргумента командной строки (если я, скажем, дважды щелкну sqlite3.exe в Windows). Какая команда в средстве оболочки SQLite позволяет указать файл базы данных?
SELECT * FROM db1.tbl1;
Я думаю, что самый простой способ просто открыть одну базу данных и начать запросы:
sqlite> .open "test.db" sqlite> SELECT * FROM table_name ... ;
Примечание: это работает только для версий 3.8.2+.
источник
Команда в оболочке Sqlite для открытия базы данных: .open.
Синтаксис:
Если это новая база данных, которую вы хотите создать и открыть, это
sqlite> .open --new dbasename.db
Если база данных существует в другой папке, путь должен быть указан следующим образом:
В командной оболочке Windows вы должны использовать '\' для обозначения каталога, но в SQLite каталоги представлены как '/'. Если вы по-прежнему предпочитаете использовать нотацию Windows, вам следует использовать escape-последовательность для каждого символа '\'
источник
Так же, как вы делаете это в других системах баз данных, вы можете использовать имя базы данных для идентификации таблиц с двойным именем. можно напрямую использовать уникальные имена таблиц.
select * from ttt.table_name;
или если имя таблицы во всех подключенных базах данных уникально
select * from my_unique_table_name;
Но я думаю, что sqlite-shell предназначена только для ручного поиска или ручного управления данными, и поэтому этот способ более несущественен.
обычно вы использовали бы sqlite-command-line в скрипте
источник
Вы можете просто указать имя файла базы данных в командной строке:
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
Более того, вы можете выполнить свой запрос из командной строки:
bash-3.2 # sqlite3 UserDb.sqlite 'select count(*) from genres' 10
Вы можете прикрепить другой файл базы данных из оболочки SQLite:
Таблицы из этой второй базы данных будут доступны по префиксу базы данных:
sqlite> select count(*) from RelDb.localizedString; 2442
Но кто знает, как указать несколько файлов базы данных из командной строки для выполнения запроса из командной строки?
источник
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.
источник
Старые оболочки командной строки SQLite (
sqlite3.exe
), похоже, не предлагают.open
команду или какую-либо легко идентифицируемую альтернативу.Хотя я не нашел окончательной ссылки, похоже, что
.open
команда была введена примерно в версии 3.15 . В истории выпусков SQLite впервые упоминается.open
команда с 2016-10-14 (3.15.0).источник
Интересно, почему никто не смог понять, что на самом деле задавал вопрос. В нем говорилось, что это за команда в инструменте оболочки SQLite для указания файла базы данных?
На моем жестком диске находится sqlite db
E:\ABCD\efg\mydb.db
. Как мне получить к нему доступ с помощью интерфейса командной строки sqlite3?.open E:\ABCD\efg\mydb.db
не работает. Вот какой вопрос задан.Я обнаружил, что лучший способ выполнить работу - это
E:\ABCD\efg\mydbs
)sqlite3
а затем.open mydb.db
Таким образом, вы также можете выполнить операцию соединения с разными таблицами, принадлежащими разным базам данных.
источник
E:
сначала пробовали ? Часто Windows не любит ссылаться на каталоги на других дисках, не меняя букву самостоятельно.