SQLite 3 명령 줄 도구 의 명령으로 테이블을 첨부 한 후 SQLite 데이터베이스 파일에 테이블 및 해당 테이블 내의 행을 나열하는 데 사용할 수있는 SQL 은 무엇입니까 ?ATTACH
.tables
테이블 및 .schema ?TABLE?
특정 테이블의 스키마.
.table 'bank_%'
또는 .table '%_empl'
접두사 / 접미사를 퀘스트하는 유효한 구문!
SQLite 3 명령 줄 도구 의 명령으로 테이블을 첨부 한 후 SQLite 데이터베이스 파일에 테이블 및 해당 테이블 내의 행을 나열하는 데 사용할 수있는 SQL 은 무엇입니까 ?ATTACH
.tables
테이블 및 .schema ?TABLE?
특정 테이블의 스키마.
.table 'bank_%'
또는 .table '%_empl'
접두사 / 접미사를 퀘스트하는 유효한 구문!
답변:
.tables
, 및 .schema
"도우미"기능을 첨부 데이터베이스를 들여다 보지 않는다 : 그들은 단지 쿼리 SQLITE_MASTER
"메인"데이터베이스 테이블을. 결과적으로
ATTACH some_file.db AS my_db;
그런 다음에해야합니다
SELECT name FROM my_db.sqlite_master WHERE type='table';
임시 테이블은 .tables
다음 중 하나 와 함께 표시되지 않습니다 sqlite_temp_master
.
SELECT name FROM sqlite_temp_master WHERE type='table';
"SELECT name FROM sqlite_master WHERE type='table'"
나를 위해 작동
CREATE TEMPORARY TABLE
SQL 명령으로 작성된 테이블 입니다. 현재 데이터베이스 연결이 닫히면 내용이 삭제되고 데이터베이스 파일에 저장되지 않습니다.
ATTACH "some_file.db" AS my_db;
!
SQLite 데이터베이스에서 테이블을 보려면 몇 가지 단계가 있습니다.
데이터베이스의 테이블을 나열하십시오.
.tables
테이블 모양을 나열하십시오.
.schema tablename
전체 테이블을 인쇄하십시오.
SELECT * FROM tablename;
사용 가능한 모든 SQLite 프롬프트 명령을 나열하십시오.
.help
.table
그리고 .tables
둘 다 허용됩니다. .ta
sqlite3이 모호하지 않은 명령을 허용하기 때문에 그 문제 도 잘 작동합니다. 도움말에 따른 명령 이름은 실제로 ".tables"입니다 (누군가 여전히주의를 기울이고있는 경우).
.tables
하나의 열린 데이터베이스를 통해 테이블을 표시하지 ATTACH '<path>' AS <name>;
않지만 lasse의 답변이 표시됩니다. OP가 ATTACHing을 언급 한 이래로 그는이 답변을 받아들이지 않는 것이 옳았다 고 생각합니다. 편집 : 방금 앤서니와 다른 사람들도 이것을 지적했습니다.
다음 과 같이 sqlite_master 테이블을 거쳐야 합니다.
SELECT * FROM dbname.sqlite_master WHERE type='table';
그런 다음 SELECT
행을 확인하기 위해 각 표를 수동으로 또는 유사하게 사용하십시오.
.DUMP
및 .SCHEMA
명령은 전혀 데이터베이스를 볼 수 표시되지 않습니다.
.tables
연결된 데이터베이스의 테이블을 표시하도록 수정 되었습니까?
.tables
그것들을 보여주기 위해 명령이 수정 되었습니까?
모든 테이블을 표시하려면
SELECT name FROM sqlite_master WHERE type = "table"
모든 행을 표시하기 위해 모든 테이블을 반복하고 각 테이블에서 SELECT *를 수행 할 수 있다고 생각합니다. 하지만 어쩌면 DUMP가 당신이 추구하는 것일까 요?
http://www.sqlite.org/pragma.html#schema를 사용해보십시오PRAGMA table_info(table-name);
문서 에 따르면 MySQL과 동등한 것은 다음과 같습니다 SHOW TABLES;
.
".tables"명령은 목록 모드를 설정 한 후 다음 쿼리를 실행하는 것과 유사합니다.
SELECT name FROM sqlite_master
WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%'
UNION ALL
SELECT name FROM sqlite_temp_master
WHERE type IN ('table','view')
ORDER BY 1;
그러나 단일 테이블이 존재하는지 확인하거나 세부 정보를 얻으려면 @LuizGeron 답변을 참조하십시오 .
사용하다:
import sqlite3
TABLE_LIST_QUERY = "SELECT * FROM sqlite_master where type='table'"
SQLite의 공식 참조에 대해서는 아무도 언급하지 않았으므로 다음 제목 아래에서 참조하는 것이 도움이 될 것입니다.
https://www.sqlite.org/cli.html
이 링크에 설명 된 명령을 사용하여 데이터베이스를 조작 할 수 있습니다. 또한 Windows OS를 사용 하고 있고 명령 쉘의 위치를 모르는 경우 SQLite 사이트에 있습니다.
https://www.sqlite.org/download.html
다운로드 한 후 sqlite3.exe 파일을 클릭하여 SQLite 명령 쉘을 초기화하십시오 . 초기화 될 때 기본적으로이 SQLite 세션은 디스크의 파일이 아닌 메모리 내 데이터베이스를 사용하므로 세션이 종료되면 모든 변경 사항이 유실됩니다. 영구 디스크 파일을 데이터베이스로 사용하려면 터미널 창이 시작된 직후 ".open ex1.db"명령을 입력하십시오.
위의 예제는 "ex1.db"라는 데이터베이스 파일을 열어서 사용하고 이전에 존재하지 않는 경우 작성합니다. 파일이 생각하는 디렉토리에 파일이 있는지 확인하기 위해 전체 경로 이름을 사용할 수 있습니다. 디렉토리 분리 문자로 슬래시를 사용하십시오. 즉, "c : \ work \ ex1.db"가 아닌 "c : /work/ex1.db"를 사용하십시오.
이전에 선택한 데이터베이스의 모든 테이블을 보려면 위의 링크에서 설명한 대로 .tables 명령을 입력하십시오 .
Windows에서 작업하는 경우이 sqlite.exe 파일을 다른 Python 파일과 동일한 폴더로 이동하는 것이 유용 할 수 있습니다. 이런 식으로 Python 파일에 쓰고 .db 파일에서 SQLite 셸 읽기는 동일한 경로에 있습니다.
".schema"코만도는 해당 테이블을 작성하는 데 사용 된 명령문을 표시하여 사용 가능한 테이블과 해당 행을 나열합니다.
sqlite> table_a 생성 (id int, a int, b int); sqlite> .schema table_a CREATE TABLE table_a (id int, a int, b int);
모든 데이터베이스를 보려면 .da-하나는 ' main '
이 데이터베이스의 테이블은
sqlite_master 순서와 다른 tbl_name을 1 씩 선택하십시오.
첨부 된 데이터베이스에는 ATTACH 문에서 AS로 선택한 접두사가 필요합니다 ( 예 : aa (, bb, cc ...)).
aa.sqlite_master 순서 와 다른 tbl_name을 1 씩 선택하십시오 .
여기서도 뷰를 얻을 수 있습니다. 'order'앞에 type = 'table'인 추가를 제외하려면