1. 程式人生 > >python3對mysql的增刪改查操作

python3對mysql的增刪改查操作

思路:

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!!!