精华内容
下载资源
问答
  • python连接mysql数据库,简单的例子,需要先安装pythone3.0、pymysql模块、mysql数据库才能运行
  • 这是我第一次写的代码:python连接MySQL数据库,查询数据后定时邮件发送数据,纯python代码。 首先用python连接MySQL数据库,查询出数据后转成DataFrame格式数据,再制作成网页版,构建成邮件,设置好定时时间,直接...
  • NULL 博文链接:https://liu-hliang.iteye.com/blog/846222
  • NULL 博文链接:https://hammer-nail.iteye.com/blog/467872
  • 通过python脚本连接mysql数据库, 并执行mysql数据库语句,工具类。
  • Python数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFlymSQL MySQL PostgreSQL Microsoft SQL Server 2000 InformixInterbase Oracle Sybase 不同的数据库你需要下载不同的DB API模块,例如你...
  • python连接mysql模块mysql-connector-python-2.1.1.tar.gz
  • 主要介绍了Python连接MySQL数据库方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 主要介绍了用 Python 连接 MySQL 的几种方式,大家可以根据实际情况选择合理的连接方式,需要的朋友可以参考下
  • 主要介绍了python3连接MySQL8.0的两种方式,本文通过多种方式给大家介绍的非常详细,代码附有文字注释,需要的朋友可以参考下
  • 主要介绍了python连接mysql调用存储过程示例,需要的朋友可以参考下
  • python连接MySQL

    千次阅读 2018-12-18 11:34:02
    1、安装Python链接Mysql数据库的接口 python3一般使用PyMySQL模块,此模块也有支持python2的。 pip install pymysql 详请可参考:http://m.yiibai.com/python/python_database_access.html 在python2上还可使用...

    1、安装Python链接Mysql数据库的接口

    python3一般使用PyMySQL模块,此模块也有支持python2的。

    pip install pymysql

    详请可参考:http://m.yiibai.com/python/python_database_access.html

    在python2上还可使用MySQLdb模块,MySQLdb模块的名字在pip上叫MySQL-python。

    pip install MySQL-python

    PyMySQL的使用方法和MySQLdb几乎一样。

    2、常用函数

    Python DB API 2.0 对事务提供了两个方法:

    • commit() 提交
    • rollback() 回滚

    cursor用来执行命令的方法:

    • callproc(self, procname, args) 用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数
    • execute(self, query, args) 执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
    • executemany(self, query, args) 执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
    • nextset(self) 移动到下一个结果集

    cursor用来接收返回值的方法:

    • fetchall(self) 接收全部的返回结果行.
    • fetchmany(self, size=None) 接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.
    • fetchone(self) 返回一条结果行.
    • rowcount 这是一个只读属性,并返回执行execute() 方法后影响的行数。
    • scroll(self, value, mode='relative') 移动指针到某一行; 如果mode='relative',则表示从当前所在行移动value条,如果 mode='absolute',则表示从结果集的第一行移动value条.

    3、数据库的连接与操作

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    import pymysql as pymysql
    
    # 连接数据库
    conn = pymysql.connect('localhost', 'root', 'root')
    
    # 也可以使用关键字参数
    conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='root', db='yu_sq', charset='utf8')
    
    # 也可以使用字典进行连接参数的管理
    config = {
        'host': '127.0.0.1',
        'port': 3306,
        'user': 'root',
        'passwd': 'root',
        'db': 'yu_sq',
        'charset': 'utf8'
    }
    conn = pymysql.connect(**config)
    
    # 如果使用事务引擎,可以设置自动提交事务,或者在每次操作完成后手动提交事务conn.commit()
    conn.autocommit(1)    # conn.autocommit(True) 
    
    # 使用cursor()方法获取操作游标
    cursor = conn.cursor()
    # 因该模块底层其实是调用CAPI的,所以,需要先得到当前指向数据库的指针。
    
    try:
        # 创建数据库
        DB_NAME = 'test'
        cursor.execute('DROP DATABASE IF EXISTS %s' %DB_NAME)
        cursor.execute('CREATE DATABASE IF NOT EXISTS %s' %DB_NAME)
        conn.select_db(DB_NAME)
    
        #创建表
        TABLE_NAME = 'user'
        cursor.execute('CREATE TABLE %s(id int primary key,name varchar(30))' %TABLE_NAME)
              
        # 批量插入纪录
        values = [] 
        for i in range(20):
            values.append((i,'kk'+str(i)))
        cursor.executemany('INSERT INTO user values(%s,%s)',values)
    
        # 查询数据条目 
        count = cursor.execute('SELECT * FROM %s' %TABLE_NAME)
        print ('total records:', cursor.rowcount)
        
        # 获取表名信息 
        desc = cursor.description
        print ("%s %3s" % (desc[0][0], desc[1][0]))
    
        cursor.scroll(10,mode='absolute')
        results = cursor.fetchall()
        for result in results:
            print (result)
    
    except:
        import traceback
        traceback.print_exc()
        # 发生错误时回滚
        conn.rollback()
    finally:
        # 关闭游标连接
        cursor.close()
        # 关闭数据库连接
        conn.close()
    
    

     

    展开全文
  • 本文给大家汇总介绍了使用python连接mysql的几个实例,非常的简单实用,有需要的小伙伴可以参考下
  • python 连接MySQL

    千次阅读 多人点赞 2018-05-06 18:43:42
    1.Python DB-APIPython的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同 的方式操作各数据库。Python DB-API使用流程:1. 引入API模块。2. 获取与数据库的连接。3. 执行SQL语句和存储过程。4....

    1.Python DB-API

    Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同 的方式操作各数据库。

    Python DB-API使用流程:
    1. 引入API模块。
    2. 获取与数据库的连接。
    3. 执行SQL语句和存储过程。

    4. 关闭数据库连接。

    2.MySQL

    MySQL是Web世界中使用最广泛的数据库服务器。是为服务器端设计的数据库,能承受高并发访问,MySQL内部有多种数据库引擎,最常用的引擎是支持数据库事务的InnoDB。

    (1)MySQL的事务

    一般来说,事务是必须满足4个条件(ACID): Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性)
    1、事务的原子性:一组事务,要么成功;要么撤回。
    2、稳定性 : 有非法数据(外键约束之类),事务撤回。
    3、隔离性:事务独立运行。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。事务的100%隔离,需要牺牲速度。

    4、可靠性:软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重构修改。可靠性和高速度不可兼得, innodb_flush_log_at_trx_commit选项 决定什么时候吧事务保存到日志里

    查询MySQL自动提交:autocommit

    mysql> show variables like 'auto%';

    +--------------------------+-------+
    | Variable_name            | Value |
    +--------------------------+-------+
    | auto_increment_increment | 1     |
    | auto_increment_offset    | 1     |
    | autocommit               | ON    |
    | automatic_sp_privileges  | ON    |
    +--------------------------+-------+
    (2)MySQL的常用操作

    授权超级用户:
    grant all privileges on *.* to 'tangnanbing'@'%' identified by '1qaz@WSX' with grant option;
    查看都有哪些库  show databases;
    查看某个库的表 use db; show tables \G; 
    查看表的字段 desc tb;
    查看建表语句 show create table tb;
    当前是哪个用户  select user();
    当前库 select database();
    创建库 create database db1; 
    创建表 create table t1 (id int, name char(40),adress varchar(30));  
    查看数据库版本 select version(); 
    查看mysql状态 show status;
    修改mysql参数 show variables like 'max_connect%'; set global max_connect_errors = 1000; 
    查看mysql队列 show processlist; 
    select * from information_schema.processlist where info is not null;
    sleep的可以忽略,qurey查询的才有
    创建普通用户并授权 grant all on *.* to databases1.user1 identified by '123456'; 
    grant all on db1.* to 'user2'@'10.0.2.100' identified by '111222'; 
    grant all on db1.* to 'user3'@'%' identified by '231222';insert into tb1 (id,name) values(1,'aming');
    更改密码 UPDATE mysql.user SET password=PASSWORD("newpwd") WHERE user='username' ;   
    查询 select count(*) from mysql.user; select * from mysql.db; select * from mysql.db where host like '10.0.%'; 
    插入 update db1.t1 set name='aaa' where id=1;  
    清空表 truncate table db1.t1; 
    删除表 drop table db1.t1; 
    删除数据库 drop database db1; 
    修复表 repair table tb1 [use frm];
    查看权限show grants for root@'localhost';
    查询表中的字段 echo "select user,host,password from mysql.user" |mysql -uroot -ppwd
    将查询到的信息导出到文件中 mysql -uroot -p1234556 -e "select user,host,password into outfile '/home/mysql/1.txt' from mysql.user;";

    3.连接MySQL使用的包

    (1)MySQLdb

     是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。

    我们可以通过网站下载安装,下载地址:https://pypi.org/project/MySQL-python/1.2.5/#files   

    分别对应有windows和源码安装的方法。

    (2)pymysql

    python3以后是不支持MySQLdb了,但是可以使用pymysql包,可以直接通过pymysql进行连接。
    pip install pymysql

    mysqldb 与 pymsql在用法上几乎相同,只是前者支持python2,后者支持python3,所以根据自己的版本使用就行了。

    4.连接实例

    Python 数据库图解流程


    Connection、Cursor比喻


    (1)Connection()

    Connection()的参数:

    host:数据库主机名.默认是用本地主机
    port:MySQL服务使用的TCP端口.默认是3306,数字类型
    user:数据库登陆名.默认是当前用户
    password:数据库登陆的秘密.默认为空
    db:要使用的数据库名.没有默认值
    charset:数据库编码

    (2)cursor()
    cursor就是一个Cursor对象,这个cursor是一个实现了迭代器(def__iter__())和生成器(yield)的MySQLdb对象,这个时候cursor中还没有数据,只有等到fetchone()或fetchall()的时候才返回一个元组tuple,才支持len()和index()操作,这也是它是迭代器的原因。但同时为什么说它是生成器呢?因为cursor只能用一次,即每用完一次之后记录其位置,等到下次再取的时候是从游标处再取而不是从头再来,而且fetch完所有的数据之后,这个cursor将不再有使用价值了,即不再能fetch到数据了。


    常用方法:

    close():关闭此游标对象
    fetchone():得到结果集的下一行
    fetchmany(size):得到结果集的下几行
    fetchall():得到结果集中剩下的所有行
    excute(sql[, args]):执行一个数据库查询或命令
    excutemany(sql, args):执行多个数据库查询或命令


    (3)连接测试

    在连接之前我们要先在数据库上授权一个用户,让它可以登录:

    授权用户 grant all privileges on *.* to sixgod@"%" identified by "123456";

                   flush privileges;

    授权之后就可以用这个用户来进行连接了。


    conn = pymsql.connect(host='localhost',port = 3306,user='sixgod', passwd='123456',db ='test')

    #Connect() 方法用于创建数据库的连接,里面指定参数:用户名,密码,主机等信息。


    cur=conn.cursor()  #通过获取到的数据库连接conn下的cursor()方法来创建游标。

    cur.execute("show databases;")
    #通过游标cur 操作execute()方法可以写入纯sql语句。通过execute()方法中写入sql语句来对数据进行操作。

    data =cur.fetchall() #获取查询到数据
    print(date) #将数据打印

    cur.commit()#如果是向数据库插入一条数据后,必须使用该命令,否则数据不会被真正的写入。
    cur.close() #关闭游标

    conn.close() #关闭数据库连接

    
    
    使用pycharm编辑器连接:
    import pymysql
    
    conn = pymysql.connect(host="location",port=3306,user="sixgod",password="123456",db="test")
    cur = conn.cursor()
    
    cur.execute("show tables;")
    data = cur.fetchall()
    print(data)
    
    cur.close()
    conn.close()
    结果为:(('sixgod',), ('text',))
    可以看到已经正确连接,并且可以进行相关查询。

    当插入数据时可以这样写:
    import pymysql
    
    conn = pymysql.connect(host="location",port=3306,user="sixgod",password="123456",db="test")
    cur = conn.cursor()
    
    try:
        cur.execute("insert into sixgod(id,name) values(3,'a');") # 执行sql语句
        conn.commit()  # 提交到数据库执行
    except:
       conn.rollback() # 如果发生错误则回滚
    
    cur.close()#关闭游标
    conn.close()#释放数据库资源



    展开全文
  • 尽管很多 NoSQL 数据库近几年大放异彩,但是像 MySQL 这样的关系型数据库依然是...MySQL-python 又叫 MySQLdb,是 Python 连接 MySQL 最流行的一个驱动,很多框架都也是基于此库进行开发,遗憾的是它只支持 Python2.x,
  • 终于让pythonMySQL连接上了,花了两天时间才成功建立连接,下面是我遇到问题。 在安装MySQL时候要注意有一个选择,如果你选择了Use Strong Password Encryption for Authentication,就会强密码加密,建不成数据库...
  • Python连接MySQL数据库

    千次阅读 多人点赞 2019-05-14 10:47:02
    本文主要介绍Python 3如何连接MySQL数据库,需要注意的是,Python 2与Python 3连接数据库的方式有所不同,阅读本文前,请确保当前Python的环境为Python 3。 1、首先需要导入pymysql库,如果没有此库的可以使用pip...

            本文主要介绍Python 3如何连接MySQL数据库,需要注意的是,Python 2与Python 3连接数据库的方式有所不同,阅读本文前,请确保当前Python的环境为Python 3。


    1、首先需要导入pymysql库,如果没有此库的可以使用pip命令进行安装,当然如果是基于anaconda的小伙伴最好使用conda命令进行安装:

    pip/pip3/conda install pymysql

    安装成功后,导入:

    '''
    连接MySQL数据库
    '''
    
    import pymysql

    2、打开数据库连接

    数据库连接可以分为两种:一种是localhost;另一种是远程机器。

    (1)localhost

    如果是localhost,可以使用如下简单的命令进行连接:

    db = pymysql.connect("localhost", "root", "root", "xzw")

    (2)如果MySQL数据库没有安装在本地,则可以使用如下方式进行连接:

    db = pymysql.connect(
             host='192.168.0.200',
             port=3306,
             user='user',
             passwd='password',
             db ='xzw',
             charset='utf8'
             )

    3、测试连接是否成功

    '''
    连接MySQL数据库
    '''
    
    import pymysql
    
    # 打开数据库连接
    db = pymysql.connect("localhost", "root", "root", "xzw")
    
    # 使用cursor()方法创建一个游标对象cursor
    cursor = db.cursor()
    
    # 使用execute()方法执行SQL查询
    cursor.execute("SELECT VERSION()")
    # 使用 fetchone() 方法获取单条数据.
    data = cursor.fetchone()
    print("Database version : %s " % data)
    
    # 关闭数据库连接
    db.close()

    打印输出结果如下:

    Database version : 5.5.28 

    4、创建一个员工测试表

    '''
    连接MySQL数据库
    '''
    
    import pymysql
    
    # 打开数据库连接
    db = pymysql.connect("localhost", "root", "root", "xzw")
    
    # 使用cursor()方法创建一个游标对象cursor
    cursor = db.cursor()
    
    # 使用预处理语句创建表
    sql = """CREATE TABLE EMPLOYEE (
             FIRST_NAME  CHAR(20) NOT NULL,
             LAST_NAME  CHAR(20),
             AGE INT,
             SEX CHAR(1),
             INCOME FLOAT )"""
    
    cursor.execute(sql)
    
    # 关闭数据库连接
    db.close()

    结果如下:

    5、向测试表中插入数据

    '''
    连接MySQL数据库
    '''
    
    import pymysql
    
    # 打开数据库连接
    db = pymysql.connect("localhost", "root", "root", "xzw")
    
    # 使用cursor()方法创建一个游标对象cursor
    cursor = db.cursor()
    
    # SQL 插入语句
    sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
             LAST_NAME, AGE, SEX, INCOME)
             VALUES ('xzw', 'yxy', 24, 'M', 2000)"""
    try:
       # 执行sql语句
       cursor.execute(sql)
       # 提交到数据库执行
       db.commit()
    except:
       # 如果发生错误则回滚
       db.rollback()
    
    # 关闭数据库连接
    db.close()

    结果如下:

    也可以将SQL定义成如下形式进行操作:

    sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
           LAST_NAME, AGE, SEX, INCOME) \
           VALUES ('%s', '%s',  %s,  '%s',  %s)" % \
           ('xzw', 'yxy', 24, 'M', 2000)

    6、查询数据

    '''
    连接MySQL数据库
    '''
    
    import pymysql
    
    # 打开数据库连接
    db = pymysql.connect("localhost", "root", "root", "xzw")
    
    # 使用cursor()方法创建一个游标对象cursor
    cursor = db.cursor()
    
    # SQL 查询语句
    sql = "SELECT * FROM EMPLOYEE \
           WHERE INCOME > %s" % (1000)
    try:
       # 执行SQL语句
       cursor.execute(sql)
       # 获取所有记录列表
       results = cursor.fetchall()
       for row in results:
          fname = row[0]
          lname = row[1]
          age = row[2]
          sex = row[3]
          income = row[4]
           # 打印结果
          print ("fname=%s,lname=%s,age=%s,sex=%s,income=%s" % \
                 (fname, lname, age, sex, income ))
    except:
       print ("Error: unable to fetch data")
    
    # 关闭数据库连接
    db.close()

    结果如下:

    fname=xzw,lname=yxy,age=24,sex=M,income=2000.0

    注意:更新、删除等操作与上文所给出的示例类似,这里就不再赘述了~

     

    你们在此过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题。

    展开全文
  • Python 连接MySQL

    千次阅读 2019-07-11 13:32:46
    前言 数据库技术(例如MySQL)在气象业务和其他商业行业中都有着广泛的应用,气象与电网结合的大项目甚至都用上了hadoop分布式存储Hadoop中的Hive组件...PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,Pyt...

    前言

    数据库技术(例如MySQL)在气象业务和其他商业行业中都有着广泛的应用,气象与电网结合的大项目甚至都用上了hadoop分布式存储Hadoop中的Hive组件和数据库在语法上高度相似。
    传统运行mysql脚本的方法是在一些流行的IDE中运行,比如Mysql8.0自带的 workbench,还有DBeaver等。
    PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,Python2中使用mysqldb。在此文中以PyMysql为例,在python中运行mysql代码, 可以充分结合python的灵活性和mysql的强大查询能力提高生产力。比如mysql中很难循环遍历,我们可以利用python对某个表名列表进行遍历。又比如,一些指标计算用pandas包和自己写的模块非常高效,若用mysql则晦涩难懂了。
    在这里插入图片描述
    MySQL 8.0自带的 Workbench 界面

    pymysql连接MySQL

    import pymysql  
    import  pymysql.cursors
    cnn= pymysql.connect(host='localhost',     #IP
                                 user='root',  #用户名
                                 password='xxxx',  #密码
                                 port=3306,  #端口号
                                 charset='utf8')#注意是utf8不是utf-8 
    # 使用cursor()方法获取操作游标 
    cursor = cnn.cursor()
    # 使用execute方法执行SQL语句
    cursor.execute("SELECT VERSION()")
    result = cursor.fetchone()
    print ("Database version : %s " % result)
    

    Database version : 8.0.15

    pymysql创建表格

    #https://www.runoob.com/python3/python3-mysql.html
    import pymysql
    # 打开数据库连接
    db = pymysql.connect("localhost","root","deepwind","demo" ) #,"TESTDB" 
    # 使用 cursor() 方法创建一个游标对象 cursor
    cursor = db.cursor()
    # 使用 execute() 方法执行 SQL,如果表存在则删除
    cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
     # 使用预处理语句创建表
    sql_1 = """CREATE TABLE EMPLOYEE (
             FIRST_NAME  CHAR(20) NOT NULL,
             LAST_NAME  CHAR(20),
             AGE INT,  
             SEX CHAR(1),
             INCOME FLOAT )"""
    cursor.execute(sql)
    result1=cursor.fetchall()
    sql_2="SHOW TABLES"
    cursor.execute(sql_2)
    result2=cursor.fetchall()
    print('result1:',result1) 
    print('result2:',result2) 
    # 关闭数据库连接
    db.close()
    

    result1: ()
    result2: ((‘demo’,), (‘employee’,))

    单次插入数据

    #!/usr/bin/python3
    import pymysql
    # 打开数据库连接,xxx是你的密码
    db = pymysql.connect("localhost","root","xxx","demo" )
    # 使用cursor()方法获取操作游标 
    cursor = db.cursor()
    # SQL 插入语句
    sql_1 = "INSERT INTO EMPLOYEE(FIRST_NAME, \
           LAST_NAME, AGE, SEX, INCOME) \
           VALUES ('%s', '%s',  %s,  '%s',  %s)" % \
           ('Mac', 'Mohan', 20, 'M', 2000)
    
    sql_2 = "INSERT INTO EMPLOYEE(FIRST_NAME, \
           LAST_NAME, AGE, SEX, INCOME) \
           VALUES ('%s', '%s',  %s,  '%s',  %s)" % \
           ('Johon', 'Snow', 28, 'M', 9000)
    try:
        cursor.execute(sql_1)
        cursor.execute(sql_2)
       # 执行sql语句
        db.commit()
    except:
       # 发生错误时回滚
       db.rollback()
    # 关闭数据库连接
    db.close()
    #https://www.runoob.com/python3/python3-mysql.html
    

    批量插入

    # https://blog.csdn.net/ATOOHOO/article/details/88173151    pymysql单条插入数据和批量插入数据:
    import pymysql
    
    # 打开数据库连接
    db = pymysql.connect("localhost","root","xxx","demo")
    
    # 使用 cursor() 方法创建一个游标对象 cursor
    cursor = db.cursor()
    
    # SQL 插入语句
    sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
           LAST_NAME, AGE, SEX, INCOME) \
           VALUES (%s,%s,%s,%s,%s)"
    # 区别与单条插入数据,VALUES ('%s', '%s',  %s,  '%s', %s) 里面不用引号
    
    val = (('li', 'si', 16, 'F', 1000),
           ('Bruse', 'Jerry', 30, 'F', 3000),
           ('Lee', 'Tomcat', 40, 'M', 4000),
           ('zhang', 'san', 18, 'M', 1500))
    try:
       # 执行sql语句
       cursor.executemany(sql,val)
       # 提交到数据库执行
       db.commit()
    except:
       # 如果发生错误则回滚
       db.rollback()
    
    # 关闭数据库连接
    db.close()
    

    筛选出收入大于1000的人

    #!/usr/bin/python3
    import pymysql
    # 打开数据库连接
    db = pymysql.connect("localhost","root","xxx","demo" )
    # 使用cursor()方法获取操作游标 
    cursor = db.cursor()
    # SQL 查询语句
    sql = "SELECT * FROM EMPLOYEE \
           WHERE INCOME > %s" % (1000)
    try:
       # 执行SQL语句
       cursor.execute(sql)
       # 获取所有记录列表
       results = cursor.fetchall()
       for row in results:
          fname = row[0]
          lname = row[1]
          age = row[2]
          sex = row[3]
          income = row[4]
           # 打印结果
          print ("fname=%s,lname=%s,age=%s,sex=%s,income=%s" % \
                 (fname, lname, age, sex, income ))
    except:
       print ("Error: unable to fetch data")
    # 关闭数据库连接
    db.close()
    

    fname=Mac,lname=Mohan,age=20,sex=M,income=2000.0
    fname=Johon,lname=Snow,age=28,sex=M,income=9000.0

    配合sqlalchemy和pandas 输出dataframe并保存

    from sqlalchemy import create_engine
    import pandas as pd
    engine=create_engine('mysql+pymysql://root:xxxx@localhost:3306/demo')
    # 查询语句,选出employee表中的所有数据
    sql = "SELECT * FROM EMPLOYEE \
           WHERE INCOME > %s" % (1000)
    
    # read_sql_query的两个参数: sql语句, 数据库连接
    df = pd.read_sql_query(sql, engine)
    
    # 输出employee表的查询结果
    print(df)
    df.to_csv('employees.csv',encoding='utf-8')  #保存
    

    在这里插入图片描述
    有了datafram格式的数据,业务人员就可以利用pandas 对数据进行各种骚操作了。

    商业实战

    一、 了解某公司某数据库内含有的表(表名为杜撰)

    import pymysql
    # 打开数据库连接
    db = pymysql.connect("ip地址","账户名","密码","库名" ) 
    # 使用 cursor() 方法创建一个游标对象 cursor
    cursor = db.cursor()
    sql_1="SHOW TABLES"
    cursor.execute(sql_1)
    result1=cursor.fetchall()
    print('result1:',result1) 
    # 关闭数据库连接
    db.close()
    

    result1: ((‘dim_category’,), (‘dim_date’,), (‘dim_goods’,), (‘dim_member’,), (‘dim_shop’,), (‘fct_sales’,), (‘fct_sales_item’,))

    从上述结果中我们可以知道Market数据库中含有七张表:商品种类表,日期表,商品表,会员表,店铺表,销售订单表,销售订单明细表。

    二 查看销售订单表和销售订单明细

    在这里插入图片描述
    可以看出两种表有共同的列 salesNo订单号,但是明细表多了goodsID 列
    。好比我在NUIST零食店一共买了鸭肠、鸭血、鸭肝三种物品,但是这三样货是一起付款的,这只是一笔订单。所以我买它们的时候生成了一个salesID(3956756),也就是我们付款后收银员给我们的小票。

    三 实践任务:分析单品促销

    大家一般都了解一些超市的套路,比如某几日该超市的大米特别特别便宜,甚至亏本,商家的目的是为了吸引人流量,导引顾客购买其他商品。大爷大妈辛辛苦苦来趟超市,不会只买大米吧。假如大米的商品ID号为4130085,接下来我就要找到 哪些订单中包含了大米, 也就是 哪些订单买大米的同时,还顺带买了其他商品,这些商品带来了多少销售额,这些都是领导最关心的问题了。

    --注:我这有个学习Python基地,里面有很多学习资料,感兴趣的+Q群:895817687
    from sqlalchemy import create_engine
    import pandas as pd
    engine=create_engine('mysql+pymysql://<账户名>:<密码>$@<ip地址>:3306/<数据库名称>')
    #第一步:取包括这个商品的订单号 ,将fct_sales_item  另取名为t1
    sql ="""select distinct(t1.salesNo)
        from dw.fct_sales_item t1
        where dimDateID between '20170703' and '20170709'
        and goodsID ='4130085';
    """
    df= pd.read_sql_query(sql, engine)
    print(df)
    # 关闭数据库连接
    db.close()
    
    

    有了包含大米的订单号(从明细表fct_sales_ item(别名t1)中得到),这些订单号取名为t2 ,与fct_sales(别名t3)表连接,筛选出这些订单号, 得到了新表,对新表进行订单号分组统计.

    在这里插入图片描述

    展开全文
  • 主要介绍了IronPython连接MySQL的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 作者 | CDA数据分析师 来源 | CDA数据分析研究院 ...两种方法进行数据库的连接分别是PyMySQL和mysql.connector 步骤: 连接数据库 生成游标对象 执行SQL语句 关闭游标 关闭连接 PyMySQL PyMySQL : 是封装了M...
  • python 连接 mysql 超时,请问怎么解决

    千次阅读 2021-01-30 05:29:30
    MYSQL_OPT_READ_TIMEOUT (argument type: unsigned int *)The timeout in seconds for each attempt to read from the server. There are retries if necessary, so the total effective timeout value is three tim...
  • 这是一篇介绍python连接和使用mysql数据库的文档,介绍了python对mysql数据库的insert、update、delete等基本操作。
  • python连接mysql数据库端口设置

    千次阅读 2020-07-24 07:41:18
    这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入...第一次调试python连接数据库提示:连接MySQL数据库出现错误:Access denied for user ‘root
  • Python连接Mysql进行增删改查

    千次阅读 多人点赞 2020-07-26 18:42:22
    Python连接Mysql 使用Python连接Mysql数据库需要安装相应的库 以管理员身份运行cmd,输入命令 pip install mysql.connector
  • python连接mysql数据库示例,提供创建表,删除表,数据增、删、改,批量插入操作,大家参考使用吧
  • mysql学习笔记一(python连接mysql

    千次阅读 2018-05-29 23:34:53
    最近学习python,顺带学习mysql,学习方式主要与其他数据库进行对比学习,其中部分内容参考大神们的...4、python连接mysql数据库 5、Conda 6、python操作mysql数据库 1、mysql与oracle的简单区别 1)、体量 ORA...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 152,896
精华内容 61,158
关键字:

python链接mysql

python 订阅
mysql 订阅