当前位置: 首页 > news >正文

python使用pymysql库

目录

pymsql库的安装以及使用

pymysql其他类型的sql

增加

修改

删除


  1. pymsql库的安装以及使用

    1. pip install pymysql
       
    2. 安装完成样式
  2. pymysql库的使用
    1. 准备一个数据库的表(这里使用的是mysql数据库)
      1. 创建user表
      2. 用户表中的属性
        字段名类型是否为空是否主键描述
        idint不为空用户id
        usernamevarchar可为空用户账号
        passwordvarchar可为空用户密码
        monkeyint可为空用户金钱
        infovarchar可为空用户信息
      3. 完整的sql语句

        1. CREATE TABLE `myst`.`Untitled`  (`id` int NOT NULL AUTO_INCREMENT COMMENT '用户id',`username` varchar(255) NULL COMMENT '用户名',`password` varchar(255) NULL COMMENT '用户密码',`monkey` int NULL COMMENT '用户金额',`info` varchar(255) NULL COMMENT '用户信息',PRIMARY KEY (`id`)
          );

                  

        2. 插入数据

          1. idusernamepasswordmonkeyinfo
            1user001123456500小明的账号
            2user002123456600小红的账号
            3user003123456800小小的账号

                    

          2. sql语句

            1. INSERT INTO `myst`.`user` (`id`, `username`, `password`, `monkey`, `info`) VALUES (1, 'user001', '123456', 500, '小明的账号');
              INSERT INTO `myst`.`user` (`id`, `username`, `password`, `monkey`, `info`) VALUES (2, 'user002', '123456', 600, '小红的账号');
              INSERT INTO `myst`.`user` (`id`, `username`, `password`, `monkey`, `info`) VALUES (3, 'user003', '123456', 800, '小小的账号');
              

    2.  
      # 导入pymysql包
      import pymysql
    3. 参数配置
      1. # 数据库连接的ip地址
        db_host = 'localhost'
      2. # 数据库端口号
        db_port = 3306
      3. # 数据库登录账号
        db_user = 'root'
      4. # 数据库登录密码
        db_password = 'root'
      5. # 数据库名称
        db_database = "myst"
      6. # 字符集设置
        db_charset = 'utf8'
    4. # 配置连接数据库信息
      connect_mysql  = pymysql.connect(host=db_host,port=db_port,database=db_database,user=db_user,password=db_password,charset=db_charset)
    5. # 获取游标
      cursor_mysql = connect_mysql.cursor()
    6. # 查询用户表中所有的信息
      cursor_mysql.execute("select * from user");
    7. # 打印所有结果
      print("查询结果:",cursor_mysql.fetchall())
    8. # 打印所有结果
      print("查询结果:",cursor_mysql.fetchall())
      print("---------------------------------")
    9. # 打印单个结果
      print("打印单个结果:",cursor_mysql.fetchone())
    10. # 重置游标
      cursor_mysql.rownumber = 0
      # 打印单个结果
      print("再次打印单个结果:",cursor_mysql.fetchone())
    11. # 关闭游标
      cursor_mysql.close()
    12. # 关闭数据库连接
      connect_mysql.close()
    13. 完整的代码
      # 导入pymysql包
      import pymysql
      from pymysql import connect# 初始化连接数据库参数
      # 数据库连接的ip地址
      db_host = '127.0.0.1'
      # 数据库端口号
      db_port = 3306
      # 数据库登录账号
      db_user = 'root'
      # 数据库登录密码
      db_password = 'root'
      # 数据库名称
      db_database = "myst"
      # 字符集设置
      db_charset = 'utf8'# 配置连接数据库信息
      connect_mysql  = pymysql.connect(host=db_host,port=db_port,database=db_database,user=db_user,password=db_password,charset=db_charset)
      # 获取游标
      cursor_mysql = connect_mysql.cursor()# 简单的查询数据库
      # 查询用户表中所有的信息
      cursor_mysql.execute("select * from user");# 打印所有结果
      print("查询结果:",cursor_mysql.fetchall())
      print("---------------------------------")# 打印单个结果
      print("打印单个结果:",cursor_mysql.fetchone())# 重置游标
      cursor_mysql.rownumber = 0
      # 打印单个结果
      print("再次打印单个结果:",cursor_mysql.fetchone())# 关闭游标
      cursor_mysql.close()# 关闭数据库连接
      connect_mysql.close()

  3. 查看执行结果
    1. 分析一下打印单个结果为什么为None
      1. 执行完
        fetchall()
        
        1. 这里的游标被直接执行到最下面了
      2. # 重置游标
        cursor_mysql.rownumber = 0
        1. rownumber = 0 之后 就恢复了最初的状态
  4. pymysql其他类型的sql

    1. 增加

      1. # 增加cursor_mysql.execute("INSERT INTO `myst`.`user` (`id`, `username`, `password`, `monkey`, `info`) VALUES (NULL, \'user001\', \'123456\', 500, \'小明的账号\');")
        
      2. 执行完毕之后刷新数据库发现数据库中的数据没有添加
      3. 这个是因为pymsql把自动提交事物给关了,我们需要手动提交
      4. # 提交事物
        connect_mysql.commit()
        1. 运行观察数据库
          1. 数据已经添加了
    2. 修改

      1. # 修改数据名字
        cursor_mysql.execute("UPDATE `myst`.`user` SET `username` = 'user004' WHERE `id` = 6;")
        # 查询数据库
        cursor_mysql.execute("SELECT * FROM `myst`.`user`;")
        cursor_mysql.fetchall()
        
      2. 执行结果
    3. 删除

      1. # 删除 数据
        cursor_mysql.execute("Delete from `myst`.`user` where `id` = 6;")
        # 查询数据库
        cursor_mysql.execute("SELECT * FROM `myst`.`user` WHERE `id` = 6;")
        print("删除之后",cursor_mysql.fetchall())
      2. 可以看到数据已经被删除了
        1. 再次查询也查不到了
    4. 增加删除修改操作必须  提交事物​​​​
  5. 完整的代码

        

# 导入pymysql包
import pymysql
from pymysql import connect# 初始化连接数据库参数
# 数据库连接的ip地址
db_host = '127.0.0.1'
# 数据库端口号
db_port = 3306
# 数据库登录账号
db_user = 'root'
# 数据库登录密码
db_password = 'root'
# 数据库名称
db_database = "myst"
# 字符集设置
db_charset = 'utf8'# 配置连接数据库信息
connect_mysql  = pymysql.connect(host=db_host,port=db_port,database=db_database,user=db_user,password=db_password,charset=db_charset)
# 获取游标
cursor_mysql = connect_mysql.cursor()# 简单的查询数据库
# 查询用户表中所有的信息
cursor_mysql.execute("select * from user");# 打印所有结果
print("查询结果:",cursor_mysql.fetchall())
print("---------------------------------")# 打印单个结果
print("打印单个结果:",cursor_mysql.fetchone())# 重置游标
cursor_mysql.rownumber = 0
# 打印单个结果
print("再次打印单个结果:",cursor_mysql.fetchone())# 增加cursor_mysql.execute("INSERT INTO `myst`.`user` (`id`, `username`, `password`, `monkey`, `info`)"" VALUES (NULL, \'user001\', \'123456\', 500, \'小明的账号\');")# 修改数据名字
cursor_mysql.execute("UPDATE `myst`.`user` SET `username` = 'user004' WHERE `id` = 6;")
# 查询数据库
cursor_mysql.execute("SELECT * FROM `myst`.`user` WHERE `id` = 6;")
print("修改之后",cursor_mysql.fetchall())# 删除 数据
cursor_mysql.execute("Delete from `myst`.`user` where `id` = 6;")
# 查询数据库
cursor_mysql.execute("SELECT * FROM `myst`.`user` WHERE `id` = 6;")
print("删除之后",cursor_mysql.fetchall())# 提交事物
connect_mysql.commit()# 关闭游标
cursor_mysql.close()# 关闭数据库连接
connect_mysql.close()



 

http://www.dtcms.com/a/284388.html

相关文章:

  • modbus 校验
  • 泛型与类型安全深度解析及响应式API实战
  • Java 集合框架详解:Collection 接口全解析,从基础到实战
  • 7月17日日记
  • 【机器学习】向量数据库选型指南:企业内网部署场景
  • 从零开始:C++ UDP通信实战教程
  • 河南萌新联赛2025第(一)场:河南工业大学(补题)
  • SQLite的可视化界面软件的安装
  • YOLO11 vs LMWP-YOLO:参数量-52.5%,mAP+22.07%,小型无人机的远距离检测
  • 7月17日
  • 深度学习 -- Tensor属性及torch梯度计算
  • 大型语言模型的白日梦循环
  • Ollama使用指南-更改默认安装路径和Model路径(安装到非C盘)
  • 【深度学习】神经网络反向传播算法-part4
  • Java数组补充v2
  • Java数组中相关查找排序算法(1)
  • 密码管理安全防御
  • Servlet概述
  • Hive常用命令总结
  • 直播带货与开源AI智能名片链动2+1模式S2B2C商城小程序:重塑电商营销新格局
  • springboot打包二次压缩Excel导致损坏
  • 从零开始实现一个简单的 RPC 框架(Java 版)
  • uniapp运行鸿蒙报错整理
  • 25年7月最新版本利用标准算法库对医保服务平台js逆向之signData进行分析
  • SiLM6000S:高集成智能光伏关断器,集成SunSpec PLC接收,助力安全合规
  • python Flask 框架入门
  • Kotlin 属性委托 observable 的实现原理
  • 使用Leaflet实现地图高亮点标记功能 渲染本地icon图片
  • 集成算法学习学习
  • Qt 监控串口设备热插拔的方法