21天学习挑战赛——Python操作MySQL和SqlServer

2023-11-05

目录

1. pymysql模块

2. pymysql模块使用说明

2.1 pymysql操作流程图

2.2 创建连接对象

2.3 获取游标对象

2.4 用法举例 

2.4.1 获取一条数据

6.4.2 获取多条数据:

6.4.3 对数据进行增删改操作

3. pymssql模块使用说明


活动地址:CSDN21天学习挑战赛

1. pymysql模块

        pymysql模块 是一个Python 编写的MySQL驱动程序,让我们用 Python语言 操作 MySQL库。由于是第三方库,需要进行手动安装。不同编译环境,使用的方法不同,使用 Pycharm 安装第三方库的方法具体查看往期链接:Pycharm 安装教程

2. pymysql模块使用说明

2.1 pymysql操作流程图

 2.2 创建连接对象

        调用 pymysql 模块中的 connect() 函数来创建连接对象。

函数语法:conn = pymysql.connect(参数列表)

参数说明:

  • host :连接的 mysql 主机,如果本机是 'localhost'
  • port :连接的 mysql 主机的端口,默认是3306
  • database :数据库的名称
  • user :连接的用户名
  • password :连接的密码
  • charset :通信采用的编码方式,推荐使用 utf8,注意:是 utf8 而不是 utf-8。

连接对象操作说明:

  • conn.close() :关闭连接
  • conn.commit() :提交数据
  • conn.rollback() :撤销数据 

2.3 获取游标对象

        获取游标对象的目标就是要执行 sql 语句,完成对数据库的增、删、改、查操作。

函数语法:cur = conn.cursor()

 游标操作说明:

  • execute(operation[parameters]) :使用游标执行 SQL 语句,返回受影响的行数,主要用于执行 insert、update、delete、select 等语句,也可以执行 creat 、alter、drop 等语句
  • cur.fetchone() :获取查询结果集中的一条数据,返回一个元组,如(1,'张三')
  • cur.fetchall() :获取查询结果集中的所有数据,返回一个数组,如((1,'张三'),(2,'李四')
  • cur.close() :关闭游标,表示和数据库操作完成

2.4 用法举例 

2.4.1 获取一条数据

        使用 cur.fetchone() 获取查询结果集中的一条数据,返回一个元组,如(1,'张三')。

#1.导入pymysql模块
import pymysql
#2.创建连接对象
# host :连接的 mysql 主机,如果本机是 'localhost'
# port :连接的 mysql 主机的端口,默认是3306
# database :数据库的名称
# user :连接的用户名
# password :连接的密码
# charset :通信采用的编码方式,推荐使用 utf8
conn = pymysql.connect(host='localhost',
                       port=3306,
                       user='root',
                       password='mysql',
                       database='python41',
                       charset='utf8'
                       )
#3.获取游标,目的是要执行sql语句
cursor = conn.cursor()
#准备sql,之前在mysql客户端如何编写sql,在Python程序里面还怎么编写
sql = 'select * from students;'
#4.执行sql语句
cursor.execute(sql)
#获取查询结果,返回的数据类型是一个元组:(1,'张三')
row = cursor.fetchone()
print(row)
#5.关闭游标
cursor.close()
#6.关闭连接
conn.close()

分析:如果出现报错 pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([WinError 10061] 由于目标计算机积极拒绝,无法连接。)")  ,是因为没有打开或下载 MySQL,下载链接:MySQL下载地址

 6.4.2 获取多条数据:

        使用 cur.fetchall() 获取查询结果集中的所有数据,返回一个数组,如((1,'张三'),(2,'李四')。

#1.导入pymysql模块
import pymysql
#2.创建连接对象
# host :连接的 mysql 主机,如果本机是 'localhost'
# port :连接的 mysql 主机的端口,默认是3306
# database :数据库的名称
# user :连接的用户名
# password :连接的密码
# charset :通信采用的编码方式,推荐使用 utf8
conn = pymysql.connect(host='localhost',
                       port=3306,
                       user='root',
                       password='mysql',
                       database='python41',
                       charset='utf8'
                       )
#3.获取游标,目的是要执行sql语句
cursor = conn.cursor()
#准备sql,之前在mysql客户端如何编写sql,在Python程序里面还怎么编写
sql = 'select * from students;'
#4.执行sql语句
cursor.execute(sql)
#获取查询结果,返回的数据类型是一个元组:((1,'张三'),(2,'李四'))
rows = cursor.fetchall()
for row in rows:
    print(row)
#5.关闭游标
cursor.close()
#6.关闭连接
conn.close()

6.4.3 对数据进行增删改操作

        使用 conn.commit() 提交数据;conn.rollback() 撤销数据 对数据库进行增删改操作。

#1.导入pymysql模块
import pymysql
#2.创建连接对象
# host :连接的 mysql 主机,如果本机是 'localhost'
# port :连接的 mysql 主机的端口,默认是3306
# database :数据库的名称
# user :连接的用户名
# password :连接的密码
# charset :通信采用的编码方式,推荐使用 utf8
conn = pymysql.connect(host='localhost',
                       port=3309,
                       user='root',
                       password='mysql',
                       database='python41',
                       charset='utf8'
                       )
#3.获取游标,目的是要执行sql语句
cursor = conn.cursor()

#增加操作
sql = "insert into classes(name) value('小明')"
#修改操作
# sql = "update classes set name = '小红' where id = 2"
#删除操作
# sql = "delete from classes where id=2"

try:
    #4.执行sql语句
    cursor.execute(sql)
    #增删改都必须提交数据
    cursor.commit()
except:
    #如果报错就对修改的数据进行撤销,表示数据回来
    conn.rollback()

#5.关闭游标
cursor.close()
#6.关闭连接
conn.close()

3. pymssql模块使用说明

pymssql模块 与 pymyql模块 的区别在于:

  1. 导入模块:import pymssql
  2. 创建链接对象:conn = pymssql.connect(参数列表)

其他语法与 pymyql模块 一样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

21天学习挑战赛——Python操作MySQL和SqlServer 的相关文章

随机推荐

  • LiDAR SLAM的比较

    在自动驾驶领域 定位是很重要的一环 为了建立更有鲁棒性 精确的定位 在实际自动驾驶车上往往都会使用激光雷达 激光雷达相比于摄像头 对光照变化不敏感 适合白天和黑夜 绝大多数路况 激光雷达获得的距离信息精度很高 获取的feature很稳定 当
  • Spring 异常处理的三种方式 整理

    异常处理方式一 ExceptionHandler 异常处理方式二 实现HandlerExceptionResolver接口 异常处理方式三 ControllerAdvice ExceptionHandler 三种方式比较说明 强烈推荐各位看
  • 小程序接入微信客服

    wx openCustomerServiceChat Object object 微信开放文档 微信小程序打开微信客服 接口文档 企业微信开发者中心 1 网页搜索 微信客服 扫码登录 根据提示 填写信息 微信客服 2 在 微信客服 中进入企
  • 项目打包报不能在脱机状态下访问**资源

    项目场景 springboot项目 使用maven进行打包操作 问题描述 Failed to execute goal org springframework boot spring boot maven plugin 2 5 0 repa
  • UE4_UStruct 遍历

    一个结构体中存在一个Val变量 Val变量的类型是FVector4 想从c 层面去遍历获得Val的值 上图是很早之前的一个Property继承关系图 当然 在4 25UProperty被FProperty夺笋 好处呢 见下 没有继承UObj
  • etcd的使用

    启动etcd服务 启动etcd时最主要的是需要准备两个没有使用过的端口 这两个端口一个用于etcd之间同步信息 一个用于etcd向客户端提供服务的端口 因此启动单个etcd节点 只需按照如下命令行输入即可 server name myetc
  • sigmoid & logistic

    1 吴恩达老师视频中说sigmoid函数就是logistic函数 2 查阅复旦大学邱锡鹏老师关于深度学习的书 在第四章中写道 Sigmoid型函数是指一类S型曲线函数 为两端饱和函数 常用的Sigmoid型函数有Logistic函数和Tan
  • OpenPose笔记——windows 10下,自编译openpose代码(vs下能跑了,pythonAPI也能使了)

    简直太可怕了 遇到N多的问题 我觉有必要写下来记录一下 我自己编译了四五天 编译了10几次 夭寿哦 缺好多好多东西 给大家讲一下具体步骤 一 准备工作 准备工作当然是各种环境 1 至少VS2015 以上的版本 2 CMake Gui 注意
  • 问题定义过程

    问题定义过程由四步组成 确立需求 证明需求 理解问题和它的上下文和问题陈述 这个模型的主要优点是能够帮助你确定和理解问题的细节 帮助你了解组织的使命和战略在问题解决过程中的的重要性 从这里你可以确定问题是否值得努力寻求解决方案 只有明白了问
  • 自顶向下 逐步求精

    将复杂的大问题分解为相对简单的小问题 找出每个问题的关键 重点所在 然后用精确的思维定性 定量地去 描述问题 其核心本质是 分解 自顶向下 top down 的分析算法通过在最左推导中描述出各个步骤来分析记号串输入 之所以称这样的算法为自顶
  • 埋点系统:详解设计埋点过程中的“who when where how what”

    上次写了一篇 如何用数据驱动产品迭代 其中提到了一点设计埋点的方法 很多朋友留言说需要设计埋点的指南 像我这种从来不拒需求的人 这两天下班闲下来之后就整理了一下埋点设计的一些知识 希望能有所帮助 在诸多招聘 JD 中提到的数据分析能力 主要
  • 使用raspberry pi pico 制作红绿灯

    需要的东西 一块面包版 一块raspberry pi pico 红绿黄led灯各一颗 220欧电阻3只 若干线 编程软件 thonny 操作系统 deepin 23 结果展示 使用raspberry pi pico 制作红绿灯 from m
  • 金山云服务器异常,金山云-文档中心-金山云告诉你:找不到服务器或dns错误怎么办...

    我们在用电脑 会经常使用浏览器 不少人经常在浏览网页时候突然跳出一个提示 上面显示 找不到服器 或 dns错误 下面 给大家分享找不到服务器或dns错误的解决经验 1 病毒所致 如果你电脑中了病毒 让你的DNS被劫持 比如自己的浏览器主页被
  • 【毕业设计】基于PLC的十字路口交通灯控制系统设计【仿真+源码+论文】

    摘 要 本次设计的课题是基于PLC的十字路口交通灯控制系统设计 传统的十字路口交通灯多采用单片机集成电路作为控制系统 单片机系统虽然在功能上能够实现十字路口交通灯的各种控制需求 但是单片机控制系统在设计时需要数字电路与模拟电路的完美结合 这
  • 基于跳表实现的轻量级KV存储引擎 项目总结

    参考 https github com youngyangyang04 Skiplist CPP 项目介绍 KV存储引擎 众所周知 非关系型数据库redis 以及levedb rockdb其核心存储引擎的数据结构就是跳表 本项目就是基于跳表
  • 5.0 Vue中使用webpack

    文章目录 webpack的基本使用 webpack中的插件 webpack打包发布 Source Map 注意 在实际开发中我们并不需要自己配置 webpack webpack中 的用法 在Chrome浏览器中安装vue devtools调
  • QT书籍分享——最全资料汇总

    QT从入门到精通 学习路线 市面上QT学习的书籍也挺多的 今天从学习路径上给大家一一盘点一下 并附上相关链接 大家可以根据需求下载哦 1 语言基础学习 学习QT最最最基础的当然是语言学习了 可以选择C 语言 也可以选择Python语言 C
  • 佛祖保佑,永无bug——springboot项目启动图案的修改方法

    在resources目录 与application yml文件同级目录 下创建banner txt文件 将下面的代码复制进去就好了 AnsiColor BRIGHT YELLOW ooOoo o8888888o
  • 动态规划-各种题型及思路整理(自用笔记,大神绕道)

    目录 简介 分类 基本思想 基本思路 状态转移方程 适用条件 一句话总结 应用 前缀和思想 简介 动态规划 dynamic programming 简称dp 是运筹学的一个分支 是求解决策过程 decision process 最优化的数学
  • 21天学习挑战赛——Python操作MySQL和SqlServer

    目录 1 pymysql模块 2 pymysql模块使用说明 2 1 pymysql操作流程图 2 2 创建连接对象 2 3 获取游标对象 2 4 用法举例 2 4 1 获取一条数据 6 4 2 获取多条数据 6 4 3 对数据进行增删改操