데이터 베이스를 이용하기 위해서는 당연히 Table 을 만든 후 사용할 자료를 넣어야 한다. 이 때 사용하는 구문이 insert into 이다.
 
  실습을 위해 다시 프로그램을 인수없이(더블클릭해서) 실행시켜보자. 지난 번에 사용한 테이블을 다시 사용해 보겠다.
====================================================================
sqlite> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(2), birth DATE, death DATE);
====================================================================
  성 격이 급한 사람이라면 sqlite> 이 다음에 있는 것을 복사한다음, 콘솔창으로 붙여넣기 하는게 좋다. 넣고 나서 엔터 치면 제대로 들어갔다면 아무 에러표시 없다. 이게 제대로 들어 갔는지 확인 하는 방법을 pet 이라는 Table 이 있는지 확인하면 된다. mysql 에서 SHOW TABLES; 하면 되겠지만 여기서는 mysql 이기 때문에 다음과 같이 하면 그 밑에 줄과 같이 나온다.
====================================================================
sqlite> .tables
pet
====================================================================

  그 리고 테이블이 내가 요구한 대로 만들어 졌는지 확인하려면 mysql 에서는 mysql> DESCRIBE pet; 이라고 하면 아주 자세히 잘 보여주는데 sqlite 는 .schema pet 이 그나마 가장 잘 보여주는 것 같다.
====================================================================
sqlite> .schema pet
CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex
CHAR(2), birth DATE, death DATE);
sqlite>
====================================================================
 여기서 보다시피 내가 만든 테이블을 그대로 보여준다. (이 방법 외에 더 좋은 방법이 있는지 연구중이다. )

  이제 본격적으로 데이터를 넣어보자. MySQL 레퍼런스 중간 에 있는 "3.3 테이블에 자료를 넣어 보자." 끝 부분에 insert into 구분이 나와있다.
SQLite 에서도 그대로 사용할 수 있다.
====================================================================
sqlite> INSERT INTO pet
...> VALUES('Puffball', 'Diane', 'hamster', 'f', '1999-03-30', NULL);
====================================================================
역 시 아무에러 표시도 없어야 잘 들어간 것이다. 이 방법은 우리가 앞서 테이블을 만들 때 사용했던 자료대로 데이터가 들어 간 것이다. 앞서 테이블을 만들 때 name, owner, species, sex, birth, death 순으로 자료의 구조를 만들었다. 바로 위에서 그 순서대로 자료를 넣은 것이다.

자료가 잘 들어 갔는지 확인해 보자. select * from pet; 하면 자료들을 확인할 수 있다. 물론 SQL 표준문이다.(이 말은 당연히 mysql 에서도 사용가능하다는 말이다. )
====================================================================
sqlite> select * from pet;
Puffball|Diane|hamster|f|1999-03-30|
====================================================================
( 너무 단순히 자료만 나오가 눈으로 보기 힘들어서 불편해 하는 사람이 많을 것 같다. 옵션을 주면 mysql 처럼 조금 보기 좋게 만들 수 있다.)

최종 수정일 : 2006/10/29 12:15

작성자 : 한밀(승룡) 버전 : 0.1.1
데이터 베이스 프로그램이라는 것은 당연히 데이터를 넣을 수 있어야 한다. 그러기 위해서는 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