SQLite 설치 / 간단사용법
SQLite는 MySQL나 PostgreSQL와 같은 데이터베이스 관리 시스템이지만, 서버가 아니라 응용 프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스이다. 영어권에서는 '에스큐엘라이트(ˌɛskjuːɛlˈlaɪt)'[3]또는 '시퀄라이트(ˈsiːkwəl.laɪt)'[4]라고 읽는다.
일반적인 RDBMS에 비해 대규모 작업에는 적합하지 않지만, 중소 규모라면 속도에 손색이 없다. 또 API는 단순히 라이브러리를 호출하는 것만 있으며, 데이터를 저장하는 데 하나의 파일만을 사용하는 것이 특징이다. 버전 3.3.8에서는 풀텍스트 검색 기능을 가진 FTS1 모듈이 지원된다. 컬럼을 삭제하거나 변경하는 것 등이 제한된다.
구글 안드로이드 운영 체제에 기본 탑재된 데이터베이스이기도 하다.
위키백과에서는 위와 같이 정의되어있다.
RDBMS( oracle, mssql, sysbase, mysql, mariadb 등)와 동일하게 ansi sql을 사용할 수 있다.
다른 RDBMS와의 가장 큰 차이점은 아래와 같다.
- 데이터베이스별로 파일1개로 구성된다.
- 로컬에 파일로 저장하므로 원격접속이 안된다. ( 웹서버와 DB서버를 별도로 구성 X, 다른 대안은 찾아보면 있다. 다른아이피의 PC를 마운트 해서 사용한다던가..등)
- 접속아이디나 패스워드가 없다.
- 다중 접속이 많아질 경우 예기치 않은 문제가 발생할 수 있다.
구글 안드로이드 운영 체제에 기본 탑재되어 있어 앱을 만들어본 경험이 있다면, 누구나 한번쯤은 사용해보고 들어봤을 것이다.
윈도우PC에서도 설치하여 사용할 수 있으며, 간단한 웹페이지를 구현할때도 별도의 설치과정이 없이 실행파일만 있으면 바로 사용할 수 있다.
1. SQLite 다운로드
www.sqlite.org/download.html 에 접속하여 sqllite-tools-win32-3340000.zip 파일을 다운로드 받는다.
2. 압축해제 후 sqlite3.exe 실행
적당한 곳(ex. C:\SQLite)에 압축을 푼 다음 sqlite.exe파일을 실행한다.
간혹 아래와 같이 Windows의 PC 보호라고 알림 창이 뜰 경우 "추가 정보"를 클릭 후 나타나는 "실행" 버튼을 클릭하면 된다.
3. sqlite 명령프롬프트
실행하면 윈도우 명령 프롬프트가 실행되면서 sqlite 상태로 들어간다.
5. 데이터베이스 생성
실행했으니 데이터베이스를 하나 만들고 테이블도 하나 만들어서 값을 입력하고 결과를 조회해보자
- 데이터베이스를 만드는 법은 2가지가 있는데, 명령 프롬프트에서 sqlite3를 실행하면서 만드는 방법과 sqlite3 안에 들어가서 만드는 방법이 있다.
방법1. sqlite3 실행과 동시에 만들기
sqlite3가 설치된 폴더로 이동 후 sqlite3 뒤에 생성할 데이터베이스파일명을 입력하면 된다.
방법2. sqlite3 실행 후 만들기 또는 이미 만들어진 데이터베이스 사용하기
6. 생성된 데이터베이스에 테이블 만들기
일반적인 DDL 문법으로 TEST_TABLE 이라는 테이블을 만들고 .table 명령으로 테이블 목록을 조회
7. 생성된 테이블에 데이터 넣고 조회 해보기
8. GUI 툴을 사용하여 편하게 입력한다.
보통 gui툴을 많이 사용하며, gui 툴은 sqlitebrowser 이나 dbeaver 를 많이 사용한다.
9. SQLite 간단 명령어 모음
설명 | 명령 |
데이터베이스 생성하면서 접속 | sqlite3 [데이터베이스명] |
접속된 상태에서 데이터베이스 생성 또는 변경 | .open [데이터베이스명] |
도움말 | .help |
데이터베이스 보기 | .database |
테이블목록 보기 | .table |
현재설정 보기 | .show |
데이터베이스 복제 | .clone [데이터베이스명] |
엑셀로 결과저장 | .excel 입력후 원하는 내용 입력 ex1) .excel .table ex2) .excel select * from 테이블명; |
프롬프트 종료 | .quit |
[데이터베이스명] = 파일명
10. SQLite 함수 모음
대부분의 함수는 oracle, mssql 과 같은 방법으로 사용할 수 있다.
설명 | 명령 | 예제 |
행수 반환 | count | select count(*) from 테이블 |
컬럼 합계 | sum, total | select sum(컬럼) from 테이블 |
컬럼 평균 | avg | select avg(컬럼) from 테이블 |
최대값 | max | select max(컬럼) from 테이블 |
최소값 | min | select min(컬럼) from 테이블 |
컬럼값 연결 | group_concat | select group_concat(컬럼) from 테이블 |
현재날짜 yyyy-mm-dd | date('now') | select date('now') |
현재날짜 hh24:mi:ss | time('time') | select time('now') |
현재날짜 yyyy-mm-dd hh24:mi:ss | datetime('now') | select datetime('now') |
날짜 포맷지정 yyyymmdd | strftime('%H%m%d','now') | select strftime('%H%m%d','now') |
문자열 반환 | length | select length(컬럼) from 테이블 |
소문자 변환 | lower | select lower(컬럼) from 테이블 |
대문자 변환 | upper | select upper(컬럼) from 테이블 |
문자열 치환 | replace(대상컬럼, 치환문자, 바꿀문자) | select replace(컬럼, '-','=') from 테이블 |
문자열 추출 | substr(문자열, 시작위치, 문자의길이) substr(문자열, 시작위치) |
select substr(컬럼,2,5) from 테이블 |
공백제거 | trim(문자열) - 양쪽 공백 제거 rtrim(문자열) - 오른쪽 공백 제거 ltrim(문자열) - 왼쪽 공백 제거 |
select trim(컬럼) from 테이블 |
반올림 | round(컬럼) | select round(컬럼) from 테이블 |
절대값 | abs(컬럼) | select abs(컬럼) from 테이블 |
난수생성 | random() | 0 ~ 9까지 랜덤값 구하기 select abs(random()) %10; |
최근 실행된(수정/삭제/추가) 쿼리문 행수 | changes() | select changes(); |
null 값 대체 | ifnull(값1, 값2) | 값1이 null일 경우 값2를 표시 값1이 null이 아닐 경우 값1을 표시 |
마지막 추가한 rowid(유니크값) 구하기 | last_insert_rowid() | 데이터 입력 후.. select last_insert_rowid(); |
데이터 타입 구하기 | typeof(값) | select typeof(1); select typeof('a'); |
SQLite 버전 확인 | sqlite_version() | select sqlite_version(); |
날짜 포맷지정 strftime에서 지정 포맷형식
특수 문자설명
특수문자 | 설명 |
%Y | 년 : 0000-9999 |
%m | 월 : 01-12 |
%d | 일 |
%W | 연초부터의 주수 : 00-53 |
%j | 연초부터의 경과 일수 : 001-366 |
%w | 요일 : 0-6 (일요일은 0, 토요일이 6) |
%H | 시 : 00-24 |
%M | 분 : 00-59 |
%S | 초 : 00-59 |
%f | 초 + 밀리 초 : SS.SSS |
%s | 1970-01-01 이후의 초 수 |
%J | 율리우스 일자 |
%% | % 문자 그 자체 |
'개발 > database' 카테고리의 다른 글
[PL/SQL Developer] 편리한 사용을 위한 환경 설정 (0) | 2021.01.18 |
---|---|
[mssql] 암호화 복호화 함수 (3) | 2021.01.17 |
[mssql] 정규표현식 특정 문자 변경 (0) | 2021.01.17 |
[oracle] 오라클 테이블 목록, 컬럼 상세 조회 (0) | 2021.01.17 |
[oracle] 오라클 설치 후 사용자 계정 만들기/권한 부여 (0) | 2021.01.17 |
댓글