MySQL 을 사용하다가 SQLite 에서 들어있는 데이터를 확인할 때(select * from 문 이용할 때) 너무 단순하게 출력해서 이상하다가 생각하는 사람이 있을 것 같다. 그래서 SQLite 에서 이런 출력 모양을 예쁘게 만들어 주는 옵션들이 존재한다. 또 이 옵션들은 다음에 나오는 .import FILE TABLE 을 이용할 때 처럼 읽어 들일 때도 사용된다.

여기 부분은 당연히 표준 SQL 문이 아니다. 그래서 점(.) 으로 시작하고 세미코론(;) 을 끝에 찍으면 안된다. 이 내용은 SQLite 홈페이지 를 참조했다.


앞에서 만든 테이블을 기본으로 삼기로 하자. 우선 sqlite.exe 프로그래을 실행시키고, 다음처럼 입력하자. 약간 귀찮다면 그냥 복사 해서 넣자. (복사해서 넣을 때 sqlite> 이 다음에 있는 내용들만 내가 입력한 것들이다. )
====================================================================
sqlite> create table tbl1(one varchar(10), two smallint);
sqlite> insert into tbl1 values('hello!',10);
sqlite> insert into tbl1 values('goodbye', 20);
====================================================================

이제 pet 이라는 테이블에 하나의 데이터만 들어가 있는 상태이다. 앞에서 설명했듯이 pet 안에 있는 모든 데이터를 보기 위해서는 select * from tbl1; 을 이용한다.
====================================================================
sqlite> select * from tbl1;
hello!|10
goodbye|20
====================================================================

출력해준 내용이 정보도 없고 그냥 있는 데이터만 보여준다. MySQL 을 사용했던 사람은 다음과 같은 출력을 원할 것이다.
+----------+-----+
| one | two |
+----------+-----+
| hello | 10 |
|goodbye | 20 |
+----------+----+

콘솔창이 한계가 있기 때문에 완벽하진 않더라도 저 정도면 보기 좋은 상태이다.

SQLite 에서 .help 를 입력하면 SQLite 표준 문은 아니지만 도움이 되는 많은 명령어가 있다. 이 중 .mode 대해 다음과 같은 설명이 있다.

.mode MODE ?TABLE? Set output mode where MODE is one of:
csv Comma-separated values
column Left-aligned columns. (See .width)

insert SQL insert statements for TABLE
line One value per line
list Values delimited by .separator string
tabs Tab-separated values

column 이 가장 비슷하게 보여준다. (이 블로그에서는 잘 보이지 않는데 콘솔창에서는 정렬되어 보인다.)
====================================================================
sqlite> .mode column
sqlite> select * from tbl1;
hello! 10
goodbye 20
====================================================================

여기에 .header on 을 하면(반대는 .head off 이고 이 값이 디폴트이다.) 조금 더 보기 좋다.
====================================================================
sqlite> .header on
sqlite> select * from tbl1;
one two
---------- ----------
hello! 10
goodbye 20
====================================================================
보다시피 위에 one, two 라는 헤더가 붙여서 보인다.

내가 이것에 대해 설명한 것은 단순이 보기 좋게 만들려는 것은 아니다. 여기에 있는 옵션들은 출력은 반대로 입력할 때(.import 를 이용할 때)도 적용되기 때문이다.

입력과 가장 관련된 부분은 .mode list 문이다. 설명(.help)을 읽어보면 .separator 로 구분자를 설정된 문자로 구분해준다고 적혀있다. .mode 에서 기본 값은 list 이다. 그리고 .separator 의 기본값은 "|"(pipe 기호)이다. 많이 사용하는 기호로 탭이 있다. 탭을 사용할려면 "\t" 을 이용하면 된다. 왜 이건 내가 설명하는지는 다음 강의를 듣으면 이해가 될 것이다.<br />
<br />
최종 수정일 :  2006/10/29 22:09
작성자 : 한밀(승룡) 버전 : 0.1.1