etc./StackOverFlow

ATTACH로 연 SQLite 데이터베이스 파일의 테이블을 어떻게 나열할 수 있습니까?

청렴결백한 만능 재주꾼 2023. 4. 24. 06:48
반응형

질문자 :izb


SQLite 3 명령줄 도구 ATTACH 명령으로 연결한 후 SQLite 데이터베이스 파일의 테이블과 해당 테이블 내의 행을 나열하는 데 사용할 수 있는 SQL은 무엇입니까?



SQLite 데이터베이스에서 테이블을 보는 몇 가지 단계가 있습니다.

  1. 데이터베이스의 테이블 나열:

     .tables
  2. 테이블이 어떻게 보이는지 나열하십시오.

     .schema tablename
  3. 전체 테이블 인쇄:

     SELECT * FROM tablename;
  4. 사용 가능한 모든 SQLite 프롬프트 명령을 나열합니다.

     .help

Mark Janssen

.tables.schema "helper" 함수는 ATTACHed 데이터베이스를 조사하지 않습니다. "main" 데이터베이스에 대한 SQLITE_MASTER 결과적으로 다음을 사용한 경우

 ATTACH some_file.db AS my_db;

그럼 당신은 할 필요가

 SELECT name FROM my_db.sqlite_master WHERE type='table';

.tables 와 함께 표시되지 않습니다 sqlite_temp_master 위해 sqlite_temp_master를 나열해야 합니다.

 SELECT name FROM sqlite_temp_master WHERE type='table';

Anthony Williams

다음과 같이 sqlite_master 테이블을 살펴봐야 합니다.

 SELECT * FROM dbname.sqlite_master WHERE type='table';

SELECT 또는 이와 유사한 기능을 사용하여 각 테이블을 수동으로 살펴보고 행을 확인합니다.

.DUMP.SCHEMA 명령은 데이터베이스를 전혀 보지 않는 것으로 보입니다.


Lasse V. Karlsen

모든 테이블을 표시하려면 다음을 사용하십시오.

 SELECT name FROM sqlite_master WHERE type = "table"

모든 행을 표시하려면 모든 테이블을 반복하고 각 테이블에 대해 SELECT *를 수행하면 됩니다. 그러나 아마도 DUMP가 당신이 추구하는 것입니까?


Christian Davén

.help 를 사용하여 사용 가능한 명령을 확인하십시오.

 .table

이 명령은 현재 데이터베이스 아래의 모든 테이블을 표시합니다.


Antony.H

SQLite 명령줄에서 이에 사용할 수 있는 명령이 있습니다.

 .tables ?PATTERN? List names of tables matching a LIKE pattern

다음 SQL로 변환됩니다.

 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

flubba

테이블을 나열하려면 다음을 수행할 수도 있습니다.

 SELECT name FROM sqlite_master WHERE type='table';

Rafał Dowgird

PRAGMA table_info(table-name);
http://www.sqlite.org/pragma.html#schema


Luiz Geron

이 쿼리를 사용하여 가져옵니다.

 SELECT name FROM sqlite_master WHERE type='table'

iOS에서 사용하려면:

 NSString *aStrQuery=[NSString stringWithFormat:@"SELECT name FROM sqlite_master WHERE type='table'"];

GameLoading

문서 에 따르면 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의 답변을 참조하십시오.


Alix Axel

최신 버전의 SQLite 3에서 다음을 실행할 수 있습니다.

 .fullschema

모든 create 문을 보려면


pepper

이를 수행하는 가장 쉬운 방법은 SQLite 3 셸 도구를 호출한 후 연결하는 대신 .dump

그래서... (OS 명령줄 프롬프트가 $라고 가정) $sqlite3 대신:

 sqlite3> ATTACH database.sqlite as "attached"

OS 명령줄에서 데이터베이스를 직접 엽니다.

 $sqlite3 database.sqlite sqlite3> .dump

Noah

union all 통해 모든 테이블을 하나의 목록으로 결합합니다.

 select name from sqlite_master where type='table' union all select name from sqlite_temp_master where type='table'

openwonk

사용하다:

 import sqlite3 TABLE_LIST_QUERY = "SELECT * FROM sqlite_master where type='table'"

Mrityunjay Singh

아무도 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 셸은 동일한 경로에 있습니다.


oiyio

".schema" 특공대는 해당 테이블을 생성하는 데 사용된 명령문을 보여줌으로써 사용 가능한 테이블과 해당 행을 나열합니다.

sqlite> table_a 생성 (id int, a int, b int);
sqlite> .스키마 테이블_a
CREATE TABLE table_a (id int, a int, b int);

trf

모든 데이터베이스를 보려면 .da 를 사용하세요. 하나는 '메인 '입니다.

이 데이터베이스의 테이블은 다음을 통해 볼 수 있습니다.

 SELECT distinct tbl_name from sqlite_master order by 1;

연결된 데이터베이스에는 ATTACH 문에서 AS로 선택한 접두사가 필요합니다 (예: aa (, bb, cc...)).

 SELECT distinct tbl_name from **aa.sqlite_master** order by 1;

여기서도 뷰를 볼 수 있습니다. 이러한 항목을 제외하려면 다음을 추가하십시오.

 where type = 'table'

'주문' 전에


Klaas-Z4us-V

출처 : http:www.stackoverflow.com/questions/82875/how-can-i-list-the-tables-in-a-sqlite-database-file-that-was-opened-with-attach

반응형