SQLite | 테이블 (Table) | 테이블 생성

데이터베이스에서 실제 값이 저장되는 곳이 테이블이다. 하나의 데이터베이스에 여러 테이블을 만들 수 있다. 여기에서는 테이블을 만드는 방법을 설명한다.

CREATE 문으로 테이블 생성

SQLite에서 테이블을 만드는 기본 구문은 다음과 같다.

CREATE TABLE 테이블명 (컬럼명1, 컬럼명2, ...);

테이블명은 임의의 이름을 지정할 수 있다. (단, sqlite_으로 시작하는 테이블명은 SQLite 자체가 사용하기에 지정할 수 없다)

테이블에는 적어도 하나의 컬럼이 필요하다. 여러 컬럼이 포함된 테이블은 쉼표(,)로 구분하여 작성한다.

그럼 실제로 테이블을 만들어 보자. 다음은 테이블명이 customer으로, 이 테이블에는 id와 name이라는 두 개의 컬럼이 포함된다.

create table customer (id, name);
sqlite> 
sqlite> create table customer (id, name);
sqlite> 

위와 같이 표시되면 테이블은 생성되었다.

컬럼에 데이터 타입을 지정하여 테이블 생성

SQLite에서 테이블을 만들 때, 컬럼에 데이터 타입을 지정하지 않아도 만들 수 있지만 지정할 수도 있다. (자세한 내용은 SQLite 데이터 타입을 참조한다) 컬럼에 데이터 타입을 지정하여 테이블을 생성하는 구문은 다음과 같다.

CREATE TABLE 테이블명 (컬럼명1 데이터타입, 컬럼명2 데이터타입, ...)

컬럼명 뒤에 공백을 사이에 두고 그 컬럼에 설정하는 데이터 타입을 지정한다.

그럼 실제로 테이블을 만들어 보자. 다음은 테이블명이 customer2이고, 이 테이블에는 id와 name이라는 두 개의 열이 포함되어 id 컬럼의 데이터는 INTERGER 타입, name 컬럼의 데이터 타입은 TEXT 타입이다.

create table customer2 (id integer, name text);
sqlite> 
sqlite> create table customer2 (id integer, name text);
sqlite> 

위와 같이 표시되면 테이블은 생성되었다.

데이터베이스에 작성되는 테이블 목록 확인

데이터베이스에 작성되는 테이블 목록을 확인하려면 SQLite 명령 .tables을 사용한다.

.tables
.tables? TABLE?

인수를 생략하면 생성된 모든 테이블 목록을 표시한다. 인수에 테이블명을 지정하면 지정한 값과 일치하는 테이블 목록을 표시한다.

그럼 목록을 확인해 보자.

.tables
sqlite> .tables
customer   customer2  test       test2    
sqlite> 

이 페이지에서 만든 customer customer2 두 테이블이 표시되었다.

인수를 넣어 테이블명 목록을 조회해 보자.

.tables
.table customer%
sqlite> .tables customer
customer
sqlite> 
sqlite> .table customer%
customer   customer2
sqlite> 

첫 번째는 정확한 테이블명을 인수로 넣었고, 두 번째는 퍼센트(%)를 사용하여 단어를 포함된 테이블을 조회하였다.




최종 수정 : 2019-11-13