目录

  • 准备数据库
  • PyMySQL 模块应用
    • 连接数据库
    • 游标
    • 创建表
    • 插入数据
    • 查询数据
    • 修改数据
    • 删除记录
  • 练习 :员工表 (EMPLOYEE) 相关操作

准备数据库

  1. 安装 mariadb-server
  2. 启动服务
  3. 创建名为haha 的数据库【utf8】
[root@localhost ~]# yum -y install gcc
[root@localhost ~]# yum -y install mariadb-server
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# systemctl enable mariadb
[root@localhost ~]# ss -ntulp | grep mysql
[root@localhost ~]# mysql
# 创建数据库 haha
# none:表示当前在哪个数据库操作
MariaDB [(none)]> CREATE DATABASE haha CHARSET utf8;

PyMySQL 模块应用

连接数据库

创建连接是访问数据库的第一步

import pymysql
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root',db='haha', charset='utf8'
)

游标

  • 游标(cursor)就是游动的标识
  • 通俗的说,一条sql取出对应n条结果资源的接口/句柄,就是游标,沿着游标可以一次取出一行
cur = conn.cursor()  # 创建游标【对数据库进行增删改查】

创建表

# 建立部门表,员工表,工资表
# 定义创建departments【部门表】sql命令
create_dep = '''CREATE TABLE departments(dep_id INT, dep_name VARCHAR(50)
)'''
cur.execute(create_dep)  # 执行sql语句create_dep

插入数据

对数据库表做修改操作,必须要 commit

#向部门表中插入数据
insert_dep = 'INSERT INTO departments VALUES (%s, %s)'   # 定义插入数据的变量,%s为占位符
cur.execute(insert_dep, (1, '人事部'))  # 执行sql语句insert_dep, 插入一条记录
cur.executemany(  # executemany(), 执行sql语句insert_dep, 同时插入多条记录insert_dep, [(2, '运维部'), (3, '开发部'), (4, '测试部'), (5, '财务部'), (6, '市场部')]
)
conn.commit()

查询数据

可以取出表中一条、多条或全部记录

sql4 = "SELECT * FROM departments"
cur.execute(sql4)
result = cur.fetchone()
print(result)result2 = cur.fetchmany(2)
print(result2)result3 = cur.fetchall()
print(result3)

修改数据

通过 update 修改某一字段的值

# 更新部门表【departments】中的数据
update_dep = 'UPDATE departments SET dep_name=%s WHERE dep_name=%s'
cur.execute(update_dep, ('人力资源部', '人事部'))
conn.commit()

删除记录

通过 delete 删除记录

#删除部门表【departments】中的id为6的数据
del_dep = 'DELETE FROM departments WHERE  dep_id=%s'
cur.execute(del_dep, (6,))
conn.commit()

练习 :员工表 (EMPLOYEE) 相关操作

需求

  1. 员工表有 FIRST_NAME VARCHAR(20),LAST_NAME VARCHAR(20),AGE INT,SEX VARCHAR(1),INCOME FLOAT字段
  2. 使用 PyMySQL 创建该表
  3. 使用 PyMySQL 添加以下三条数据
    1. ‘Mac’, ‘A’, 20, ‘M’, 20000
    2. ‘Tom’, ‘B’, 20, ‘F’, 30000
    3. ‘Bob’, ‘C’, 20, ‘M’, 40000
  4. 使用 PyMySQL 查询所有用户信息,并打印结果
  5. 将 FIRST_NAME 为 Mac 的用户工资改成 10000
  6. 删除 FIRST_NAME 为 Tom 的用户信息
import pymysql
# 打开数据库连接
db = pymysql.connect(host='127.0.0.1', port=3306, user='root',db='haha', charset='utf8'
)
# 使用 cursor() 方法创建一个游标对象 cursor
cur = db.cursor()##########################################################
# 创建表
sql = """CREATE TABLE EMPLOYEE (FIRST_NAME  VARCHAR(20) NOT NULL,LAST_NAME  VARCHAR(20),AGE INT,  SEX VARCHAR(1),INCOME FLOAT
)"""
cur.execute(sql)
##########################################################
# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,LAST_NAME, AGE, SEX, INCOME)VALUES (%s, %s, %s, %s, %s)"""
cur.executemany(  # executemany(), 执行sql语句, 同时插入多条记录sql, [('Mac', 'A', 20, 'M', 20000), ('Tom', 'B', 20, 'F', 30000), ('Bob', 'C', 20, 'M', 40000)]
)
db.commit()
##########################################################
sql = "SELECT * FROM EMPLOYEE"
cur.execute(sql)
result = cur.fetchone()
print(result)
result2 = cur.fetchmany(2)
print(result2)
##########################################################
sql = 'UPDATE EMPLOYEE SET INCOME=%s WHERE FIRST_NAME=%s'
cur.execute(sql, (10000, 'Mac'))
db.commit()
##########################################################
sql = 'DELETE FROM EMPLOYEE WHERE FIRST_NAME=%s'
cur.execute(sql, ("Tom",))
db.commit()
# 关闭数据库连接
cur.close()
db.close()

python专区--PyMySQL相关推荐

  1. 记录python使用pymysql连接mysql数据库,使用impyla、ibis-framework[impala]连接hive\impala(kerberos)数据库(备以后查阅)

    记录python使用pymysql连接mysql数据库,使用impyla.ibis-framework[impala]连接hive\impala(kerberos)数据库(备以后查阅) 连接mysql ...

  2. 【Python之pymysql库学习】一、分析fetchone()、fetchmany()、fetchall()(保姆级图文+实现代码)

    目录 实现效果 实现思路 实现代码 总结 欢迎关注 『Python之pymysql库学习』 系列,持续更新中 欢迎关注 『Python之pymysql库学习』 系列,持续更新中 实现效果 实现思路 其 ...

  3. 【Python之pymysql库学习】二.游标cursor的相关知识(保姆级图文+实现代码)

    目录 读取的数据类型 读取的数据转为字典类型效果 读取的数据转为字典类型实现思路 读取的数据转为字典类型实现代码 关于游标的重置 总结 欢迎关注 『Python之pymysql库学习』 系列,持续更新 ...

  4. 【Python之pymysql库学习】三.sql语句的相关知识(保姆级图文+实现代码)

    目录 实现效果 实现思路 实现代码 总结 欢迎关注 『Python之pymysql库学习』 系列,持续更新中 欢迎关注 『Python之pymysql库学习』 系列,持续更新中 实现效果 把给读取数据 ...

  5. Python进阶----pymysql模块的使用,单表查询

    Python进阶----pymysql模块的使用,单表查询 一丶使用pymysql ​   ​   1.下载pymysql包: pip3 install pymysql ​​   ​   2.编写代码 ...

  6. Python安装pymysql

    Python安装pymysql 环境:jupyter Notebook(Anaconda) 1. 未安装pymysql 2. 打开cmd(命令提示符) 3. 出现错误 开始我简单粗暴的直接在cmd中输 ...

  7. Python使用pymysql往数据库插入数据和查询数据

    Python使用pymysql往数据库插入数据和查询数据 第一步:导入import pymysql连接数据库 #连接数据库try:db = pymysql.connect(host='127.0.0. ...

  8. python使用PyMySQL的连接MySQL数据库

    如何实现将100000条数据插入到MySQL数据库?如果使用MySQL客户端来完成这个操作,那么这个工作量无疑是巨大的,可以通过使用程序代码的方式去连接MySQL数据库,然后对MySQL数据库进行增删 ...

  9. 导入python库linux_Linux下Python安装PyMySQL成功,但无法导入的问题

    今天使用 Nginx 部署 Django应用.安装python库都显示成功安装. 尝试启动 uwsgi 服务,竟然报错 Traceback (most recent call last): File ...

最新文章

  1. elasticsearch 索引 red 状态恢复 green
  2. Linux┊详解udev
  3. jenkins maven没有使用全局设置文件地址_Jenkins手把手图文教程「基于Jenkins 2.164.1」...
  4. [python3] pyton socket 同步通信举例
  5. 时间加减计算器_小学生苦练加减乘除计算“基本功”,有没有必要?
  6. Safari new Date()
  7. 【云计算】Kubernetes、Marathon等框架需要解决什么样的问题?
  8. 在线JSON美化格式化工具
  9. Linux系统常用命令(一)
  10. Unity3D 内存释放 垃圾回收
  11. 最全Spring常用注解详解
  12. 2018 年 8 月面试路:6 天 21 家公司
  13. codeforces 558 D Guess Your Way Out! II
  14. 5种2D Attention整理(Non-Local、Criss-Cross、SE、CBAM、Dual-Attention)
  15. python3吧_基于python3 抓取贴吧图片与评论 图片下载保存
  16. 路演 - roadshow
  17. B 站递给 GitHub 的 DMCA 文件被公布,蹩脚的英语引发争议
  18. 异常捕获与自定义迭代器
  19. PTF渗透测试框架使用
  20. sklearn数据集分割方法汇总

热门文章

  1. gis里创建要素面板怎么打开_规划用地CAD转gis文件并制作用地平衡表
  2. 2021-2025年中国化工制造软件行业市场供需与战略研究报告
  3. [Linux] Linux网络之数据链路层详解
  4. java jni 结构体_JAVA 的JNI,传参为结构体问题: 我在网上找的资料://返回一个结构 public native DiskInfo getStruct();...
  5. winserver2016远程桌面出现函数不支持情况解决
  6. 在怀俄明大学天气数据网站下载探空数据详细步骤
  7. table 竖直排列(垂直排列)
  8. html5弹球游戏的实现,使用html+css+js实现弹球游戏
  9. windows10飞思卡尔BDM驱动安装教程
  10. TMS320C645x DSP SRIO寄存器(五)——LSU和其他特殊事件中断