MySQL 学习笔记

1. MySQL 概述

MySQL 是一个流行的开源关系型数据库管理系统(RDBMS),使用 SQL 语言进行操作。它以其性能、可靠性和易用性而闻名。MySQL 支持多种操作系统,包括多种 Unix 和 Linux 变体、Windows 和 macOS。

2. MySQL 版本

  • MySQL Community Edition: 免费且开源。
  • MySQL Enterprise Edition: 付费,提供额外的企业级特性,如备份、安全性和监控工具。

3. 安装 MySQL

3.1 Windows

  1. 下载 MySQL Community Server 的 MSI 安装包。
  2. 运行安装程序并遵循安装向导。
  3. 在安装过程中设置 root 用户密码。

3.2 Linux (Ubuntu/Debian)

sudo apt update
sudo apt install mysql-server

3.3 macOS

使用 Homebrew 安装:

brew install mysql

4. 配置 MySQL

  • 编辑 my.cnf 或 my.ini 文件(取决于操作系统)来配置 MySQL。
  • 重要的配置包括 innodb_buffer_pool_sizemax_connectionsquery_cache_size 等。

5. MySQL 基本操作

5.1 登录 MySQL

mysql -u root -p

5.2 创建数据库

CREATE DATABASE mydatabase;

5.3 选择数据库

USE mydatabase;

5.4 创建表

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(50) NOT NULL,
  password VARCHAR(50) NOT NULL,
  email VARCHAR(100)
);

5.5 插入数据

INSERT INTO users (username, password, email) VALUES ('user1', 'pass1', 'user1@example.com');

5.6 查询数据

SELECT * FROM users;

5.7 更新数据

UPDATE users SET email = 'newemail@example.com' WHERE username = 'user1';

5.8 删除数据

DELETE FROM users WHERE username = 'user1';

5.9 删除表

DROP TABLE users;

5.10 删除数据库

DROP DATABASE mydatabase;

6. 数据库备份和恢复

6.1 备份

mysqldump -u root -p mydatabase > mydatabase_backup.sql

6.2 恢复

mysql -u root -p mydatabase < mydatabase_backup.sql

7. 数据库安全

  • 用户权限: 使用 GRANT 和 REVOKE 语句管理用户权限。
  • 加密连接: 配置 SSL 以加密客户端和服务器之间的连接。
  • 防火墙: 配置防火墙规则以限制对 MySQL 端口的访问。

8. 性能优化

  • 索引: 为经常用于查询条件的列创建索引。
  • 查询优化: 使用 EXPLAIN 关键字分析查询性能。
  • 分区: 对大表进行分区以提高查询效率。

9. 常用 SQL 函数

  • 字符串函数CONCAT()SUBSTRING()TRIM()UPPER()LOWER()
  • 数值函数ABS()CEILING()FLOOR()ROUND()RAND()
  • 日期和时间函数NOW()CURDATE()DATE_ADD()TIMEDIFF()

10. 存储引擎

  • InnoDB: 支持事务、行级锁定和外键。
  • MyISAM: 性能高,不支持事务和行级锁定。
  • MEMORY: 存储数据于内存中,访问速度快,但不适合大量数据。

11. 事务处理

  • ACID属性: 原子性、一致性、隔离性、持久性。
  • 事务控制:
  • START TRANSACTION;
    UPDATE accounts SET balance = balance - 100 WHERE id = 1;
    UPDATE accounts SET balance = balance + 100 WHERE id = 2;
    COMMIT;

12. 视图

  • 创建视图:
    CREATE VIEW view_name AS
    SELECT column1, column2 FROM table_name WHERE condition;

13. 存储过程和函数

  • 存储过程: 一组为了执行特定任务而预编译的 SQL 语句。
  • 自定义函数: 返回一个值的 SQL 代码块。

14. 触发器

  • 创建触发器:
    CREATE TRIGGER trigger_name BEFORE INSERT ON table_name
    FOR EACH ROW
    BEGIN
      -- SQL statements
    END;

 

15. 复制

  • 主从复制: MySQL 数据库复制,用于负载均衡和数据备份。

16. 监控和日志

  • 慢查询日志: 记录执行时间超过阈值的查询。
  • 二进制日志: 记录所有更改数据的操作,用于复制和恢复。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值