pymysql的使用

import pymysql

#打開數據庫 (若是鏈接失敗會報錯)
#db = pymysql.connect(host = '127.0.0.1', port = 3306, user = 'minbo', passwd = '123456', db = 'pythontest')
db = pymysql.connect(host = '127.0.0.1', port = 3306, user = 'minbo', passwd = '123456', db = 'pythontest', charset="utf8")

#獲取遊標對象
cursor = db.cursor()

#執行sql查詢操做
sql_select = "select version()"
cursor.execute(sql_select)

#使用fetchone()獲取單條數據
data = cursor.fetchone()
print("DB version is : %s" % data)

#若是user表存在,就刪除
cursor.execute("drop table if exists user")

#建立表user
sql_create = "create table user(id int, name varchar(10)) engine = innodb charset = utf8"
cursor.execute(sql_create)

#插入操做
sql_insert = '''insert into user(id, name) values (2, "李明")'''
try:
#執行sql
cursor.execute(sql_insert)
db.commit()
except:
#發生異常
db.rollback()

#查詢操做
sql_select = '''select * from user'''
try:
#執行sql語句
cursor.execute(sql_select)
#獲取全部記錄列表
result = cursor.fetchall()
for row in result:
id = row[0]
name = row[1]
print("id = %d, name = %s" % (id, name))
except:
print("Error: unable to fecth data")
#執行事務
'''事務機制能夠確保數據的一致性
1.事務有四個屬性:原子,一致,隔離,持久;一般稱爲ACID
2.Python DB API2.0的事務提供了兩個方法:commit 和 rollback
3.對於支持事務的數據庫,在python數據庫編程中,當遊標創建之時,就自動開始了一個隱形的數據庫事務,
這個區別於mysql客戶端,commit()方法提交全部的事務,rollback()方法回滾當前遊標的全部操做。每一個方法都開啓了一個新的事務'''
#例子
sql_insert = '''insert into test(id, name) values (1, 'china')'''
try:
cursor.execute(sql_insert)
db.commit()
except:
db.rollback()

print("end")
#關閉鏈接
db.close()

原文:https://blog.csdn.net/lmb1612977696/article/details/78166180 python

相關文章
相關標籤/搜索