(
课件网) 项目4 数据查询 项目4 数据查询 任务1 SELECT语句 用户可以使用SELECT语句从数据库中按照功能需求查询出数据信息 实现对关系的投影、选择和连接的专门关系运算 可以得到经过分类、统计和排序处理后的查询结果 T-SQL完全支持SQL-92标准的SELECT语句 SELECT语句是数据库应用最广泛和最重要的语句之一 区别起见,对于实现查询功能的SELECT语句我们称之为SELECT查询语句 子任务1 SELECT语句的通用格式 SELECT 表达式[,...n] --投影(计算统计) [INTO 新表名] --保存 FROM 表名[,...n] --连接 [WHERE 逻辑表达式] --选择 [GROUP BY 表达式[,...n]] --分组统计 [HAVING 逻辑表达式] --限定分组统计 [ORDER BY 表达式[,...n] --排序 SELECT…FROM 功能说明: 对一个或多个表(基表或视图)按一定的条件和需求进行查询,产生出一个新表(即查询结果),该新表可被显示出来、作为表(子查询)再应用或者被命名保存起来。 SELECT 语句中的子句顺序非常重要,可以省略任选子句,但这些子句在使用时必须按规定的顺序出现。 SELECT查询语句中的表达式由列名、常量、变量、函数和运算符构成。很多情况下表达式仅为表的列名。 SELECT…FROM 子任务2 目标项列表 功能说明: SELECT查询语句作为嵌入式语言,可以嵌入在各种高级语言中实现对数据库的访问。 SELECT查询语句作为自含式语言,可以使用SSMS的【查询编辑器】进行编辑、编译、执行和保存。 SELECT…FROM 任务2 简单查询 子任务1 查询表中指定的列 SELECT [ALL|DISTINCT] [TOP n] 表达式[,...n] 功能说明: SELECT子句主要是一个用逗号分隔的表达式列表,用于对查询结果集进行投影操作。 SELECT子句中的表达式主要为要投影的表的列名,也可以由其他常量、变量、函数和运算符构成。 此外,还有一些参数可以根据需要进行选择,下面将通过实例分别讲解它们的应用。 SELECT…语法 子任务2 目标项列表中使用常量 代码 USE EDUC --设置当前数据库为EDUC GO SELECT SID,Sname,Sex,Specialty --投影列 FROM Student --查询的表“Student” WHERE Sex=‘男’ --选择性别为“男”的数据行 查询结果 1.列名表投影某些列 子任务3 表别名的使用 SELECT 语句的可读性可通过为表指定别名来提高,别名也称为相关名称或范围变量。指派表的别名时,可以使用也可以不使用 AS 关键字。 基本语法: table_name AS table_alias table_name table_alias 表别名的使用注意 1.在SQL语句中一旦指定了表别名,则不能再使用"表名称.列名"格式,只能使用"表别名.列名"格式来引用列. 2.在SQL主句中使用子查询中的列时,必须为子查询指定一个表别名,然后以"表别名.列名"的格式来应用子查询中的列.当SQL主句的FROM子句仅为一个子查询时,必须为该子查询指定一个表别名,否则SQL语句无法执行.例如: SELECT ID FROM (select e.ID from employee as e where (e.年度 = 2000) AND (e.月份 = 3)) 提示: ')' 附近有语法错误。正确的应该为: SELECT ID FROM (select e.ID from employee as e where (e.年度 = 2000) AND (e.月份 = 3)) AS X 3.子查询中使用了"表别名.列名"来引用列时,若此表别名在子查询和SQL主句中都不存在,则导致SQL语句无法执行.例如: SELECT ID FROM (select e.ID from employee where (e.年度 = 2000) AND (e.月份 = 3)) AS X 提示: 列前缀 'e' 与查询中所用的表名或别名不匹配。 如果SQL主句中存在此表别名,则错误不会发生,但会导致无法预料的结果(通常导致该子查询返回结果为空).例如: SELECT e.* FROM (select * from sales as e where (e.年度 = 2006) and (e.月份 = 3)) AS e WHERE (e.员工号 NOT IN (select e.员工号 from sales where ( ... ...