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查询数据的一些基本示例,希望能对你有所帮助。