SQL Server数据库管理、开发与实践 教学课件 ppt 作者 郑诚 第5章 SQL查询

上传人:E**** 文档编号:89431795 上传时间:2019-05-25 格式:PPTX 页数:81 大小:636.03KB
返回 下载 相关 举报
SQL Server数据库管理、开发与实践 教学课件 ppt 作者  郑诚 第5章  SQL查询_第1页
第1页 / 共81页
SQL Server数据库管理、开发与实践 教学课件 ppt 作者  郑诚 第5章  SQL查询_第2页
第2页 / 共81页
SQL Server数据库管理、开发与实践 教学课件 ppt 作者  郑诚 第5章  SQL查询_第3页
第3页 / 共81页
SQL Server数据库管理、开发与实践 教学课件 ppt 作者  郑诚 第5章  SQL查询_第4页
第4页 / 共81页
SQL Server数据库管理、开发与实践 教学课件 ppt 作者  郑诚 第5章  SQL查询_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《SQL Server数据库管理、开发与实践 教学课件 ppt 作者 郑诚 第5章 SQL查询》由会员分享,可在线阅读,更多相关《SQL Server数据库管理、开发与实践 教学课件 ppt 作者 郑诚 第5章 SQL查询(81页珍藏版)》请在金锄头文库上搜索。

1、本章要求,第5章 SQL查询,Select检索数据 UNION合并多个查询结果 子查询与嵌套查询 联接查询 联接多表的方法 使用CASE函数进行查询,主要内容,第5章 SQL查询,1.Select检索数据 2. UNION合并多个查询结果 3.子查询与嵌套查询 4.联接查询 5.综合实例按照升序排列前三的数据,5.1.1 SELECT语句的基本结构 5.1.2 WITH子句 5.1.3 SELECTFROM子句 5.1.4 INTO子句 5.1.5 WHERE子句 5.1.6 GROUP BY子句 5.1.7 HAVING子句 5.1.8 ORDER BY子句 5.1.9 COMPUTE子句

2、5.1.10 DISTINCT关键字 5.1.11 TOP关键字,5.1 Select检索数据,Select语句主要是从数据库中检索行,并允许从一个或多个表中选择一个或多个行或列。select语句的基本语法如下: SELECT select_list INTO new_table FROM table_source WHERE search_condition GROUP BY group_by_expression HAVING search_condition ORDER BY order_expression ASC | DESC Select语句的参数及说明如表5-1所示。,5.1.1

3、 SELECT语句的基本结构,表5-1 Select语句的参数及说明,WITH子句用于指定临时命名的结果集,这些结果集称为公用表表达式(CTE)。该表达式源自简单查询,并且在单条SELECT、INSERT、UPDATE或DELETE语句的执行范围内定义。 语法如下: WITH ,.n := expression_name ( column_name ,.n ) AS ( CTE_query_definition ) 参数说明: expression_name:公用表表达式的有效标识符。 column_name:在公用表表达式中指定列名。 CTE_query_definition:指定一个其结果

4、集填充公用表表达式的 SELECT 语句。,5.1.2 WITH子句,【例5-1】 创建公用表表达式,计算Employee数据表中Age字段中每一年龄员工的数量,SQL语句如下。 USE db_2008; WITH AgeReps(Age, AgeCount) AS ( SELECT Age, COUNT(*) FROM Employee AS AgeReports WHERE Age IS NOT NULL GROUP BY Age SELECT Age, AgeCount FROM AgeReps 运行结果如图5-1所示,Employee表中的数据信息如图5-2所示。 图5-1 公用表表达

5、式运行结果 图5-2 Employee表中的数据信息,【例5-1】创建公用表表达式,【例5-2】 创建公用表表达式,计算Employee数据表中员工Age的平均值,SQL语句及运行结果,如图5-3所示。 图5-3 创建公用表表达式计算员工平均值,【例5-2】计算员工平均值,SELECT表明要读取信息,FROM指定要从中获取数据的一个或多个表的名称。SELECTFROM就够成了一个基本的查询语句。 语法如下: SELECT ALL | DISTINCT TOP expression PERCENT WITH TIES FROM ,.n := * | table_name | view_name

6、| table_alias .* | table_name | view_name | table_alias . column_name | $IDENTITY | $ROWGUID | udt_column_name . | : property_name | field_name | method_name ( argument ,.n ) | expression AS column_alias | column_alias = expression ,.n := ,5.1.3 SELECTFROM子句,table_or_view_name AS table_alias WITH (

7、, .n ) | rowset_function AS table_alias ( bulk_column_alias ,.n ) | user_defined_function AS table_alias (column_alias ,.n ) | OPENXML | derived_table AS table_alias ( column_alias ,.n ) | | | | variable AS table_alias | variable.function_call ( expression ,.n ) AS table_alias (column_alias ,.n ) :=

8、 TABLESAMPLE SYSTEM ( sample_number PERCENT | ROWS ) REPEATABLE ( repeat_seed ) ON | CROSS JOIN | left_table_source CROSS | OUTER APPLY right_table_source | ( ) := INNER | LEFT | RIGHT | FULL OUTER ,SELECTFROM子句的参数及说明如表5-2所示。 表5-2 SELECTFROM子句的参数及说明,表5-3 常用的行聚合函数和功能,【例5-3】 查询Employee表中的所有列的信息,SQL语句及

9、运行结果,如图5-4所示。 图5-4 查询Employee表中的所有信息 上面的查询语句还等价于: SELECT * FROM Employee 在例5-3的查询语句中,还可以以表的名称作为前缀,代码如下: use db_2008 SELECT Employee.ID,Employee.Name,Employee.Sex FROM Employee,【例5-3】查询Employee表中的所有列的信息,【例5-4】 查询Employee表中所有信息,并分别为列起别名ID(员工编号),Name(姓名),Sex(性别),Age(年龄),SQL语句及运行结果,如图5-5所示。 图5-5 为Employ

10、ee表中的列起别名 上例中使用了别名的三种定义方法,分别为: 别名=列名 列名AS别名 列名 别名,【例5-4】为Employee表中的列起别名,指定查询返回的行的搜索条件。 语法如下: WHERE := NOT | ( ) AND | OR NOT | ( ) ,.n := expression = | | ! = | | = | ! | ) | FREETEXT ( column | * , freetext_string ) | expression NOT IN ( subquery | expression ,.n ) | expression = | | ! = | | = | !

11、 | | = | ! ALL | SOME | ANY ( subquery ) | EXISTS ( subquery ) ,5.1.5 WHERE子句,WHERE子句的参数及说明如表5-4所示。 表5-4 WHERE子句的参数及说明,由于WHERE子句的复杂性,下面按参数的先后顺序进行详细的介绍。 1逻辑运算符(NOT、AND、OR) 如果想把几个单一条件组合成一个复合条件,这就需要使用逻辑运算符NOT、AND和OR,才能完成复合条件查询。 NOT:对布尔型输入取反,使用NOT返回不满足表达式的行。 语法如下: NOT boolean_expression 参数说明: boolean_ex

12、pression:任何有效的布尔表达式。 结果类型:Boolean类型。 AND:组合两个布尔表达式,当两个表达式均为TRUE时返回TRUE。当语句中使用多个逻辑运算符时,将首先计算AND运算符。可以通过使用括号改变求值顺序。使用AND返回满足所有条件的行。 语法如下: boolean_expression AND boolean_expression 参数说明: boolean_expression:返回布尔值的任何有效表达式:TRUE、FALSE或UNKNOWN。 结果类型:Boolean类型。 逻辑运算符的优先顺序是NOT(最高),然后是AND,最后是OR。,【例5-6】 使用AND查询

13、Employee表中Age等于23的女员工信息,SQL语句及运行结果,如图5-7所示。 图5-7 使用AND查询 【例5-7】 使用NOT、AND、OR复合查询Employee表中Age不等于24的男员工信息或者Age等于23的女员工信息,SQL语句及运行结果如图5-8所示。 图5-8 使用NOT、AND、OR复合查询,【例5-6】使用AND查询,2比较运算符 在where子句中,允许出现的比较运算符如表5-5所示。 表5-5 比较运算符,【例5-8】 在Employee表中查询张子婷的详细信息,SQL语句及运行结果如图5-9所示。 图5-9 查询张子婷的详细信息 说明:在Employee表中

14、,“张子婷”属于Name列中的字段,所以在WHERE中的查询条件是Name=张子婷。 【例5-9】 在Employee表中查询Age大于24岁的员工信息,SQL语句及运行结果,如图5-10所示。 图5-10 查询Age大于24岁的员工信息,【例5-8】查询张子婷的详细信,3Like关键字 使用Like关键字可以确定特定字符串是否与指定模式相匹配。模式可以包含常规字符和通配符。模式匹配过程中,常规字符必须与字符串中指定的字符完全匹配。但是,通配符可以与字符串的任意部分相匹配。 语法如下: match_expression NOT LIKE pattern ESCAPE escape_charac

15、ter 参数说明: match_expression:任何有效的字符数据类型的表达式。 Pattern:要在 match_expression 中搜索并且可以包括下列有效通配符的特定字符串。 pattern 的最大长度可达 8,000 字节。,在where子句中,允许出现的通配符如表5-6所示 表5-6 通配符 escape_character:放在通配符之前用于指示通配符应当解释为常规字符而不是通配符的字符。escape_character 是字符表达式,无默认值,并且计算结果必须仅为一个字符。,(1)%通配符 包含零个或多个字符的任意字符串。 【例5-10】 在Employee表中查询姓“王”的员工信息,SQL语句及运行结果如图5-11所示。Employee表中的信息如图5-12所示。 图5-11 查询姓“王”的员工信息 图5-12 Employee表中的信息 说

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号