SQLite 는 독립적이고, 서버가 필요 없으며, 특별한 설정을 할 필요도 없는, 트렌젝션이 가능한 SQL 데이타베이스 엔진으로 꾸준히 개발중인 Library 이다. SQLite는 Mysql나 PostgreSQL와 같은 데이터베이스 관리 시스템이지만, 서버가 아니라 응용 프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스이다.
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 를 널리 쓰고 있다. 메모리와 성능은 서로 교환적이다. 메모리 공간이 많을수록 속도는 빨라진다. 그럼에도 불구하고 작은 메모리 환경에서도 우수한 속도를 자랑한다.
$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
sqlite3 test.db
없어도 열림. 이후 작업을 하면 파일이 생성됨.
.mode csv
csv 파일 다루는 것으로 설정.
.import ./userdata2.csv user2
csv 파일을 user2 테이블로 가져온다. 해당 테이블이 없다면 첫행의 내용을 제목(필드 이름)으로 사용한다.