[SQLite3] 테이블 생성,변경,제거

반응형
반응형

파이썬에서 SQL을 간단하게 쓸 수 있는 SQLite3 테이블 생성,변경,제거 방법입니다.

SQLite3은 파이썬에 내장되어 있어서 파이썬 내에서 바로 쓸 수 있고 

SQL 구문을 사용하기 때문에 다른 SQL 프로그램과 유사한 문법으로 할 수 있습니다.

다만, 말그대로 lite 한 버전이기 때문에 시스템 규모가 커지면

PostgreSQL이나 MySQL 같은 프로그램을 사용하는게 좋습니다.

입문자용으로 보면 될 것 같습니다.

 

파일 만들기

파일이 있어야 데이터를 넣을 수 있기 때문에 파일부터 만들겠습니다.

connect 메쏘드를 이용하면 해당 db에 연결됩니다. 파일이 없는경우 db 파일을 생성하게 됩니다.

 

import sqlite3 as sq3

con = sq3.connect('./stocks.db')

 

탐색기에서 찾아보면 실제로 파일이 만들어진 걸 확인할 수 있습니다.

 

테이블 생성

파일이 만들어졌으니 테이블을 만들어 보겠습니다.

테이블 생성시 각 column마다 데이터 타입을 지정해주어야 하기 때문에

SQLite3에서 사용하는 데이터 타입을 알아야 합니다.

SQLite3에서는 표와 같이 5가지의 데이터 타입이 있습니다.

 

데이터 타입 설명
NULL NULL 값
INTEGER 부호있는 정수. 1, 2, 3, 4, 6, or 8 바이트로 저장
REAL 부동 소수점 숫자. 8 바이트로 저장
TEXT 텍스트. UTF-8, UTF-16BE or UTF-16-LE 중 하나에 저장
BLOB Binary Large OBject. 입력 데이터를 그대로 저장
*BLOB는 이미지, 오디오, 동영상과 같은 큰 data를 hex code로 처리할때 사용됨

 

테이블을 생성하기 위해 SQL 구문을 사용합니다.

'CREATE TABLE 테이블명(column1 데이터타입,column2 데이터타입,...)'

을 넣어주면 됩니다.

지금은 파이썬에서 sqlite를 빌려 SQL을 다루고 있기 때문에 단순히 SQL구문을 사용하면 안 됩니다.

항상 execute 메쏘드 안에 SQL구문을 넣어주어서 실행합니다. 

SQL 구문을 호출하기 위해 cursor라는 객체를 만들어 시작합니다.

 

cursor = con.cursor()
query = 'CREATE TABLE stock (Date date, Open integer, Close integer)'

cursor.execute(query)

 

잘되었다면 output에 위와 같이 나옵니다.

 

반응형

 

테이블이 잘 생성되었는지 확인하려면 다음과 같이 합니다.

db파일에 어떤 테이블이 있는지 확인할 수 있습니다.

 

q = con.execute
q('SELECT * FROM sqlite_master').fetchall()

맨 밑에 'CREATE TABLE ...' 구문으로 나왔다면 잘 만들어진 것입니다.

 

테이블명 변경

테이블명을 변경하고 싶다면 'ALTER TABLE 테이블명 RENAME TO 새 테이블명'을 입력합니다.

이 또한 SQL 구문이어서 execute의 괄호 안에 넣습니다.

현재 stock으로 되어있는 이름을 kakao로 바꿔보겠습니다.

 

alter = 'ALTER TABLE stock RENAME TO kakao'
cursor.execute(alter)
q('SELECT * FROM sqlite_master').fetchall()

 

stock이 kakao로 바뀐것을 볼 수 있습니다.

 

테이블 제거

테이블을 제거하려면 'DROP TABLE 테이블명'을 입력합니다.

 

delete = 'DROP TABLE kakao'
con.execute(delete)
q('SELECT * FROM sqlite_master').fetchall()

테이블이 아무것도 있지 않아서 리스트에 아무 정보가 없습니다. 잘 지워졌습니다.

 

관련 포스팅

[SQLite3] 행 추가,삭제,조회

데이터목장님의
글이 좋았다면 응원을 보내주세요!

Designed by JB FACTORY