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

猜你喜欢

转载自blog.csdn.net/kelanj/article/details/82792254