Открытие файла базы данных из командной строки SQLite



Я использую Оболочка Командной Строки SQLite. Как указано в документе, я могу открыть базу данных, предоставив ее в качестве аргумента исполняемому файлу:



sqlite3 data.db


Я не могу понять, как открыть файл базы данных из в программе после вызова его без предоставления файла в качестве аргумента командной строки (если я, скажем, дважды щелкните sqlite3.exe в Windows). какова команда в средстве оболочки SQLite для указания файла базы данных?

927   7  

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

    Ничего не найдено.