本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用。

PyMySQL介绍

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

Django中也可以使用PyMySQL连接MySQL数据库。

PyMySQL安装

使用pycharm安装PyMySQL

点击File-->右键Settings-->左侧:Project:文件夹名字-->Project Interpreter-->右侧Project Interpreter-->Python安装版本-->最右侧点击+号-->搜索框中搜索pymysql-->左下方点击Install Package

pip3/pip install pymysql

在Pycharm中生成数据库

Pycharm点击view-->Tool Bottons-->Pycharn右上方出现Database点击进去-->左上方加号

到此为止,相关操作结束

连接数据库

注意事项

在进行本文以下内容之前需要注意:

  • 你有一个MySQL数据库,并且已经启动。
  • 你有可以连接该数据库的用户名和密码
  • 你有一个有权限操作的database

基本使用

# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()
# 定义要执行的SQL语句
sql = """
CREATE TABLE USER1 (
id INT auto_increment PRIMARY KEY ,
name CHAR(10) NOT NULL UNIQUE,
age TINYINT NOT NULL
)ENGINE=innodb DEFAULT CHARSET=utf8;
"""
# 执行SQL语句
cursor.execute(sql)
# 关闭光标对象
cursor.close()
# 关闭数据库连接
conn.close()

返回字典格式数据:

# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
# 得到一个可以执行SQL语句并且将结果作为字典返回的游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 定义要执行的SQL语句
sql = """
CREATE TABLE USER1 (
id INT auto_increment PRIMARY KEY ,
name CHAR(10) NOT NULL UNIQUE,
age TINYINT NOT NULL
)ENGINE=innodb DEFAULT CHARSET=utf8;
"""
# 执行SQL语句
cursor.execute(sql)
# 关闭光标对象
cursor.close()
# 关闭数据库连接
conn.close()

注意:

charset=“utf8”,编码不要写成"utf-8"

增删改查操作

# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()
sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"
username = "Alex"
age = 18
# 执行SQL语句
cursor.execute(sql, [username, age])
# 提交事务
conn.commit()
cursor.close()
conn.close()

插入数据失败回滚

# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()
sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"
username = "Alex"
age = 18
try:# 执行SQL语句cursor.execute(sql, [username, age])# 提交事务conn.commit()
except Exception as e:# 有异常,回滚事务conn.rollback()
cursor.close()
conn.close()

获取插入数据的ID(关联操作时会用到)

# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()
sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"
username = "Alex"
age = 18
try:# 执行SQL语句cursor.execute(sql, [username, age])# 提交事务conn.commit()# 提交之后,获取刚插入的数据的IDlast_id = cursor.lastrowid
except Exception as e:# 有异常,回滚事务conn.rollback()
cursor.close()
conn.close()

批量执行

# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()
sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"
data = [("Alex", 18), ("Egon", 20), ("Yuan", 21)]
try:# 批量执行多条插入SQL语句cursor.executemany(sql, data)# 提交事务conn.commit()
except Exception as e:# 有异常,回滚事务conn.rollback()
cursor.close()
conn.close()

# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()
sql = "DELETE FROM USER1 WHERE id=%s;"
try:cursor.execute(sql, [4])# 提交事务conn.commit()
except Exception as e:# 有异常,回滚事务conn.rollback()
cursor.close()
conn.close()

# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()
# 修改数据的SQL语句
sql = "UPDATE USER1 SET age=%s WHERE name=%s;"
username = "Alex"
age = 80
try:# 执行SQL语句cursor.execute(sql, [age, username])# 提交事务conn.commit()
except Exception as e:# 有异常,回滚事务conn.rollback()
cursor.close()
conn.close()

查询单条数据
# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()
# 查询数据的SQL语句
sql = "SELECT id,name,age from USER1 WHERE id=1;"
# 执行SQL语句
cursor.execute(sql)
# 获取单条查询数据
ret = cursor.fetchone()
cursor.close()
conn.close()
# 打印下查询结果
print(ret)

查询多条数据
# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()
# 查询数据的SQL语句
sql = "SELECT id,name,age from USER1;"
# 执行SQL语句
cursor.execute(sql)
# 获取多条查询数据
ret = cursor.fetchall()
cursor.close()
conn.close()
# 打印下查询结果
print(ret)

进阶用法

# 可以获取指定数量的数据
cursor.fetchmany(3)
# 光标按绝对位置移动1
cursor.scroll(1, mode="absolute")
# 光标按照相对位置(当前位置)移动1
cursor.scroll(1, mode="relative")

转载于:https://www.cnblogs.com/bypp/p/8615746.html

Python链接MySQL相关推荐

  1. 链接mysql_使用python链接mysql及redis(缓存型数据库)

    python链接数据库mysql操作,首先我们需要借助第三方库pymysql. cmd终端下载:pip install pymysql import pymysql#链接数据库db = pymysql ...

  2. python链接mysql系统结构设计_MySQLpython交互

    MySQL&python交互 一.Python操作MySQL步骤(原始的执行SQL语句) 引入pymysql模块 image.png from pymysql import * Connect ...

  3. Python --链接MYSQL数据库与简单操作 含SSH链接

    项目是软硬件结合,在缺少设备的情况,需要通过接口来模拟实现与设备的交互,其中就需要通过从数据库读取商品的ID信息 出于安全考虑  现在很多数据库都不允许通过直接访问,大多数是通过SSH SSH : 数 ...

  4. python链接mysql 判断是否成功_【初学python】使用python连接mysql数据查询结果并显示...

    因为测试工作经常需要与后台数据库进行数据比较和统计,所以采用python编写连接数据库脚本方便测试,提高工作效率,脚本如下(python连接mysql需要引入第三方库MySQLdb,百度下载安装) # ...

  5. python链接mysql 判断是否成功_python连接mysql数据库并读取数据的实现

    1.安装pymysql包 pip install pymysql 注: MySQLdb只支持python2,pymysql支持python3 2.连接数据 import pymysql import ...

  6. python链接mysql系统结构设计_第11章:使用Python打造MySQL专家系统

    1.Python语言高级特性 1).深入浅出Python生成器 1).生成器函数:与普通函数定义类似,使用yield语句而不是return语句返回结果.yield语句一次返回一个结果,在每个结果中间挂 ...

  7. Python笔记,Python链接mysql

    Linux中的基础配置操作 1.安装好mysql [root@localhost ~]#yum install mariadb -y [root@localhost ~]# yum install m ...

  8. 用pymysql 建立python链接mysql数据库02

    昨天下载完mysql,并且安装好了,看下版本mysql->5.6.24 利用navicat建立了新表,并增加了对应内容,过程比较简答 好了,准备工作完毕,开始测试链接 方法和代码如下,大多数计算 ...

  9. python链接mysql报错2003_Python连接Mysql报错问题解决

    import MySQLdb #打开数据库 db = MySQLdb.connect("127.0.0.1","root","123456" ...

最新文章

  1. Android13.9.15
  2. POJ 2231 Moo Volume(递推、前缀和)
  3. scrollBy与scrollTo的区别与用法
  4. NumPy之:多维数组中的线性代数
  5. vue中mixins的理解
  6. 自动加密可序列化的类
  7. Android开发学习之基于ViewPager实现Gallery画廊效果
  8. GNS3中RIP的过滤和修改
  9. Android 四大组件学习之Service二
  10. fpga电平约束有什么作用_FPGA开发全攻略——时序约束
  11. 进程管理API之get_task_mm
  12. java numberformat_Java NumberFormat 类的详解及实例
  13. 基于PostgreSQL进行Java应用开发
  14. 如何通过一根网线连接两台电脑,实现数据的传输?
  15. 监听通知栏内容,获取通知栏消息,安卓原生SDK扩展
  16. Windows+iPad扩展屏幕-随航功能
  17. 2020-8-15词汇
  18. 椭圆曲线加密(Elliptic Curve Cryptography, ECC)
  19. SSO(Single Sign On):原理与使用
  20. 反思,让人难以忍受的人

热门文章

  1. 深度学习开源库tiny-dnn的使用(MNIST)
  2. Windows7 64位机上Emgu CV2.4.2安装与配置
  3. Windows7在Eclipse中配置Python+OpenCV
  4. CxImage类库的简介
  5. 【AI】CelebA数据介绍、下载及说明
  6. 分享一个ssh打通的脚本
  7. 计算机应用a级考试,四川省职称计算机应用能力考试A级模拟题
  8. 7000p可以加装固态吗_解惑丨地暖不热加装循环泵可以吗?
  9. matlab图像处理课程设计,基于MATLAB_GUI的数字图像处理程序设计课程设计
  10. Java项目:进销存系统(java+Gui)