当前位置:   article > 正文

pymysql的安装及使用及使用mysql数据进行可视化(适合入门,过程详细明确,如有错误请一定指出)_pymysql怎么装

pymysql怎么装

Python连接MySQL数据库(pymysql)

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2 中则使用 mysqldb。

PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

一、准备模块

python连接SQL数据库首先需要用到 ”pymysql“ 模块

pip install指令:

pip install pymysql
  • 1

二、连接数据库connect()&cursor()

用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)    #输出一个游标实例
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

三、对数据库进行操作execute()

连接完成后就可以使用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("插入数据成功;")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

四、关闭数据库的连接close()

#  关闭数据库
cur.close()  # 关闭游标
connect.close()  # 关闭数据库连接
  • 1
  • 2
  • 3

处理MySQL的数据及简单可视化

一、简单的使用

1.查询

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

2.插入

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

3.更新

#!/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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

4.删除

#!/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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

二、获取数据

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

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()
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/475308
推荐阅读
相关标签
  

闽ICP备14008679号