programing

Attach로 연 SQLite 데이터베이스 파일의 테이블을 나열하려면 어떻게 해야 합니까?

goodjava 2023. 6. 4. 22:16

Attach로 연 SQLite 데이터베이스 파일의 테이블을 나열하려면 어떻게 해야 합니까?

파일에데할 수 입니까? SQLite 데이터베이스 파일과 에는 다음과 같이 하십시오.ATTACHSQLite 3 명령줄 도구에서 명령을 실행하시겠습니까?

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

  1. 데이터베이스에 있는 표를 나열합니다.

    .tables
    
  2. 표 모양을 나열합니다.

    .schema tablename
    
  3. 전체 표 인쇄:

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

    .help
    

.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';

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

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

그런 다음 각 테이블을 수동으로 검색합니다.SELECT또는 행을 보는 것과 유사합니다.

.DUMP그리고..SCHEMA명령이 데이터베이스를 전혀 보지 못하는 것 같습니다.

모든 표를 표시하려면 사용

SELECT name FROM sqlite_master WHERE type = "table"

모든 행을 표시하려면 모든 표를 반복하고 각 표에 대해 SELECT *를 수행하면 됩니다.하지만 쓰레기통을 노리는 건 아닐까요?

사용하다.help사용 가능한 명령을 확인합니다.

.table

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

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

표를 나열하려면 다음 작업도 수행할 수 있습니다.

SELECT name FROM sqlite_master
WHERE type='table';

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

SELECT name FROM sqlite_master WHERE type='table'

iOS에서 사용하는 방법:

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

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

문서에 따르면 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;

그러나 단일 테이블이 존재하는지(또는 테이블의 세부 정보를 얻기 위해) 확인하는 경우 Luiz Geron의 답변을 참조하십시오.

SQLite 3의 최신 버전부터 다음을 발행할 수 있습니다.

.fullschema

모든 작성 정보를 확인할 수 있습니다.

가쉬운방데이스를직접열사것다입니는용하다음을을 입니다..dumpSQLite 3 셸 도구를 호출한 후 연결하는 대신 명령을 실행합니다.

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

sqlite3> ATTACH database.sqlite as "attached"

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

$sqlite3 database.sqlite
sqlite3> .dump

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

select name
from sqlite_master 
where type='table'

union all 

select name 
from sqlite_temp_master 
where type='table'

사용:

import sqlite3

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

모든 데이터베이스를 보려면 .da를 사용합니다. 하나는 'main'이라고 합니다.

이 데이터베이스의 표는 다음과 같습니다.

SELECT distinct tbl_name from sqlite_master order by 1;

첨부된 데이터베이스에는 ATACT 문에서 AS로 선택한 접두사(: aa, bb, cc...)가 필요하므로 다음과 같이 하십시오.

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

여기서도 보기를 볼 수 있습니다.이들을 제외하려면 다음을 추가합니다.

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> create table_a (idint, aint, bint);
sqlite> .sqltable_aCREATE TABLE_a(idint, aint, bint);

언급URL : https://stackoverflow.com/questions/82875/how-can-i-list-the-tables-in-a-sqlite-database-file-that-was-opened-with-attach