Python 심화14 - 파이썬에서 Sqlite 사용하기

do yeon kim·2022년 6월 8일
0

Python(심화)_fastcampus

목록 보기
14/24

파이썬에서 SQLite 사용하기

대략적인 데이터베이스 사용순서

1.database 파일 열기
2.커서(Cursor) 생성
3.SQL 명령실행
4.커밋 또는 롤백
5.데이터베이스 닫기



커서란 무었인가?


						커서란 셔틀버스와 같다.
	
    	사용자  ===sql==>  셔틀버스(커서)  ===sql==>	DBMS
	
	    사용자 <==데이터==  셔틀버스(커서) <==데이터==  DBMS


커밋은 승인이다!!
insert, update, delete과 같은 테이블을 수정하는 경우 승인이 필요하다.


롤백은 취소다!!
되돌리기이다.


추가학습내용

  • 기본키/외부키
  • 정규호와 역정규화
  • ERD 데이터베이스 테이블간의 관계를 나타내는 것이다.


첫번째 CREATE TABLE

import sqlite3

#데이터베이스 열기
conn = sqlite3.connect("데이터베이스파일.db")



#커서생성
cur = conn.cursor()



#sql명령 실행
CREATE_SQL = """
    CREATE TABLE IF NOT EXISTS ITEMS(
        id integer primary key autoincrement
        code text not null,
    );
"""
#IF NOT EXISTS 테이블이 존재한다면 실행하지 않는다. 
#CREATE TABLE시 사용하는 것이 좋다.

#primary key만 사용한 경우 중간에 데이터가 삭제되면 중간을 비우지 않고 진행한다.
#1,2,3,4,5 3을 제거 하면 1,2,3,4가 된다

#primary key autoincrement 사용한 경우라면
#1,2,3,4,5 3을 제거 하면 1,2,4,5



#sql명령 실행
cur.execute(CREATE_SQL)



#데이터베이스 닫기
conn.close()

두번째 INSERT DATA

import sqlite3

#데이터베이스 열기
conn = sqlite3.connect("데이터베이스파일.db")



#커서생성
cur = conn.cursor()



#sql명령 실행
INSERT_SQL = """
    #첫번째 방법
    INSERT INTO ITEMS(컬럼명,컬럼명) VALUSE(값,값);
    
    #두번째 방법
    INSERT INTO ITEMS(컬럼명,컬럼명) VALUSE(?,?);
"""





#sql명령 실행
#첫번째 방법에 대한 execute
cur.execute(INSERT_SQL)



#두번째 방법_1에 대한 execute
cur.execute(INSERT_SQL,(,)) 
#두번째 인자로 여기서 데이터를 직접 넣어준다. 
#데이터는 이터러블한 데이터형을 넣어야한다.





#두번째 방법_2에대한 데이터
데이터 =(
    (안녕,안녕하세요.),
    (반가워,나도반가워.),
    (어렵다,나도어렵다.),
)
#두번째 방법_2에 대한 execute
cur.executemaney(INSERT_SQL, 데이터) 
#한번에 많은 데이터를 넣을 수 있다. 
#이터너블한 데이터 튜플이나, 리스트등으로 데이터를 만들어서 두번째 인자로 준다.


#커밋(INSERT, UPDATE, DELETE은 커밋을 해야 실제 데이터 베이스에 반영된다)
conn.commit()

#데이터베이스 닫기
conn.close()

세번째 SELECT DATA

import sqlite3

#데이터베이스 열기
conn = sqlite3.connect("데이터베이스파일.db")


#커서생성
cur = conn.cursor()


#sql명령 실행
SELECT_SQL = """
    SELECT * FROM 테이블명;
"""


#sql명령 실행
cur.execute(SELECT_SQL)


#SELECT구문은 데이터를 추출하는 것이므로 데이터를 받아와야한다. 
rows = cur.fetchall()
for row in rows:
    print(row)


#데이터베이스 닫기
conn.close()

네번째 UPDATA DATA

import sqlite3


#데이터베이스 열기
conn = sqlite3.connect("데이터베이스파일.db")



#커서생성
cur = conn.cursor()



#sql명령 실행
UPDATE_SQL = """
    UPDATE 테이블명 set 컬럼명 = 값 where;
"""


#sql명령 실행
cur.execute(UPDATE_SQL)


#커밋(INSERT, UPDATE, DELETE은 커밋을 해야 실제 데이터 베이스에 반영된다)
conn.commit()


#데이ㅣ터베이스 닫기
conn.close()

다섯번째 DELETE DATA

import sqlite3

#데이터베이스 열기
conn = sqlite3.connect("데이터베이스파일.db")

#커서생성
cur = conn.cursor()


#sql명령 실행
DELETE_SQL = """
    DELETE FROM 테이블명 where 조건식;
"""


#sql명령 실행
cur.execute(DELETE_SQL)


#커밋(INSERT, UPDATE, DELETE은 커밋을 해야 실제 데이터 베이스에 반영된다)
conn.commit()


#데이ㅣ터베이스 닫기
conn.close()

https://fastcampus.co.kr/dev_online_pyweb

0개의 댓글