Открытие файла базы данных из командной строки SQLite
Я использую Оболочка Командной Строки SQLite. Как указано в документе, я могу открыть базу данных, предоставив ее в качестве аргумента исполняемому файлу:
sqlite3 data.db
Я не могу понять, как открыть файл базы данных из в программе после вызова его без предоставления файла в качестве аргумента командной строки (если я, скажем, дважды щелкните sqlite3.exe в Windows). какова команда в средстве оболочки SQLite для указания файла базы данных?
7 ответов:
вы можете присоединить одну и даже больше баз данных и работать с ними таким же образом, как с помощью SQLite dbname.db
sqlite3 : sqlite> attach "mydb.sqlite" as db1;и вы можете увидеть все прикрепленные базы данных с .базы данных
где в обычном режиме основной используется для командной строки 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+
так же, как вы делаете это в другой системе БД, вы можете использовать имя БД для идентификации двойных именованных таблиц. уникальные табличные имена могут использоваться напрямую.
select * from ttt.table_name;или если имя таблицы во всех подключенных базах данных, является уникальным
select * from my_unique_table_name;но я думаю, что sqlite-shell предназначен только для ручного поиска или ручной обработки данных, и поэтому этот способ более несущественен
обычно вы используете SQLite-command-line в скрипте
команда в оболочке Sqlite для открытия базы данных.открой
синтаксис такой:
sqlite> .open dbasename.dbЕсли это новая база данных, которую вы хотите создать и открыть, это
sqlite> .open --new dbasename.dbЕсли база данных существует в другой папке, путь должен быть указан следующим образом:
sqlite> .open D:/MainFolder/SubFolder/...database.dbв командной оболочке Windows вы должны использовать ' \ 'для представления каталога, но в каталогах SQLite представлены'/'. Если вы все еще предпочитаете использовать в нотации Windows, вы должны использовать escape-последовательность для каждого'\'
интересно, почему никто не смог получить то, что вопрос на самом деле спрашивает. В нем говорилось какова команда в средстве оболочки SQLite для указания файла базы данных?
в БД SQLite на моем жестком диске
E:\ABCD\efg\mydb.db. Как получить к нему доступ с помощью интерфейса командной строки sqlite3?.open E:\ABCD\efg\mydb.dbне работает. Вот какой вопрос задали.я нашел лучший способ сделать работу-это
- копировать-вставить все файлы БД в 1 каталог (скажем
E:\ABCD\efg\mydbs)- переключитесь в этот каталог в командной строке
- теперь откройте
sqlite3а то.open mydb.dbтаким образом, вы можете сделать вступить операции с различными таблицами, принадлежащими к различным базам данных, а также.
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.
можно просто указать имя файла базы данных в командной строке:
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> attach database 'RelDb.sqlite' as RelDb; sqlite> .databases main: /db/UserDb.sqlite RelDb: /db/RelDb_1.sqlite sqlite> .tables RelDb.collectionRelationship contentStatus RelDb.contentRelationship genres RelDb.leagueRelationship recordingFilter RelDb.localizedString syncedContentStatus accountLevelSettings syncedThumbs collectionActivity thumbsтаблицы из 2-й базы данных будут доступны через префикс базы данных:
sqlite> select count(*) from RelDb.localizedString; 2442но кто знает, как указать несколько файлов базы данных из командной строки, чтобы выполнить запрос из в командной строке?
Comments