MySQL,作为全球最流行的开源关系型数据库管理系统之一,其结构化查询语言(SQL)是数据存储、检索、更新和管理的核心。本指南旨在提供一份详实的参考,帮助初学者熟练掌握MySQL中的关键SQL语法。本指南将通过实际示例,深入浅出地讲解从数据查询到表管理的各项操作。
1. 基础查询
SELECT 语句
简单查询:从表中选取所有列。
SELECT * FROM employees;
指定列查询:只选取特定列。
SELECT first_name, last_name FROM employees;
WHERE 语句
用于过滤结果集。
SELECT * FROM employees WHERE age > 30;
ORDER BY 语句
对结果进行排序。
SELECT * FROM employees ORDER BY salary DESC;
LIMIT 语句
限制返回的结果数量。
SELECT * FROM employees LIMIT 10;
2. 数据操作
插入数据(INSERT)
INSERT INTO employees (first_name, last_name, age, position)
VALUES ('John', 'Doe', 32, 'Software Engineer');
更新数据(UPDATE)
UPDATE employees SET position = 'Senior Engineer' WHERE id = 1;
删除数据(DELETE)
DELETE FROM employees WHERE age < 25;
3. 聚合函数与分组
聚合函数
如 COUNT
, SUM
, AVG
, MAX
, MIN
。
SELECT COUNT(*) FROM employees;
SELECT AVG(salary) FROM employees;
GROUP BY
结合聚合函数使用,按某一列分组数据。
SELECT position, COUNT(*) FROM employees GROUP BY position;
4. 连接查询(JOIN)
INNER JOIN
结合两个表中匹配的行。
SELECT e.first_name, d.department_name
FROM employees e
INNER JOIN departments d ON e.department_id = d.id;
LEFT JOIN / RIGHT JOIN
分别显示左表/右表的所有记录,即使在另一表中没有匹配。
SELECT e.first_name, d.department_name
FROM employees e
LEFT JOIN departments d ON e.department_id = d.id;
5. 子查询
在查询内部嵌套另一个查询。
SELECT * FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);
6. 创建与管理表
创建表(CREATE TABLE)
CREATE TABLE departments (
id INT AUTO_INCREMENT PRIMARY KEY,
department_name VARCHAR(255) NOT NULL
);
修改表结构(ALTER TABLE)
添加列
ALTER TABLE employees ADD COLUMN hire_date DATE;
修改列
ALTER TABLE employees MODIFY COLUMN salary DECIMAL(10,2);
删除列
ALTER TABLE employees DROP COLUMN middle_name;
删除表(DROP TABLE)
DROP TABLE IF EXISTS departments;
7. 数据库管理
创建数据库(CREATE DATABASE)
CREATE DATABASE my_new_db;
使用数据库(USE)
USE my_new_db;
删除数据库(DROP DATABASE)
DROP DATABASE IF EXISTS my_new_db;
评论区