小白带你学习linux SQL语句(二十八)
发布人:shili8
发布时间:2025-02-28 20:50
阅读次数:0
**小白带你学习Linux SQL语句(二十八)**
在前面的文章中,我们已经学习了 Linux 中的 SQL语句,包括 SELECT、INSERT、UPDATE 和 DELETE 等基本操作。今天我们将继续学习一些更高级的 SQL 操作。
### **1. GROUP BY**
`GROUP BY`语句用于对数据进行分组,然后对每个组执行聚合函数(如 SUM、AVG、MAX 等)。
**示例:**
sqlCREATE TABLE students ( id INT, name VARCHAR(255), score DECIMAL(3,2) ); INSERT INTO students (id, name, score) VALUES (1, '小明',85.50), (2, '小红',90.25), (3, '小刚',78.75), (4, '小丽',92.00), (5, '小华',88.50); SELECT name, AVG(score) AS avg_scoreFROM studentsGROUP BY name;
在这个示例中,我们首先创建一个 `students` 表,然后插入一些数据。接着,我们使用 `GROUP BY`语句对每个学生的平均成绩进行分组和计算。
**结果:**
markdown+--------+-----------+ | name | avg_score | +--------+-----------+ | 小刚 |78.75 | | 小华 |88.50 | | 小丽 |92.00 | | 小明 |85.50 | | 小红 |90.25 | +--------+-----------+
### **2. HAVING**
`HAVING`语句用于过滤 `GROUP BY` 的结果。
**示例:**
sqlSELECT name, AVG(score) AS avg_scoreFROM studentsGROUP BY nameHAVING AVG(score) >90;
在这个示例中,我们使用 `HAVING`语句过滤出平均成绩大于90 的学生。
**结果:**
markdown+--------+-----------+ | name | avg_score | +--------+-----------+ | 小丽 |92.00 | | 小红 |90.25 | +--------+-----------+
### **3. JOIN**
`JOIN`语句用于将两个或多个表连接起来。
**示例:**
sqlCREATE TABLE teachers ( id INT, name VARCHAR(255), subject VARCHAR(255) ); INSERT INTO teachers (id, name, subject) VALUES (1, '老师A', '数学'), (2, '老师B', '英语'), (3, '老师C', '物理'); CREATE TABLE students ( id INT, name VARCHAR(255), teacher_id INT); INSERT INTO students (id, name, teacher_id) VALUES (1, '小明',1), (2, '小红',2), (3, '小刚',3); SELECT t.name AS teacher_name, s.name AS student_nameFROM teachers tJOIN students s ON t.id = s.teacher_id;
在这个示例中,我们首先创建两个表 `teachers` 和 `students`,然后插入一些数据。接着,我们使用 `JOIN`语句将两个表连接起来。
**结果:**
markdown+------------+-----------+ | teacher_name | student_name | +------------+-----------+ | 老师A | 小明 | | 老师B | 小红 | | 老师C | 小刚 | +------------+-----------+
### **4. UNION**
`UNION`语句用于将两个或多个 SELECT语句的结果合并起来。
**示例:**
sqlSELECT '学生' AS type, name FROM studentsUNIONSELECT '老师' AS type, name FROM teachers;
在这个示例中,我们使用 `UNION`语句将两个 SELECT语句的结果合并起来。
**结果:**
markdown+--------+ | type | +--------+ | 学生 | | 老师 | +--------+
### **5. UNION ALL**
`UNION ALL`语句用于将两个或多个 SELECT语句的结果合并起来,包括重复数据。
**示例:**
sqlSELECT '学生' AS type, name FROM studentsUNION ALLSELECT '老师' AS type, name FROM teachers;
在这个示例中,我们使用 `UNION ALL`语句将两个 SELECT语句的结果合并起来,包括重复数据。
**结果:**
markdown+--------+ | type | +--------+ | 学生 | | 老师 | | 学生 | | 老师 | +--------+
以上就是本文对 Linux 中 SQL 操作的介绍。通过这些示例和注释,你应该能够更好地理解 SQL 的使用和应用。