我们在使用MySQL的时候,可以在MySQL的客户终端来操作数据库中的表,同时,也可以使用navicat等可视化的工具来操作数据表。但是,这只是操作个别数据,如果我们想要插入10万条数据,那肯定就不能这么做了。
我们可以通过程序写一个循环来自动插入,因此,PyMySQL就是使用python语言来直接操作数据库的一个接口。
明确了这一点,我们再开始介绍PyMySQL包:
1、PyMySQL的使用步骤:
2、案例:
2.1 查询数据库中的表的信息:
# 需求:查询数据库person中info表的信息
# 1.导包
import pymysql
try:
# 2.连接MySQL数据库的服务
connc = pymysql.Connect(
user="root", # The first four arguments is based on DB-API 2.0 recommendation.
password="4412",
host='127.0.0.1', # mysql服务端的IP,默认是127.0.0.1/localhost,或者写真实的ip
database='person',
port=3306,
charset="utf8")
# 3.创建游标对象
cur = connc.cursor()
# 4.编写SQL语句
sql = 'select * from info;'
# 5.使用游标对象调用SQL
cur.execute(sql)
# 6.获取查询的结果
result= cur.fetchall()
print(result)
# 7.关闭游标对象
cur.close()
# 8.关闭连接
connc.close()
except Exception as e:
print(e)
运行结果:
2.2 增加数据:
大部分的步骤都和前面一样,直接在程序中注释看:
# 需求:
# 增加数据 刘德华56 男 数据 到 数据库person--的info表中
# 修改数据 小王 的名字为 小王吧 到 数据库person--的info表中
# 删除数据 张三 数据库person--的info表中
# 1.导包
import pymysql
# 2.连接MySQL服务
connc = pymysql.Connect(
user="root", # The first four arguments is based on DB-API 2.0 recommendation.
password="4412",
host='127.0.0.1', # mysql服务端的IP,默认是127.0.0.1/localhost,或者写真实的ip
database='person',
port=3306,
charset="utf8")
# 3.创建游标对象
cur = connc.cursor()
try:
# 4.编写、增加、删除的SQL语句
# 增加数据 刘德华 56 男
sql = 'insert into info values(%s, %s, %s, %s)'
add_data = [0,"刘德华", 56, "男"]
# 5.使用游标对象执行SQL语句
cur.execute(sql, add_data)
# 6.提交操作
connc.commit()
except Exception as e:
print(e)
# 操作失败,数据回滚
connc.rollback()
finally:
# 7.关闭游标对象
cur.close()
# 8.关闭连接
connc.close()
print("结束!")
运行之后,看看person数据库中 表info 的数据,确实增加成功了:
2.3 修改数据:
# 需求:
# 增加数据 刘德华56 男 数据 到 数据库person--的info表中
# 修改数据 小王 的名字为 小王吧 到 数据库person--的info表中
# 删除数据 张三 数据库person--的info表中
# 1.导包
import pymysql
# 2.连接MySQL服务
connc = pymysql.Connect(
user="root", # The first four arguments is based on DB-API 2.0 recommendation.
password="4412",
host='127.0.0.1', # mysql服务端的IP,默认是127.0.0.1/localhost,或者写真实的ip
database='person',
port=3306,
charset="utf8")
# 3.创建游标对象
cur = connc.cursor()
try:
# 4.编写、增加、删除的SQL语句
# 修改数据 李四 的名字为 李四的爸爸
sql = 'update info set name=%s where name="李四"'
update_data = ["李四的爸爸"]
# 5.使用游标对象执行SQL语句
cur.execute(sql, update_data)
# 6.提交操作
connc.commit()
except Exception as e:
print(e)
# 操作失败,数据回滚
connc.rollback()
finally:
# 7.关闭游标对象
cur.close()
# 8.关闭连接
connc.close()
print("结束!")
运行之后,看看person数据库中 表info 的数据,确实修改成功了:
2.3 删除数据:
# 增加数据 刘德华56 男 数据 到 数据库person--的info表中
# 修改数据 小王 的名字为 小王吧 到 数据库person--的info表中
# 删除数据 张三 数据库person--的info表中
# 1.导包
import pymysql
# 2.连接MySQL服务
connc = pymysql.Connect(
user="root", # The first four arguments is based on DB-API 2.0 recommendation.
password="4412",
host='127.0.0.1', # mysql服务端的IP,默认是127.0.0.1/localhost,或者写真实的ip
database='person',
port=3306,
charset="utf8")
# 3.创建游标对象
cur = connc.cursor()
try:
# 4.编写、增加、删除的SQL语句
#删除 张三数据
sql = 'delete from info where name=%s'
delete_data = ["张三"]
# 5.使用游标对象执行SQL语句
cur.execute(sql, delete_data)
# 6.提交操作
connc.commit()
except Exception as e:
print(e)
# 操作失败,数据回滚
connc.rollback()
finally:
# 7.关闭游标对象
cur.close()
# 8.关闭连接
connc.close()
print("结束!")
运行之后,看看person数据库中 表info 的数据,确实删除成功了: