본문 바로가기

 

순서

  1. SQLite3 Tool 실행, 종료, 명령 프롬프트(입력, 도움말)
  2. SQLite3 DB File 생성, 삭제
  3. SQLite3 DB Table 생성, 삭제
  4. SQLite3 DB Table Values 생성, 조회, 갱신, 삭제  

 

 

SQLite3 Tool

 

1. SQLite3 Tool

 

SQLite3 는 커맨드 라인 도구를 제공합니다.

DBMS 가 아닙니다.

기본적으로 리눅스의 Shell, 윈도우의 Command Prompt(명령 프롬프트)와 같은 CLI(Command Line Interface) 에서 작업하는 도구입니다.

 

더보기

콘솔

 

텍스트 기반의 입력 및 출력 환경을 가진 하드웨어

 

 

 

터미널

콘솔을 서버로 접속할 수 있도록 구현한 소프트웨어 

 

터미널(CLI) ≒ 웹 브라우저(GUI)

 

 

 

실제 사용자로부터 명령을 받아 해석하고 커널 명령을 처리하는 프로그램

 

  프로그램 로직

 

 

 

 

2. SQLite3 Tool 실행과 종료

 

2.1 SQLite3 Tool 실행

 

터미널에서 sqlite3 를 명령어를 입력하여 sqlite 쉘을 실행시킵니다. 

아래와 같이 화면이 뜬다면, 성공적으로 QLite3 Tool 이 실행된 상태입니다.

 

 

 

 

2.2 SQLite3 Tool 종료하기

 

.quit .exit 를 입력하면 SQLite3 를 종료할 수 있습니다.

 

Note: 약 .(콤마) 없이 quit를 입력했다면, ; (세미콜론)을 입력하거나, ctrl+ d 를 입력하여 빠져나갑니다.

 

 

 

3. SQLite3 명령 프롬프트

SQLite 명령어 등을 실행하거나,

임의의 SQL 문을 실행할 수 있다.

 

 

3.1 SQLite3 Tool 모든 명령어 보기

 

SQLite3 에서 사용 가능한 모든 명령어를 확인하려면 .help 를 입력합니다.

 

Note: 모든 SQLite3 tool 명령어는 대, 소문자를 구분합니다.

 

 

 

더보기
sqlite> .help
.archive ...             Manage SQL archives
.auth ON|OFF             Show authorizer callbacks
.backup ?DB? FILE        Backup DB (default "main") to FILE
.bail on|off             Stop after hitting an error.  Default OFF
.cd DIRECTORY            Change the working directory to DIRECTORY
.changes on|off          Show number of rows changed by SQL
.check GLOB              Fail if output since .testcase does not match
.clone NEWDB             Clone data into NEWDB from the existing database
.connection [close] [#]  Open or close an auxiliary database connection
.databases               List names and files of attached databases
.dbconfig ?op? ?val?     List or change sqlite3_db_config() options
.dbinfo ?DB?             Show status information about the database
.dump ?OBJECTS?          Render database content as SQL
.echo on|off             Turn command echo on or off
.eqp on|off|full|...     Enable or disable automatic EXPLAIN QUERY PLAN
.excel                   Display the output of next command in spreadsheet
.exit ?CODE?             Exit this program with return-code CODE
.expert                  EXPERIMENTAL. Suggest indexes for queries
.explain ?on|off|auto?   Change the EXPLAIN formatting mode.  Default: auto
.filectrl CMD ...        Run various sqlite3_file_control() operations
.fullschema ?--톱니 모양? sqlite_stat 테이블의 스키마 및 내용 표시
.headers on|off          Turn display of headers on or off
.help ?-all? ?PATTERN?   Show help text for PATTERN
.import FILE TABLE       Import data from FILE into TABLE
.imposter INDEX TABLE    Create imposter table TABLE on index INDEX
.indexes ?TABLE?         Show names of indexes
.limit ?LIMIT? ?VAL?     Display or change the value of an SQLITE_LIMIT
.lint OPTIONS            Report potential schema issues.
.load FILE ?ENTRY?       Load an extension library
.log FILE|off            Turn logging on or off.  FILE can be stderr/stdout
.mode MODE ?TABLE?       Set output mode
.nonce STRING            Disable safe mode for one command if the nonce matches
.nullvalue STRING        Use STRING in place of NULL values
.once ?OPTIONS? ?FILE?   Output for the next SQL command only to FILE
.open ?OPTIONS? ?FILE?   Close existing database and reopen FILE
.output ?FILE?           Send output to FILE or stdout if FILE is omitted
.parameter CMD ...       Manage SQL parameter bindings
.print STRING...         Print literal STRING
.progress N              Invoke progress handler after every N opcodes
.prompt MAIN CONTINUE    Replace the standard prompts
.quit                    Stop interpreting input stream, exit if primary.
.read FILE               Read input from FILE
.recover                 Recover as much data as possible from corrupt db.
.restore ?DB? FILE       Restore content of DB (default "main") from FILE
.save FILE               Write in-memory database into FILE
.scanstats on|off        Turn sqlite3_stmt_scanstatus() metrics on or off
.schema ?PATTERN?        Show the CREATE statements matching PATTERN
.selftest ?OPTIONS?      Run tests defined in the SELFTEST table
.separator COL ?ROW?     Change the column and row separators
.session ?NAME? CMD ...  Create or control sessions
.sha3sum ...             Compute a SHA3 hash of database content
.shell CMD ARGS...       Run CMD ARGS... in a system shell
.show                    Show the current values for various settings
.stats ?ARG?             Show stats or turn stats on or off
.system CMD ARGS...      Run CMD ARGS... in a system shell
.tables ?TABLE?          List names of tables matching LIKE pattern TABLE
.testcase NAME           Begin redirecting output to 'testcase-out.txt'
.testctrl CMD ...        Run various sqlite3_test_control() operations
.timeout MS              Try opening locked tables for MS milliseconds
.timer on|off            Turn SQL timer on or off
.trace ?OPTIONS?         Output each SQL statement as it is run
.vfsinfo ?AUX?           Information about the top-level VFS
.vfslist                 List all available VFSes
.vfsname ?AUX?           Print the name of the VFS stack
.width NUM1 NUM2 ...     Set minimum column widths for columnar output

 

 

3.2 분할 입력하기

 

 

SQL 문은 마지막으로 [;]가 나타날 때까지가 하나의 문장으로 판단된다.

[;]가 입력되지 않은 시점에서 [Enter] 키를 눌렀을 경우 아직 입력 도중이라고 판단되어 계속 입력 할 수 있다.

 

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

 

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

 

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

 

 

 

4. SQLite 키워드

 

ABORT ACTION ADD AFTER ALL
ALTER ANALYZE AND AS ASC
ATTACH AUTOINCREMENT BEFORE BEGIN BETWEEN
BY CASCADE CASE CAST CHECK
COLLATE COLUMN COMMIT CONFLICT CONSTRAINT
CREATE CROSS CURRENT CURRENT_DATE CURRENT_TIME
CURRENT_TIMESTAMP DATABASE DEFAULT DEFERRABLE DEFERRED
DELETE DESC DETACH DISTINCT DO
DROP EACH ELSE END ESCAPE
EXCEPT EXCLUSIVE EXISTS EXPLAIN FAIL
FILTER FOLLOWING FOR FOREIGN FROM
FULL GLOB GROUP HAVING IF
IGNORE IMMEDIATE IN INDEX INDEXED
INITIALLY INNER INSERT INSTEAD INTERSECT
INTO IS ISNULL JOIN KEY
LEFT LIKE LIMIT MATCH NATURAL
NO NOT NOTHING NOTNULL NULL
OF OFFSET ON OR ORDER
OUTER OVER PARTITION PLAN PRAGMA
PRECEDING PRIMARY QUERY RAISE RANGE RECURSIVE
REFERENCES REGEXP REINDEX RELEASE RENAME
REPLACE RESTRICT RIGHT ROLLBACK ROW
ROWS SAVEPOINT SELECT SET TABLE
TEMP TEMPORARY THEN TO TRANSACTION
TRIGGER UNBOUNDED UNION UNIQUE UPDATE
USING VACUUM VALUES VIEW VIRTUAL
WHEN WHERE WINDOW WITH WITHOUT

 

 

5. 주석

 

-- 주석

/* 주석 */

 

select * from user; -- 목록

 

select * from /* 주석 */ user;

BasicLike

어? 나 프로그래밍 좋아하네?