首页 > 数据库 >python连接mysql并使用

python连接mysql并使用

时间:2023-02-01 18:14:31浏览次数:46  
标签:python 创建 mysql db pymysql cursor connection sql 连接

由于mysql体积小,速度快,成本低,源码开放,所以一些中小型系统开发都采用mysql

我们连接mysql采用的工具包是pymysql

1.安装pymysql

pip install pymysql

2.pymysql工作图

python操作数据库主要涉及connectioncursor这两个对象

connection对象

connection对象是与数据源的唯一对话,可以使用connection对象的集合,方法,属性实现与数据的连接

connection的参数列表

参数名 类型 说明
host 字符串 连接的数据库的服务器ip,如果是本地的话,写localhost即可
port 数字 mysql服务程序的端口号,默认为3306
user 字符串 连接数据库的用户名(一般用root)
passwd 字符串 连接数据库的密码
db 字符串 连接的数据库名称
charset 字符串 连接编码,一般使用“utf8”

使用上面参数的案例

import pymysql
#创建connection对象为db
db = pymysql.connect(host="服务器ip",port=3306,user="root",passwd="han123..",db="testdb",charset='utf8')

connection对象常用的方法

方法名 说明
cursor() 使用该连接创建并返回游标
commit() 提交当前事务
rollback() 回滚当前事务
close() 关闭连接

上面方法基本使用

#由于我们已经创建connection对象为db,所以这里以db代替connection对象
#创建cursor游标,获取python版本信息
cursor = db.cursor()
#关闭连接
db.close()
#提交当前事务
db.commit()
#回滚当前事务
db.rollback()

cursor对象

我们已经创建cursor对象,为cursor,下面会将游标对象的常用方法

cursor对象是游标对象,用户用它来查询和获取结果,常用方法如下

常用方法

方法名 说明
execute() 传入一个sql语句,并执行,传入的类型是字符串
fetchone() 取结果集的下一行
fetchmany(size) 取结果集的下size行
fetchall() 取结果集中剩下的所有行
rowcount() 最近一次执行execute返回数据的行数或者影响行数
close() 关闭游标对象

3.基本案例

1.获取mysql版本

import pymysql
#创建connection对象为db
db = pymysql.connect(host="服务器ip",port=3306,user="root",passwd="han123..",db="testdb",charset='utf8')
#创建cursor游标,获取python版本信息
cursor = db.cursor()
#获取mysql版本信息
cursor.execute("select version()")
#将上面的版本结果存放到data中
data = cursor.fetchone()
print(f"版本信息为{data}")
#关闭数据库连接
db.close()

2.创建表

import pymysql
#创建connection对象为db
db = pymysql.connect(host="服务器ip",port=3306,user="root",passwd="han123..",db="testdb",charset='utf8')
#创建cursor游标
cursor = db.cursor()
#创建构建表的sql语句
sql = """
		创建表的sql语句"""
#执行sql语句
cursor.execute(sql)
#关闭数据库连接
db.close()

3.新增数据

其实就是在表中添加数据了

import pymysql
#创建connection对象为db
db = pymysql.connect(host="服务器ip",port=3306,user="root",passwd="han123..",db="testdb",charset='utf8')
#创建cursor游标
cursor = db.cursor()
#创建构建表的插入sql语句
sql = """
		创建表的插入sql语句"""
try:
	#执行sql语句
	cursor.execute(sql)
	#提交到数据库执行
	db.commit()
except:
	#发生错误回滚
	db.rollback()
#关闭数据库连接
db.close()

4.查询数据

import pymysql
#创建connection对象为db
db = pymysql.connect(host="服务器ip",port=3310,user="root",passwd="han123..",db="testdb",charset='utf8')
#创建cursor游标
cursor = db.cursor()
#创建构建表的sql查询语句
sql = """
		创建表的sql查询语句"""
try:
	#执行sql语句
	cursor.execute(sql)
	#获取所有记录的列表
	results = = cursor.fetchall()
    #mysql在for循环时,先第一行,在第二行
	for row in results:
        fname = row[0]#获取某行的第一列数据
        lname = row[1] #获取某行的第二列数据
        #打印结果
        print(fname,lname)
except:
	#报错
	print("Error:unable to fetch data")
#关闭数据库连接
db.close()

5.删除数据

import pymysql
#创建connection对象为db
db = pymysql.connect(host="服务器ip",port=3310,user="root",passwd="han123..",db="testdb",charset='utf8')
#创建cursor游标
cursor = db.cursor()
#创建构建表的sql删除语句
sql = """
		创建表的sql删除语句"""
try:
	#执行sql语句
	cursor.execute(sql)
	#提交修改
	db.commit()
except:
	#发生错误回滚
	db.rollback()
#关闭数据库连接
db.close()

6.数据库的更新

import pymysql
#创建connection对象为db
db = pymysql.connect(host="服务器ip",port=3310,user="root",passwd="han123..",db="testdb",charset='utf8')
#创建cursor游标
cursor = db.cursor()
#创建构建sql更新语句
sql = """
		创建sql更新语句"""
try:
	#执行sql语句
	cursor.execute(sql)
	#提交修改
	db.commit()
except:
	#发生错误回滚
	db.rollback()
#关闭数据库连接
db.close()

7.执行事务

事务是一组操作流程,在数据库维护中的目的是保持数据的一致性,它有原子性,一致性,隔离性和持久性四大特性,

在python数据库编程中,当游标建立就自动创建了一个隐形的数据库事务,游标的每一个方法都开始了一个新的事物

commit()和rollback()方法都开启了事务,commit()方法更新所有操作,rollback()方法回滚当前游标的所有操作

8.总结

只要是对表进行修改的,如增加数据,更新库,删除数据等,都要用commit()和rollback()方法

如果只是查询数据,则不用commit()和rollback()方法

标签:python,创建,mysql,db,pymysql,cursor,connection,sql,连接
From: https://www.cnblogs.com/gqboke/p/17083743.html

相关文章

  • 左连接和右连接简单使用
    leftjoin左连接,左表所有数据拼接右表符合on条件的数据。on后用and连接,都作为on条件,左边表的数据会全部返回,右表中的数据不匹配返回为空     因为是左连接......
  • virt-manager 新建远程连接报错
    报错信息:解决:如果virt-manager需要远程连接管理虚拟机,则需要安装虚拟化界面工具#ubuntusudoapt-getinstallssh-askpass-gnome--no-install-recommends#......
  • 【8】Python3之面向对象
    1、面向对象基本概念 3、类的概念对象如何产生?又是如何规定对象的属性和方法呢?答:在Python中,采用类(class)来生产对象,用类来规定对象的属性和方法!也就是说,在Python中,要......
  • python3 测试框架pytest入门
    1、安装pytest2、安装html插件3、编写测试用例4、执行测试5、生成测试报告1.1安装pytestpip3installpytest执行该命令安装pytest1.2验证安装pytest-V查看当前已安装......
  • Python之文件系统操作(pathlib)
    """文件相关操作(pathlib)date:2023-01-29"""frompathlibimportPath#获取当前工作目录print(Path.cwd())#D:\workspace\py\python_demo\root\demo\stu......
  • Python之异常处理
    """异常处理包括异常捕获、抛异常和assertdate:2023-01-29"""#捕获异常try:1/0exceptZeroDivisionErrorase:print(e)#divisionbyzer......
  • MySQL基础-SQL-DCL
    1.介绍DCL英文全称是DataControlLanguage(数据控制语言),用来管理数据库用户、控制数据库的访问权限。2. DCL管理用户--1.查询用户USEmysql;SELECT*......
  • Mysql学习笔记
    Mysql是关系型数据库管理系统,管理的数据库是一堆关联表的集合。这里的表可以看作是一个二维表格,里面的每一行表示一条记录,是一组相关的数据。每一列存储的是一个属性对应的......
  • [oeasy]python0068_ 字体样式_正常_加亮_变暗_控制序列
    字体样式回忆上次内容上次了解了一个新的转义模式\33逃逸控制字符escesc让输出退出标准输出流进行控制信息的设置可以清屏也可以设置光标输出的位置......
  • linux 操作系统升级 Python 3
    #进入python官网下载对应版本,比如:Python-3.7.12[root@localhost~]#wget​​https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz​​#安装依赖包[root@localh......