python3對mysql的增刪改查操作
阿新 • • 發佈:2018-12-11
思路:
1.python中下載庫PyMySql
2.開啟MySQL,建立資料庫py_test
3.建立.py檔案,程式碼:連線資料庫,建立遊標物件,建立表,對錶進行增刪改查,關閉遊標物件,關閉資料庫
程式碼如下:
import pymysql
#資料庫連線
db=pymysql.connect(host="localhost",port=3306,user="root",password="12345",db="py_test",charset="utf8")
#建立遊標
cursor=db.cursor()
#建立資料表 ##若已存在則將表刪除 cursor.execute("drop table if exists user") ##建立資料表users sql="""create table user(id int not null,name char(20) not null)""" cursor.execute(sql)
#新增資料
##第一種方法:
sql1="insert into user(id,name) values(1,'kelanj')"
##第二種方法:
sql2="insert into user(id,name) values(%s,%s)"%(2,'xinyi')
try:
cursor.execute(sql1)
#cursor.execute(sql2)
db.commit()
print("資料新增成功!!")
except:
db.rollback()
print("資料新增失敗!")
##批量插入 sqlmany="insert into user(id,name) values(%s,%s)" T=((2,'xinyi'),(3,'kenan'),(4,'xinlan')) try: cursor.executemany(sqlmany,T) db.commit() print("資料批量插入成功啦!!") except: db.rollback() print("資料批量插入失敗!")
#資料查詢 sql4="select * from user " sql5="select * from user where id>'%d'"%1 try: cursor.execute(sql4) results=cursor.fetchone()#只會獲取結果中的第一條 results2=cursor.fetchmany(3)#返回長度為3的元組 print("fetchmany返回查詢的第2到第4條資料:%s"%str(results2)) if results is None: print("查詢結果為空") else: print("fetchone返回查詢的第一條資料:%s"%str(results)) cursor.execute(sql5) results=cursor.fetchall() print("輸出fetchall查詢結果:") for row in results: id=row[0] name=row[1] print("id=%d,name=%s"%(id,name)) except: print("是異常呢!")
#資料更新
sql6="update user set id=id+1 where name='%s'"%'xinyi'
try:
cursor.execute(sql6)
db.commit()
print("資料更新成功啦!")
except:
db.rollback()
print("更新失敗!")
##顯示更新資料操作之後的結果
print("顯示更新資料操作之後的結果:")
cursor.execute(sql4)
results3=cursor.fetchall()
print(results3)
#資料刪除
sql7="delete from user where id>'%d'"%3
try:
cursor.execute(sql7)
db.commit()
except:
db.rollback()
print("資料刪除失敗!")
##顯示刪除資料操作之後的資料
print("顯示刪除資料操作之後的資料:")
cursor.execute(sql4)
results3=cursor.fetchall()
print(results3)
#關閉遊標
cursor.close()
#關閉資料庫連線
db.close()
以上為完整程式碼!!只是分開復制了而已。。
全部程式碼執行結果為:
資料新增成功!!
資料批量插入成功啦!!
fetchmany返回查詢的第2到第4條資料:((2, 'xinyi'), (3, 'kenan'), (4, 'xinlan'))
fetchone返回查詢的第一條資料:(1, 'kelanj')
輸出fetchall查詢結果:
id=2,name=xinyi
id=3,name=kenan
id=4,name=xinlan
資料更新成功啦!
顯示更新資料操作之後的結果:
((1, 'kelanj'), (3, 'xinyi'), (3, 'kenan'), (4, 'xinlan'))
顯示刪除資料操作之後的資料:
((1, 'kelanj'), (3, 'xinyi'), (3, 'kenan'))
Process finished with exit code 0
over!!!