51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2282|回复: 9
打印 上一主题 下一主题

[资料] Python使用MySQL数据库(新)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2017-6-19 10:23:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    之前写过一篇 Python使用MySQL数据库的博客,主要使用的是Python2和MySQLdb驱动。

 然而,2016年开始,我从Python2切换到了Python3,Python2已经基本不再使用,MySQLdb驱动从2014年1月停止了维护。所以,打算重新再来写
Python2 ---> Python3
MySQLdb --> PyMySQL

一,安装PyMySQL
Python是编程语言,MySQL是数据库,它们是两种不同的技术;要想使Python操作MySQL数据库需要使用驱动。这里选用PyMySQL驱动。
当然,最简单的安装方式还是使用pip命令。

> pip install  PyMySQL

把install 换成show命令,查看PyMySQL安装是否成功。


二,创建MySQL表

执行下面的SQL语句,创建一张users 表。
  1. CREATE TABLE `users` (
  2.     `id` INT(11) NOT NULL AUTO_INCREMENT,
  3.     `email` VARCHAR(255) COLLATE utf8_bin NOT NULL,
  4.     `password` VARCHAR(255) COLLATE utf8_bin NOT NULL,
  5.     PRIMARY KEY (`id`)
  6. ) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
  7. AUTO_INCREMENT=1 ;
复制代码

三,Python操作MySQL
接下来才是重点,Python操作MySQL数据库。
4.1插入数据:
  1. import pymysql.cursors


  2. # 连接MySQL数据库
  3. connection = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='198876', db='guest',
  4.                              charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)

  5. # 通过cursor创建游标
  6. cursor = connection.cursor()

  7. # 创建sql 语句,并执行
  8. sql = "INSERT INTO `users` (`email`, `password`) VALUES ('huzhiheng@itest.info', '123456')"
  9. cursor.execute(sql)

  10. # 提交SQL
  11. connection.commit()
复制代码
 不管你使用的是什么工具或库,连接数据库这一步必不可少。host为数据库的主机IP地址,port为MySQL的默认端口号,user为数据的用户名,password为数据库的登录密码,db为数据库的名称。

  cursor()方法创建数据库游标。

  execute()方法执行SQL语句。

  commit()将数据库的操作真正的提交到数据。

4.2. 查询数据
  1. import pymysql.cursors


  2. # 连接MySQL数据库
  3. connection = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='198876', db='guest', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)


  4. # 通过cursor创建游标
  5. cursor = connection.cursor()

  6. # 执行数据查询
  7. sql = "SELECT `id`, `password` FROM `users` WHERE `email`='huzhiheng@itest.info'"
  8. cursor.execute(sql)

  9. #查询数据库单条数据
  10. result = cursor.fetchone()
  11. print(result)

  12. print("-----------华丽分割线------------")

  13. # 执行数据查询
  14. sql = "SELECT `id`, `password` FROM `users`"
  15. cursor.execute(sql)

  16. #查询数据库多条数据
  17. result = cursor.fetchall()
  18. for data in result:
  19.     print(data)


  20. # 关闭数据连接
  21. connection.close()
复制代码
 接下来的操作就是数据库的查询了。

  fetchone() 用于查询单条数据。

  fetchall() 用于查询多条数据。

  close() 最后不要忘记了关闭数据连接。

  运行结果:
  1. {'password': '123456', 'id': 1}
  2. -----------华丽分割线------------
  3. {'password': '123456', 'id': 1}
  4. {'password': '654321', 'id': 2}
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

  • TA的每日心情

    2024-7-8 09:00
  • 签到天数: 943 天

    连续签到: 1 天

    [LV.10]测试总司令

    2#
    发表于 2017-6-19 10:54:44 | 只看该作者
    支持分享
    顶一下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    1720761397
  • 签到天数: 1 天

    连续签到: 1 天

    4#
    发表于 2017-6-19 11:32:14 | 只看该作者
    入行3年了感觉进入了一个瓶颈,性能、自动化都接触了一些,但是不够深入,由于年龄的关系也没能干上管理层,有点迷茫了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2024-7-12 13:16
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
    发表于 2017-6-19 11:32:48 | 只看该作者
    刚看完那个基于python的selenium那本书
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-22 07:47 , Processed in 0.076751 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表