CH04_数据查询基础

本章目标

  • 掌握查询的机制
  • 掌握SELECT语句进行条件查询
  • 掌握表达式、运算符和函数实现查询
  • 掌握查询数据排序

基础查询

什么是查询

查询产生一个虚拟表看到的是表形式显示的结果,但结果并不真正存储每次执行查询只是从数据表中提取数据,并按照表的形式显示出来。

基础查询语法

1
2
3
4
5
6
SELECT column_name1, column_name2...  
FROM table_name
WHERE condition1 [OR | AND | NOT]
GROUP BY column_name1
HAVING condition1
ORDER BY column_name1 [ASC | DESC]
  • SELECT:用于指定要检索的列。可以指定多个列,用逗号分隔。
  • FROM:用于指定要查询的表。
  • WHERE:用于筛选满足特定条件的记录。可以指定多个条件,使用逻辑运算符(如AND、OR)连接。
  • GROUP BY:用于将结果集按照指定的列进行分组。通常与聚合函数(如SUM、COUNT等)一起使用。
  • HAVING:用于对分组后的结果进行筛选。与WHERE不同,HAVING用于筛选聚合后的结果。
  • ORDER BY:用于对结果集进行排序。可以按照一个或多个列进行排序,默认升序(ASC),也可以指定降序(DESC)。

案例1:查询学生表全部学生信息

1
2
SELECT *
FROM Student

案例:查询学生表部分学生信息

1
2
3
SELECT StudentNo,StudentName,Sex
FROM Student
WHERE Sex='男'

案例:使用as命名列

1
2
3
4
-- AS 可省略
SELECT StudentNo AS 学号,StudentName AS 姓名,Sex 性别
FROM Student
WHERE Sex='男'

案例:使用+拼接列

1
2
SELECT StudentName+'-'+Sex AS 学生信息
FROM Student

案例:使用=命名列

1
2
SELECT 学生信息=StudentName+'-'+Sex
FROM Student

案例:查询空行

1
2
3
SELECT *
FROM Student
WHERE Email IS NULL

案例:查询常量列

1
2
3
SELECT StudentNo AS 学号,StudentName AS 姓名,Sex 性别, '广创科技教育' AS 学校
FROM Student
WHERE Sex='男'

案例:限定固定行数查询

1
2
SELECT TOP 10 *
FROM Student

案例:限定百分比行数查询

查询结果并排序

ORDER BY 是 SQL 语言中的一个子句,用于对查询结果进行排序。你可以根据一个或多个列的值对结果进行升序(ASC)或降序(DESC)排序。如果不明确指定排序方式,默认会采用升序排序。

ORDER BY基础语法

1
2
3
SELECT column1, column2, ...  
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;

案例1:查询学员信息,按出生日期升序排序

server
1
2
3
SELECT *
FROM Student
ORDER BY BornDate ASC

1705563613084

案例2:查询学员信息,按出生日期逆序排序

1
2
3
SELECT *
FROM Student
ORDER BY BornDate DESC

上述查询将返回一个结果集,其中包含学生表中的所有学生信息记录,按照出生年龄从小到大的顺序进行排序。

通过ORDER BY子句,可以对查询结果进行排序,根据指定的列进行升序或降序排列。

课后作业

1.查询出生日日期是1994年(包含1994年)及后出生的学员信息

2.查询学员高育良,并住东莞南城他的所有信息

3.查询所有学员信息,以出生日期从小到大排序

4.查询成绩表考试成绩排名前5的成绩信息

5.查询课程表三年级,学时超过60课时的课程信息

6.查询学生表年龄最大的10位学员信息


参考答案