?,本文中,使用到的工具有:Pycharm,Anaconda,MySQL 5.5,spyder(Anaconda)
什么是 PyMySQL?
PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2 中则使用 mysqldb。
一、?环境准备
1、安装pymysql:
进行Python连接mysql数据库之前,需要先安装一下pymysql。
直接在终端执行下面的命令即可。(在此处我将指定1.0.2版本)
pip install pymysql==1.0.2
2、查询安装:
下载完成后,在终端输入 pip list 即可看到下图:
pip list
可以看到我们的PyMySQL是1.0.2版本的。
3、Anaconda下载pymysql:
打开Anaconda,选择 Environments 点击右上方的的搜索框 输入 pymysql
点击方框,即可下载
方式一?:
此处我们可以选择 spyder 或者 pycharm 首先为大家介绍一下 spyder 我们只需要直接导入 pymysql 库即可
方式二?:
4、Pycharm下载pymysql
打开 Pycharm 选择文件,点击设置,
下划,选择python解释器,这里我的Pycharm已经配置了Anaconda环境
如果没有查询到 pymysql 可以在 Pycharm 终端中下载 pymysql 库
以上我们的环境就准备好了,下面我们进行编写程序 ☀
二、?代码编写,连接数据库
1、导入数据库表
import pymysql
数据库连接:
连接数据库前,请先确认以下事项:
连接数据库使用的用户名为 "root" ,密码为 "dai324542",创建了数据库 runoob你可以可以自己设定或者直接使用root用户名及其密码
db = pymysql.connect(host='localhost', user='root', password='dai324542', database='runoob', charset='utf8') # 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor() # 使用 execute() 方法执行 SQL 查询 cursor.execute("SELECT VERSION()") # 使用 fetchone() 方法获取单条数据.data = cursor.fetchone() print ("数据库连接成功!") # 关闭数据库连接db.close()
2、创建数据库表
# 创建表sql="""CREATE TABLE test ( FIRST_ CHAR(20) NOT NULL, SECOND_ CHAR(20), THIRD_ INT, FOURTH_ CHAR(1), FIFTH_ FLOAT )"""# 运行sql语句cursor.execute(sql)
这里我们所运用的sql语句是不是很熟悉了?
下面即是运行结果了,再mysql中可以刷新看到,我输出了一个提示 victory
3、数据库插入操作
此处我只是随便进行了一个举例,通过更改创建表时的操作可以插入不同类型的数据
try: sql = "insert into test(FIRST_,SECOND_,THIRD_,FOURTH_,FIFTH_) values ('MAC','MOTH','20','M','2000')" # 运行sql语句 cursor.execute(sql) # 修改 db.commit() # 关闭游标 cursor.close() # 关闭连接 db.close() print("victory!")except: print("false")
4、查询其中一个表的数据
# 查询语句try: cursor = db.cursor() sql = "select * from student" cursor.execute(sql) result = cursor.fetchall() for data in result: print(data)except Exception: print("查询失败")
5、删除表中的一条数据
# SQL 删除语句sql = "DELETE FROM student WHERE Sno='20111107'"try: # 执行SQL语句 cursor.execute(sql) # 向数据库提交 db.commit()except: # 发生错误时回滚 db.rollback()# 关闭连接db.close()# 成功提示print("victory!")
注意:Python中的MySQL默认事务打开,需要我们手动提交事务,否则操作无效
写到这里,这篇博客就又又又结束了,很感谢大家的观看,如果对大家有所帮助希望可以留下一个小小的?,?。因才学疏浅,如果各位大佬发现其中存在错误,敬请指出,(ง •_•)ง!