2. MySQL


🐬 MySQL 入门教程

本教程覆盖 MySQL 的基础知识、安装方法、常用命令、SQL 语法及数据库管理,适用于入门学习、教学培训及项目初学者。


📖 1. 什么是 MySQL?

  • MySQL 是一个开源的关系型数据库管理系统(RDBMS),使用 SQL(结构化查询语言)作为操作语言。
  • 支持多用户并发访问,数据可靠性高。
  • 广泛应用于 Web 开发(LAMP 架构:Linux + Apache + MySQL + PHP)。

⚙️ 2. MySQL 安装

2.1 Windows 安装

2.2 Ubuntu 安装

sudo apt update
sudo apt install mysql-server
sudo mysql_secure_installation

2.3 启动/停止服务

# 启动
sudo systemctl start mysql

# 停止
sudo systemctl stop mysql

# 开机自启
sudo systemctl enable mysql

🔐 3. 登录与退出

# 登录MySQL(推荐使用root用户)
mysql -u root -p

# 输入密码后进入MySQL命令行

# 退出MySQL
exit;

🗂 4. 数据库操作

创建数据库

CREATE DATABASE school;

查看所有数据库

SHOW DATABASES;

使用数据库

USE school;

删除数据库

DROP DATABASE school;

🧱 5. 数据表操作

创建数据表

CREATE TABLE students (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50),
  age INT,
  gender ENUM('M', 'F'),
  email VARCHAR(100)
);

查看所有表

SHOW TABLES;

查看表结构

DESC students;

删除表

DROP TABLE students;

🧮 6. 数据操作(增删改查)

插入数据

INSERT INTO students (name, age, gender, email)
VALUES ('Alice', 20, 'F', 'alice@example.com');

查询数据

SELECT * FROM students;

SELECT name, age FROM students WHERE gender = 'F';

更新数据

UPDATE students
SET age = 21
WHERE name = 'Alice';

删除数据

DELETE FROM students
WHERE id = 1;

📊 7. 条件与排序

WHERE 条件

SELECT * FROM students WHERE age > 18;

排序 ORDER BY

SELECT * FROM students ORDER BY age DESC;

模糊查询 LIKE

SELECT * FROM students WHERE name LIKE 'A%';

限制结果 LIMIT

SELECT * FROM students LIMIT 5;

📚 8. 聚合与分组

常见函数

SELECT COUNT(*) FROM students;
SELECT AVG(age) FROM students;

分组 GROUP BY

SELECT gender, COUNT(*) FROM students GROUP BY gender;

条件分组 HAVING

SELECT gender, COUNT(*) AS num
FROM students
GROUP BY gender
HAVING num > 1;

🔗 9. 表连接(JOIN)

-- 假设有 courses 表
SELECT s.name, c.course_name
FROM students s
JOIN courses c ON s.id = c.student_id;

🔐 10. 用户与权限管理

创建用户

CREATE USER 'testuser'@'localhost' IDENTIFIED BY '123456';

授权

GRANT ALL PRIVILEGES ON school.* TO 'testuser'@'localhost';

查看权限

SHOW GRANTS FOR 'testuser'@'localhost';

撤销权限

REVOKE ALL PRIVILEGES ON school.* FROM 'testuser'@'localhost';

🧰 11. 常用工具与命令

导出数据库(备份)

mysqldump -u root -p school > school.sql

导入数据库(恢复)

mysql -u root -p school < school.sql

🧠 12. 小技巧

  • 使用 \G 查看格式化输出(适用于长行)

    SELECT * FROM students\G;
    
  • 忘记密码?使用安全模式重置 root 密码

  • 设置默认字符集为 utf8mb4 避免中文乱码

📘 13. 推荐学习资源


💡 建议多练多查多思考,学会用 SQL 解决实际问题才是关键!

results matching ""

    No results matching ""

    results matching ""

      No results matching ""