SQLite Command Line Shell을 사용하고 있습니다. 문서화 된대로 실행 파일에 대한 인수로 제공하여 데이터베이스를 열 수 있습니다.
sqlite3 data.db
명령 줄 인수로 파일을 제공하지 않고 도구 를 호출 한 후 도구 내에서 데이터베이스 파일을 여는 방법을 알 수 없습니다 (예 : Windows에서 sqlite3.exe를 두 번 클릭). 데이터베이스 파일을 지정하는 SQLite 셸 도구 내의 명령은 무엇입니까?
SQLite Command Line Shell을 사용하고 있습니다. 문서화 된대로 실행 파일에 대한 인수로 제공하여 데이터베이스를 열 수 있습니다.
sqlite3 data.db
명령 줄 인수로 파일을 제공하지 않고 도구 를 호출 한 후 도구 내에서 데이터베이스 파일을 여는 방법을 알 수 없습니다 (예 : Windows에서 sqlite3.exe를 두 번 클릭). 데이터베이스 파일을 지정하는 SQLite 셸 도구 내의 명령은 무엇입니까?
답변:
하나 이상의 데이터베이스를 연결하고 sqlite dbname.db를 사용하는 것과 같은 방식으로 작업 할 수 있습니다.
sqlite3
:
sqlite> attach "mydb.sqlite" as db1;
.databases로 연결된 모든 데이터베이스를 볼 수 있습니다.
일반적인 방법으로 main은 명령 줄 db에 사용됩니다.
.databases
seq name file
--- --------------- ----------------------------------------------------------
0 main
1 temp
2 ttt c:\home\user\gg.ite
SELECT * FROM db1.tbl1;
데이터베이스를 여는 Sqlite 셸 내의 명령은 .open입니다.
구문은 다음과 같습니다.
sqlite> .open dbasename.db
생성하여 열고 싶은 새 데이터베이스 인 경우
sqlite> .open --new dbasename.db
데이터베이스가 다른 폴더에있는 경우 경로를 다음과 같이 언급해야합니다.
sqlite> .open D:/MainFolder/SubFolder/...database.db
Windows 명령 셸에서는 '\'를 사용하여 디렉터리를 나타내야하지만 SQLite 디렉터리는 '/'로 표시됩니다. Windows 표기법을 계속 사용하려면 모든 '\'에 대해 이스케이프 시퀀스를 사용해야합니다.
다른 db 시스템에서 수행하는 것과 동일한 방법으로 이중 명명 된 테이블을 식별하기 위해 db의 이름을 사용할 수 있습니다. 고유 한 테이블 이름을 직접 사용할 수 있습니다.
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> 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
이 두 번째 데이터베이스의 테이블은 데이터베이스 접두사를 통해 액세스 할 수 있습니다.
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는 문자를 직접 변경하지 않고 다른 드라이브의 디렉토리를 참조하는 것을 좋아하지 않습니다.