복붙노트

[SQL] 어떻게 ATTACH로 열린 SQLite 데이터베이스 파일에 테이블을 나열하려면?

SQL

어떻게 ATTACH로 열린 SQLite 데이터베이스 파일에 테이블을 나열하려면?

어떤 SQL은 SQLite는 데이터베이스 파일에 해당 테이블 내에서 테이블 및 행을 나열 할 수 있습니다 - 나는 그것을 첨부되면 SQLite는 3 명령 줄 도구에 명령을 첨부?

해결법

  1. ==============================

    1..tables 및 .schema "도우미"기능을 첨부 데이터베이스를 들여다 보지 않는다 : 그들은 단지 "주"데이터베이스에 대한있는 sqlite_master 테이블을 쿼리합니다. 따라서, 당신이 사용하는 경우

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

    2.SQLite는 데이터베이스의 테이블을 볼 수있는 몇 가지 단계가 있습니다 :

    SQLite는 데이터베이스의 테이블을 볼 수있는 몇 가지 단계가 있습니다 :

  3. ==============================

    3.당신이처럼있는 sqlite_master 테이블을 통해 갈 필요가 나타납니다 :

    당신이처럼있는 sqlite_master 테이블을 통해 갈 필요가 나타납니다 :

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

    그리고 수동으로 SELECT 각 테이블을 통해 이동하거나 행 봐 유사.

    .DUMP 및 .SCHEMA 명령은 전혀 데이터베이스를 볼 수 표시되지 않습니다.

  4. ==============================

    4.모든 테이블을 표시하려면, 사용

    모든 테이블을 표시하려면, 사용

    SELECT name FROM sqlite_master WHERE type = "table"
    

    모든 행을 표시하려면, 당신은 모든 테이블을 반복 그냥 하나 하나에 SELECT *를 할 수있는 것 같아요. 하지만 어쩌면 덤프가 필요하시면?

  5. ==============================

    5.사용할 수있는 명령을 확인하는 .help 사용합니다.

    사용할 수있는 명령을 확인하는 .help 사용합니다.

    .table
    

    이 명령은 현재 데이터베이스에있는 모든 테이블을 보여줄 것입니다.

  6. ==============================

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

    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
    
  7. ==============================

    7.당신은 또한 할 수있는 테이블을 나열하려면 :

    당신은 또한 할 수있는 테이블을 나열하려면 :

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

    8.PRAGMA의 table_info (테이블 이름)을 시도; http://www.sqlite.org/pragma.html#schema

    PRAGMA의 table_info (테이블 이름)을 시도; http://www.sqlite.org/pragma.html#schema

  9. ==============================

    9.나는 그것을 얻기 위해이 쿼리를 사용합니다 :

    나는 그것을 얻기 위해이 쿼리를 사용합니다 :

    SELECT name FROM sqlite_master WHERE type='table'
    

    그리고 아이폰 OS에서 사용하는 :

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

    10.문서, MySQLs '쇼 테이블의 상응에 따르면; 입니다 :

    문서, MySQLs '쇼 테이블의 상응에 따르면; 입니다 :

    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 대답을 참조하십시오.

  11. ==============================

    11.당신이 실행할 수 SQLite는 3의 최신 버전으로 :

    당신이 실행할 수 SQLite는 3의 최신 버전으로 :

    .fullschema
    

    당신의 생성 문을 모두 볼 수 있습니다.

  12. ==============================

    12.이 작업을 수행하는 가장 쉬운 방법은 오히려 SQLite는 3 쉘 도구를 호출 후에 부착보다는 .dump 명령을 직접 데이터베이스를 열고 사용하는 것입니다.

    이 작업을 수행하는 가장 쉬운 방법은 오히려 SQLite는 3 쉘 도구를 호출 후에 부착보다는 .dump 명령을 직접 데이터베이스를 열고 사용하는 것입니다.

    그래서 ... 대신 $ sqlite3를의 (당신의 OS 명령 프롬프트를 가정하는 것은 $입니다) :

    sqlite3> ATTACH database.sqlite as "attached"
    

    당신의 OS 명령 줄에서 직접 데이터베이스를 엽니 다 :

    $sqlite3 database.sqlite
    sqlite3> .dump
    
  13. ==============================

    13.노동 조합의 모든 통해, 하나 개의 목록에있는 모든 테이블을 결합한다.

    노동 조합의 모든 통해, 하나 개의 목록에있는 모든 테이블을 결합한다.

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

    14.사용하다:

    사용하다:

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

    15.아무도 SQLite는의 공식 기준에 대해 언급하지 않았기 때문에, 나는이 제목 아래에 그것을 참조하는 것이 유용 할 수 있습니다 생각 :

    아무도 SQLite는의 공식 기준에 대해 언급하지 않았기 때문에, 나는이 제목 아래에 그것을 참조하는 것이 유용 할 수 있습니다 생각 :

    https://www.sqlite.org/cli.html

    당신은이 링크에서 설명한 명령을 사용하여 데이터베이스를 조작 할 수 있습니다. 당신은 윈도우 OS를 사용하고 명령 셸이있는 SQLite는의 사이트에 그 위치를 모른다면, 게다가 :

    https://www.sqlite.org/download.html

    를 다운로드 한 후, SQLite는 명령 쉘을 초기화 sqlite3.exe 파일을 클릭합니다. 이 초기화 될 때, 기본적으로이 SQLite는 세션 메모리 데이터베이스가 아닌 디스크에있는 파일을 사용하고, 그래서 모든 변경시 세션 종료를 잃게됩니다. 데이터베이스와 같은 영구 디스크 파일을 사용하여 터미널 창을 시작 직후 ".open ex1.db"명령을 입력합니다.

    원인 "ex1.db"라는 데이터베이스 파일을 열고 사용하고, 이전에 존재하지 않는 경우 생성되는 위의 예. 당신은. 파일이 당신이 그것을에 생각 디렉토리에 있는지 확인하기 위해 전체 경로 이름을 사용하고자하는 디렉토리 분리 문자로 앞으로 슬래시를 사용할 수 있습니다. 하지 "C : \ 작업 \ ex1.db"즉 "/work/ex1.db C"를 사용합니다.

    이 위의 링크에 있다고 당신이 이전에 선택한 데이터베이스의 모든 테이블을 보려면 명령 .tables을 입력합니다.

    당신이 윈도우에서 작업하는 경우, 나는 다른 파이썬 파일과 같은 폴더에이 sqlite.exe 파일을 이동하는 것이 유용 할 수 있습니다 생각합니다. 이러한 방법으로, 파이썬 파일에 기록하고 .DB 파일이 동일한 경로에에서 SQLite는 쉘은 읽습니다.

  16. ==============================

    16.은 ".schema"특공대는 당신에게 말했다 테이블을 만드는 데 사용되는 문을 보여줌으로써, 가능한 테이블과 행을 나열합니다 :

    은 ".schema"특공대는 당신에게 말했다 테이블을 만드는 데 사용되는 문을 보여줌으로써, 가능한 테이블과 행을 나열합니다 :

    sqlite> create table_a (id int, a int, b int);
    sqlite> .schema table_a
    CREATE TABLE table_a (id int, a int, b int);
    
  17. ==============================

    17..da는 모든 데이터베이스를 확인합니다 - 하나는 '주'라는

    .da는 모든 데이터베이스를 확인합니다 - 하나는 '주'라는

    이 데이터베이스의 테이블을 볼 수 있습니다

    1있는 sqlite_master 순서 구별 tbl_name를 선택]

    첨부 된 데이터베이스는 문 ATTACH 예에서 AS로 선택 접두사가 필요합니다 AA (BB, CC ...) 그래서 :

    1 aa.sqlite_master 순서 구별 tbl_name를 선택]

    여기 당신이 아니라 의견을 얻을 수 있습니다. 이러한 추가 기능을 제외하려면   여기서 타입 = "테이블" '위해'전

  18. from https://stackoverflow.com/questions/82875/how-to-list-the-tables-in-a-sqlite-database-file-that-was-opened-with-attach by cc-by-sa and MIT license