티스토리 뷰
SQLiteDatabaseBrowserPortable 사용
테이블 생성 및 삽입
# DB 생성 & auto commit
# isolation_level = None : auto commit 설정 commit() 함수 실행 없이 자동으로 commit 되도록
conn = sqlite3.connect('C:/Users/jihee/FASTCAMPUS/python_basic/resource/database.db', isolation_level = None)
# 커서의 위치 획득
c = conn.cursor()
# 테이블 생성 (Data Type : 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)")
# 데이터 삽입 1
# 변수 값을 집어넣을 때 (nowDatetime) 물음표로 써놓고 두번째 매개변수에서 튜플 형태로 변수 지정.
반드시 튜플에 하나만 있는 경우에 콤마를 뒤에 붙여야 한다.
c.execute("INSERT INTO users VALUES(1, 'kim', 'kim@naver.com', '010-1234-5678', 'kim.com', ?)", (nowDatetime,))
# 데이터 삽입 2
# VAULES ( ? * 변수 개수 ) , ( 변수에 해당하는 값들 )
c.execute("INSERT INTO users (id, username, email, phone, website, regdate) VALUES (?, ?, ?, ?, ?, ?)", (2, 'park', 'park@naver.com', '010-2222-3333', 'park.com', nowDatetime))
# 한 번에 대용량 삽입 (튜플, 리스트 삽입)
userList = (
(3, 'lee', 'lee@naver.com', '010-1111-2222', 'lee.com', nowDatetime),
(4, 'cho', 'cho@naver.com', '010-2222-3333', 'cho.com', nowDatetime),
(5, 'choi', 'choi@naver.com', '010-3333-4444', 'choi.com', nowDatetime)
)
c.executemany("INSERT INTO users(id, username, email, phone, website, regdate) VALUES (?, ?, ?, ?, ?, ?)", userList)
# 테이블 데이터 삭제
conn.execute("DELETE FROM users")
# 테이블 몇 개 삭제했는지 개수 카운트
print("users db deleted : ", conn.execute("DELETE FROM users").rowcount)
# rollback
#conn.rollback()
# 접속 해제
conn.close()
# DB 파일 조회 없으면 새로 생성
conn = sqlite3.connect ("C:/Users/jihee/FASTCAMPUS/python_basic/resource/database.db")
# 데이터 조회
c.execute("SELECT * FROM users")
# 커서 위치가 변경
# 1개 로우 선택
#print("One - > \n", c.fetchone())
# 지정 로우 선택
#print("three - > \n", c.fetchmany(size=3))
# 전체 로우 선택
#print("all - > \n", c.fetchall())
# 순회하는 방법
rows = c.fetchall()
for row in rows:
print(row)
for row in c.fetchall():
print(row)
for row in c.execute("SELECT * FROM users ORDER BY id"):
print(row)
# WHERE Retrieve 조건
param1 = (3, )
c.execute("SELECT * FROM users WHERE id=?", param1)
print(c.fetchone())
print(c.fetchall())
param2 = 4
c.execute("SELECT * FROM users WHERE id='%s'" % param2)
print(c.fetchone())
c.execute("SELECT * FROM users WHERE id=:Id",{"Id":1})
print(c.fetchone())
param4 = (3, 5)
c.execute("SELECT * FROM users WHERE id IN(?, ?)", param4)
print(c.fetchmany(len(param4)))
c.execute("SELECT * FROM users WHERE id =:id1 OR id =:id2", {"id1":2, "id2":5})
print(c.fetchall())
# Dumps : SQLite 백업
with conn:
with open("C:/Users/jihee/FASTCAMPUS/python_basic/resource/dump.sql", "w") as f:
for line in conn.iterdump():
f.write("%s\n" % line)
print("Dump Print Complet")
# DB 생성 (파일)
conn = sqlite3.connect("C:/Users/jihee/FASTCAMPUS/python_basic/resource/database.db")
c = conn.cursor()
# 데이터 수정
c.execute("UPDATE users SET username = ? WHERE id = ?", ('niceman', 2))
c.execute("UPDATE users SET username = :name WHERE id = :id", {'name':'goodman', "id":5})
c.execute("UPDATE users SET username = '%s' WHERE id = '%s'" %('badboy', 3))
conn.commit()
# 중간 데이터 확인
for user in c.execute("SELECT * FROM users"):
print(user)
# 데이터 삭제
c.execute("DELETE FROM users WHERE id = ?", (2,))
c.execute("DELETE FROM users WHERE id = :id", {"id":5})
c.execute("DELETE FROM users WHERE id = '%s'"% (4))
# 전체 데이터 삭제
print("user db deleted : ", conn.execute("DELETE FROM users").rowcount)
conn.commit()
conn.close()
'python' 카테고리의 다른 글
[python django] django 기초 (3) pythonanywhere 배포 (0) | 2019.12.20 |
---|---|
[python django] django 기초 (1) (0) | 2019.12.20 |
[python] *args, *kwargs, lambda, enumerate, type hint (0) | 2019.12.03 |
[python] for - else 구문 (0) | 2019.12.03 |
[python] list, tuple, dictionary, set (0) | 2019.12.02 |
- Total
- Today
- Yesterday
- django 로그인접근
- 웹 배포
- django 개발일지
- 실시간 데이터베이스
- 장고 게시판
- 데이터베이스 추천
- 테이블출력안됨
- 알파벳 카운팅
- django tag
- UITableViewController Not Working
- django 태그
- iOS UITableView 출력안됨
- iOS 화면 안나옴
- pythonanywhere배포
- Django
- Realtime Database
- django pythoneverywhere
- CellForRowAt Not Called
- Firebase 데이터베이스 추천
- django clean
- CellForRowAt 호출안됨
- django 게시판
- ModelForm Form 차이
- 장고 태그달기
- 까만 화면
- cleaned_data
- iOS 검은 화면
- python 웹 배포
- iOS 데이터베이스
- pythonanywhere배포방법
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |