当前位置:实例文章 » 其他实例» [文章]小白带你学习linux SQL语句(二十八)

小白带你学习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 的使用和应用。

其他信息

其他资源

Top