Sqlite3 설치 및 사용

DB 2016. 4. 27. 16:52

간단한 DB 실습으로 sqlite3를 설치한 후, 사용해보도록 하겠습니다.


먼저 SQlite는 https://www.sqlite.org/ 에서 다운로드 받을 수 있습니다.

- 위의 화면메뉴에서 Download를 클릭한 후, 아래로 내리다보면 아래 그림과 같이 Windows환경에서 설치하여 사용할 수 있습니다.


- sqlite-tools 를 선택하여 다운로드받고, 압축을 풀어주면 


- 다음과 같이 3개의 실행파일이 있습니다.

Windows환경에서 Sqlite3 를 사용하기 위해 cmd를 이용합니다.

Windows키 + R을 눌러서 실행창을 띄우고, cmd 를 입력하여 실행한 후, 위의 sqlite3.exe가 존재하는 디렉토리로 이동한 후 사용합니다.


사용해보기 이전에, 위의 디렉토리(sqlite3.exe가 존재하는)에 텍스트파일을 하나 만들어서 텍스트파일 내의 데이터를 이용하는 실습을 해보도록 해보겠습니다.

저는 ch6 이라는 이름의 텍스트파일을 만들어 준 후, 해당 내용에 아래의 내용을 입력한 후, 저장해주었습니다.

CREATE TABLE STUDENT   

( Sno INT NOT NULL,

     Sname CHAR(10) NOT NULL,

     Year INT,

     Dept CHAR(20),

     PRIMARY KEY(Sno));


CREATE TABLE COURSE

   ( Cno CHAR(6) NOT NULL,

     Cname CHAR(20) NOT NULL,

     Credit INT,

     Dept CHAR(20),

     PRname CHAR(10),

     PRIMARY KEY(Cno));


CREATE TABLE ENROL

   ( Sno INT NOT NULL,

     Cno CHAR(6) NOT NULL,

     Grade CHAR(1),

     Midterm INT,

     Final INT,

     PRIMARY KEY(Sno, Cno),

     FOREIGN KEY(Sno) REFERENCES STUDENT(Sno)

         ON DELETE CASCADE

         ON UPDATE CASCADE,

     FOREIGN KEY(Cno) REFERENCES COURSE

         ON DELETE CASCADE

         ON UPDATE CASCADE,

     CHECK(Midterm>=0 AND Midterm<=100 AND Final>=0 AND Final<=100));


BEGIN;


INSERT INTO STUDENT VALUES(100, '나수영', 4, '컴퓨터');

INSERT INTO STUDENT VALUES(200, '이찬수', 3, '전기');

INSERT INTO STUDENT VALUES(300, '정기태', 1, '컴퓨터');

INSERT INTO STUDENT VALUES(400, '송병길', 4, '컴퓨터');

INSERT INTO STUDENT VALUES(500, '박종화', 2, '산공');


INSERT INTO COURSE VALUES('C123', '프로그래밍', 3, '컴퓨터', '김성국');

INSERT INTO COURSE VALUES('C312', '자료구조',   3, '컴퓨터', '황수관');

INSERT INTO COURSE VALUES('C324', '화일구조',   3, '컴퓨터', '이규찬');

INSERT INTO COURSE VALUES('C413', '데이타베이스', 3, '컴퓨터', '이일로');

INSERT INTO COURSE VALUES('E412', '반도체',     3, '전자', '홍봉진');


INSERT INTO ENROL VALUES(100, 'C413', 'A', 90, 95);

INSERT INTO ENROL VALUES(100, 'E412', 'A', 95, 95);

INSERT INTO ENROL VALUES(200, 'C123', 'B', 85, 80);

INSERT INTO ENROL VALUES(300, 'C312', 'A', 90, 95);

INSERT INTO ENROL VALUES(300, 'C324', 'C', 75, 75);

INSERT INTO ENROL VALUES(300, 'C413', 'A', 95, 90);

INSERT INTO ENROL VALUES(400, 'C312', 'A', 90, 95);

INSERT INTO ENROL VALUES(400, 'C324', 'A', 95, 90);

INSERT INTO ENROL VALUES(400, 'C413', 'B', 80, 85);

INSERT INTO ENROL VALUES(400, 'E412', 'C', 65, 75);

INSERT INTO ENROL VALUES(500, 'C312', 'B', 85, 80);


COMMIT;


위 내용을 정리하면, STUDENT, COURSE, ENROL이라는 테이블을 만들어 준 뒤, 테이블 내부에 각각 인스턴스들을 지정해주는 모습입니다.

대표적으로 STUDENT 테이블로 예시를 들면,

--------------------------------

 Sno INT NOT NULL,

 Sname CHAR(10) NOT NULL,

 Year INT,

 Dept CHAR(20),

 PRIMARY KEY(Sno));

--------------------------------

-> Sno를 INT형에 NULL이 아닌 값으로 지정해주겠다는 뜻이고, Sname은 크기가 10인 CHAR형에 NULL이 아닌 값을, Year는 INT형, ... 과 같이 설정해주는 모습입니다.

마지막으로 PRIMARY KEY를 통해 Sno를 기본키로 설정해주는 모습입니다. 

(이때, Sno는 기본키가 되므로 NULL이 들어가서는 안됩니다.)


다른 테이블들도 유사한 모습이라 생략하도록 하고, 특별히 ENROL 테이블에서는 Foreign Key(외래 키)를 통해 STUDENT 테이블의 Sno를 외래 키로 설정해주는 부분입니다.


보기와 같이 설정을 마쳐준 후, 이제 데이터들을 삽입해주는 부분은

BEGIN ~ COMMIT 사이입니다.

----------------------------------------------------------------

...

INSERT INTO STUDENT VALUES(100, '나수영', 4, '컴퓨터');

...

----------------------------------------------------------------

 -> 'STUDENT 테이블에 ( 100, '나수영', 4, '컴퓨터' ) 의 값을 삽입해주겠다' 라는 뜻입니다.

이때, 값을 입력해주는 순서는 위에서 테이블 내에 인스턴스를 정의해준 순서대로 입력해주어야합니다.!


차례로 STUDENT와 COURSE, ENROL 테이블에 데이터를 삽입해주는 모습입니다.

다음 포스팅에서는 질의문을 사용하는 실습을 해보겠습니다.

'DB' 카테고리의 다른 글

sqlite3 실습 - UPDATE 활용  (0) 2016.04.29
sqlite3 실습 - SELECT 활용  (2) 2016.04.29
시스템 카탈로그(System Catalog)  (0) 2016.04.24
커서(Cursor)의 개념과 관련 명령어  (0) 2016.04.24
키(Key)의 개념과 종류  (0) 2016.04.24

WRITTEN BY
SiriusJ

,