当前位置: 首页 > wzjs >正文

求推荐做ppt的网站网站策划书网站需求分析

求推荐做ppt的网站,网站策划书网站需求分析,wordpress页面文件,如何搭建电影网站目录 Python连接MySQL 1. 概述 2. 核心作用 3. 核心流程(以 PyMySQL 为例) 4. 重点总结 5. 典型应用场景 一、安装 Python MySQL 连接库 1. 安装mysql-connector-python 2. 安装PyMySQL 二、 Python 连接MySQL 数据库 1. 导入连接库 2. 创建数…

目录

Python连接MySQL

1. 概述

2. 核心作用

3. 核心流程(以 PyMySQL 为例)

4. 重点总结

5. 典型应用场景

一、安装 Python MySQL 连接库

1. 安装mysql-connector-python

2. 安装PyMySQL

二、 Python 连接MySQL 数据库

1. 导入连接库

2. 创建数据库连接

3. 创建游标对象

4. 执行SQL语句

5. 获取查询结果

6. 关闭连接

三、常见的MySQL操作

1. 插入数据(INSERT)

2. 更新数据(UPDATE)

3.删除数据(DELETE)

4. 查询数据(SELECT)

5. 执行多条SQL语句

6. 使用LIKE进行模糊查询

7. 使用JOIN 进行联合查询

代码解析:

四、使用连接池

1. 连接池简介

2. 创建连接池

3. 获取连接

4. 连接池的优势

五、事务管理

1. 开始事务

2. 提交事务

3. 回滚事务

4. 事务的隔离级别

(1)READ UNCOMMITTED (未提交读)

(2)READ COMMITTED(提交读)

(3)REPEATABLE READ(可重复读)

(4)SERIAIZABLE (串行化)

核心对比(隔离级别与问题):

5. 事务隔离级别总结

6. 案例


Python连接MySQL

1. 概述

Python 通过数据库驱动或 ORM 工具与 MySQL 交互,支持数据存储、查询和管理。常用库包括:

  • 原生驱动mysql-connector-python(官方)、PyMySQL(纯Python)。

  • ORM 框架SQLAlchemy(通用)、Django ORM(Django 专属)。

2. 核心作用
  • 数据持久化:存储用户信息、日志、交易记录等。

  • 动态查询:支持条件检索、聚合统计、多表关联等操作。

  • 事务管理:确保数据操作的原子性(如转账操作)。

  • 应用开发:为 Web、数据分析、自动化工具提供数据支持。

3. 核心流程(以 PyMySQL 为例)
  1. 连接数据库:配置主机、用户、密码、数据库名。

  2. 创建游标:通过游标执行 SQL 命令。

  3. 执行 SQL:查询(SELECT)、增删改(INSERT/UPDATE/DELETE)。

  4. 处理结果:获取数据或提交事务。

  5. 关闭连接:释放资源,避免泄漏。

4. 重点总结
关键点说明
驱动选择根据需求选库:快速开发用 ORM,高性能用原生驱动。
参数化查询使用 %s 占位符,避免 SQL 注入攻击。
事务管理写操作后需 commit(),异常时 rollback() 保证数据一致性。
资源释放使用 with 语句或手动关闭连接,防止资源泄漏。
ORM 优势用类操作表(如 User.query.filter_by(name='Alice')),简化 SQL 编写。
连接池优化高并发场景使用连接池(如 DBUtils),提升性能。

5. 典型应用场景
  • Web 后端:Django/Flask 集成 ORM 处理用户数据。

  • 数据分析pandas 从 MySQL 读取数据进行分析。

  • 自动化脚本:定时备份、数据迁移(如 mysqldump + Python 处理)。

一、安装 Python MySQL 连接库

1. 安装mysql-connector-python

pip3 install mysql-connector-python

2. 安装PyMySQL

pip3 install pymysql

二、 Python 连接MySQL 数据库

1. 导入连接库

创建文件 aaa.py(导入模块)
import pymysql

2. 创建数据库连接

#连接名字+值()
db=pymysql.connect(host="192.168.10.101",    #MySQL数据库的地址,通常是localhsot或IP地址user="root",        #数据库的用户名,通常是rootpassword="pwd123",    #数据库的密码database="testdb"    #要连接的数据库名称
)	##要注意远程必须可以连接到MySQL服务器的,在服务器上创建用于远程用户并授权
例如:create user 'root'@'%' identified by 'pwd123';grant all on *.* to 'root'@'%';flush privileges;

3. 创建游标对象

#建立连接(游标:cursor,动态变化位置)
cursor=db.cursor()			#针对上面的值 建立游标用于连接

4. 执行SQL语句

#执行SQL语句,可以使用%s占位符来避免SQL注入攻击
cursor.execute("select * from users")

5. 获取查询结果

#定义执行结果为它赋值
results=cursor.fetchall()
for row in results:print(row)

6. 关闭连接

#关闭连接(执行完成后要关闭游标和数据库连接)
cursor.close()
db.close()

三、常见的MySQL操作

1. 插入数据(INSERT)

cursor.execute("insert into users (name,age) values(%s,%s)",("zhangsan",20))
db.commit()    --提交事务

2. 更新数据(UPDATE)

cursor.execute("UPDATE users SET age = %s WHERE name = %s , (26,"ALice")")
db.commit()  #提交

3.删除数据(DELETE)

cursor.execute("DELETE FROM users WHERE name = %s",("Alice",))
db.commit()      #提交事务

4. 查询数据(SELECT)

cursor.execute("SELECT * FROM users")
results = cursor.fetchall()
for row in results:print(row)

5. 执行多条SQL语句

cursor.executemany("INSERT INTO users (name,age) VALUES (%s,%s)",[("Bob",30),("Charlie",35),("David",28)]
)
db.commit()

6. 使用LIKE进行模糊查询

作用:根据模式匹配检索数据,支持通配符 %(任意字符)和 _(单个字符)。

cursor.execute("select * from users where name like %s",("zhang%"))
results = cursor.fetchall()
for row in results:print(row)

7. 使用JOIN 进行联合查询

作用:联合多表数据,常用类型:

  • INNER JOIN:返回两表匹配的行。

  • LEFT JOIN:返回左表所有行,右表无匹配则为 NULL

cursor.execute("""SELECT users.name, orders.amountFROM usersINNER JOIN orders ON users.id = orders.user_id
""")
results = cursor.fetchall()
for row in results:print(row)

代码解析:

  • SQL 查询:使用 INNER JOIN 连接 users 和 orders 表,通过 user_id 关联,查询用户姓名(users.name)和订单金额(orders.amount)。
  • Python 操作
    • cursor.execute() 执行 SQL 语句。
    • fetchall() 获取所有查询结果。
    • 遍历结果并打印每行数据(用户姓名与对应订单金额的组合)。

四、使用连接池

1. 连接池简介

  • 作用:预先创建并管理多个数据库连接,避免频繁创建/关闭连接的开销。

  • 优势:提升性能、控制并发连接数、防止资源耗尽。

2. 创建连接池

先安装库用来建立来连接池

pip install dbutils

from dbutils.pooled_db import PooledDB
import pymysql# 数据库连接配置
dbconfig = {"host": "localhost","user": "root","password": "password","database": "testdb"
}# 创建连接池
connection_pool = PooledDB(creator=pymysql,  # 使用PyMySQL作为数据库连接库maxconnections=5,  # 连接池中最大连接数**dbconfig
)

3. 获取连接

从连接池中获取连接时,可以使用connection()方法。每次获取到的连接都可以直接执行数据库操作。db_connection = connection_pool.connection()
cursor = db_connection.cursor()cursor.execute("SELECT * FROM users")
results = cursor.fetchall()for row in results:print(row)cursor.close()
db_connection.close()  # 连接会自动归还给连接池

4. 连接池的优势

  • 资源复用:避免重复创建连接,减少 TCP 握手和认证开销。

  • 流量控制:限制最大连接数,防止数据库过载。

  • 健康检查:自动检测失效连接并重建。

五、事务管理

1. 开始事务

cursor.execute("START TRANSACTION")

2. 提交事务

db.commit()

3. 回滚事务

db.rollback()

4. 事务的隔离级别

(1)READ UNCOMMITTED (未提交读)
  • 描述:事务可读取其他事务未提交的数据,可能导致 脏读(Dirty Read),事务间隔离性最差。
  • 应用场景:通常不推荐使用,除非对数据一致性要求极低。
  • 使用方法
    cursor.execute("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED")
(2)READ COMMITTED(提交读)
  • 描述:事务仅读取其他事务已提交的数据,避免脏读,但可能出现 不可重复读(Non-repeatable Read)(同一事务内多次读取同一数据,值因其他事务提交而变化)。
  • 应用场景:适用于多数常见场景,平衡隔离性与性能(如普通业务查询)。
  • 使用方法
    cursor.execute("SET TRANSACTION ISOLATION LEVEL READ COMMITTED")
(3)REPEATABLE READ(可重复读)
    • 描述:事务内多次读取同一数据,值保持不变(避免不可重复读),但可能出现 幻读(Phantom Read)(同一事务内查询结果集因其他事务插入 / 删除而变化)。
    • 应用场景:需保证事务内数据一致性(如金融系统余额操作、订单状态变更)。
    • 使用方法
      cursor.execute("SET TRANSACTION ISOLATION LEVEL REPEATABLE READ")
      
(4)SERIAIZABLE (串行化)
  • 描述:最严格隔离级别,事务串行执行(完全避免脏读、不可重复读、幻读),但 性能开销大(锁竞争剧烈)。
  • 应用场景:对数据一致性要求极高(如库存管理、银行转账、关键业务交易)。
  • 使用方法
    cursor.execute("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE")

核心对比(隔离级别与问题):

隔离级别脏读不可重复读幻读隔离性性能
READ UNCOMMITTED✔️✔️✔️最低最高
READ COMMITTED✔️✔️中等中等
REPEATABLE READ✔️较高中等
SERIALIZABLE最高最低

5. 事务隔离级别总结

  • READ UNCOMMITTED:允许脏读,最低隔离级别,性能最好,但容易出现数据不一致的情况。
  • READ COMMITTED:解决了脏读问题,但可能出现不可重复读。
  • REPEATABLE READ:解决了脏读和不可重复读问题,但可能出现幻读。(MySQL事务默认级别)
  • SERIALIZABLE:解决了所有问题,但性能最差,可能导致事务时间等待。

注意:在选择隔离级别是,需根据具体需求平衡数据一致性和性能,如果事务数据不频繁冲突,可以选择较低的隔离级别以提高性能,而对数据一致性要求高的场景,则选择更高的隔离级别。

6. 案例

import pymysql# 连接到数据库
conn = pymysql.connect(host='localhost',user='root',password='password',database='testdb'
)# 创建一个游标对象
cursor = conn.cursor()# 关闭自动提交模式
conn.autocommit = Falsetry:# 开始事务# 执行插入操作cursor.execute("INSERT INTO users (name, age) VALUES ('Eve', 22)")cursor.execute("INSERT INTO orders (user_id, amount) VALUES ((SELECT id FROM users WHERE name = 'Eve'), 120.50)")# 提交事务conn.commit()print("事务已提交。")except pymysql.MySQLError as err:# 如果发生错误,回滚事务print(f"错误: {err}")conn.rollback()print("事务已回滚。")finally:# 关闭游标和连接cursor.close()conn.close()


文章转载自:

http://0ddVg8ud.qswws.cn
http://YACMMcBA.qswws.cn
http://Q8cSzqEU.qswws.cn
http://WUzrrKtY.qswws.cn
http://a3V4cOpr.qswws.cn
http://ppQ4Y8OG.qswws.cn
http://MPOsjAoI.qswws.cn
http://FxRg1U2b.qswws.cn
http://kihqIpPo.qswws.cn
http://muQR1lX1.qswws.cn
http://e8Zxbu6Z.qswws.cn
http://fZvnDV69.qswws.cn
http://Y5vOz5y1.qswws.cn
http://hmx5fHQI.qswws.cn
http://TuVK09kj.qswws.cn
http://3kyBIYPR.qswws.cn
http://EG5VTm3i.qswws.cn
http://gH1zwve4.qswws.cn
http://blHgwhMR.qswws.cn
http://H33KLlbT.qswws.cn
http://6vKq69h9.qswws.cn
http://F5G3RGXz.qswws.cn
http://eI8TeSnH.qswws.cn
http://KBJKi2jz.qswws.cn
http://ZHBnlgVw.qswws.cn
http://Q2koyAdl.qswws.cn
http://kTLV44bo.qswws.cn
http://7R1MLoIY.qswws.cn
http://57xhkAUW.qswws.cn
http://KTMeo1Y5.qswws.cn
http://www.dtcms.com/wzjs/779838.html

相关文章:

  • wordpress建英文网站汕头网页制作公司
  • 杭州哪些做网站公司好西安学校网站建设
  • 可以做营销任务的网站联系人网站设计
  • 做招聘网站要多久app注册
  • 主持人做的化妆品网站做网站最便宜多少钱
  • 网站如何做参考文献js网站开发
  • 网站文章内链手机在线网页制作
  • 网站seo数据分析西安机场商务宾馆百度做网站
  • html5做个网站多少钱锦州制作网站公司
  • 从seo角度去建设网站信息发布网站建设
  • jsp小型网站开发代码做网站最好的公司
  • 深圳建设网站服务网站首页收录
  • 河南电商网站开发网站名称和备案不一样
  • 无锡网站制作哪家有名中文手机编程软件app
  • php网站开发实战视频教程株洲网站建设报价
  • 做网站珊瑚橙颜色怎么搭配好看做程序的网站
  • 阿里云 建设网站网站怎么做防御
  • 武安市网站建设网站空间价格
  • 免费自助建站网站一览网站建设费记入科目
  • 自己来建网站中国建设银行官网个人网上银行
  • 建立企业网站 优帮云销售牛的网站
  • php旅游类网站开发c2c网站架构
  • 做网站需要的注意事项河北seo基础知识
  • 专业网站建设公司推荐深圳便宜的网站开发联系
  • 如何成立网站免费h5页面应用制作
  • 用pdf怎么做电子书下载网站做网站交互效果用什么软件
  • 网站建设时间、人力及成本估算2018网站的建设与维护前景
  • 河南工程学院网站建设河北建站公司
  • 建设网站的一般步骤网红商城
  • 彩票网站开发软件wordpress 广告联盟