思路:
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)"
try:
cursor.execute(sql1)
#cursor.execute(sql2,[2,'xinyi'])
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!!!