资源描述:
《数据库原理与SQLServer应用ppt 第5章 数据查询.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章数据查询基本查询任务1条件查询任务2连接查询任务3子查询任务4任务1基本查询阶段1SELECT语句概述阶段2选择表中的指定列阶段3选择表中的所有列阶段4修改查询结果中的列名任务1基本查询阶段5查询计算后的列值阶段6消除查询结果中的重复行阶段7限定返回行的数量阶段8使用集函数阶段1SELECT语句概述在SQLServer2005中,对数据库的查询使用T-SQL的SELECT语句。通过T-SQL的查询可以从表或视图中迅速、方便地检索数据。阶段2选择表中的指定列选择表中指定列的SELECT语句的
2、语法格式如下:SELECT列名1[,列名2,列名3,…列名n]FROM数据表名阶段3选择表中的所有列选择表中所有列的SELECT语句的语法格式如下:SELECT*FROM数据表名阶段4修改查询结果中的列名如果想修改查询结果里的某些列的列名,可以使用下列格式的SELECT语句:SELECT列名1AS新列名1[,列名2AS新列名2,…列名nAS新列名n]FROM数据表名或者也可以使用下列格式的SELECT语句:SELECT新列名1=列名1[,新列名2=列名2,…新列名n=列名n]FROM数据表名阶段
3、5查询计算后的列值使用SELECT对列进行查询时,在结果中可以输出对列值计算后的值。阶段6消除查询结果中的重复行只选择表中的某些列时,有时会出现重复行。如果用户不希望看到重复行,可以通过DISTINCT关键字消除重复行。消除重复行的T-SQL语句格式如下:SELECTDISTINCT列名1[,列名2,列名3,…列名n]FROM数据表名阶段7限定返回行的数量当查询结果的数据行非常多,而用户又不需要查看所有的数据结果时,可以使用TOP关键字限定返回行的数量,大大减少查询时间。阶段8使用集函数任务2条
4、件查询阶段1WHERE子句阶段2ORDERBY子句阶段3GROUPBY子句阶段4HAVING子句阶段5INTO子句阶段1WHERE子句带WHERE语句的查询的语法格式如下:SELECT列名1[,列名2,列名3,…列名n]FROM数据表名[WHERE查询条件]小贴士:使用LIKE进行字符匹配时,使用了通配符%,即可以进行模糊查询。除了%外,LIKE中还有“_”、“[]”、“[*]”3个通配符。阶段1WHERE子句LIKE中通配符的含义如下。(1)%:包含零个或更多字符的任意字符串。“A%”表示以A
5、开头的字符串;“%A”表示以A结尾的字符串;“%A%”表示含有字符A的字符串。(2)_:任何单个字符阶段1WHERE子句(3)[]:指定范围(例如[a-f])或集合[abcdef]内的任何单个字符。(4)[*]:不在指定范围(例如[^a-f])或集合(例如[^abcdef])内的任何单个字符。阶段1WHERE子句阶段2ORDERBY子句使用ORDERBY子句可以对查询结果进行排序。使用ORDERBY子句的格式如下。ORDERBY{表达式[ASC
6、DESC]}[,…n]其中,ASC表示升序排列,D
7、ESC表示降序排列。系统默认为ASC。阶段3GROUPBY子句GROUPBY子句将查询结果表按指定列的值分组,值相等的为一组。使用GROUPBY子句的格式如下。[GROUPBY[ALL]列名[,…n]][WITH{CUBE
8、ROLLUP}]阶段4HAVING子句使用HAVING子句对分组统计后的数据进一步筛选。HAVING子句的格式如下。[HAVING<查询条件>]阶段5INTO子句INTO子句可以把查询结果保存成一个新表,供以后直接使用。INTO子句的格式如下。[INTO新表名]任务3连接查询
9、阶段1谓词连接阶段2JOIN连接阶段1谓词连接谓词连接是指在WHERE子句中使用比较运算符给出连接条件进行连接。小贴士:在SELECT子句中,“学号”前的“xs.”称为列前缀,用来说明该列来自那个表,以消除歧义。但是,如果列名在所有表中是唯一的,那么可以省略列前缀。阶段1谓词连接JOIN连接是通过在FROM子句中使用JOIN关键字将多个表进行连接来实现的。使用JOIN关键字的连接主要分为内连接、外连接、交叉连接。阶段2JOIN连接内连接内连接是按照ON关键字所指定的连接条件连接两个表,返回满足条
10、件的行。外连接外连接的结果不仅包括满足条件的行,还包括相应表中的所有行。外连接可分为左外连接、右外连接和全外连接。交叉连接交叉连接是将两个表进行笛卡尔积运算,结果表是由第一个表的每行和第二个表的每行拼接后形成的表。任务4子查询阶段1带有IN谓词的子查询阶段2带有比较运算符的子查询阶段1带有IN谓词的子查询当一个查询块嵌套在另一个查询块的查询条件之中时,称为嵌套查询。处于内层的查询称为子查询。当子查询的结果是一个集合时,使用IN谓词。小贴士:由关键字IN引入的子查询的SELECT后面只能有一个列名