sqlite3

2 분 소요

sqlite3

파일 열기

sqlite3 [filename]

종료

.quit

테이블 이름 보기

.tables

스키마 보기

모든 테이블

.schema

특정 테이블

.schema [table?]

현재 설정 상태 확인

.show
sqlite> .show 
echo: off 
eqp: off 
explain: auto 
headers: off 
mode: list 
nullvalue: "" 
output: stdout 
colseparator: "|" 
rowseparator: "\n" 
stats: off 
width: 
filename: mydb.sqlite3 
sqlite>

.header (select 시 컬럼 이름 같이 조회)

.header on
.mode column

.show 로 확인 가능

.mode (데이터 구분)

.mode 명령으로 select문의 실행 결과에 표시되는 데이터 구분을 어떻게 할지 설정할수 있다.

.mode [mode?] [table?]

.mode 인수

인수 설명
csv 쉼표로 구분하여 출력
column 컴럼마다 왼쪽 정렬하여 출력
html HTML의 TABLE 형식으로 출력
insert INSERT 문으로 출력
line 각 컬럼마다 행을 나누어 출력
list 구분 기호로 컴럼을 구분하여 행으로 출력(default)
quote SQL 리터럴로 출력
tabs 탭으로 구분하여 출력
tcl TCL list형식으로 출력

list

list 모드는 조회한 데이터를 각 행마다 1행으로 출력한다. 하나의 행에 저장된 데이터는 컬럼마다 현재 설정되어 있는 구분 기호로 구분하여 출력

sqlite> .mode list 
sqlite> select * from user; 
1|devkuma|Seoul 
2|kimkc|Busan 
3|araikuma|Seoul
4|happykuma|Seoul 
5|mykuma|Daejeon

여기서 구분자는 .setparator 명령으로 변경할 수 있음

column

column 모드는 조회한 데이터를 각 행마다 1행으로 출력한다. 하나의 행에 저당된 데이터는 컬럼마다 왼쪽 정렬하여 출력

sqlite> .mode column 
sqlite> select * from user; 
1 	devkuma 	Seoul 
2 	kimkc 		Busan 
3 	araikuma 	Seoul 
4 	happykuma 	Seoul 
5 	mykuma 		Daejeon 

.width 명령어로 데이터 폭 설정

csv

csv 모드는 조회한 데이터를 각 행마다 1행으로 출력한다. 하나의 행에 저장된 데이터는 컬럼마다 쉼표(,)로 구분하여 출력

sqlite> .mode csv 
sqlite> select * from user; 
1,devkuma,Seoul 
2,kimkc,Busan 
3,araikuma,Seoul 
4,happykuma,Seoul 
5,mykuma,Daejeon 

tabs

tabs 모드는 조회한 데이터를 각 행마다 1행으로 출력한다. 하나의 행에 저장된 데이터는 컬럼마다 탭으로 구분하여 출력

문자간격 8

sqlite> .mode tabs 
sqlite> select * from user; 
1 devkuma Seoul 
2 kimkc Busan 
3 araikuma Seoul 
4 happykuma Seoul 
5 mykuma Daejeon

line

line 모드는 조회한 데이터를 한줄씩 처리하고, 컬럼마다 행(row)을 변경하여 표시

sqlite> select * from user; 
id = 1 
name = devkuma 
address = Seoul 

id = 2 
name = kimkc 
address = Busan 

id = 3 
name = araikuma 
address = Seoul 

id = 4 
name = happykuma 
address = Seoul 

id = 5 
name = mykuma 
address = Daejeon

html

html 모드는 조회한 데이터를 HTML의 TABLE 형식으로 변환하여 표시

sqlite> .mode html
sqlite> select * from user; 
<TR><TD>1</TD> 
<TD>devkuma</TD>
<TD>Seoul</TD>
</TR>
<TR><TD>2</TD>
<TD>kimkc</TD>
<TD>Busan</TD>
</TR>
<TR><TD>3</TD>
<TD>araikuma</TD>
<TD>Seoul</TD>
</TR>
<TR><TD>4</TD>
<TD>happykuma</TD>
<TD>Seoul</TD>
</TR>
<TR><TD>5</TD>
<TD>mykuma</TD>
<TD>Daejeon</TD>
</TR>

tcl

tcl 모드는 조회한 데이터를 TCL 목록 형식으로 변환하여 표시

sqlite> select * from user;
"1" "devkuma" "Seoul"
"2" "kimkc" "Busan"
"3" "araikuma" "Seoul"
"4" "happykuma" "Seoul" 
"5" "mykuma" "Daejeon"

insert

insert 모드는 조회한 데이터를 각 행에 데이터를 추가할 때의 INSERT 문 형식으로 표시

sqlite> select * from user; 
INSERT INTO "table" VALUES(1,'devkuma','Seoul');
INSERT INTO "table" VALUES(2,'kimkc','Busan');
INSERT INTO "table" VALUES(3,'araikuma','Seoul'); 
INSERT INTO "table" VALUES(4,'happykuma','Seoul'); 
INSERT INTO "table" VALUES(5,'mykuma','Daejeon'); 

.separator

mode 값이 list 일때 구분 기호로 사용되는 문자를 변경할 수 있다.

.separator [COL?] [ROW?]

구분자 문자열로 사용가능

.separator /-/

구분자 문자열에 공백 포함되어 있을경우 쌍따옴표로 묶어서 작성

.separator ", "

.width

mode 값이 column 일때 컬럼마다 폭 설정

.width NUM NUM ....

인수는 컬럼마다 폭을 문자로 지정, 여러 컬럼의 너비를 설정하려공백을 두고 계속 작성
지정된 폭으로 데이터가 맞지 않는경우 폭 이상의 문자는 잘려서 표시된다.

데이터 오른쪽 정렬

기본은 왼쪽정렬이지만 폭을 음수로 지정하면 오른쪽 정렬로 데이터를 표시 할 수 있다.

.width -4 -8