본문 바로가기

프로그래밍&IT/SQLite3

기본적인 특징 & 자료형



개인적인 용도로 작은 dbms가 필요해져서

기존에 알고있떤 SQLite3에 대해 학습할 필요가 생겼습니다.



주요 특징

단일 데이터베이스 파일

db의 모든 정보가 단 하나의 파일에 저장. 테이블스키마, 레코드데이터, 인덱스같은 정보가 한 파일에 저장

SQLite API로 데이터베이스 열때도 해당파일의 이름을 인자로 받음. 타 db파일에 있는 데이터를 이용하는것도 가능.

이땐 attach/detach문을 이용해 타 db파일에 들어있는 데이터를 연동하면된다고


단, 단일파일로 동작하기에 프로그램이 다중프로세스나 다중스레드로 동작하는 경우 lock이슈가 발생할수있다


설정파일

SQLIte는 라이브러리 혀앹로 제공. 별도 설정파일이 없고 별도 서버를 구동하는 등의 사전작업없다


간결성

매우간결하나 페이지 크기 제한있다


라이선스

public domain.  저잦ㄱ자가 자신의 이사로 저작권을 포기한 경우


동시성

읽기는 여러 프로세스에서 가능. 쓰기는 한 순간에 오직 하나의 프로세스만 가능


네트워킹

별도 db서버로 구동되지않고 프로그램에 포함된 라이브러리 형태로 동작. 특별한 경우에 한해 NFS를 이용. 지연시간문제나 파일잠금과 관련한 이슈가 생길 가능성 있음


동적자료형

자료형은 그것을 저장하는 저장소가 아닌 값 자체에 의해 결정된다.

테이블생성시 선언한 컬럼의 자료형과 일치하지 않는데이터도 저장가능


트리거지원

for each statement트리거 제외하고 모든 트리거 기능 사용할수있다. PRAGMA recursive_triggers구문 이용시 재귀적 트리거 기능을 활성화할수있다


alter table 지원


left outer join만 지원

right, full outer 는 left구문을 활용해 쓰면 된다


view

기본적으로 read only 뷰.트리거이용하면  delete, insert, update같은 연산 수행효과 가능


http://sqlite.org/download.html

기본적으로 아래의 배포판이 존재하며, 소스를 다운받아 컴파일하거나 할수 있다

라이브러리: db를 대상으로 데이터의 입력 조회 수정 삭제 등의 연산 수행

커맨드라인: 내부적으로 SQLite3엔진 내장하고 있어서 독립적으로 실행가능


메인 사이트 내용



기본 자료형

자료형 설명
INTEGER 부호를 갖는 정수형 데이터
REAL (FLOAT.DOUBLE) 부호를 갖는 부동소수점 데이터
TEXT 문자열 데이터
BLOB 바이너리 데이터 (Binary Large OBject)
null 값이 정의되지않거나 존재하지 않음