4.2.4 数据查询SELECT语句
对于数据库管理系统来说,数据查询是执行频率最高的操作,是数据库中非常重要的部分。T-SQL中使用SELECT语句进行数据查询,SELECT语句的基本语法结构如下:
SELECT [ALL | DISTINCT] {* | <字段列表>} FROM table_name | view_name [WHERE <condition>] [GROUP BY <字段名>] [HAVING <expression> ] [ORDER BY <字段名>] [ASC | DESC]
主要参数介绍如下:
• ALL:指定在结果集中可以包含重复行。
• DISTINCT:指定在结果集中只能包含唯一行。对于DISTINCT关键字来说,NULL值是相等的。
• {* | <字段列表>}:包含星号通配符和选字段列表,“*”表示查询所有的字段,“字段列表”表示查询指定的字段,字段列至少包含一个字段名称,如果要查询多个字段,多个字段之间用逗号隔开,最后一个字段后不要加逗号。
• FROM table_name | view_name:表示查询数据的来源。table_name表示从数据表中查询数据,view_name表示从视图中查询。对于表和视图,在查询时均可指定单个或者多个。
• WHERE <condition>:指定查询结果需要满足的条件。
• GROUP BY <字段名>:该子句告诉SQL Server显示查询出来的数据时按照指定的字段分组。
• [ORDER BY <字段名>]:该子句告诉SQL Server按什么样的顺序显示查询出来的数据,可以进行的排序有升序(ASC)、降序(DESC)。
为了演示本节介绍的内容,可以在指定的数据库中建立下面的数据表,并插入记录数据。
执行语句后,查看stu_info表的数据,结果如图4-9所示。
图4-9 创建stu_info表
【例4.14】查询stu_info表中的所有学生信息,输入语句如下。
SELECT * FROM stu_info;
执行结果如图4-10所示。可以看到,使用星号(*)通配符时,将返回所有列,列按照定义表时的顺序显示。
图4-10 查询stu_info表中所有学生信息
有时候,并不需要数据表中的所有字段值,此时可以指定需要查询的字段名称,这样不但显示的结果更清晰,而且能提高查询的效率。
【例4.15】查询stu_info数据表中学生的姓名和成绩,输入语句如下。
SELECT s_name, s_score FROM stu_info;
代码执行结果如图4-11所示。
图4-11 查询stu_info数据表中学生的姓名和成绩字段