사용자 도구

사이트 도구


wiki:ai:python:데이터베이스_연동_sqlite_-_테이블_생성_및_삽입

테이블 생성 및 삽입

  • description : 테이블 생성 및 삽입
  • author : 도봉산핵주먹
  • email : hylee@repia.com
  • lastupdate : 2020-06-26

테이블 생성 및 삽입

준비사항

기존 DB TOOL을 이용해도 되지만 가벼운 DB TOOL 첨부할테니 필요하신 분은 사용 하시면 됩니다.
예제 코드 중 database.db 파일을 생성하는데 DB TOOL로 해당 파일을 열면 안에 데이터를 확인할 수 있습니다.

SQLiteDatabase

예제 코드

# Section12-1
# 파이썬 데이터베이스 연동(SQLite)
# 테이블 생성 및 삽입
 
import datetime
import sqlite3
 
# 삽입 날짜 생성
now = datetime.datetime.now()
print('now', now)
 
nowDatetime = now.strftime('%Y-%m-%d %H:%M:%S')
print('nowDatetime', nowDatetime)
 
# sqlite3 버전
print('sqlite3.version : ', sqlite3.version)
print('sqlite3.sqlite_version', sqlite3.sqlite_version)
 
# DB생성 & Autocommit
# 본인 DB 파일 생성할 경로
# conn = sqlite3.connect('본인이 원하는 경로/database.db/database.db')
conn = sqlite3.connect('D:/python_bnasic/resource/database.db', isolation_level=None)
 
# DB생성(메모리)
# conn = sqlite3.connect(":memory:")
 
# Cursor연결
c = conn.cursor()
print('Cursor Type : ', type(c))
 
# 테이블 생성(Datatype : TEXT NUMERIC INTEGER REAL BLOB)
c.execute(
    "CREATE TABLE IF NOT EXISTS users( \
        id INTEGER PRIMARY KEY, username text, email text, phone text, website text, regdate text \
    )")  # AUTOINCREMENT
 
# \ --> 다음 줄 연결
# IF NOT EXISTS --> 없으면 만든다
 
 
 
# 데이터 삽입
c.execute("INSERT INTO users VALUES (1 ,'Kim','Kim@naver.com', '010-0000-0000', 'Kim.com', ?)", (nowDatetime,))
c.execute("INSERT INTO users(id, username, email, phone, website, regdate) VALUES (?, ?, ?, ?, ?, ?)",
          (2, 'Park', 'Park@naver.com', '010-1111-1111', 'Park.com', nowDatetime))
 
# Many 삽입(튜플, 리스트)
userList = (
    (3, 'Lee', 'Lee@naver.com', '010-2222-2222', 'Lee.com', nowDatetime),
    (4, 'Cho', 'Cho@naver.com', '010-3333-3333', 'Cho.com', nowDatetime),
    (5, 'Yoo', 'Yoo@naver.com', '010-4444-4444', 'Yoo.com', nowDatetime)
)
c.executemany("INSERT INTO users(id, username, email, phone, website, regdate) VALUES (?, ?, ?, ?, ?, ?)", userList)
 
 
# 테이블 데이터 삭제
# print("users db deleted : ", conn.execute("delete from users").rowcount, "rows")
 
# .rowcount --> 몇개 지웠는지 확인
 
# 커밋 : isolation_level=None 일 경우 자동 반영(Auto Commit)
conn.commit()
 
# 롤백
# conn.rollback()
 
# 접속 해제
conn.close()

Tip

실행 결과는 다음 조회예제에서 select로 확인 가능합니다.
/var/services/web/dokuwiki/data/pages/wiki/ai/python/데이터베이스_연동_sqlite_-_테이블_생성_및_삽입.txt · 마지막으로 수정됨: 2023/01/13 18:44 (바깥 편집)