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 对数据进行增删改操作

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模块 一样。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花落指尖❀

您的认可是小浪宝宝最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值