본문 바로가기
Software/Python

SQLite 시작을 위한 기초 중에 기초만 요약 - CREATE TABLE, INSERT, DELETE, UPDATE, REPLACE

by lovey25 2019. 7. 18.

SQLite DB를 사용하기 위해서 알아야 하는 최소한의 기본 명령을 정리하였습니다. 파이썬에서 SQLite를 연결해서 DB를  사용해보고싶었는데 전혀 기초가 없어서 기본적인 작업을 할 수 있는 기초중에 기초만 우선 훑었습니다. 원본문서는 아래 페이지입니다. 상세내용은 여기서 확인하세요.

그리고 SQLite를 사용함에 있어서 가장 중요한 명령어인 "SELECT"는 그 활용법이 너무 방대하여 별도로 다룰얘정입니다.

 

SQLite Tutorial - An Easy Way to Master SQLite Fast

This SQLite tutorial teaches you everything you need to know to start using SQLite effectively. You will learn SQLite via extensive hands-on practices.

www.sqlitetutorial.net

DB테이블 생성 (CREATE TABLE)

테이블을 생성하는데 CREATE TABLE 이라는 문구를 사용하며 다음과 같은 구문으로 사용합니다.

CREATE TABLE [IF NOT EXISTS] [schema_name].table_name (
column_1 data_type [PRIMARY KEY],
column_2 data_type [NOT NULL],
column_3 data_type [DEFAULT 0],
[table_constraint]
) [WITHOUT ROWID];

"[IF NOT EXISTS]"

테이블이름은 중복될 수 없기 때문에 동일한 테이블명을 사용하면 에러가 발생합니다. 이런 경우를 피하기 위해서 "IF NOT EXISTS" 옵션을 사용할 수 있습니다. [대괄호는 생략가능한 옵션을 표시한것입니다.]

"[schema_name]"

테이블이 어디에 속해있는지 지정하는 옵션입니다.

table_name

테이블명을 지정하는 자리입니다. 단, "sqlite_"로 시작하는 이름은 사용이 불가능 합니다.

column_1~3

컬럼명을 지정하는 자리입니다. 필요에 따라 수를 늘리거나 줄여서 사용할 수 있으며 각 컬럼은 쉼표(,)로 구분합니다.

data_type

저장될 값의 형태를 지정합니다. (NULL, INTEGER, REAL, TEXT, BLOB)

[PRIMARY KEY], [NOT NULL], ...

데이터 제한사항을 지정하는 옵션입니다. (PRIMARY KEY, UNIQUE, NOT NULL, CHECK)

primary key는 테이블에서 중복이되지 않는 데이터로 구성된 값으로 테이블내에서 어떤 행을 특정할 수 있는 값이 담겨있는 컬럼이나 컬럼 그룹을 말합니다.

[WITHOU ROWID]

기본적으로 테이블은 행번호를 가지고 있는데 이 행번호를 사용하지 않도록 하는 옵션입니다.

INSERT - 행 삽입

테이블에 데이터를 삽일할때 사용하는 명령입니다. 

단일 행을 삽입

INSERT INTO table1 (
[ column1,
 column2 ,..])
VALUES
 (
 value1,
 value2 ,...);

table1

삽입하고자하는 테이블명을 지정합니다.

[column1, column2, ...]

쉼표로 분리된 컬럼 명을 지정합니다. 컬럼명은 생략 가능하고 생략할 경우 모든 다음의 VALUES에서 모든 컬럼의 값을 지정해 주어야 합니다.

value1, value2, ...

컬럼별로 쉽표로 분리해서 테이블에 저장할 값을 지정합니다.

여러행을 삽입

INSERT INTO table1 
 ( column1, column2 ,..)
VALUES
 ( value1, value2 ,...),
 ( value1, value2 ,...),
        ...
 ( value1, value2 ,...);

DELETE - 행 삭제

DELETE FROM table 
WHERE search_condition; 

DELETE 명령어를 통해서 테이블에 행을 삭제할 수 있습니다.

table

FROM 키워드 다음에 삭제할 데이터가 있는 테이블 명을 적어줍니다.

search_condition;

WHERE 키워드 다음에 삭제할 대상을 지정합니다. 조건식을 사용해서 해당조건에 해당하는 데이터를 일괄 삭제할 수 있습니다. WHERE 이하 구문을 생략할 경우 해당 테이블의 행 전체를 삭제합니다.

추가로 ORDER BY, LIMIT 등 옵션을 사용해서 삭제할 수도 있습니다.

예제:

DELETE 
FROM 
artists_backup 
WHERE 
name LIKE '%Santana%'; 

위 예제는 artists_backup 테이블에서 name 컬럼에 "Santana"라는 문자열이 있는 행을 모두 삭제합니다.

UPDATE

기존의 데이터를 수정할때는 UPDATE 명령을 사용합니다.

UPDATE table 
SET column_1 = new_value_1, 
    column_2 = new_value_2 
WHERE 
    search_condition  
ORDER column_or_expression 
LIMIT row_count OFFSET offset; 

table

작업하고자 하는 테이블 명입니다.

column_1, new_value_1

SET 명령어는 작업하고자 하는 컬럼을 선택합니다. 하나만 선택할 수도 있고 쉼표로 구분해서 여러 컬럼을 동시에 선택할 수도 있습니다.

column_1은 선택하고자 하는 컬럼의 이름이고 new_value_1은 업데이트 하고자 하는 값입니다.

WHERE 이하

DELETE에서와 마찬가지로 업데이트 하고자하는 행을 선택할때 조건식을 지정하는 부분입니다. 생략할 경우 모든 행의 데이터가 업데이트 됩니다.

REPLACE

REPLACE명령은 기존의 문자열을 다른 문자열로 교환활 수 있습니다.

REPLACE(string,pattern,replacement) 

string

수정하고자 하는 문자열입니다.

pattern

원래 문자열에서 찾고자 하는 하위문자열입니다.

replacement

교체하고자 하는 문자열 입니다.

예제:

SELECT 
    REPLACE('AA B CC AAA','A','Z'); 


'AA B CC AAA' 문자열에서 'A' 를 모두 'Z'로 변경하는 예제입니다.

 

끝!

728x90

댓글0