SQLite | 데이터 조회 | 데이터 조회 (SELECT문)


테이블에 저장된 데이터를 조회하려면 SELECT 문을 사용한다. 여기에서는 SELECT 문을 사용하여 데이터를 받아 오는 방법에 대해 설명한다.

SELECT 문을 사용하여 데이터 조회

테이블에 저장된 데이터를 조회하려면 SELECT 문을 사용한다. 기본 형식은 다음과 같다.

SELECT 컬럼명1, 컬럼명2, ... FROM 테이블명;

조회할 테이블명을 FROM 다음에 작성한다. 그리고 테이블에서 어떤 컬럼의 값을 받아 올 것인가를 SELECT 다음에 작성한다. 여러 컬럼의 값을 받아오는 경우는 쉼표(,)로 구분하여 컬럼을 지정한다.

또한 조건식을 지정하고 없으면 테이블에 포함된 모든 데이터를 가져온다. 특정 조건을 만족하는 데이터 만 조회하는 방법은 “조회할 데이터의 조건을 설정 (WHERE 절)“에서 설명한다.

실제로 조회를 해보도록 하자. 먼저 다음과 같이 테이블을 만든다.

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

INSERT 문을 사용하여 테이블에 데이터를 추가한다.

insert into user values (1, 'devkuma', 'Seoul');
insert into user values (2, 'kimkc', 'Busan');
insert into user values (3, 'araikuma', 'Seoul');
insert into user values (4, 'happykuma', 'Seoul');
insert into user values (5, 'mykuma', 'Daejeon');
sqlite> insert into user values (1, 'devkuma', 'Seoul');
sqlite> insert into user values (2, 'kimkc', 'Busan');
sqlite> insert into user values (3, 'araikuma', 'Seoul');
sqlite> insert into user values (4, 'happykuma', 'Seoul');
sqlite> insert into user values (5, 'mykuma', 'Daejeon');
sqlite> 

그러면 SELECT 문을 사용하여 테이블에서 데이터를 조회해 보도록 하자. user 테이블의 id 컬럼와 name 컬럼의 값을 받아오려면 다음과 같이 실행한다.

select id, name from user;

지정된 테이블의 지정된 컬럼의 값을 받아올 수 있다.

sqlite> select id, name from user;
1|devkuma
2|kimkc
3|araikuma
4|happykuma
5|mykuma

여기서 조회된 데이터의 표시 방법은 SQLite 명령으로 변경할 수 있다. 자세한 내용은 “SQLite 명령 사용"을 참조한다. 이제부터는 다음과 같이 표시 방법을 변경하여 표시한다.

.header on
.mode column
sqlite> .header on
sqlite> .mode column
sqlite> 
sqlite> select id, name from user;
id          name      
----------  ----------
1           devkuma   
2           kimkc     
3           araikuma  
4           happykuma 
5           mykuma    
sqlite> 

모든 컬럼의 값을 받아오는 방법

테이블에 있는 모든 컬럼의 값을 조회하려면, SELECT 문으로 컬럼을 모두 열거하여 받아올 수 있다.

select id, name, address from user;
sqlite> select id, name, address from user;
id          name        address   
----------  ----------  ----------
1           devkuma     Seoul     
2           kimkc       Busan     
3           araikuma    Seoul     
4           happykuma   Seoul     
5           mykuma      Daejeon   
sqlite> 

이렇게 컬럼을 지정하는 것 외에, 모든 컬럼을 순서대로 받아오는 방법으로 컬럼 대신에 별표(*)를 작성하면 모든 컬럼을 지정한 것과 동일한 결과를 얻을 수 있다..

SELECT * FROM 테이블명;

그럼 앞에서의 user 테이블에서 *을 사용하여 데이터를 받아온다.

select * from user;

모든 컬럼의 값을 받아올 수 있다.

sqlite> select * from user;
id          name        address   
----------  ----------  ----------
1           devkuma     Seoul     
2           kimkc       Busan     
3           araikuma    Seoul     
4           happykuma   Seoul     
5           mykuma      Daejeon   
sqlite> 

다만 rowid 같은 특별한 값은 별표(*)으로 받아 올 수 없다. 더해서 받아오고 싶다면 별표(*)와 쉼표로 구분하여 지정함으로써 받아올 수 있다.

select *, rowid from user;

실제로 SQL문을 실행해 보면, 모든 컬럼 값에 더해서 추가로 지정한 rowid 값도 얻을 수 있다.

sqlite> select *, rowid from user;
id          name        address     rowid     
----------  ----------  ----------  ----------
1           devkuma     Seoul       1         
2           kimkc       Busan       2         
3           araikuma    Seoul       3         
4           happykuma   Seoul       4         
5           mykuma      Daejeon     5         
sqlite>