MySQL 查询数据学习笔记
SELECT 语句
SELECT
是MySQL中最常用的语句之一,它用于从一个或多个表中选择数据。
以下是一个简单的SELECT
语句的基本结构:
sqlCopy CodeSELECT column1, column2, ... FROM table_name;
其中,column1, column2, ...
是你想要从表中选择的列名,table_name
是你想要从中选择数据的表名。
例如,如果你想要从一个名为students
的表中选择所有学生的姓名和年龄,你可以使用以下语句:
sqlCopy CodeSELECT name, age FROM students;
WHERE 语句
WHERE
语句允许你在SELECT
语句中设置条件来过滤数据。你可以通过多种方式设置这些条件,例如比较运算符、逻辑运算符等。
以下是一个使用WHERE
子句的SELECT
语句示例:
sqlCopy CodeSELECT name, age FROM students WHERE age > 18;
以上语句将从students
表中选择所有年龄大于18岁的学生,并仅显示他们的姓名和年龄。
ORDER BY 语句
ORDER BY
语句允许你对查询结果进行排序。默认情况下,MySQL会按照升序方式排序,但你也可以通过在ORDER BY
子句中指定DESC
关键字来进行降序排序。
以下是一个带有ORDER BY
子句的SELECT
语句示例:
sqlCopy CodeSELECT name, age FROM students WHERE age > 18 ORDER BY age DESC;
以上语句将从students
表中选择所有年龄大于18岁的学生,并按年龄降序排列。
GROUP BY 语句
GROUP BY
语句允许你将数据分组并对每个组进行聚合(例如,计算平均值、总数等)。
以下是一个带有GROUP BY
子句的SELECT
语句示例:
sqlCopy CodeSELECT gender, AVG(age) FROM students GROUP BY gender;
以上语句将从students
表中选择所有学生的性别和年龄,并根据性别对数据进行分组。最后,它将计算每个组的平均年龄并显示结果。
JOIN 语句
JOIN
语句允许你在查询中连接两个或多个表,并检索相关的数据。
以下是一个使用JOIN
子句的SELECT
语句示例:
sqlCopy CodeSELECT students.name, grades.grade FROM students JOIN grades ON students.id = grades.student_id;
以上语句将从students
和grades
表中选择姓名和成绩,并根据students.id
和grades.student_id
这两列进行连接。
实例
假设我们有以下两个表:
students 表
id | name | age | gender |
---|---|---|---|
1 | Alice | 20 | F |
2 | Bob | 19 | M |
3 | Claire | 21 | F |
grades 表
id | student_id | grade |
---|---|---|
1 | 1 | 90 |
2 | 2 | 85 |
3 | 3 | 95 |
以下是一些使用MySQL查询数据的示例:
示例1:选择 students 表中所有学生的姓名和年龄
sqlCopy CodeSELECT name, age FROM students;
结果:
name | age |
---|---|
Alice | 20 |
Bob | 19 |
Claire | 21 |
示例2:选择 grades 表中所有学生的成绩
sqlCopy CodeSELECT grade FROM grades;
结果:
grade |
---|
90 |
85 |
95 |
示例3:根据姓名过滤数据
sqlCopy CodeSELECT name, age FROM students WHERE name = 'Alice';
结果:
name | age |
---|---|
Alice | 20 |
示例4:连接表并选择特定列
sqlCopy CodeSELECT students.name, grades.grade FROM students JOIN grades ON students.id = grades.student_id;
结果:
name | grade |
---|---|
Alice | 90 |
Bob | 85 |
Claire | 95 |
示例5:计算平均年龄
sqlCopy CodeSELECT AVG(age) FROM students;
结果:
AVG(age) |
---|
20 |
以上是MySQL查询数据的一些基本示例,希望能对你有所帮助。