1. SQL Introduction
SQL이란 Structured Query Language의 약어로 관계형 데이터베이스의 데이터를 관리하기 위해서 만들어진 프로그래밍 언어이다. 1974년 IBM 연구소에서 SEQUEL이라는 이름으로 시작했고, 질의어(Query Language)지만 데이터 구조의 정의부터 조작, 제어 기능을 갖추고 있다. Oracle, MySQL 등의 데이터베이스 관련 프로그램들은 이 SQL을 표준으로 사용한다.
2. SQL 분류
SQL은 사용 용도에 따라 데이터 정의 언어(DDL), 데이터 조작 언어(DML), 데이터 제어 언어(DCL)의 3가지로 구분된다.
1) 데이터 정의 언어
DOMAIN, INDEX, SCHEMA, TABLE, VIEW 등의 데이터베이스 개체를 정의, 변경 혹은 삭제를 할 때 사용하며 명령어와 기능은 다음과 같다.
명령어 | 기능 |
CREATE | 데이터베이스 개체 정의 |
ALTER | 데이터베이스 개체 정의 변경 |
DROP | 데이터베이스 개체 삭제 |
2) 데이터 조작 언어
저장된 데이터베이스를 처리하는 데 사용되며, 사용자와 시스템 간의 인터페이스를 제공한다. 해당 명령어와 기능은 다음과 같다.
명령어 | 기능 |
SELECT | 조건에 맞는 튜플 검색 |
INSERT | 새로운 튜플 삽입 |
UPDATE | 조건에 맞는 튜플 내용 변경 |
DELETE | 조건에 맞는 튜플 삭제 |
3) 데이터 제어 언어
데이터의 보안이나 수행 제어와 관련된 사항 등 데이터 관리를 목적으로 사용되며, 종류는 다음과 같다.
명령어 | 기능 |
COMMIT | 명령에 의해 수행된 결과를 저장한 후, 작업이 정상적으로 완료되었음을 알려줌 |
ROLLBACK | 데이터베이스 작업이 비정상적으로 종료된 경우 원래대로 복구 |
GRANT | 데이터 사용자에게 사용 권한 부여 |
REVOKE | 데이터 사용자의 사용 권한 철회 |
3. Python에서 SQL 사용 예제
import sqlite3
connect = sqlite3.connect('stocks.db')
cursor = connect.cursor()
#Create TABLE
cursor.execute("CREATE TABLE stocks (date text, state text, item text, quantity real, price real)")
#INSERT data
cursor.execute("INSERT INTO stocks VALUES ('2020-05-12', 'IN', 'samsung', 30, 47900)")
cursor.execute("INSERT INTO stocks VALUES ('2020-05-26', 'IN', 'lg', 30, 57100)")
cursor.execute("INSERT INTO stocks VALUES ('2020-06-11', 'IN', 'samsung', 20, 54300)")
cursor.execute("INSERT INTO stocks VALUES ('2020-07-24', 'OUT', 'lg', 10, 74100)")
cursor.execute("INSERT INTO stocks VALUES ('2020-08-10', 'OUT', 'samsung', 15, 57800)")
#Save and Close
connect.commit()
connect.close()
#Reconnect
enter = sqlite3.connect('stocks.db')
cursor = enter.cursor()
#Find item
item = ('samsung',)
cursor.execute('SELECT * FROM stocks WHERE item=?', item)
print(cursor.fetchall())
enter.close()
sqlite3을 import한 후에 주식을 매입하고 매매하는 stocks.db에 접속한다. stocks.db가 없다면 새로 생성하게 된다. cursor라는 변수를 사용해서 stocks라는 이름의 TABLE을 생성한 후 주식 거래 내역을 INSERT로 삽입한다. commit()함수로 저장하고, close()함수로 stocks.db의 연결을 중지한다. 다시 stocks.db에 접속해서 원하는 item을 출력하면 위와 같이 나타나게 된다.
최근댓글