데이터 베이스 프로그램이라는 것은 당연히 데이터를 넣을 수 있어야 한다. 그러기 위해서는 Table 을 만들고 그 안에 어떠한 데이터를 넣을 것인지 정의해 놓아야 한다.

SQL 에 대해 모르는 사람을 위해 간단히 설명을 하면 우선 Table 을 만들어야 한다. Table 이 우리말로 표(도표)이다. 그래서 간단히 표라고 생각하면 된다. 그런데 SQL 안에 여러개의 표를 만들 수 있다. 다시말해 여러개의 데이터 묶음을 저장해 놓을 수 있다. 그래서 그 표에 이름을 붙여주어야 한다. 더 쉽게 생각하기 위해 표를 한 번의 번호 별로 있는 성적표라고 생각해 보자. 성적표 맨 첫 행은 이름, 수학, 영어, 이런 식으로 그 다음 행에 오는 것들의 성격을 넣어 났다. 이것이 열이름이다. 그리고 각 행은 번호로 구별해 났다.

MySQL 튜토리얼을 보면서 따라해 보자. 중간 쯤의"3.2 테이블 만들기" 를 따라 해 보겠다. 우선 SQLite을 인수 없이 실행시키자. (그냥 더블클릭 해서 실행하자)

실행시키면 ".help" 라는 명령어가 보인다. 한 번 쳐보자. 끝에 세미콜론을 붙이면 절대 안된다. 그냥 .help 만 쳐라.
===========================================================
sqlite> .help
.databases List names and files of attached databases
.dump ?TABLE? ... Dump the database in an SQL text format
--------- 너무 길어서 줄임 --------------------
=============================================================
이런 식으로 . 으로 시작하는 SQLite에서만 제공하는 기능을 적어 놓았다. 주의한 것은 .help 를 치듯이 세미콜론을 붙이면 안된다. 이것 붙이다가 잘못된 에러메세지가 뜨기도 한다.

MySQL 튜토리얼을 따라해 보자.

앞 에 mysql> 이라고 붙은 것은 mysql 에서 사용 가능한 것들이다. 당연히 sqlite 에서는 sqlite> 라고 시작한다.

mysql> SHOW TABLES;
My SQL 에서 담고 있는 Table 을 보여 달라는 것이다. 이게 SQL92 의 표준 문이 아닌 것 같다. SQLite 에서 이 것 치면 오류가 난다. 대신 앞에서 봤던 점(.)으로 시작하는 SQLite 전용문을 이용한다.
sqlite> .tables
이렇게 하면 된다. 처음 시작했다면 아무것도 안 보일 것이다. 아직 테이블을 만들지 안아서 이다.


mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
-> species VARCHAR(20), sex CHAR(2), birth DATE, death DATE);
은 SQL 표준 문이기 때문에 그대로 사용할 수 있다.

====================================================================
sqlite> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
...> species VARCHAR(20), sex CHAR(2), birth DATE, death DATE);
====================================================================
CREATE TABLE 을 소문자로 써도 상관없다. 대소문자를 가리지 않는다. (다만 앞에서 나왔던 종료하는 코는 .quit 같이 점으로 시작하는 SQLite 에서만 사용가능 한 것은 대소문자를 구분한다. )

당연히 이 문을 한줄로 입력해도 잘 된다.
====================================================================
sqlite> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(2), birth DATE, death DATE);
====================================================================

입력후 아무 말도 안 나와야 잘 입력된 것이다. 뭔가 잘 못됐으면 error 가 뜬다.

입력이 잘 됐는지 확인 하려만 앞에 나왔던 .tables 를 이용하여 Table 이 있는지 확인한다.
====================================================================
sqlite> .tables
pet
====================================================================
<br />
최종 수정일 : 2006/10/18 00:05
작성자 : 한밀(승룡) 버전 : 0.1.1
모든 sql 문은 끝이 ; (세미콜론)으로 끝나야 한다. 간혹가다 이걸 빼먹고 왜 안되냐고 탓하는 경우가 있다.

우선 SQLite 를 실행해 보자. 그냥 연습삼아 하는 것이니까 앞에서 말한 것 처럼, 파일을 만들 필요가 없다. 그래서 그냥 sqlite3.exe 를 콘솔에서 실행하거나 더블클릭해서 실행시켜보자. 우선
=========================
sqlite>
=========================
sqlite> 라고 써 있는 부분옆에 커서가 깜박이는 것을 볼수 있다. 내가 예제를 보일 때 이 옆에 있는 내용은 내가 직접 친것이라는 뜻이다. ...> 나 sqlite> 이것 옆에 있는 것도 내가 직접 친 것이다. 이 외는 자동으로 출력되는 것 들이다.
간단히 아무거나 써 넣자, 난 그냥 45 라고 쳤다.
============================
sqlite> 45
...>
=============================
그랬더니 ...> 가 나온다. 계속 입력을 기다리는 표시다. 앞에서 설명했들이 모든 SQL 문 끝은 ; 가 들어가야 한다. 그래서 입력이 안 끝난지 알고 기다리고 있는 표시이다. 다시 ; 을 입력하면
==============================
sqlite> 45
...> ;
SQL error: near "45": syntax error
sqlite>
================================
에러 표시가 뜨면서 다시 입력을 기다린다.
(간혼 세미콜론을 쳤는데도 명령을 받아들이지 않고 ...> 가 나오는 경우가 있다. 그 때는 ' 나 " 같은 따옴표를 잘 묶어두지 않고 어디엔가 하나가 빠졌기 때문이다. )

가장 간단한 select 문을 사용해보자. select 문은 질의 하기 위해 사용된다. 안에 무슨 데이터가 있냐고 물어보는 문이다. 또한 굳이 안에 데이터와 상관없는 질의도 할 수 있다. 두번째의 경우(데이터와 상관없는 질의를 할 경우) 에는 출력문 처럼 이용할 수 있다.
=================================
sqlite> select "Hello, world";
Hello, world
===================================
보다시피 Hello, world 를 출력한다. 다시 말하지만 꼭 세마콜론(;)을 붙이기 바란다. 이 와 SQLite 에서 제공하는 함수도 이용해 볼 수 있다.

=================================
sqlite> Select "Hello, world";
Hello, world
==================================
대문자를 사용했는데도 사용가능 하다. 결국, 세미콜론을 붙이는 SQL 문의 경우에는 대소문자를 구별하지 않는다는 것이다. 나중에 배우는 점(.)으로 시작하는 SQltie 에서 제공하는 기능들은 대소문자 구별한다.

SQLite 에서 제공하는 함수 들도 select 문을 이용해 알아볼 수 있다.

이 My SQL 강의 중간 쯤에 보면 SQL 버전을 알아내는 방법으로 SELECT VERSION(); 라는 문장이 나온다. SQLite 에서도 버전을 알 아 볼 수 있는 함수가 있다. sqlite_version() 라는 함수이다.
=================================
sqlite> select sqlite_version();
3.3.7
====================================
대충 감이 왔으리라고 생각한다. 마치 C 언어의 printf 처럼 select 를 이용할 수 있다. <br />
<br />
최종 수정일 :  2006/10/16 00:00
작성자 : 한밀(승룡) 버전 : 0.1.1
http://wiki.kldp.org/Translations/MySQL_Tutorial-KLDP KLDP 에 있는 MySQL 튜토리얼이다. 여기서 사용한 방법되로 SQLite 에서도 어느정도 사용할 수 있는지 확인해 보면서 공부했다. 참고로 내 환경은 window xp 이다. 그래서 리눅스에서는 프로그램 실행 방법 다를 수도 있을 것 같다. (물론 크게 차이나지 않을것이다)그리고 SQLite 버전은 3.3.7 이다.

SQLite 홈페이지 에 가면 다양한 플랫폼의 SQLite 을 다운 받을 수 있다. 다운 받아보니 355KB 밖에 안한다.

실행방법은 간단하다. 그냥 더블클릭 하거나 콘솔(윈도우즈 에서는 command 나 cmd ) 를 띄어 그 파일이 있는 디렉토리(폴더)로 이동하여 sqlite.exe 를 실행해주면 된다. 실행하면 다음과 같이 뜬다.
=======================================================
SQLite version 3.3.7
Enter ".help" for instructions
sqlite>
=======================================================
SQLite 는 다른 SQL 과 달리 사용자에 로그인 이런것이 없다. 보안대책도 따로 없는 것 같다. 또 사용자가 넣은 데이터에 대해 파일로 저장한다. 그리고 그 데이터를 다시 불러올 때도 그 저장된 파일을 이용한다. 간단히 엑셀에 같이 생각하면 된다. 데이터를 적고 그 데이터를 파일로 저장한다. 백업할려면 그 데이타 파일을 복사하면 된다. 그리고 그 데이터 다시 불러 올 때 그 파일을 이용한다.

이런 식으로 프로그램 인자(실행 옵션)없이 실행 하면 나중에 여기에 적은 데이터를 저장할 방법이 없다. 그래서 실행할 때는 콘솔창(윈도우즈의 경우 cmd 나 command)을 연 다음 데이터를 저장할 파일을 지정해 주면서 실행해야 한다. 따라서
sqltie3.exe test.db
이런 식으로 실행하면 사용자가 넣은 데이터가 test.db 라는 파일로 저장되게 된다. (물론 확장자를 원하는 대로 바꿀 수 있다. ) 만약 test.db 라는 파일이 이미 존재 했다면 SQLite 가 실행하면서 자동으로 그 안의 내용을 불러오게 된다.

시작하는 방법을 알았으니 이제 종료 방법을 알아보자. ".quit" 라고 입력하면 종료한다. 여기서 주의 할 것은 점(.)으로 시작하고 끝에 세미콜론이 없다는 것이다. 대소문자를 구별하니까 대문자로 입력해서도 안된다. 나중에 계속 글을 읽다보면 알겠지만 점(.)으로 시작한다는 것은 SQLite 에서 제공하는 명령어이다. 그레서 표준 SQL 문이 아니라는 것이다.<br />
<br />
최종 수정일 :  2006/10/15 23:25
작성자 : 한밀(승룡) 버전 : 0.1.1