iOS에서 사용할 SQLite3 의 사용법에 대해 정리한다.
원문 링크 :
http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html
내가 작성하며 테스트한 환경 : SQLite version 3.7.7.1 2011-06-28 17:39:05
OSX에서 확인하는 경우 Xcode를 설치를 하면 기본으로 설치가 되는 것으로 알고 있다.
Common Commands
database 생성
Terminal 창을 열어 다음과 같이 입력하면 test.db라는 이름의 데이터 베이스가 생성된다.
$ sqlite3 test.db
SQLite version 3.7.7.1 2011-06-28 17:39:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .quit
$
종료를 하기 위한 명령어는 .q .quit .exit 중에 하나를 입력하면 명령 프롬프트로 돌아간다.
table 생성
다음과 같이 테이블(t1)을 생성한다.
$ sqlite3 test.db "create table t1 (t1key INTEGER PRIVAMY KEY,data TEXT, num double, timeEnter DATE);"
생성된 테이블에 데이터 삽입
insert 질의문을 이용하여 테이블에 데이터를 삽입한다.
$ sqlite3 test.db "insert into t1 (data,num) values ('This is sample data',3);"
$ sqlite3 test.db "insert into t1 (data,num) values ('More sample data',6);"
$ sqlite3 test.db "insert into t1 (data,num) values ('And a little more',9);"
삽인된 후의 테이블 데이터 전체 내용 확인
select 질의문을 이용하여 테이블의 내용을 확인한다. 튜토리얼의 내용에는 기본키로 설정한 t1key가 자동 증가가 된다고 되어 있는데 내 맥에서는 자동 증가가 되질 않는지 표시가 되질 않았다. autoincrement 명령어를 주어야 하나보다.
$ sqlite3 test.db "select * from t1;"
|This is sample data|3.0|
|More sample data|6.0||And a little more|9.0|
지정된 개수의 행만 출력
limit 명령(?)으로 제한을 줄 수 있다. 2개의 행만을 출력.
$ sqlite3 test.db "select * from t1 limit 2;"
|This is sample data|3.0|
|More sample data|6.0|
Offset 주기
offset 명령(?)으로 오프셋을 줄 수 있다. 다음과 같이 하면 t1key를 기준하여 2개를 오프셋을 준 상태에서 하나의 행만을 출력한다.
$ sqlite3 test.db "select * from t1 order by t1key limit 1 offset 2;"
|And a little more|9.0|
table 이름 보기
.table 명령어를 이용하여 테이블의 이름을 볼 수 있다.
$ sqlite3 test.db ".table"
t1
테이블 리스트의 더 자세한 내용 보기
sqlite_master 을 이용하여 표시할 수 있다.
$ sqlite3 test.db "select * from sqlite_master;"
table|t1|t1|2|CREATE TABLE t1 (t1key INTEGER PRIVAMY KEY,data TEXT, NUM double, timeEnter DATE)
database로 실행된 모든 SQL 정보를 확인.
$ sqlite3 test.db ".dump"
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE t1 (t1key INTEGER PRIVAMY KEY,data TEXT, NUM double, timeEnter DATE);
INSERT INTO "t1" VALUES(NULL,'this is sample data',3.0,NULL);
INSERT INTO "t1" VALUES(NULL,'More sample data',6.0,NULL);
INSERT INTO "t1" VALUES(NULL,'And a little more',9.0,NULL);
COMMIT;
==============================================================
내가 확인한 내용을 여기 까지 이며, 추 후 필요한 내용들은 확인 후 추가 할 것이다. 좀더 구체적이고 자세한 내용을 원하면 내용 첫부분의 원문으로 링크를 쫒아가면된다.
그리고, 원문과 내용이 약간 다를 수 있으므로 의문이 생기거나 이상한 부분도 원문을 확인 하시길...