SQLite 자습서(8): 명령행 도구 설명

일을 잘하려면 반드시 먼저 그 일을 이롭게 해야 한다.SQLite의 명령행 도구를 잘 배우는 것은 우리가 SQLite를 배우는 것 자체에 매우 도움이 된다.가장 기본적인 것은 우리가 SQLite를 배우는 과정을 더욱 가볍고 유쾌하게 하는 것이다.본론으로 돌아가자. SQLite의 공식 다운로드 사이트에서 여러 플랫폼을 지원하는 명령행 도구를 제공했다. 이 도구를 사용하면 우리는 대부분의 자주 사용하는 SQLite 조작을 완성할 수 있다. 예를 들어 sqlplus가 Oracle에 있는 것과 같다.다음 목록에는 도구의 내장 명령이 나와 있습니다.
명령
명령 설명
.help
모든 내장 명령을 나열합니다.
.backup DBNAME FILE
지정한 데이터베이스를 지정한 파일에 백업합니다. 현재 연결된main 데이터베이스가 부족합니다.
.databases
현재 연결에 있는attached 데이터베이스 이름과 파일 이름을 보여 줍니다.
.dump TABLENAME ...
SQL 텍스트 형식의 DUMP로 현재 연결된 main 데이터베이스입니다. 테이블 이름을 지정하면 DUMP와 테이블 이름이 일치하는 데이터 테이블입니다.매개변수 TABLENAME은 LIKE 표현식이 지원하는 와일드카드를 지원합니다.
.echo ON|OFF
디스플레이 출력을 켜거나 끕니다.
.exit
현재 프로그램을 종료합니다.
.explain ON|OFF
현재 연결된 SELECT를 Human Readable 형식으로 내보내거나 끕니다.
.header(s) ON|OFF
SELECT 결과를 표시할 때 열의 제목을 표시할지 여부입니다.
.import FILE TABLE
지정한 파일의 데이터를 지정한 표로 가져옵니다.
.indices TABLENAME
모든 인덱스의 이름을 표시합니다. 테이블 이름을 지정하면 이 테이블 이름과 일치하는 데이터 테이블의 인덱스만 표시합니다. 인자 TABLENAME는 LIKE 표현식이 지원하는 어댑터를 지원합니다.
.log FILE|off 
로그 기능을 열거나 닫습니다. FILE는 표준 출력 stdout 또는 표준 오류 출력 stderrr를 할 수 있습니다.
.mode MODE TABLENAME
출력 모드를 설정합니다. 여기서 가장 자주 사용하는 모드는column 모드입니다. SELECT 출력 열을 왼쪽으로 정렬해서 표시합니다.
.nullvalue STRING 
NULL 값 표시 대신 지정된 문자열을 사용합니다.
.output FILENAME 
현재 명령의 모든 출력을 지정한 파일로 다시 지정합니다.
.output stdout 
현재 명령의 모든 출력을 표준 출력 (화면) 으로 바꿉니다.
.quit 
현재 프로그램을 종료합니다. 
.read FILENAME 
지정된 파일 내의 SQL 문을 실행합니다.
.restore DBNAME FILE 
지정한 파일에서 데이터베이스를 복원하면main 데이터베이스로 부족합니다. 이 때 다른 데이터베이스 이름도 지정할 수 있습니다. 지정된 데이터베이스는 현재 연결된attached 데이터베이스가 됩니다.
.schema TABLENAME
데이터 테이블의 생성 문장을 표시합니다. 테이블 이름을 지정하면 이 테이블 이름과 일치하는 데이터 테이블 생성 문장만 표시하고, 매개 변수 TABLENAME는 LIKE 표현식이 지원하는 어댑터만 표시합니다.
.separator STRING
출력 모드 변경과.import의 필드 구분자입니다.
.show
다양한 설정의 현재 값을 표시합니다.
.tables TABLENAME
현재 연결된 main 데이터베이스의 모든 테이블 이름을 표시합니다. 테이블 이름을 지정하면 이 테이블 이름과 일치하는 데이터 테이블 이름만 표시하고, 매개 변수 TABLENAME는 LIKE 표현식이 지원하는 어댑터만 표시합니다.
.width NUM1 NUM2 ...
ODE가column일 때 각 필드의 폭을 설정합니다. 참고: 이 명령의 매개 변수 순서는 필드가 출력되는 순서를 나타냅니다.
다음과 같은 일반적인 예제를 참조하십시오.
    1). 데이터베이스 백업 및 복원
 

    -- main , .backup main D:/mydb.db 。
    sqlite> CREATE TABLE mytable (first_col integer);
    sqlite> .backup 'D:/mydb.db'
    sqlite> .exit
    -- sqlite3.exe SQLite 。
    -- D:/mydb.db main , .tables mytable 。
    sqlite> .restore 'D:/mydb.db'
    sqlite> .tables
    mytable
   
    2). DUMP 데이터 테이블의 생성 문을 지정한 파일에 지정합니다.
 

    -- D:/myoutput.txt, mytable 。
    sqlite> .output D:/myoutput.txt
    sqlite> .dump mytabl%
    sqlite> .exit
    -- DOS 。
    D:\>notepad myoutput.txt
   
    3). 현재 연결된 모든 Attached 데이터베이스와main 데이터베이스를 표시합니다.
 

    sqlite> ATTACH DATABASE 'D:/mydb.db' AS mydb;
    sqlite> .databases
    seq  name               file
    ---  ---------------  ------------------------
    0    main
    2    mydb                D:\mydb.db
   
    4). main 데이터베이스에 있는 모든 데이터 테이블을 표시합니다.
 

    sqlite> .tables
    mytable
   
    5). 일치하는 테이블 이름 mytabl%의 데이터 테이블의 모든 인덱스를 표시합니다.
 

    sqlite> CREATE INDEX myindex on mytable(first_col);
    sqlite> .indices mytabl%
    myindex       
   
    6). 테이블 이름 mytable%와 일치하는 데이터 테이블의 Schema 정보를 표시합니다.
 

    -- 。
    sqlite> .schema mytabl%
    CREATE TABLE mytable (first_col integer);
    CREATE INDEX myindex on mytable(first_col);
   
    7). 포맷하면 SELECT의 출력 정보가 표시됩니다.
 

    --
    sqlite> INSERT INTO mytable VALUES(1);
    sqlite> INSERT INTO mytable VALUES(2);
    sqlite> INSERT INTO mytable VALUES(3);   
    -- SELECT 。
    sqlite> SELECT * FROM mytable;
    1
    2
    3   
    -- SELECT 。
    -- 。
    -- 10.
    sqlite> .header on
    sqlite> .mode column
    sqlite> .width 10
    sqlite> SELECT * FROM mytable;
    first_col
    ----------
    1
    2
    3
 

좋은 웹페이지 즐겨찾기