千家信息网

Python中怎样操作MySQL数据库

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Python中怎样操作MySQL数据库,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. MySQL Connector1.1 创建连接
千家信息网最后更新 2026年11月01日Python中怎样操作MySQL数据库

Python中怎样操作MySQL数据库,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

1. MySQL Connector

1.1 创建连接

 import mysql.connector config={     "host":"localhost","port":"3306",     "user":"root","password":"password",     "database":"demo" } con=mysql.connector.connect(**config)
 import mysql.connector config={     "host":"localhost","port":"3306",     "user":"root","password":"password",     "database":"demo" } con=mysql.connector.connect(**config)

点击加群即可免费获取Python资料

资料就在群文件里等你来拿

1.2 Cursor

 import mysql.connector con=mysql.connector.connect(     host="localhost",port="3306",     user="root",password="password",     database="demo" ) cursor=con.cursor() sql="SELECT empno,job,sal FROM t_bonus;" cursor.execute(sql) print(type(cursor)) for i in cursor:     print(i) con.close()  Result:          (7369, 'CLERK', Decimal('8000.00'))     (7499, 'SALESMAN', Decimal('1600.00'))     (7521, 'SALESMAN', Decimal('1250.00'))     (7566, 'MANAGER', Decimal('2975.00'))     (7654, 'SALESMAN', Decimal('1250.00'))     (7698, 'MANAGER', Decimal('2850.00'))     (7782, 'MANAGER', Decimal('2450.00'))     (7788, 'ANALYST', Decimal('3000.00'))     (7839, 'PRESIDENT', Decimal('5000.00'))     (7844, 'SALESMAN', Decimal('1500.00'))     (7900, 'CLERK', Decimal('950.00'))     (7902, 'ANALYST', Decimal('3000.00'))     (7934, 'CLERK', Decimal('1300.00'))

1.3 SQL注入攻击

  1. username=1 OR 1=1 password=1 OR 1=1

  2. 在使用字符串直接拼接时OR之前不管对错,与OR结合都为true

  3. 解决方法--预编译(也可以提高速度)

username="1 OR 1=1" password="1 OR 1=1" sql="SELECT COUNT(*) FROM t_user WHERE username=%s AND AES_DECRYPT(UNHEX(password),'helloWorld')=%s" cursor.execute(sql,(username,password)) print(cursor.fetchone()[0])

1.4 事务管理和异常处理

  1. sql连接和使用异常处理异常

 import mysql.connector try:     con=mysql.connector.connect(         host="localhost",port="3306",         user="root",password="password",         database="demo"     )     con.start_transaction()     cursor=con.cursor()     sql="INSERT INTO t_dept(deptno,dname,loc) VALUES(%s,%s,%s);"     cursor.execute(sql,(60,"SALES","HUBAI"))     con.commit() except Exception as e:     if "con" in dir():         con.rollback()     print(e) finally:     if "con" in dir():         con.close()

1.5 删除数据

import mysql.connector,mysql.connector.pooling config={     "host": "localhost", "port": "3306",     "user": "root", "password": "password",     "database": "demo" } try:     pool=mysql.connector.pooling.MySQLConnectionPool(**config,pool_size=5)     con=pool.get_connection()     con.start_transaction()     cursor = con.cursor()     sql = "DELETE FROM t_dept WHERE deptno=%s"     cursor.execute(sql, (70,))     con.commit() except Exception as e:     if "con" in dir():         con.rollback()     print(e) # do not need to close con

executemany() 反复执行一条SQL语句

 import mysql.connector,mysql.connector.pooling config={     "host": "localhost", "port": "3306",     "user": "root", "password": "password",     "database": "demo" } try:     pool=mysql.connector.pooling.MySQLConnectionPool(**config,pool_size=5)     con=pool.get_connection()     con.start_transaction()     cursor = con.cursor()     sql = "INSERT INTO t_dept(deptno,dname,loc) VALUES(%s,%s,%s);"     date=[[70,"SALES","BEIJING"],[80,"ACTOR","SHANGHAI"]]     cursor.executemany(sql, date)     con.commit() except Exception as e:     if "con" in dir():         con.rollback()     print(e) # do not need to close con

2. 数据库连接池

  1. 数据库的连接是昂贵的,一个连接要经过TCP三次握手,四次挥手,而且一台计算机的最大线程数也是有限的

  2. 数据库连接池技术就是先创建好连接,再直接拿出来使用

import mysql.connector,mysql.connector.pooling config={     "host": "localhost", "port": "3306",     "user": "root", "password": "password",     "database": "demo" } try:     pool=mysql.connector.pooling.MySQLConnectionPool(**config,pool_size=5)     con=pool.get_connection()     con.start_transaction()     cursor = con.cursor()     sql = "INSERT INTO t_dept(deptno,dname,loc) VALUES(%s,%s,%s);"     cursor.execute(sql, (70, "SALES", "HUBAI"))     con.commit() except Exception as e:     if "con" in dir():         con.rollback()     print(e) # do not need to close con

看完上述内容,你们掌握Python中怎样操作MySQL数据库的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

数据 数据库 方法 内容 更多 资料 问题 处理 最大 昂贵 束手无策 为此 事务 事务管理 原因 字符 字符串 对此 对错 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州淘业互联网络科技 新华互联网科技学校 猪兼强互联网科技 新浪科技互联网 互联网科技小额贷款 顺网科技2021年互联网排名 哈尔滨秒房互联网科技有限公司 互联网和黑科技的看法 哈尔滨屹滨互联网科技有限公司 开一家科技互联网公司需要多少钱 上海钢联属于互联网科技股吗 九思连强互联网电子科技有限公司 北京互联网科技类企业分布 数字互联网科技有限公司 数字科技和互联网金融哪个好 10位科技互联网大佬 青岛互联网科技园 上海旺乐尼互联网科技有限公司 互联网科技企业文化 山东亿川互联网科技有限责任公司 互联网科技产业 互联网科技公司发展 米客互联网科技 万达互联网科技 成都仁贤领冠互联网科技有限公司 深圳市运趣互联网科技有限公司 广州慧亚互联网科技怎么样 消费医药和互联网科技 沐思想互联网科技有限公司 河南商务圈互联网科技有限公司
0