====== 테이블 생성 및 삽입 ====== * description : 테이블 생성 및 삽입 * author : 도봉산핵주먹 * email : hylee@repia.com * lastupdate : 2020-06-26 ===== 테이블 생성 및 삽입 ===== ==== 준비사항 ==== > 기존 DB TOOL을 이용해도 되지만 가벼운 DB TOOL 첨부할테니 필요하신 분은 사용 하시면 됩니다. > 예제 코드 중 ''database.db'' 파일을 생성하는데 DB TOOL로 해당 파일을 열면 안에 데이터를 확인할 수 있습니다. {{ :wiki:ai:python:sqlitedatabasebrowserportable_3.10.1_english.paf.zip |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로 확인 가능합니다. * [[wiki:ai:python:데이터베이스 연동(SQLite) - 테이블 조회|데이터베이스 연동(SQLite) - 테이블 조회]] {{tag>도봉산핵주먹 python }}