반응형

SQLite에서는 커맨드 라인 도구를 사용하여 데이터베이스를 작성하거나 데이터 검색 등이 가능하다. 여기에서는 SQLite 커맨드 라인 도구를 사용할 때 어떻게 입력하면 좋을지에 대해 설명한다.

명령어 실행하기

SQLite 커맨드 라인 도구를 실행하려면 명령 프롬프트를 실행 한 후에 sqlite3 를 설치한 디렉토리로 이동하여 다음과 같이 실행한다. 도구가 기동하고 인수에 지정된 데이터베이스에 연결한다.

sqlite3 데이터베이스명

이번에는 이전에 만들었던 sample.sqlite3 데이터베이스에 연결하기 위해 다음과 같이 실행한다. (이전에 만든 파일이 지웠거나 없어도 연결은 된다.)

$ sqlite3 sample.sqlite3 
SQLite version 3.19.3 2017-06-27 16:48:08
Enter ".help" for usage hints.
sqlite> 

커맨드 라인 도구에는 커맨드 라인 도구에 대한 설정을 할 수 있는 SQLite 명령어 등을 실행하거나 임의의 SQL 문을 실행할 수 있다.

SQLite 명령어 .show을 실행해 보자. 명령은 명령어 이외에 필요에 따라 인수를 입력하고 [Enter] 키를 누르면 실행된다.

$ sqlite3 sample.sqlite3 
SQLite version 3.19.3 2017-06-27 16:48:08
Enter ".help" for usage hints.
sqlite> .show
        echo: off
         eqp: off
     explain: auto
     headers: off
        mode: list
   nullvalue: ""
      output: stdout
colseparator: "|"
rowseparator: "\n"
       stats: off
       width: 
    filename: sample.sqlite3
sqlite>

SQL 문 실행하기

이번에는 간단한 SQL 문을 실행해 보자. SQL 문이면 마지막에 세미콜론(;)을 입력 할 때까지가 하나의 SQL 문으로 처리되므로 [;]까지 입력 한 후에 [Enter] 키를 누르면 일에서 실행된다.

sqlite> create table user(id, name);
sqlite> insert into user(id, name) values (1, 'devkuma');
sqlite> insert into user(id, name) values (2, 'araikuma');
sqlite> select * from user;
1|devkuma
2|araikuma
sqlite> 

이전에 예전에 만든 테이블 user이 있다면 첫줄은 실행하지 않아도 된다.

장문의 SQL 문을 분할하여 입력하기

SQL 문에서는 하나의 SQL 문이 길어질 수 있다. 모든 문장을 한 번에 입력하려고 하면 입력 어려웠거나 어디까지 입력했는지 이해하기 어려운 경우가 있다.

sqlite> select id as user_id, name as user_name from user where id = 1 and name = 'devkuma' order by name desc;
1|devkuma
sqlite> 

이렇게 긴 경우에는 커맨드 라인 도구는 분할하여 입력 할 수도 있다. 입력 도중에 [Enter] 키를 눌르면 누른다.

sqlite> select id as user_id, name as user_name 
   ...> 

SQL 문은 마지막으로 [;]가 나타날 때까지가 하나의 문장으로 판단된다. [;]가 입력되지 않은 시점에서 [Enter] 키를 눌렀을 경우 아직 입력 도중이라고 판단되어 계속 입력 할 수 있다.

그럼 나머지를 모두 입력해 보자. 방금 처럼 적당한 타이밍에 [Enter] 키를 누른다.

sqlite> select id as user_id, name as user_name 
   ...> from user
   ...> where id = 1 and name = 'devkuma'
   ...> order by name desc
   ...> 

[Enter] 키를 누를 때 공백을 하나두고 입력 할 필요가 없다. 명령어 도중에 [Enter] 키를 누르면 자동으로 이전과 이후의 문장은 다른 단어로 처리된다.

SQL 문의 경우는 [;]가 포함 된 문장을 입력하고 [Enter] 키를 눌렀을 때 문장의 입력이 완료되었다고 판단되어 SQL 문이 실행된다.

sqlite> select id as user_id, name as user_name 
   ...> from user
   ...> where id = 1 and name = 'devkuma'
   ...> order by name desc
   ...> ;
1|devkuma
sqlite>

문장을 한줄에 입력했을 경우와 문장을 분할하여 입력하여 경우 모두 동일한 결과이므로 상황에 따라 사용을 하면 된다.

--

지금까지 SQLite 커맨드 라인 도구에서 명령이나 SQL 문을 어떻게 입력하는지에 대해서 설명하였다.

반응형

+ Recent posts