· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
SQ Lite

sqlite.gif
[GIF image (2.99 KB)]
초기작성자 - mcguiver9

SQLite 는 엄밀히 말해서 DB이지만 DBMS는 아닌 파일DB입니다.




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에 대해서 알아보려 한다.

[http]Quickstart 원문보기

지겨운 메뉴얼부터 보지말고 SQLite를 일단 체험해보자. 여기서는 일단 제가 설치해 본 윈도우버젼을 설명한다.

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


ID
Password
Join
The person you rejected yesterday could make you happy, if you say yes.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2006-04-05 18:12:32
Processing time 0.0072 sec