您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Mysql-python连接操作数据库

bubuko 2022/1/25 20:00:50 mysql 字数 25631 阅读 642 来源 http://www.bubuko.com/infolist-5-1.html

使用python连接操作数据库 --》下载配置python环境 --》推荐安装PyMySQL?库:PyMySQL?是一个纯Python 实现的MySQL 客户端操作库,支持事务、存储过程、批量执行等 使用命令:pip install pymysql --》连接数据库脚本 1 # 导入模块 2 imp ...

使用python连接操作数据库

--》下载配置python环境

--》推荐安装PyMySQL 库:PyMySQL 是一个纯Python 实现的MySQL 客户端操作库,支持事务、存储过程、批量执行等

使用命令:pip install pymysql

--》连接数据库脚本

 1 # 导入模块
 2 import pymysql
 3 # 连接数据库
 4 conn = pymysql.connect(
 5     host=localhost,
 6     port=3306,
 7     user=root,
 8     password=123456,
 9     db=ceshi1,
10     charset=utf8
11 )
12 # 游标对象:用于执行查询和获取结果
13 cursor = conn.cursor()
14 
15 sql = select * from student
16 # execute()方法:执行sql语句、将结果从数据库获取到客户端
17 rows = cursor.execute(sql)
18 # 关闭指针,并释放资源
19 cursor.close()
20 # 关闭数据库连接,并释放资源
21 conn.close()
22 
23 if rows >= 0:
24     print(数据库连接成功)
25 else:
26     print(数据库连接失败)

 --》新增单条数据脚本

 1 import pymysql
 2 
 3 conn = pymysql.connect(
 4     host=localhost,
 5     port=3306,
 6     user=root,
 7     password=123456,
 8     db=ceshi1,
 9     charset=utf8
10 )
11 cursor=conn.cursor()
12 sql = "insert into student(studentNo,name_1,class) values(‘010‘,‘测试人员1‘,‘测试1班‘)"
13 rows = cursor.execute(sql)
14 # 提交当前事务
15 conn.commit()
16 cursor.close()
17 # 关闭数据库连接
18 conn.close()

 --》新增多条数据脚本

 1 # 新增多条executemany
 2 import pymysql
 3 # 连接数据库
 4 conn = pymysql.connect(
 5     host=localhost,
 6     port=3306,
 7     user=root,
 8     password=123456,
 9     db=ceshi1,
10     charset=utf8
11 )
12 cursor=conn.cursor()
13 # sql = ‘INSERT INTO 表名 VALUES(%s,%s,%s)‘ 无论什么类型,都使用%s作为占位符
14 # rows=cursor.executemany(sql,param) 
15 # param = ((username1, salt1, pwd1), (username2, salt2, pwd2), (username3, salt3, pwd3))
16 sql = insert into student(studentNo,name_1,class) values(%s,%s,%s)
17 param =((011,多条新增1,新增1班),(012,多条新增2,新增2班),(013,多条新增3,新增3班))     
18 rows = cursor.executemany(sql,param)
19 # 提交当前事务
20 conn.commit()
21 cursor.close()
22 # 关闭数据库连接
23 conn.close()

--》使用pymysql.cursors.DictCursor类批量添加数据

 1 import pymysql
 2 # 连接数据库
 3 conn = pymysql.connect(
 4     host=localhost,
 5     port=3306,
 6     user=root,
 7     password=123456,
 8     db=ceshi1,
 9     charset=utf8
10 )
11 # pymysql获取数据时提供了fetchone()和fetchall()函数来获取结果集,这俩种函数在处理大数据量时会消耗大量内存
12 # pymysql.cursors.DictCursor类,SSCursor游标类用来解决数据量大的问题
13 cursor=conn.cursor(pymysql.cursors.DictCursor)
14 param = []
15 
16 for i in range(1,100):
17     param.append([i,批量1,批量])
18 
19 try:
20     sql = "insert into student(studentNo,name_1,class) values(%s,%s,%s)" 
21     # 批量操作
22     cursor.executemany(sql,param)
23     conn.commit()
24 except Exception as e:
25     print(e)
26     conn.rollback()

--》修改单条数据脚本

 1 # 导入模块
 2 import pymysql
 3 # 连接数据库
 4 conn = pymysql.connect(
 5     host=localhost,
 6     port=3306,
 7     user=root,
 8     password=123456,
 9     db=ceshi1,
10     charset=utf8
11 )
12 # 游标对象:用于执行查询和获取结果
13 cursor = conn.cursor()
14 
15 sql = update student set class = %s where studentNo = %s
16 # execute()方法:执行sql语句、将结果从数据库获取到客户端
17 rows = cursor.execute(sql,(修改数据,10))
18 conn.commit()
19 # 关闭指针,并释放资源
20 cursor.close()
21 # 关闭数据库连接,并释放资源
22 conn.close()

--》修改多条数据脚本

 1 # 导入模块
 2 import pymysql
 3 # 连接数据库
 4 conn = pymysql.connect(
 5     host=localhost,
 6     port=3306,
 7     user=root,
 8     password=123456,
 9     db=ceshi1,
10     charset=utf8
11 )
12 # 游标对象:用于执行查询和获取结果
13 cursor = conn.cursor()
14 
15 sql = update student set class = %s where studentNo = %s
16 rows = cursor.executemany(sql,[(多条数据1,10),(多条数据2,11)])
17 conn.commit()
18 # 关闭指针,并释放资源
19 cursor.close()
20 # 关闭数据库连接,并释放资源
21 conn.close()

--》删除数据脚本,与新增脚本大致相同,只需要修改sql语句即可

1 # 删除单条sql
2 sql=delete from student where class= %s
3 rows=cursor.execute(sql,(10,)) 
1 # 删除多条sql
2 sql=delete from student where calss= %s
3 rows=cursor.executemany(sql,[(11),(‘12)]) 

--》查询数据脚本,与新增脚本大致相同,只需要修改sql语句即可

使用fetchone()、fetchall()、fetchmany函数,查询数据存在内存中

 1 # 游标对象:用于执行查询和获取结果
 2 cursor = conn.cursor(pymysql.cursors.DictCursor)
 3 
 4 sql = select * from student
 5 rows = cursor.execute(sql)
 6 # fetchone()
 7 print(cursor.fetchone())
 8 print(cursor.fetchone())
 9 print(cursor.fetchone())
10 # fetchall()
11 # print(cursor.fetchall())
  # print(cursor.fetchmany(2)) 12 conn.commit() 13 # 关闭指针,并释放资源 14 cursor.close() 15 # 关闭数据库连接,并释放资源 16 conn.close()

fetchone()运行结果

 技术分享图片

 fetchall()运行结果

技术分享图片

 fetchmany()运行结果

技术分享图片

--》cursor游标移动脚本

1 # 第一个值为移动的行数,整数为向下移动,负数为向上移动,mode指定了是相对当前位置移动,还是相对于首行移动
2 cursor.scroll(1,mode=relative)  # 相对当前位置移动
3 cursor.scroll(2,mode=absolute) # 相对绝对位置移动 

Mysql-python连接操作数据库

原文:https://www.cnblogs.com/katyhudson/p/12610421.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶