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
단일 데이터베이스를 열고 쿼리를 시작하는 가장 간단한 방법은 다음과 같습니다.
sqlite> .open "test.db"
sqlite> SELECT * FROM table_name ... ;
알림 : 버전 3.8.2 이상에서만 작동합니다.
데이터베이스를 여는 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
그러나 명령 줄에서 쿼리를 실행하기 위해 명령 줄에서 여러 데이터베이스 파일을 지정하는 방법을 누가 압니까?
질문이 실제로 질문 한 내용을 아무도 얻지 못한 이유가 궁금합니다. 데이터베이스 파일을 지정하는 SQLite 셸 도구 내의 명령 은 무엇입니까?
sqlite db가 내 하드 디스크에 E:\ABCD\efg\mydb.db
있습니다. sqlite3 명령 줄 인터페이스로 어떻게 액세스합니까? .open E:\ABCD\efg\mydb.db
작동하지 않습니다. 이것이 질문 한 것입니다.
작업을 수행하는 가장 좋은 방법은
- copy-paste all your db files in 1 directory (say
E:\ABCD\efg\mydbs
) - switch to that directory in your command line
- now open
sqlite3
and then.open mydb.db
This way you can do the join operation on different tables belonging to different databases as well.
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.
Older SQLite command-line shells (sqlite3.exe
) do not appear to offer the .open
command or any readily identifiable alternative.
Although I found no definitive reference it seems that the .open
command was introduced around version 3.15. The SQLite Release History first mentions the .open
command with 2016-10-14 (3.15.0).
'Programing' 카테고리의 다른 글
Android 캔버스에 채워진 삼각형을 그리는 방법은 무엇입니까? (0) | 2020.09.21 |
---|---|
지정되지 않은 경우 argparse store false (0) | 2020.09.21 |
npm uninstall을 사용할 때 package.json에서 종속성 자동 제거 (0) | 2020.09.21 |
Keras 모델을 GPU에서 실행할 수 있습니까? (0) | 2020.09.21 |
Rake의 네임 스페이스에 대한 기본 작업 (0) | 2020.09.21 |