您的位置:首页 > 房产 > 建筑 > 潍坊网络营销外包_本地app怎么推广_网站推广计划_自媒体论坛交流推荐

潍坊网络营销外包_本地app怎么推广_网站推广计划_自媒体论坛交流推荐

2025/1/31 22:54:45 来源:https://blog.csdn.net/xnuscd/article/details/144015888  浏览:    关键词:潍坊网络营销外包_本地app怎么推广_网站推广计划_自媒体论坛交流推荐
潍坊网络营销外包_本地app怎么推广_网站推广计划_自媒体论坛交流推荐

好的!以下是一个详细的 MySQL 入门学习文档,针对 Python 开发者,包含使用 SQLite 进行学习的示例。文档将涵盖实际开发中需要使用的各种相关操作和知识,帮助您从基础开始,逐步掌握在 Python 中使用 MySQL 的技能。


MySQL 入门学习文档

目录

  1. 简介
  2. 环境搭建
    • 2.1 安装 MySQL
    • 2.2 安装 Python 和 虚拟环境
    • 2.3 安装数据库连接库
  3. SQL 基础
    • 3.1 数据库和表
    • 3.2 数据类型
    • 3.3 基本 SQL 语句
  4. Python 操作 MySQL
    • 4.1 连接到数据库
    • 4.2 执行 SQL 语句
    • 4.3 事务处理
    • 4.4 处理异常
  5. 使用 ORM:SQLAlchemy
    • 5.1 安装 SQLAlchemy
    • 5.2 定义模型
    • 5.3 创建和查询数据
    • 5.4 更新和删除数据
  6. 使用 SQLite 进行练习
    • 6.1 SQLite 简介
    • 6.2 在 Python 中使用 SQLite
  7. 实际开发中的注意事项
    • 7.1 数据库设计
    • 7.2 性能优化
    • 7.3 安全性考虑
  8. 部署 MySQL 服务
    • 8.1 在本地部署 MySQL
    • 8.2 在服务器上部署 MySQL
  9. 附加资源
  10. 总结

1. 简介

MySQL 是一种流行的开源关系型数据库管理系统(RDBMS),广泛应用于 Web 开发和各种应用程序。它以高性能、可靠性和易用性著称。

对于 Python 开发者,了解如何与 MySQL 进行交互是非常重要的技能。本学习文档将指导您:

  • 理解 MySQL 的基本概念和 SQL 语句
  • 在 Python 中连接并操作 MySQL 数据库
  • 使用 ORM(对象关系映射)工具,如 SQLAlchemy,提高开发效率
  • 学习实际开发中需要注意的各种操作和知识

2. 环境搭建

2.1 安装 MySQL

2.1.1 下载 MySQL
  • 访问 MySQL 官方网站 下载适合您操作系统的 MySQL 安装包。
2.1.2 安装 MySQL
  • 根据下载的安装包,按照安装向导进行安装。
  • 在安装过程中,设置 root 用户的密码,并记住它,后续需要使用。
2.1.3 配置 MySQL
  • 安装完成后,确保 MySQL 服务已启动。
  • 可以使用命令行或图形化工具(如 MySQL Workbench)连接到 MySQL。
2.1.4 验证安装
  • 打开命令行,输入以下命令测试连接:

    mysql -u root -p
    
  • 输入密码后,应能进入 MySQL 命令行界面。

2.2 安装 Python 和 虚拟环境

2.2.1 安装 Python
  • 访问 Python 官网 下载并安装 Python 3.6 或更高版本。
2.2.2 创建虚拟环境
  • 使用虚拟环境隔离项目依赖。

    python -m venv venv
    
  • 激活虚拟环境:

    • Windows:

      venv\Scripts\activate
      
    • macOS/Linux:

      source venv/bin/activate
      

2.3 安装数据库连接库

2.3.1 选择数据库驱动
  • 常用的 MySQL 数据库驱动有:
    • mysql-connector-python:由 Oracle 官方提供。
    • PyMySQL:纯 Python 实现。
    • mysqlclient:需要编译,性能较好。
  • 本文将使用 PyMySQL,因为它易于安装且无需编译。
2.3.2 安装 PyMySQL
pip install PyMySQL
2.3.3 安装 SQLAlchemy(可选)
  • 后续将介绍如何使用 ORM 工具 SQLAlchemy。
pip install sqlalchemy

3. SQL 基础

在开始编写代码之前,了解一些 SQL 基础知识是非常有必要的。

3.1 数据库和表

  • 数据库:数据的集合,每个数据库包含多个表。
  • :由行和列组成的结构,用于存储数据。

3.2 数据类型

  • 数值类型:INT、FLOAT、DOUBLE、DECIMAL
  • 字符串类型:CHAR、VARCHAR、TEXT
  • 日期和时间类型:DATE、TIME、DATETIME、TIMESTAMP

3.3 基本 SQL 语句

3.3.1 创建数据库
CREATE DATABASE mydatabase;
3.3.2 使用数据库
USE mydatabase;
3.3.3 创建表
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100),email VARCHAR(100),age INT
);
3.3.4 插入数据
INSERT INTO users (name, email, age) VALUES ('Alice', 'alice@example.com', 30);
3.3.5 查询数据
SELECT * FROM users;
3.3.6 更新数据
UPDATE users SET age = 31 WHERE name = 'Alice';
3.3.7 删除数据
DELETE FROM users WHERE name = 'Alice';

4. Python 操作 MySQL

4.1 连接到数据库

4.1.1 导入 PyMySQL
import pymysql
4.1.2 建立连接
connection = pymysql.connect(host='localhost',user='root',password='your_password',database='mydatabase',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor
)

说明:

  • host:数据库服务器地址,默认本地为 localhost
  • user:数据库用户名,默认管理员为 root
  • password:对应用户的密码。
  • database:要连接的数据库名称。
  • charset:字符集设置为 utf8mb4,支持 Emoji 等字符。
  • cursorclass:指定返回结果为字典形式。
4.1.3 测试连接
try:with connection.cursor() as cursor:cursor.execute("SELECT VERSION()")result = cursor.fetchone()print("Database version:", result)
finally:connection.close()

4.2 执行 SQL 语句

4.2.1 创建表
try:with connection.cursor() as cursor:sql = """CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100),email VARCHAR(100),age INT)"""cursor.execute(sql)connection.commit()
finally:connection.close()
4.2.2 插入数据
try:with connection.cursor() as cursor:sql = "INSERT INTO users (name, email, age) VALUES (%s, %s, %s)"cursor.execute(sql, ('Bob', 'bob@example.com', 25))connection.commit()
finally:connection.close()
4.2.3 查询数据
try:with connection.cursor() as cursor:sql = "SELECT * FROM users WHERE age > %s"cursor.execute(sql, (20,))results = cursor.fetchall()for row in results:print(row)
finally:connection.close()
4.2.4 更新数据
try:with connection.cursor() as cursor:sql = "UPDATE users SET age = %s WHERE name = %s"cursor.execute(sql, (26, 'Bob'))connection.commit()
finally:connection.close()
4.2.5 删除数据
try:with connection.cursor() as cursor:sql = "DELETE FROM users WHERE name = %s"cursor.execute(sql, ('Bob',))connection.commit()
finally:connection.close()

4.3 事务处理

  • 默认情况下,PyMySQL 会自动开启事务。
  • 使用 connection.commit() 提交事务。
  • 使用 connection.rollback() 回滚事务。
4.3.1 示例:事务操作
try:with connection.cursor() as cursor:sql1 = "INSERT INTO users (name, email, age) VALUES (%s, %s, %s)"sql2 = "UPDATE accounts SET balance = balance - %s WHERE user_id = %s"cursor.execute(sql1, ('Charlie', 'charlie@example.com', 28))cursor.execute(sql2, (100, 1))connection.commit()
except Exception as e:connection.rollback()print("Transaction failed:", e)
finally:connection.close()

4.4 处理异常

  • 在数据库操作中,可能会发生各种异常,需要进行捕获和处理。
4.4.1 常见异常
  • pymysql.err.InternalError:内部错误
  • pymysql.err.OperationalError:操作错误,如连接失败
  • pymysql.err.IntegrityError:完整性错误,如主键重复
4.4.2 异常处理示例
import pymysqltry:# 数据库操作pass
except pymysql.err.IntegrityError as e:print("Integrity error:", e)
except pymysql.err.OperationalError as e:print("Operational error:", e)
except Exception as e:print("Unexpected error:", e)
finally:connection.close()

5. 使用 ORM:SQLAlchemy

5.1 安装 SQLAlchemy

pip install sqlalchemy

5.2 定义模型

5.2.1 导入模块
from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
5.2.2 创建数据库引擎
engine = create_engine('mysql+pymysql://root:your_password@localhost/mydatabase')
5.2.3 创建基类
Base = declarative_base()
5.2.4 定义模型类
class User(Base):__tablename__ = 'users'id = Column(Integer, primary_key=True)name = Column(String(100))email = Column(String(100))age = Column(Integer)def __repr__(self):return f"<User(name='{self.name}', email='{self.email}', age={self.age})>"
5.2.5 创建表
Base.metadata.create_all(engine)

5.3 创建和查询数据

5.3.1 创建会话
Session = sessionmaker(bind=engine)
session = Session()
5.3.2 添加数据
new_user = User(name='David', email='david@example.com', age=35)
session.add(new_user)
session.commit()
5.3.3 查询数据
users = session.query(User).filter(User.age > 30).all()
for user in users:print(user)

5.4 更新和删除数据

5.4.1 更新数据
user = session.query(User).filter_by(name='David').first()
user.age = 36
session.commit()
5.4.2 删除数据
user = session.query(User).filter_by(name='David').first()
session.delete(user)
session.commit()

6. 使用 SQLite 进行练习

6.1 SQLite 简介

  • SQLite 是一个轻量级的嵌入式关系型数据库,无需单独安装服务器。
  • 适合用于学习和开发阶段的测试。

6.2 在 Python 中使用 SQLite

6.2.1 使用内置模块 sqlite3
import sqlite3connection = sqlite3.connect('test.db')
cursor = connection.cursor()
6.2.2 执行 SQL 语句
cursor.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)')
cursor.execute('INSERT INTO users (name) VALUES (?)', ('Eve',))
connection.commit()
6.2.3 查询数据
cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()
for row in rows:print(row)
6.2.4 关闭连接
connection.close()
6.2.5 使用 SQLAlchemy 操作 SQLite
  • 修改数据库引擎的连接字符串:

    engine = create_engine('sqlite:///test.db')
    
  • 其余操作与 MySQL 基本一致。


7. 实际开发中的注意事项

7.1 数据库设计

  • 规范化:避免数据冗余,确保数据一致性。
  • 命名规范:表名、字段名应具有意义,遵循命名规则。
  • 主键和外键:设计合适的主键,使用外键维护表之间的关系。
  • 索引:为常用的查询字段添加索引,提高查询性能。

7.2 性能优化

  • 使用索引:加速查询,但过多的索引会影响写入性能。
  • 查询优化:避免使用 SELECT *,仅选择需要的字段。
  • 分页查询:对于大量数据,使用分页避免一次性加载过多数据。
  • 连接池:在 Python 中使用数据库连接池,减少连接开销。

7.3 安全性考虑

  • 防止 SQL 注入:使用参数化查询或 ORM,避免直接拼接 SQL。
  • 加密敏感数据:对密码等敏感信息进行哈希或加密存储。
  • 权限管理:限制数据库用户的权限,只授予必要的权限。
  • 备份和恢复:定期备份数据库,制定恢复计划。

8. 部署 MySQL 服务

8.1 在本地部署 MySQL

  • 安装 MySQL:参考环境搭建部分。

  • 配置远程访问:如果需要其他机器访问本地 MySQL,需要配置允许远程连接。

    -- 在 MySQL 命令行中执行
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    
  • 修改配置文件:编辑 my.cnfmy.ini,注释掉或修改 bind-address

    # bind-address = 127.0.0.1
    
  • 重启 MySQL 服务

8.2 在服务器上部署 MySQL

  • 选择服务器:可以使用云服务器(如 AWS、阿里云、腾讯云等)。
  • 安装 MySQL:根据服务器的操作系统,安装对应版本的 MySQL。
  • 安全配置
    • 设置强密码。
    • 禁止 root 用户远程登录,创建专用的数据库用户。
    • 开启防火墙,仅开放必要的端口(如 3306)。
    • 使用 SSL 加密连接。
  • 备份策略:配置自动备份,防止数据丢失。

9. 附加资源

  • MySQL 官方文档:https://dev.mysql.com/doc/
  • PyMySQL 文档:https://pymysql.readthedocs.io/
  • SQLAlchemy 文档:https://docs.sqlalchemy.org/
  • MySQL 教程:菜鸟教程 MySQL
  • SQL 基础教程:W3Schools SQL Tutorial

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com