《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)

文章目录

  • [1.1 MySQL 概览:版本、特性和生态系统](#1.1 MySQL 概览:版本、特性和生态系统)
    • [1.1.1 基础知识](#1.1.1 基础知识)
    • [1.1.2 重点案例:使用 Python 实现 MySQL 数据的 CRUD 操作](#1.1.2 重点案例:使用 Python 实现 MySQL 数据的 CRUD 操作)
    • [1.1.3 拓展案例 1:使用 Python 实现 MySQL 数据备份**](#1.1.3 拓展案例 1:使用 Python 实现 MySQL 数据备份**)
    • [1.1.4 拓展案例 2:使用 Python 分析 MySQL 数据](#1.1.4 拓展案例 2:使用 Python 分析 MySQL 数据)
  • [1.2 安装和配置 MySQL](#1.2 安装和配置 MySQL)
    • [1.2.1 基础知识](#1.2.1 基础知识)
    • [1.2.2 重点案例:使用 Homebrew 安装 MySQL 并进行初步配置](#1.2.2 重点案例:使用 Homebrew 安装 MySQL 并进行初步配置)
    • [1.2.3 拓展案例 1:配置 MySQL 以优化 Mac OS 上的性能](#1.2.3 拓展案例 1:配置 MySQL 以优化 Mac OS 上的性能)
    • [1.2.4 拓展案例 2:使用 Python 连接到配置好的 MySQL 实例并创建一个数据库](#1.2.4 拓展案例 2:使用 Python 连接到配置好的 MySQL 实例并创建一个数据库)
  • [1.3 基础命令和操作](#1.3 基础命令和操作)
    • [1.3.1 基础知识](#1.3.1 基础知识)
    • [1.3.2 重点案例:使用 Python 创建数据库和表,并插入数据](#1.3.2 重点案例:使用 Python 创建数据库和表,并插入数据)
    • [1.3.3 拓展案例 1:使用 Python 执行数据查询操作](#1.3.3 拓展案例 1:使用 Python 执行数据查询操作)
    • [1.3.4 拓展案例 2:更新和删除数据](#1.3.4 拓展案例 2:更新和删除数据)

1.1 MySQL 概览:版本、特性和生态系统

在这一节中,我们将深入探索 MySQL,这个在全球广泛使用的关系型数据库管理系统。无论你是初学者还是经验丰富的开发者,了解 MySQL 的基础知识都是至关重要的。

1.1.1 基础知识

  • 版本:MySQL 的版本历史可以追溯到 1995 年,经历了从 3.x 到 8.0 的演变。每个主要版本的发布都带来了性能改进、新特性和安全性增强。当前,MySQL 8.0 是最新的稳定版本,它引入了诸如窗口函数、公共表表达式(CTE)、角色管理、JSON 支持扩展等先进特性。

  • 特性

    • 存储引擎:MySQL 支持多种存储引擎,包括 InnoDB(支持事务处理,提供高可靠性)、MyISAM(适用于读取密集型应用)、Memory(数据存储在 RAM 中,提供快速访问)等。
    • 复制:MySQL 提供主从复制功能,支持数据的实时备份和读写分离,提高了数据库的可用性和扩展性。
    • 分区:通过将表中的数据分布到不同的分区来提高性能,特别是在处理大量数据时。
    • 安全性:包括网络层加密、SHA-256 密码认证、角色基的权限控制等。
  • 生态系统:MySQL 被广泛应用于各种在线应用、数据仓库、e-commerce 解决方案等场景。它与许多编程语言和框架(如 PHP、Java、Python、Ruby)紧密集成,支持跨平台运行(Linux、Windows、MacOS)。

1.1.2 重点案例:使用 Python 实现 MySQL 数据的 CRUD 操作

  • 假设我们正在开发一个博客系统,需要存储用户信息和博文内容。我们会使用 Python 的 mysql-connector-python 包来执行基本的 CRUD(创建、读取、更新、删除)操作。

    步骤

    1. 安装 mysql-connector-python 包。

      python 复制代码
      pip install mysql-connector-python
    2. 连接到 MySQL 数据库。

      python 复制代码
      import mysql.connector
      
      conn = mysql.connector.connect(
        host="localhost",
        user="yourusername",
        password="yourpassword",
        database="blogdb"
      )
      cursor = conn.cursor()
    3. 创建表格。

      python 复制代码
      cursor.execute("CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255))")
      cursor.execute("CREATE TABLE posts (id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255), content TEXT, user_id INT, FOREIGN KEY(user_id) REFERENCES users(id))")
    4. 插入数据。

      python 复制代码
      query = "INSERT INTO users (name, email) VALUES (%s, %s)"
      values = ("John Doe", "john@example.com")
      cursor.execute(query, values)
      conn.commit()
    5. 查询数据。

      python 复制代码
      cursor.execute("SELECT * FROM users")
      for (name, email) in cursor:
        print(f"Name: {name}, Email: {email}")

1.1.3 拓展案例 1:使用 Python 实现 MySQL 数据备份**

对于生产环境中的数据库,定期备份是一项重要的维护任务。我们可以使用 Python 脚本来自动化这个过程。

步骤

  1. 使用 subprocess 模块调用 mysqldump 工具。

    python 复制代码
    import subprocess
    
    subprocess.run(["mysqldump", "-u", "username", "-p", "database_name", ">",
                    "backup.sql"])
  2. 可以将此脚本设置为定期执行,实现自动化备份。

1.1.4 拓展案例 2:使用 Python 分析 MySQL 数据

在这个案例中,我们将使用 Python 的 pandas 库从 MySQL 数据库中读取数据,并进行简单的数据分析。

步骤

  1. 安装 pandassqlalchemy

    python 复制代码
    pip install pandas sqlalchemy
  2. 读取数据并分析。

    python 复制代码
    from sqlalchemy import create_engine
    import pandas as pd
    
    engine = create_engine('mysql+mysqlconnector://username:password@localhost/blogdb')
    df = pd.read_sql_table('posts', con=engine)
    print(df.describe())

通过以上案例,我们不仅了解了 MySQL 的基础知识,还通过实际应用案例深入探讨了如何使用 Python 与 MySQL 交互,涵盖了数据操作、备份和分析等常用场景,为读者提供了实用性强、贴近实际生产的学习资源。


1.2 安装和配置 MySQL

安装和配置 MySQL 是每个数据库管理员和开发者的基本技能。在 Mac OS 上,这个过程可以通过多种方式完成,包括使用 Homebrew、下载官方的 MySQL 安装包,或者通过 Docker。这一节将引导你通过这些步骤,确保你的 MySQL 服务器运行顺畅并准备好执行任务。

1.2.1 基础知识

  • 使用 Homebrew 安装:Homebrew 是 Mac OS 上最受欢迎的包管理器之一,它可以让安装 MySQL 变得非常简单。
  • 配置文件 :MySQL 的配置文件通常位于 /etc/my.cnf 或者 /usr/local/etc/my.cnf,通过编辑这个文件,你可以调整 MySQL 服务器的设置,例如内存使用、端口号和默认的存储引擎。
  • 启动和停止 MySQL 服务:安装完成后,你需要知道如何启动和停止 MySQL 服务,以及如何设置为开机自启动。
  • 安全配置 :运行 mysql_secure_installation 脚本来增强 MySQL 安装的安全性是一个好习惯,这包括设置 root 密码、删除匿名用户、禁用远程 root 登录等。

1.2.2 重点案例:使用 Homebrew 安装 MySQL 并进行初步配置

假设你是一个开发者,正在 Mac OS 上配置本地开发环境。使用 Homebrew 安装 MySQL 是一个快速开始的好方法。

步骤

  1. 打开终端,安装 Homebrew(如果尚未安装)。

    bash 复制代码
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  2. 使用 Homebrew 安装 MySQL。

    bash 复制代码
    brew install mysql
  3. 启动 MySQL 服务。

    bash 复制代码
    brew services start mysql
  4. 运行安全安装脚本。

    bash 复制代码
    mysql_secure_installation
  5. 连接到 MySQL。

    bash 复制代码
    mysql -u root -p

1.2.3 拓展案例 1:配置 MySQL 以优化 Mac OS 上的性能

开发者和数据库管理员经常需要调整 MySQL 配置,以优化本地环境中的性能。

步骤

  1. 找到 MySQL 的配置文件 my.cnf。如果不存在,请创建一个。

    bash 复制代码
    nano /usr/local/etc/my.cnf
  2. 添加或修改以下配置,以优化性能(根据你的机器配置调整数值)。

    ini 复制代码
    [mysqld]
    max_connections = 50
    innodb_flush_log_at_trx_commit = 1
    innodb_log_file_size = 128M
    query_cache_size = 0
    query_cache_type = 0
  3. 重启 MySQL 服务以应用更改。

    bash 复制代码
    brew services restart mysql

1.2.4 拓展案例 2:使用 Python 连接到配置好的 MySQL 实例并创建一个数据库

一旦 MySQL 安装并配置好,下一步就是开始使用它了。这个案例将展示如何使用 Python 连接到 MySQL 并创建一个新的数据库。

步骤

  1. 确保安装了 mysql-connector-python

    python 复制代码
    pip install mysql-connector-python
  2. 使用 Python 脚本连接到 MySQL 并创建数据库。

    python 复制代码
    import mysql.connector
    
    conn = mysql.connector.connect(
      host="localhost",
      user="root",
      password="yourpassword"
    )
    
    cursor = conn.cursor()
    cursor.execute("CREATE DATABASE mydatabase")

通过这些案例,你不仅学会了如何在 Mac OS 上安装和配置 MySQL,还学会了如何通过 Python 脚本与 MySQL 互动,从而为各种开发和生产任务打下坚实的基础。


1.3 基础命令和操作

掌握 MySQL 的基础命令和操作是进行有效数据库管理和开发的关键。这一节将涵盖如何使用这些基础命令来创建和管理数据库、表、以及执行数据的 CRUD(创建、读取、更新、删除)操作。

1.3.1 基础知识

  • 创建数据库CREATE DATABASE database_name;
  • 选择数据库USE database_name;
  • 创建表CREATE TABLE table_name (column1 datatype, column2 datatype, ...);
  • 插入数据INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
  • 查询数据SELECT * FROM table_name; 或更具体的查询 SELECT column1, column2 FROM table_name WHERE condition;
  • 更新数据UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
  • 删除数据DELETE FROM table_name WHERE condition;
  • 删除表DROP TABLE table_name;
  • 删除数据库DROP DATABASE database_name;

1.3.2 重点案例:使用 Python 创建数据库和表,并插入数据

假设你需要为一个小型电商平台创建一个数据库,其中包含用户信息和订单信息。

步骤

  1. 连接到 MySQL。

    python 复制代码
    import mysql.connector
    
    conn = mysql.connector.connect(
      host="localhost",
      user="root",
      password="yourpassword"
    )
    cursor = conn.cursor()
  2. 创建数据库 ecommerce

    python 复制代码
    cursor.execute("CREATE DATABASE ecommerce")
    cursor.execute("USE ecommerce")
  3. 创建 usersorders 表。

    python 复制代码
    cursor.execute("""
    CREATE TABLE users (
      id INT AUTO_INCREMENT PRIMARY KEY,
      name VARCHAR(255),
      email VARCHAR(255) UNIQUE
    )
    """)
    
    cursor.execute("""
    CREATE TABLE orders (
      id INT AUTO_INCREMENT PRIMARY KEY,
      product_name VARCHAR(255),
      amount INT,
      user_id INT,
      FOREIGN KEY(user_id) REFERENCES users(id)
    )
    """)
  4. 插入数据到 users 表。

    python 复制代码
    query = "INSERT INTO users (name, email) VALUES (%s, %s)"
    values = [("Alice", "alice@example.com"), ("Bob", "bob@example.com")]
    cursor.executemany(query, values)
    conn.commit()

1.3.3 拓展案例 1:使用 Python 执行数据查询操作

在电商平台数据库中查询特定用户的所有订单。

步骤

  1. 查询 Alice 的用户 ID。

    python 复制代码
    cursor.execute("SELECT id FROM users WHERE name = 'Alice'")
    user_id = cursor.fetchone()[0]
  2. 查询基于用户 ID 的订单。

    python 复制代码
    cursor.execute(f"SELECT * FROM orders WHERE user_id = {user_id}")
    for (id, product_name, amount, user_id) in cursor:
      print(f"Order ID: {id}, Product: {product_name}, Amount: {amount}")

1.3.4 拓展案例 2:更新和删除数据

修改特定订单的数量,然后删除一个用户。

步骤

  1. 更新订单数量。

    python 复制代码
    cursor.execute("UPDATE orders SET amount = 3 WHERE id = 1")
    conn.commit()
  2. 删除用户 Bob

    python 复制代码
    cursor.execute("DELETE FROM users WHERE name = 'Bob'")
    conn.commit()

通过以上案例,你不仅学会了如何使用 Python 连接 MySQL 执行基本的数据库操作,还掌握了如何在实际项目中应用这些操作来管理数据。这些技能在数据库管理和数据操作中非常重要,可以为开发各种应用程序和服务提供坚实的基础。

相关推荐
小扳10 分钟前
Docker 篇-Docker 详细安装、了解和使用 Docker 核心功能(数据卷、自定义镜像 Dockerfile、网络)
运维·spring boot·后端·mysql·spring cloud·docker·容器
MavenTalk11 分钟前
Move开发语言在区块链的开发与应用
开发语言·python·rust·区块链·solidity·move
日里安40 分钟前
8. 基于 Redis 实现限流
数据库·redis·缓存
silver98861 小时前
分布式相关杂项
分布式
EasyCVR1 小时前
ISUP协议视频平台EasyCVR视频设备轨迹回放平台智慧农业视频远程监控管理方案
服务器·网络·数据库·音视频
Elastic 中国社区官方博客1 小时前
使用真实 Elasticsearch 进行更快的集成测试
大数据·运维·服务器·数据库·elasticsearch·搜索引擎·集成测试
明月与玄武2 小时前
关于性能测试:数据库的 SQL 性能优化实战
数据库·sql·性能优化
PGCCC3 小时前
【PGCCC】Postgresql 存储设计
数据库·postgresql
PcVue China5 小时前
PcVue + SQL Grid : 释放数据的无限潜力
大数据·服务器·数据库·sql·科技·安全·oracle
魔道不误砍柴功7 小时前
简单叙述 Spring Boot 启动过程
java·数据库·spring boot