赞
踩
PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2 中则使用 mysqldb。
PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。
python连接SQL数据库首先需要用到 ”pymysql“ 模块
pip install指令:
pip install pymysql
用pymysql模块中的connect连接数据库,同时用cursor()函数创建游标,用于接收返回的结果。
import pymysql
# ---------连接--------------
connect = pymysql.connect(host='127.0.0.1', # 本地数据库
port=3306 #数据库用的端口号
user='root',
password='3061945',
db='sales',
charset='utf8') #服务器名,账户,密码,数据库名称
cur = connect.cursor()
print(cur) #输出一个游标实例
连接完成后就可以使用cur.execute()函数对数据库进行操作
# --------------------创建表----------------- try: create_sqli = "create table sys (id int, name varchar(30),phone int);" cur.execute(create_sqli) except Exception as e: print("创建数据表失败:", e) else: print("创建数据表成功;") # ---------------插入--------- try: insert_sqli = "insert into sys values(001, 'xiaoming',123456789);" cur.execute(insert_sqli) except Exception as e: print("插入数据失败:", e) else: # 如果是插入数据, 一定要提交数据, 不然数据库中找不到要插入的数据; connect.commit() print("插入数据成功;")
# 关闭数据库
cur.close() # 关闭游标
connect.close() # 关闭数据库连接
fetchone() 方法获取单条数据.
#!/usr/bin/python3 import pymysql # 打开数据库连接 db = pymysql.connect(host='localhost', user='testuser', password='test123', database='TESTDB') # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 使用 execute() 方法执行 SQL 查询 cursor.execute("SELECT VERSION()") # 使用 fetchone() 方法获取单条数据. data = cursor.fetchone() print ("Database version : %s " % data) # 关闭数据库连接 db.close()
db.commit() 提交到数据库执行
db.rollback() 如果发生错误则回滚
对于支持事务的数据库, 在Python数据库编程中,当游标建立之时,就自动开始了一个隐形的数据库事务。
commit()方法游标的所有更新操作,rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新的事务。
#!/usr/bin/python3 import pymysql # 打开数据库连接 db = pymysql.connect(host='localhost', user='testuser', password='test123', database='TESTDB') # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 插入语句 sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES ('Mac', 'Mohan', 20, 'M', 2000)""" try: # 执行sql语句 cursor.execute(sql) # 提交到数据库执行 db.commit() except: # 如果发生错误则回滚 db.rollback() # 关闭数据库连接 db.close()
#!/usr/bin/python3 import pymysql # 打开数据库连接 db = pymysql.connect(host='localhost', user='testuser', password='test123', database='TESTDB') # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 更新语句 sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M') try: # 执行SQL语句 cursor.execute(sql) # 提交到数据库执行 db.commit() except: # 发生错误时回滚 db.rollback() # 关闭数据库连接 db.close()
#!/usr/bin/python3 import pymysql # 打开数据库连接 db = pymysql.connect(host='localhost', user='testuser', password='test123', database='TESTDB') # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 删除语句 sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20) try: # 执行SQL语句 cursor.execute(sql) # 提交修改 db.commit() except: # 发生错误时回滚 db.rollback() # 关闭连接 db.close()
Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。
- fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
- fetchall(): 接收全部的返回结果行.
- rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。
读取数据后再进行处理及可视化
步骤:
1.连接数据库
pymysql.connect()
- 1
2.创建游标对象
conn.cursor()
- 1
3.执行sql语句
cur.execute(sql_num)
- 1
4.接受返回结果
sh = cur.fetchall()
- 1
5.循环赋值作为xy轴数据
for s in sh: #根据顺序将相应属性数据传入变量 v1.append(s[0]) v2.append(s[1])
- 1
- 2
- 3
from pyecharts import options as opts from pyecharts.charts import Scatter, Page from pyecharts.globals import SymbolType import pymysql #连接MySQL数据库 conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',password='3061945',db='sales',charset='utf8') cur = conn.cursor() #创建一个游标对象 cur sql_num = "SELECT trade_date,amount FROM stocks where trade_date>='2020-01-01'order by trade_date asc" cur.execute(sql_num) #execute() 方法执行 SQL 查询 sh = cur.fetchall() #fetchall(): 接收全部的返回结果行. v1 = [] v2 = [] for s in sh: #根据顺序将相应属性数据传入变量 v1.append(s[0]) v2.append(s[1]) def scatter_splitline() -> Scatter: c = ( Scatter() .add_xaxis(v1) .add_yaxis("成交金额", v2,label_opts=opts.LabelOpts(is_show=False)) .set_global_opts( title_opts=opts.TitleOpts(title="2020年企业股票成交金额分析", subtitle="成交金额(万元)"), xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), yaxis_opts=opts.AxisOpts(type_="value",min_=60,axistick_opts=opts.AxisTickOpts(is_show=True),splitline_opts=opts.SplitLineOpts(is_show=True)), toolbox_opts=opts.ToolboxOpts(), legend_opts=opts.LegendOpts(is_show=True) ) ) return c #第一次渲染时候调用load_javasrcript文件 scatter_splitline().load_javascript() #展示数据可视化图表 scatter_splitline().render_notebook()
plitLineOpts(is_show=True)),
toolbox_opts=opts.ToolboxOpts(),
legend_opts=opts.LegendOpts(is_show=True)
)
)
return c
#第一次渲染时候调用load_javasrcript文件
scatter_splitline().load_javascript()
#展示数据可视化图表
scatter_splitline().render_notebook()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。