Sqlite

SQLite 는 독립적이고, 서버가 필요 없으며, 특별한 설정을 할 필요도 없는, 트렌젝션이 가능한 SQL 데이타베이스 엔진으로 꾸준히 개발중인 Library 이다. SQLite는 MysqlPostgreSQL와 같은 데이터베이스 관리 시스템이지만, 서버가 아니라 응용 프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스이다.

http://sqlite.com

SQLite 의 코드는 공개되어 있고, 상업적이든 개인적이든, 어떤 용도로도 무료로 사용할 수 있다. 현재 SQLite 는 꽤 유명한 프로젝트를 포함하여, 생각하는 것 이상으로 많은 프로그램에서 사용하고 있다.

SQLite 는 SQL 데이타베이스 엔진을 내장하고 있다. 수 많은 SQL 데이타베이스와는 다르게, SQLite 는 별도의 서버 프로세스를 가지고 있지 않고, 일반 디스크 파일을 직접 읽고 씁니다. SQLite 의 데이타베이스는 오직 한 개의 파일에 멀티 테이블, 색인, 트리거, 뷰 등을 가지고 있다.그리고 데이타베이스 파일은 크로스 플랫폼을 지원한기 때문에, 32비트 - 64비트 또는 big-endian little-endian 아키텍처에서 서로 사용할 수 있다. 이것이 Applictiion File Format 으로 SQLite 가 사랑받는 이유이다.

SQLite 는 매우 작은 라이브러리이다. 컴파일러 세팅이나 타겟 플렛폼에 따라서 조금의 차이는 있겠지만, 350 kbye 정도밖에 되지 않는다. 옵션 기능을 제거하면 200 kbyte 이하로도 만들 수 있다. 또한 실행시에는 메모리 스택영역은 4kbyte, 힙 영역은 100 kbyte 으로 매우 조금만 차지한다. 이런 이유로 휴대폰, PDA, MP3 플레이어와 같이 메모리 제약적인 곳에서 SQLite 를 널리 쓰고 있다. 메모리와 성능은 서로 교환적이다. 메모리 공간이 많을수록 속도는 빨라진다. 그럼에도 불구하고 작은 메모리 환경에서도 우수한 속도를 자랑한다.

사용하는 곳

  1. Photoshop Lightroom 제품에서 파일 포맷으로 SQLite 를 사용하고 있다. 그리고 Adebe Integrated Runtime(AIR) 에서도 SQLite 는 표준으로 사용된다. 또한 Acrobat Reader 에서도 SQLite 를 사용하는 것으로 알려져 있다.
  2. A350 XWB 라는 항공 소프트웨어에서 SQLite 를 사용하고 있다.
  3. Apple 은 Apple Mail, Safari, Aperture 등 Mac OS X 의 수 많은 곳에서 SQLite 를 쓰고 있다. iPhone 과 iPod touch 그리고 iTunes 에서도 사용하고 있다.
  4. 파이어폭스 브라우저에서 개인 meta-data 를 저장할 때 SQLite 를 사용하고 있으며, Mozilla 의 Thunderbird Email Reader 에서도 사용하고 있다.
  5. Google 은 Desktop for Mac 과 Google Gears, 휴대폰 Android OS, 크롬 웹 브라우저에서 사용하고 있다.
  6. QuickBooks 와 TurboTax 에서 사용자 에러를 수집하기 위해서 SQLite 를 사용하고 있다.
  7. 백신 프로그램에서 SQLite 를 사용하고 있다.
  8. SQLite 의 메일링 리스트를 보면 적어도 하나 이상의 Microsoft 게임 프로그램 개발자 그룹에서 사용하고 있는 것으로 생각된다. 실제로 게임이 릴리스되거나 아직도 SQLite 를 쓰고 있다면 말이죠.
  9. 유명한 프로그래밍 언어인 PHP 는 SQLite2 와 SQLite3 를 포함하고 있다.
  10. SQLite 는 Python 2.5 부터 포함되어 있다.
  11. REALbasic 프로그래밍 환경은 AES 암호화를 지원하는 SQLite 버전을 포함하고 있다.
  12. Mac OS X 와 Windows 의 Skype 클라이언트에서 SQLite 를 사용하고 있다.
  13. Solaris 10 에서는 서비스 관리 시설에서 SQLite 저장 포멧을 사용하고 있다. 그래서 unix 의 고전적인 파일인 /etc/inittab 파일을 SQLite 데이타베이스로 대체하였다.

faq

$db = new SQLite3;
$statement = $db->prepare('SELECT * FROM table WHERE id = :id;');
$statement->bindValue(':id', $id);
 
$result = $statement->execute();

설치

sudo apt-get install php-sqlite3

도구

명령줄

db 열기

sqlite3 test.db

없어도 열림. 이후 작업을 하면 파일이 생성됨.

mode

.mode csv

csv 파일 다루는 것으로 설정.

import

.import ./userdata2.csv user2

csv 파일을 user2 테이블로 가져온다. 해당 테이블이 없다면 첫행의 내용을 제목(필드 이름)으로 사용한다.

역링크