Открытие файла базы данных из командной строки SQLite
Я использую Оболочка Командной Строки SQLite. Как задокументировано, я могу открыть базу данных, предоставив ее в качестве аргумента исполняемому файлу:
sqlite3 data.db
Я не могу понять, как открыть файл базы данных из в программе после его вызова без предоставления файла в качестве аргумента командной строки (если я, скажем, дважды щелкните sqlite3.exe в Windows). какова команда в инструменте оболочки SQLite для указания файла базы данных?
7 ответов
вы можете присоединить одну и даже несколько баз данных и работать с ней так же, как с помощью SQLite dbname.db
sqlite3
:
sqlite> attach "mydb.sqlite" as db1;
и u могут видеть все прикрепленные базы данных с .базы данных
где в обычном режиме main используется для командной строки 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
но кто знает, как указать несколько файлов базы данных из командной строки, чтобы выполнить запрос из командная строка?