python 對 mysql 的操作
阿新 • • 發佈:2018-12-16
01.連線mysql並讀取資料
#匯入模組 import pymysql import json #第一步:連線到mysql資料庫 conn = pymysql.connect(host='localhost',user='root',password='123456',db='mycommodity',charset="utf8") #第二步:建立遊標物件 cursor = conn.cursor() #cursor當前的程式到資料之間連線管道 #第三步:組裝sql語句 sql = 'select * from commodity' # sql = "select c_id,c_name,c_inprice from commodity where c_inprice>(select avg(c_inprice) from commodity where c_type=(select ct_id from commoditytype where ct_name='玩具'))" #第四步:執行sql語句 cursor.execute(sql) #第五步:處理結果集 #獲取一條資料 # one = cursor.fetchone() # print(one) #獲取多條資料 # many = cursor.fetchmany(3) # print(many) #獲取所有資料 all = cursor.fetchall() for each in all: print(json.dumps(each, ensure_ascii=False)) # print(type(each),each) fields = cursor.description # print(fields) head = [] for field in fields: head.append(field[0]) print(head) #第六步:關閉所有的連線 #關閉遊標 cursor.close() #關閉資料庫 conn.close()
02.insert資料
#匯入模組 import pymysql #第一步:連線到mysql資料庫 conn = pymysql.connect(host='localhost',user='root',password='123456',db='mycommodity',charset="utf8") #第二 步:建立遊標物件 cursor = conn.cursor() #cursor當前的程式到資料之間連線管道 # #第三步:組裝sql語句 sql = "INSERT INTO `commodity` VALUES (null, '電腦桌', '北京', '6', '100', '200', '200')" #第四步:執行sql語句 cursor.execute(sql) # !!!!!!!資料提交 commit() ,不提交資料庫沒有資訊 conn.commit() #第五步:處理結果集 #第六步:關閉所有的連線 #關閉遊標 cursor.close() #關閉資料庫 conn.close()
03.自定義函式操作資料庫
# 匯入模組 import pymysql # 定義連線到mysql資料庫的函式,返回連線物件 def getCon(db_name): conn = pymysql.connect(host='localhost', user='root', password='123456', db=db_name, charset="utf8") return conn # 定義新增資料函式 def insertData(db_name,table_name,data): # 第一步:連線到資料庫 conn = getCon(db_name) # 第二步:建立遊標物件 cursor = conn.cursor() # cursor當前的程式到資料之間連線管道 # 第三步:組裝sql語句 sql = 'insert into '+ table_name +' values'+ data # 第四步:執行sql語句 cursor.execute(sql) # 提交sql語句執行操作 conn.commit() print("成功添加了{}條資料".format(cursor.rowcount)) # 關閉連線 cursor.close() conn.close() data1 = (0, '書桌', '南京', '6', '50', '100', '100') insertData('mycommodity','commodity',str(data1))
04.修改資料
# 匯入模組
import pymysql
# 定義連線到mysql資料庫的函式,返回連線物件
def getCon(db_name):
conn = pymysql.connect(host='localhost', user='root', password='123456', db=db_name, charset="utf8")
return conn
# 修改資料
def updateData(db_name,table_name,conditions):
# 第一步:連線到資料庫
conn = getCon(db_name)
# 第二步:建立遊標物件
cursor = conn.cursor() # cursor當前的程式到資料之間連線管道
# 第三步:組裝sql語句
sql = 'update '+ table_name +conditions
print(sql)
cursor.execute(sql)
# 提交sql語句執行操作
conn.commit()
print("成功更新了{}條資料".format(cursor.rowcount))
# 關閉連線
cursor.close()
conn.close()
# 定義 update 的條件
condition = " set c_name = '大桌字' where c_id=70"
updateData('mycommodity','commodity',condition)