SQLite에 대한 밍기적

Posted by : at

Category : Data_Engineering


Python의 SQLite

  • 데이터베이스 관리 시스템(DBMS) 중 하나로 오라클이나 SQL 서버만큼 성능이 좋지는 않지만 무료라는 장점이 있다.
  • 다음 사이트에서 다운로드 받을 수 있지만 Python은 SQLite에 대한 라이브러리를 기본 내장하고 있기 때문에 우리는 따로 다운로드 받지 않을 것이다.
  • 실습 코드는 다음 을 참고하였습니다.

 

함수

  • connect()
    • DB파일과 연결하여 데이터베이스를 여는 함수이다.
    • DB 파일과 연결한 후 연결 객체의 cursor 메서드로 커서 객체를 구한다.
      • 여기서 커서는 SQL문을 실행하고 결과를 읽는 객체이다.

   

con = sqlite3.connect('DB 파일')

 

테이블 생성

  • CREATE
    • 테이블을 생성할 때 사용되는 명령이다.
CREATE TABLE __table 이름__ 
(컬럼명1 DATATYPE [DEFAULT 형식],
컬럼명2 DATATYPE [DEFAULT 형식],
컬럼명3 DATATYPE [DEFAULT 형식])
  • 이제 간단한 DB를 하나 만들어보자
  • 사용자의 이름, 전화번호, 거주지를 저장하는 Table을 만들어보자

 

import sqlite3

con = sqlite3.connect('addr.db')
cursor = con.cursor()

cursor.execute("DROP TABLE IF EXISTS tblAddr")
cursor.execute("""CREATE TABLE tblAddr
(name CHAR(16) PRIMARY KEY, phone CHAR(16), addr TEXT)""")

cursor.execute("INSERT INTO tblAddr VALUES ('김상형','123-4567','오산')")
cursor.execute("INSERT INTO tblAddr VALUES ('한경은','555-1004','수원')")
cursor.execute("INSERT INTO tblAddr VALUES ('한주완','444-1092','대전')")

con.commit()

cursor.close()
con.close()

 

테이블 조회

  • SELECT
    • 테이블의 데이터를 조회할 때 사용하는 명령이다.
SELECT select_list [ INTO new_table ]  
[ FROM table_source ] [ WHERE search_condition ]  
[ GROUP BY group_by_expression ]  
[ HAVING search_condition ]  
[ ORDER BY order_expression [ ASC | DESC ] ] 
  • fetchall()
    • 모든 레코드를 한꺼번에 읽어 list로 리턴한다. 이 때 list에 담기는 레코드는 tuple이다.
  • fetchone()
    • 레코드를 하나만 읽는 함수이다.
record = cursor.fetchone()

 # or

record = cursor.fetchall()

 

  • 방금 생성한 DB에 데이터가 잘 저장되었는지 확인해보자
  • 이 때 사용되는 함수가 우리가 잘 알고 있는 SELECT이다.

 

import sqlite3

con = sqlite3.connect('addr.db')
cursor = con.cursor()

cursor.execute("SELECT * FROM tblAddr")
table = cursor.fetchall()
for record in table:
    print("이름 : %s, 전화 : %s, 주소 : %s" %record)

cursor.close()
con.close()

import sqlite3

con = sqlite3.connect('addr.db')
cursor = con.cursor()

cursor.execute("SELECT addr FROM tblAddr WHERE name = '김상형'")
record = cursor.fetchone()
print("김상형은 %s에 살고 있습니다" % record)

cursor.close()
con.close()

 

테이블 수정 및 삭제

  • UPDATE
    • record의 특정 필드 값을 수정할 때 사용되는 명령이다.
    • 일괄 수정이 아닌 특정 조건에 맞는 record를 수정하기 때문에 주로 WHERE절과 함께 사용된다.
UPDATE 테이블명
SET 수정되어야 할 컬럼명 = 수정되기를 원하는 새로운 값
WHERE 변경 데이터 조건 컬럼 = 선택 조건 값

 

  • 갑자기 아까 만든 테이블이 마음에 안 든다.
  • 데이터를 고쳐보자

 

import sqlite3

con = sqlite3.connect('addr.db')
cursor = con.cursor()

cursor.execute("UPDATE tblAddr SET addr = '제주도' Where name = '김상형'")
con.commit()

cursor.close()
con.close()

 

  • 오늘은 이렇게 간단한 SQLite 명령을 알아보았다.

  • 이를 활용해서 더 많은 프로젝트를 진행해보자!   —

    End


About GJ

안녕하세요 방문해주셔서 감사합니다. 혹시 보시면서 궁금하신것 있으시면 https://open.kakao.com/o/sivaz71c로 연락주세용~

Star
Useful Links