python连接mysql并使用

由于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()方法

posted @ 2023-02-01 17:57  老酒学IT  阅读(434)  评论(0编辑  收藏  举报
//替换成自己路径的js文件