쉘이 만능 칼이야
sqlite3 CLI는 query만 돌려주는 물건이 아니야. dot 명령이라는 자기만의 meta-command 언어를 가진 온전한 인터랙티브 쉘이지. 앞에 .이 붙으면 SQLite가 아니라 쉘이 그 줄을 해석해.
실제로 손이 자주 가는 건 이 열세 개야.
.help— dot 명령을 한 줄 설명과 함께 쭉 보여줘..tables— 지금 DB에 있는 테이블을 보여줘..schema [TABLE]— CREATE statement를 찍어줘. 테이블 이름을 주면 그것만 나와..indexes [TABLE]— 인덱스를 보여줘..databases— 지금 붙어 있는 DB를 보여줘..mode column|box|csv|json|markdown|line— 결과 출력 형식을 바꿔..headers on— 컬럼 이름을 같이 찍어줘..timer on— query마다 걸린 시간을 찍어줘..read FILE.sql— 파일에 든 SQL을 실행해..import FILE TABLE— CSV나 TSV를 통째로 밀어넣어..dump— DB를 그대로 재현하는 SQL 스크립트를 뱉어..backup TARGET.db— 안전하게 online snapshot을 떠..quit— 쉘을 닫아. Ctrl-D도 같은 일을 해.
Tip: 새 세션을 열면 1초 안에
.mode box랑 .headers on부터 쳐. 기본 list 모드는 컬럼이 다섯 개만 넘어가도 눈으로 못 따라가는데, box 모드는 Unicode로 표를 그려주고 긴 값도 잘 살려줘.CLI를 batch 모드로 돌려서 SQL을 파이프로 넣고 결과를 파이프로 받을 수도 있어. 스크립트나 cron, 한 번 보고 말 탐색에는 이게 딱이야.