SQLite 는 엄밀히 말해서 DB이지만 DBMS는 아닌 파일DB입니다
Contents
1 특징 ¶
- Transactions are atomic, consistent, isolated, and durable (ACID) even after system crashes and power failures
- 설치시 setup이나 admin설정이 필요없음
- 대부분의 SQL92 구현
- 데이터베이스가 파일 하나로 되어 있음
- 2테라바이트(2의41승) 지원
- BLOB과 문자열의 사이즈는 오직 메모리에 의해 제한
- 실행파일의 사이즈 작음(250KB)
- Client/Server 데이터베이스 엔진보다 빠른 속도
- API 갯수가 아주 적음(프로그래밍하기에 간단)
- 외부 Dependency가 없음
- public domain 라이센스로 어떤 목적으로도 사용 가능
- PHP5에서 기본 지원(MySQL 모듈이 빠져있지만 다시 화해했다는 얘기도 있음)
2 3.0에 추가된 기능 ¶
- 향상된 Compact한 데이터베이스 파일 형식
- 명백한 타입 및 BLOB형식 지원
- UTF-8, UTF-16 지원 추가
- 사용자 정의 text collating sequences
- 64 bit ROWIDs
- 향상된 Concurrency
3 빠른시작 ¶
SQLite라는 DB는 간단히 말해서 SQL을 사용하여 질의할 수 있는 파일DB 이다. DB가 Embeded된 Application을 쉽게 작성할 수 있을 것 같다. 천천히 이 꼬마괴물 DB에 대해서 알아보려 한다.
Quickstart 원문보기 지겨운 메뉴얼부터 보지말고 SQLite를 일단 체험해보자. 여기서는 일단 제가 설치해 본 윈도우버젼을 설명한다.
- 바이너리버젼 다운로드
- DB 생성
C:\sqlite> sqlite3 test.db
C++에서의 구현 예제(단, 3개의 함수 제공- 초간단)
#include <stdio.h> #include <sqlite3.h> static int callback(void *NotUsed, int argc, char **argv, char **azColName){ int i; for(i=0; i<argc; i++){ printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL"); } printf("\n"); return 0; } int main(int argc, char **argv){ sqlite3 *db; char *zErrMsg = 0; int rc; if( argc!=3 ){ fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]); exit(1); } rc = sqlite3_open(argv[1], &db); if( rc ){ fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); sqlite3_close(db); exit(1); } rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg); if( rc!=SQLITE_OK ){ fprintf(stderr, "SQL error: %s\n", zErrMsg); } sqlite3_close(db); return 0; }
4 사용가능 문법 ¶
- ALTER TABLE
- ANALYZE
- ATTACH DATABASE
- BEGIN TRANSACTION
- comment
- COMMIT TRANSACTION
- COPY
- CREATE INDEX
- CREATE TABLE
- CREATE TRIGGER
- CREATE VIEW
- DELETE
- DETACH DATABASE
- DROP INDEX
- DROP TABLE
- DROP TRIGGER
- DROP VIEW
- END TRANSACTION
- EXPLAIN
- expression
- INSERT
- ON CONFLICT clause
- PRAGMA
- REINDEX
- REPLACE
- ROLLBACK TRANSACTION
- SELECT
- UPDATE
- VACUUM
5 사용불가능 문법 ¶
아직 SQLite에서는 지원되지 않는 문법
- FOREIGN KEY constraints
- Complete trigger support
- Complete ALTER TABLE support
- Nested transactions
- RIGHT and FULL OUTER JOIN
- Writing to VIEWs
- GRANT and REVOKE
'Database > sqllite' 카테고리의 다른 글
sqlite jdbc driver (0) | 2007.04.23 |
---|---|
설치, 기본 사용법 (0) | 2007.04.23 |