SQLite를 5분 안에 시작하기
SQLite를 5분 안에 시작하기
이 문서는 SQLite를 직접 실험해 보려는 분들을 위해, 지루한 문서 읽기나 설정을 건너뛰고 바로 시작하는 방법을 알려드려요.
출처: 문서
본문
지루한 읽기와 설정을 많이 하지 않고도 SQLite 실험을 시작하는 방법은 다음과 같아요.
코드 다운로드하기
자신의 컴퓨터용으로 미리 빌드된 바이너리(binary)를 받거나, 소스 코드를 받아 직접 컴파일하면 돼요. 자세한 내용은 download 페이지를 참고하세요.
명령줄 인터페이스를 사용해 새 데이터베이스 만들기
명령줄 인터페이스(Command Line Interface) 또는 "CLI"는 SQL 입력 텍스트를 받아서 SQLite 데이터베이스 엔진 코어에 전달해 실행해 주는 간단한 명령줄 프로그램이에요. CLI 프로그램의 이름은 "sqlite3"이며(Windows에서는 "sqlite3.exe"), 데이터베이스와의 수동 상호작용에 사용해요.
- 셸(Shell) 또는 DOS 프롬프트에서
sqlite3 test.db라고 입력해요. 그러면 "test.db"라는 새 데이터베이스가 만들어져요. (원한다면 다른 이름을 사용해도 돼요.) - 프롬프트에서 SQL 명령을 입력해 새 데이터베이스를 만들고 데이터를 채워요.
- 자세한 내용은 상세 CLI 문서를 참고하세요.
웹 브라우저에서 실행되는 CLI의 WASM 빌드는 https://sqlite.org/fiddle에서 사용할 수 있어요.
SQLite를 사용하는 프로그램 작성하기
아래는 SQLite의 TCL 인터페이스를 사용하는 방법을 보여 주는 간단한 TCL 프로그램이에요. 이 프로그램은 첫 번째 인자로 받은 데이터베이스에서, 두 번째 인자로 받은 SQL 문장을 실행해요. 주목할 명령은 7번 줄의 sqlite3 명령(이 명령은 SQLite 데이터베이스를 열고 그 데이터베이스에 접근할 "db"라는 새 객체를 만듦), 8번 줄의 db 객체에 대한 eval 메서드 사용(데이터베이스에 대해 SQL 명령을 실행함), 그리고 스크립트의 마지막 줄에서 데이터베이스 연결을 닫는 부분이에요.
01 #!/usr/bin/tclsh
02 if {$argc!=2} {
03 puts stderr "Usage: %s DATABASE SQL-STATEMENT"
04 exit 1
05 }
06 package require sqlite3
07 sqlite3 db [lindex $argv 0]
08 db eval [lindex $argv 1] x {
09 foreach v $x(*) {
10 puts "$v = $x($v)"
11 }
12 puts ""
13 }
14 db close
아래는 SQLite의 C/C++ 인터페이스를 사용하는 방법을 보여 주는 간단한 C 프로그램이에요. 첫 번째 인자는 데이터베이스의 이름이고, 두 번째 인자는 데이터베이스에 대해 실행할 하나 이상의 SQL 문장이에요. 여기서 주목할 함수 호출은 22번 줄의 sqlite3_open()(데이터베이스 열기), 28번 줄의 sqlite3_exec()(데이터베이스에 대해 SQL 명령 실행), 그리고 33번 줄의 sqlite3_close()(데이터베이스 연결 닫기)이에요.
수십 개의 SQLite 인터페이스 함수에 대한 입문 개요와 로드맵은 SQLite C/C++ 인터페이스 소개 문서도 함께 참고하세요.
01 #include <stdio.h>
02 #include <sqlite3.h>
03
04 static int callback(void *NotUsed, int argc, char **argv, char **azColName){
05 int i;
06 for(i=0; i<argc; i++){
07 printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
08 }
09 printf("\n");
10 return 0;
11 }
12
13 int main(int argc, char **argv){
14 sqlite3 *db;
15 char *zErrMsg = 0;
16 int rc;
17
18 if( argc!=3 ){
19 fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
20 return(1);
21 }
22 rc = sqlite3_open(argv[1], &db);
23 if( rc ){
24 fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
25 sqlite3_close(db);
26 return(1);
27 }
28 rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
29 if( rc!=SQLITE_OK ){
30 fprintf(stderr, "SQL error: %s\n", zErrMsg);
31 sqlite3_free(zErrMsg);
32 }
33 sqlite3_close(db);
34 return 0;
35 }
위 프로그램을 컴파일하는 방법과 팁은 SQLite 컴파일 방법 문서를 참고하세요.