본문 바로가기

프로그래밍 언어/SQL

[SQLite] SQLite DB와 table 생성

 

SQLite를 처음 사용하려면 먼저 DB와 table을 만들어야 한다.

 

만들기 위해서는 sqlite exe 파일이 있어야 하는데,

 

이는 아래 링크의 SQLite 홈페이지에서 다운로드할 수 있다.

 

('sqlite'를 검색해도 나온다)

 

SQLite Home Page

SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine. SQLite is the most used database engine in the world. SQLite is built into all mobile phones and most computers and comes bu

www.sqlite.org

https://www.sqlite.org/index.html

 

 

여기에서 'Download'에 들어가

 

'Precompiled Binaries for Windows' 중 sqlite-tools.zip 파일을 다운로드한다.

 

 

 

이 파일의 압축을 풀어보면 총 3개의 exe 파일이 있다.

 

이 중 sqlite3.exe 파일만 있으면 된다.

 

이 파일을 DB 생성하려는 폴더로 옮긴 뒤, 실행해보면

 

 

아래와 같은 명령 프롬프트가 뜰 것이다.

 

명령 프롬프트에서 사용할 명령어는 아래와 같다.

.open DB명.db3  // DB파일 생성 또는 open. (없으면 생성, 이미 있으면 open)

CREATE TABLE 테이블명 (  // open한 DB파일 안에 TABLE 생성.
    칼럼명1 데이터타입,
    칼럼명2 데이터타입,
    ...
    );

.schema 테이블명  // 생성된 TABLE의 정보 확인. (위의 CREATE 내용 출력)

INSERT INTO 테이블명 VALUES(칼럼값1, 칼럼값2, ...);  // TABLE에 값들을 칼럼 순으로 저장.

SELECT 검색조건 FROM 테이블명;  // TABLE에서 조건에 해당하는 값 출력.

 

 

여기에서 칼럼의 타입으로는

 

NULL, INTEGER, REAL, TEXT, BLOB가 사용될 수 있다.

 

Boolean 값은 INTEGER의 0(false)과 1(true)로 저장된다고 한다.

 

 

그리고 VARCHAR(정수)라는 타입이 있는데,

 

이는 입력한 정수만큼의 길이를 가지는 문자형이라는 의미이다.

 

 

아래는 예시 코드이다.

.open TestDB.db3

CREATE TABLE TestTABLE (
    id INTEGER,  // integer(소문자)도 가능.
    name VARCHAR(20) NOT NULL,  // varchar(20) not null도 가능.
    phone VARCHAR(13)
    );

INSERT INTO TestTABLE VALUES(0, 'ReRoot0', '010-0000-1111');
INSERT INTO TestTABLE VALUES(1, 'ReRoot1', '010-1111-0000');

SELECT * FROM TestTABLE;  // *은 TABLE 내 모든 값 출력.
SELECT name FROM TestTABLE;  // TABLE 내 모든 name값 출력.

 

여기에서 NOT NULL은 해당 칼럼의 값이 NULL이 될 수 없다는 것으로,

 

실제로 INSERT 해보면 phone 칼럼에는 NULL이 적용 가능 하지만,

 

 

name 칼럼에는 아래와 같은 Error가 발생한다.