을 나열하는 방법에 있는 테이블 SQLite 데이터베이스 파일에는 문을 열었으로 붙어 있는가?

StackOverflow https://stackoverflow.com/questions/82875

  •  01-07-2019
  •  | 
  •  

문제

어떤 SQL 을 사용할 수 있는 목록은 테이블,그리고 행 내에서 테이블에서 SQLite 데이터베이스 파일에 한 번가 첨부와 ATTACH 명령에 SQLite3 명령행 도구입니까?

도움이 되었습니까?

해결책

.tables, 고 .schema "helper"기능을 보이지 않으로 연결된 데이터베이스:그들이 조회 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 데이터베이스:

  1. 목록 데이터베이스의 테이블:

    .tables
    
  2. 목록을 어떻게 보이는 테이블:

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

    SELECT * FROM tablename;
    
  4. 목록을 모두 사용할 수 있 SQLite 명령 프롬프트:

    .help
    

그것은이 나타납해야를 통해 이동 sqlite_master 테이블은 다음과 같습니다.

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

다음으로 이동을 통해 각각의 테이블 SELECT 또는 이와 유사한 보고서의 행이 있습니다.

.DUMP.SCHEMA 명령이 나타나지 않을 참조 데이터베이스에서 모두.

모든 테이블,사용

SELECT name FROM sqlite_master WHERE type = "table"

을 보여 모든 행에,나는 당신을 반복할 수 있는 모든 테이블을 선택*에서 각각의 하나입니다.그러나 어쩌면 덤프신가?

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

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

내가 사용하는 이 쿼리하여 그것을 얻을:

SELECT name FROM sqlite_master WHERE type='table'

와 아이폰 os 에서 사용:

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

에 따라 문서, 에 해당하는 MySQLs' SHOW 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 대답합니다.

로의 최신 버전의 SQLite3 행할 수 있습니다:

.fullschema

모두 볼 수 만들기 문이 있습니다.

가장 쉬운 방법은 데이터베이스를 열 직접 사용 .dump 명령보다는 부착한 후에 호출 SQLite3 쉘 도구입니다.

그래서...(가정 OS 명령행 프롬프트는$)신 $sqlite3:

sqlite3> ATTACH database.sqlite as "attached"

에서 당신의 OS 명령,데이터베이스를 열 직접:

$sqlite3 database.sqlite
sqlite3> .dump

를 사용:

import sqlite3

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

를 통해 union all, 결합,모든 테이블에 하나의 목록입니다.

select name
from sqlite_master 
where type='table'

union all 

select name 
from sqlite_temp_master 
where type='table'

때문에 아무도에 대해 언급하는 공식 참조 SQLite,나는 그것이 유용할 수 있습니다 그것을 참조하십시오에서 이 제목:

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

조작할 수 있는 데이터베이스를 사용하여 명령어 설명서 링크가 있습니다.이 당신이 사용하는 경우 윈도우 OS 과 알 수 없는 명령을 포탄은,그 SQLite 사이트:

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

다운로드 후, 클릭 sqlite3.exe 파일을 초기화 SQLite command shell.초기화될 때,기본적으로 이 SQLite 세션을 사용하여 메모리에 데이터베이스 파일에 디스크,그래서 모든 변경 사항을 잃었을 때 세션을 종료합니다.을 사용하여 지속적인 디스크 파일로 데이터베이스에 입력합".열 ex1.db"명령은 후 즉시 터미널 윈도우 시작됩니다.

위의 예제의 원인 데이터베이스 파일 이름"ex1.db"열고 사용할 수 있게 만들지 않는 경우는 이전에 존재합니다.를 사용할 수 있습 전체 경로명을 지키는 파일이 디렉토리에서 당신이 생각하는 것입니다.앞으로 사용-슬래쉬로 디렉터리 구분자.다시 말해서 사용하"c:/work/ex1.db"이 아닌"c:\work\ex1.db".

모든 테이블에 데이터베이스에서 이전에 선택 명령을 입력 .테이블 그것은 말했다 위에서 링크가 있습니다.

에서 작업하는 경우 윈도우,나는 그것이 유용할 수 있는 이동 sqlite.exe 파일을 동일한 폴더에 다른 Python 파일이 있습니다.이 방식에서는 파이썬 파일에 기록하고 SQLite 쉘에서 읽습니다.db 파일을 같은 경로입니다.

니다."스키마가"특공대 목록을 사용할 수 있는 테이블과 자신의 행하여 문을 만드는 데 사용했다 테이블:

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

.다시 모든 데이터베이스는 하나'라는메인'

테이블의 데이터베이스에 의해 보일

SELECT distinct tbl_name 에서 sqlite_master 순서 1;

연결된 데이터베이스를 필요로 접두사 당신은 선택과로 문을 연결 e.g. aa (bb,cc 다)이렇게:

SELECT distinct tbl_name 서 aa.sqlite_master 기 위해 1;

참고 여기에 당신을 얻을 전망뿐만 아니라.제외하려면 이러한 추가 어디 type='테이블' 하기 전에'주문'

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top