BigData

[SQLite] SQLite Commands

IT오이시이 2022. 8. 4. 19:20
728x90

[SQLite 사용법] SQLite 관리 Commands

 

 

SQLite 사용법 관련  목차 

1. [SQLite]-sqlite 소개 -Serverless-Database
2. [SQLite]-SQLite_관리-Commands
3. [SQLite] sqlite 테이블 생성 - create table
4. [SQLite] Sqlite transaction - ACID개념
5. [SQLite] [SQLite] Sqlite transaction 처리문 작성 - BEGIN TRANSACTION
6.[SQLite] date형식 timestamp를 이용하여 날짜 표현하기
7.[SQLite] SQLite 윈도우-리눅스 설치하기

 

SQLite 는 SQL CLI (Client Interface)를 통해서 데이터 베이스를 관리하는 명령과 SQL문을 사용하여 SQLite 데이터베이스와 상호 작용할 수 있습니다. 간단한 명령줄 도구는 sqlite3(또는 Windows의 경우 sqlite3.exe)이라는 도구를 제공합니다.

 

SQLite 데이터베이스에 연결

sqlite3을 시작하려면 다음과 같이 sqlite3을 입력합니다.

>sqlite3
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>


기본적으로 SQLite 세션은 메모리 내 데이터베이스를 사용하므로 세션이 종료되면 모든 변경 사항이 사라집니다.
데이터베이스 파일을 열려면 .open FILENAME명령을 사용합니다. 다음 문은 chinook.db데이터베이스를 엽니다.

sqlite> .open c:\sqlite\db\chinook.db

SQlite 데이터베이스에 연결할 때 특정 데이터베이스 파일을 열려면 다음 명령을 사용합니다.

>sqlite3 c:\sqlite\db\chinook.db
SQLite version 3.13.0 2016-05-18 10:57:30 Enter ".help" for usage hints.
sqlite>

존재하지 않는 데이터베이스 이름으로 세션을 시작하면 sqlite3 도구가 데이터베이스 파일을 생성합니다.
예를 들어 다음 명령은 C:\sqlite\db\. 디렉터리에 sales 이름이 지정된 데이터베이스를 만듭니다

>sqlite3 c:\sqlite\db\sales.db
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
sqlite>

 

사용 가능한 명령어 힌트 표시 - 헬프(.help)

사용 가능한 모든 명령과 해당 용도 힌트를 표시하려면 .help 명령을 사용합니다.

.help

 

현재 데이터베이스 연결의 데이터베이스 상태 표시 (.database)

현재 연결의 모든 데이터베이스를 표시하려면 .databases명령을 사용합니다. 이 .databases명령은 이름이 main인 데이터베이스를 하나 이상 표시합니다.
예를 들어 다음 명령은 현재 연결의 모든 데이터베이스를 표시합니다.

sqlite> .database
seq name file
--- --------------- --------------------------
0 main c:\sqlite\db\sales.db
sqlite>

현재 연결에 추가 데이터베이스를 추가하려면 "ATTACH DATABASE"문을 사용합니다  다음 명령문은 현재 연결에 chinook 데이터베이스를 추가합니다.

sqlite> ATTACH DATABASE "c:\sqlite\db\chinook.db" AS chinook;

이제 .database명령을 다시 실행하면 sqlite3은 두 개의 데이터베이스를 반환합니다. main및 chinook.

sqlite> .databases
seq name file
--- --------------- ---------------------
0 main c:\sqlite\db\sales.db
2 chinook c:\sqlite\db\chinook.db

 

sqlite3 도구 종료 (.exit)

sqlite3 프로그램을 종료하려면 .exit명령을 사용합니다.

sqlite>.exit

 

데이터베이스의 테이블 표시 (.tables)

현재 데이터베이스의 모든 테이블을 표시하려면 .tables명령을 사용합니다.
다음 명령은 데이터베이스에 대한 새 데이터베이스 연결을 열고 데이터베이스 chinook의 테이블을 표시합니다.

>sqlite3 c:\sqlite\db\chinook.db
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
sqlite> .tables
albums employees invoices playlists
artists genres media_types tracks
customers invoice_items playlist_track
sqlite>

특정 패턴을 기반으로 테이블을 찾으려면 .table패턴 명령을 사용합니다. sqlite3는 LIKE 패턴 일치를 위해 연산자를 사용합니다.
예를 들어, 다음 문은 문자열로 끝나는 테이블을 반환합니다 es.

sqlite> .table '%es'
employees genres invoices media_types
sqlite>

 

테이블 구조 표시 (.schema, .fullschema)

테이블의 구조를 표시하려면 .schema TABLE명명령을 사용합니다.
TABLE명 인수는 패턴이 될 수 있습니다 . 생략하면 .schema명령은 모든 테이블의 구조를 표시합니다.
다음 명령은 albums테이블의 구조를 보여줍니다.

sqlite> .schema albums
CREATE TABLE "albums"
(
[AlbumId]   INTEGER   PRIMARY KEY AUTOINCREMENT NOT NULL,
  [Title]   NVARCHAR(160)   NOT NULL,
  [ArtistId]   INTEGER   NOT NULL,
  FOREIGN KEY ([ArtistId])   REFERENCES "artists" ([ArtistId])
        ON DELETE NO ACTION ON UPDATE NO ACTION
);
CREATE INDEX [IFK_AlbumArtistId] ON "albums" ([ArtistId]);
sqlite>

스키마와 sqlite_stat테이블 의 내용을 표시하려면 .fullschema명령을 사용합니다.

sqlite>.fullschema

 

인덱스 표시 (.indexes)

현재 데이터베이스의 모든 인덱스를 표시하려면 .indexes다음과 같이 명령을 사용합니다.

sqlite> .indexes
IFK_AlbumArtistId
IFK_CustomerSupportRepId

특정 테이블의 인덱스를 표시하려면 .indexes TABLE명령을 사용합니다. 예를 들어, 테이블의 인덱스를 표시 albums하려면 다음 명령을 사용합니다.

sqlite> .indexes albums
IFK_AlbumArtistId

이름이 "es"로 끝나는 테이블의 인덱스를 표시하려면 LIKE  pattern 연산자를 이용하여 특정 패턴의 인덱스를 찾을 수 있습니다.

sqlite> .indexes %es
IFK_EmployeeReportes

IFK_InvoiceCustomeres

 

쿼리 결과를 파일에 저장(.output file)

쿼리 결과를 파일에 저장하려면 .output FILENAME명령을 사용합니다. 명령을 실행 하면 후속 쿼리의 모든 결과가 인수 .output 에 지정한 파일에 저장됩니다 . FILENAME다음 단일 쿼리의 결과를 파일에만 저장하려면 .once FILENAME명령을 실행합니다.
쿼리 결과를 표준 출력에 다시 표시하려면 .output인수 없이 명령을 실행합니다.
다음 명령 title은 albums테이블에서 선택하고 결과를 albums.txt파일에 씁니다.

sqlite> .output albums.txt
sqlite> SELECT title FROM albums;

 

파일에서 SQL 문 실행 (.read file)

c:\sqlite\ 폴더에 다음 내용이 포함된 commands.txt 파일이 있다고 가정 합니다.

SELECT albumid, title FROM albums ORDER BY title LIMIT 10;

다음과 같이 commands.txt파일 에서 SQL 문을 실행하려면 .read FILENAME 명령을 사용합니다.

sqlite> .mode column
sqlite> .header on
sqlite> .read c:/sqlite/commands.txt
AlbumId Title
---------- ----------------------
156 And Justice For All
257 20th Century Masters -
296 A Copland Celebration,
94    A Matter of Life and D
95 A Real Dead One
96    A Real Live One

이상과 같이 SQLite 데이터베이스를 처리하는 유용한 명령을 살펴 보았습니다.

 

 

SQLite 사용법 관련  목차 

1. [SQLite]-sqlite 소개 -Serverless-Database
2. [SQLite]-SQLite_관리-Commands
3. [SQLite] sqlite 테이블 생성 - create table
4. [SQLite] Sqlite transaction - ACID개념
5. [SQLite] [SQLite] Sqlite transaction 처리문 작성 - BEGIN TRANSACTION
6.[SQLite] date형식 timestamp를 이용하여 날짜 표현하기
7.[SQLite] SQLite 윈도우-리눅스 설치하기

 

728x90
반응형