MySQL常用SQL语句详解:从基础增删改查到高级聚合连接
掌握MySQL数据库的核心在于熟练运用SQL语句进行数据管理。本文将系统梳理从基础的增删改查到复杂的聚合分析与多表关联等常用SQL语法,通过清晰的代码示例,帮助开发者高效构建数据库操作逻辑。
第1步:执行数据写入与修改
在数据库中维护数据是基础任务,主要包括将新记录添加到表中或更新现有记录的值。
第1步:插入单条或多条数据 (INSERT)
使用 INSERT INTO 语句向指定表的列中填入数据。语法要求明确指定列名与对应的值顺序。
INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3);
示例:向商品表 product 插入一条耐克鞋的信息。
INSERT INTO product (name, price, pic_path)
VALUES ('Nike', 500, 'uploads/3245.jpg');
第2步:更新现有数据 (UPDATE)
使用 UPDATE 修改表中特定条件的记录。注意:务必加上 WHERE 子句,否则会导致全表被意外更新。
UPDATE table_name
SET column1 = value1, column2 = value2
WHERE condition;
示例:将 ID 为 2 的商品名称改为李宁,价格调整为 50。
UPDATE product
SET name = 'LiNing', price = 50
WHERE id = 2;
第3步:安全删除数据 (DELETE)
使用 DELETE FROM 移除行记录。同样必须配合 WHERE 限定范围。
DELETE FROM table_name WHERE condition;
示例:删除 ID 为 2 的商品记录。
DELETE FROM product WHERE id = 2;
第2步:构建灵活的查询条件
查询是 SQL 最核心的功能,除了获取全部数据,通常需要根据条件精确筛选。
第4步:基础全量与部分字段查询
获取所有数据使用 SELECT *;仅获取关心的列可提高传输效率。
-- 查询所有列
SELECT * FROM product;
-- 只查询名称和价格
SELECT name, price FROM product;
第5步:组合逻辑与模糊匹配
利用 AND、OR、NOT 构建复杂逻辑,或使用特殊操作符处理文本和范围。
- 比较运算:
=, <, >, <=, >=, !=。例如:SELECT * FROM product WHERE id = 2; - 逻辑组合:同时满足多个条件用
AND,满足其一用OR。例如:查找名字为 Nike 且价格为 50 的商品。 - 范围查询 (BETWEEN):适用于数值或日期区间。例如:查询 2010年至2011年间创建的订单:
SELECT * FROM order WHERE created BETWEEN '2010-01-01' AND '2011-01-01'; - 枚举查询 (IN):判断字段是否在一组值中。例如:
SELECT * FROM product WHERE id IN (2, 3, 4); - 模糊搜索 (LIKE):使用通配符
%。例如:查找名称包含 "Li" 的商品:SELECT * FROM product WHERE name LIKE '%Li%';
第3步:优化数据展示与统计分析
对查询结果进行排序、截断以适配分页,或使用聚合函数生成报表数据。
第6步:控制返回结果 (ORDER BY & LIMIT)
排序:使用 ORDER BY,默认升序 (ASC),降序需指定 DESC。例如:SELECT * FROM product ORDER BY created DESC;
限制:使用 LIMIT 控制返回行数,常用于分页。语法:LIMIT offset, count(跳过前 offset 条,取 count 条)。若省略 offset,则从头开始。例如:SELECT * FROM product LIMIT 2, 5;
第7步:应用聚合函数统计
对数据进行数学层面的汇总,常见函数包括:
COUNT(col):统计记录总数。SUM(col):计算字段总和。AVG(col):计算平均值。MAX(col)/MIN(col):找出最大值与最小值。
-- 计算学生平均年龄并命名输出字段
SELECT AVG(age) as avg_age FROM student;
第4步:进阶多表关联与嵌套查询
当业务涉及多张表时,需要使用连接查询或子查询来获取关联数据。
第8步:子查询 (Subquery)
将一个 SELECT 语句嵌入到另一个 SQL 语句内部,常用于 WHERE 或 FROM 子句中。
示例:查找年龄小于平均年龄的学生姓名,或根据另一张表的结果集过滤当前表。
SELECT name FROM student WHERE age < (SELECT AVG(age) FROM student);
SELECT * FROM product WHERE id IN (SELECT id FROM order);
第9步:连接查询 (Join Query)
在传统语法中,常通过 WHERE 子句关联多张表;在现代标准 SQL 中推荐使用 JOIN。以下是基于笛卡尔积加过滤条件的传统写法演示:
示例:查询学生及其对应老师的名字。
SELECT s.username AS stu_name, t.name AS te_name
FROM student s, teacher t
WHERE s.teacher_id = t.id;
以上就是 MySQL 常用 SQL 语句的详细内容,更多关于 PHP 结合数据库操作的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













