SQL Server第四章-数据的查询(二)

第1关:通配符%的使用
任务描述
本关任务:使用通配符 % 检索数据表中指定字段的数据;
相关知识
为了完成本关任务,你需要掌握:如何使用通配符 % 模糊匹配数据内容。
使用通配符%模糊匹配数据内容的后半部分
在所有通配符中,最常用的通配符要数 % 了。使用了 % 就意味着,你能从现有的数据中匹配到任意个数的字符(注意,可以是不止一个字符哟)。
语法规则为:
SELECT 字段名
FROM 表名
WHERE 字段名 LIKE ‘数据%’;
编程要求
我们已经为你建好了数据库与数据表,并添加了相应的数据内容。你只需补全右侧代码片段中 retrieving with wildcard % 下 Begin-End 区间的代码,检索表 Products 中所有带 toy 的产品的所有内容。
其中表 Products 的内容如下图所示:
在这里插入图片描述
测试说明
测试过程:
本关涉及到的测试文件是 step1_test.sh ,平台将运行用户补全的 step1.sql 文件,得到数据;
将得到的数据与答案比较,判断代码是否正确。
如果操作正确,你将得到如下的结果:
在这里插入图片描述
参考代码:

USE Mall
Go
SET NOCOUNT ON
---------- retrieving with wildcard % ----------
-- ********** Begin ********** --
SELECT *
FROM Products
WHERE prod_name LIKE '%toy%'
-- ********** End ********** --
GO

第2关:通配符_的使用
任务描述
本关任务:使用通配符_检索数据表中指定字段的数据;
相关知识
为了完成本关任务,你需要掌握:如何使用通配符 _ 模糊匹配数据内容。
使用通配符_模糊匹配数据内容
另一个很实用的通配符是下划线 _ ,它的使用规则与 % 类似,唯一与 % 不同的是:% 能匹配多个字符,而 _ 只能匹配一个字符!
语法规则为:
SELECT 字段名
FROM 表名
WHERE 字段名 LIKE ‘数据和_的组合’
编程要求
我们已经为你建好了数据库与数据表,并添加了相应的数据内容。你只需补全右侧代码片段中 retrieving with wildcard _ 下 Begin-End 区间的代码,检索表 Products 中所有大于等于 10 inch 的产品的所有内容。
其中表 Products 的内容如下图所示:
在这里插入图片描述
测试说明
测试过程:
本关涉及到的测试文件是 step2_test.sh ,平台将运行用户补全的 step2.sql 文件,得到数据;
将得到的数据与答案比较,判断代码是否正确。
如果操作正确,你将得到如下的结果:
在这里插入图片描述
参考代码:

USE Mall
Go
SET NOCOUNT ON
---------- retrieving with wildcard _ ----------
-- ********** Begin ********** --
SELECT *
FROM Products
WHERE prod_name LIKE '__ inch Lion toy'
-- ********** End ********** --
GO

第3关:通配符[]的使用
任务描述
本关任务:使用通配符 [] 检索数据表中指定字段的数据。
相关知识
为了完成本关任务,你需要掌握:如何使用通配符 [] 模糊匹配数据内容。
使用通配符[]模糊匹配数据内容
通配符 [] 是个中括号,一看就知道里面是应该放点什么内容,放点什么呢?它又有什么作用呢?
[] 用于将一组字符囊括在内,这一组字符之间是或的关系,而通配符 [] 出现的位置也严格匹配于括号中出现的字符在整个字符串中的位置。
是不是有点抽象?一会儿我们举个例子你就明白了,先来看看语法吧。
语法规则为:
SELECT 字段名
FROM 表名
WHERE 字段名 LIKE ‘[数据]’
编程要求
我们已经为你建好了数据库与数据表,并添加了相应的数据内容。你只需补全右侧代码片段中 retrieving with wildcard [] 下 Begin-End 区间的代码,检索表 Products 中所有不以 B 为起始字符的产品的所有内容。

其中表 Products 的内容如下图所示:
在这里插入图片描述
测试说明
测试过程:
本关涉及到的测试文件是 step3_test.sh,平台将运行用户补全的 step3.sql 文件,得到数据;
将得到的数据与答案比较,判断代码是否正确。
如果操作正确,你将得到如下的结果:
在这里插入图片描述
参考代码:

USE Mall
Go
SET NOCOUNT ON
---------- retrieving with wildcard [] ----------
-- ********** Begin ********** --
SELECT *
FROM Products
WHERE prod_price >5
-- ********** End ********** --
GO
注:分卷,点击上传者查看第卷地址。亲,本人纯手工添加了书签哦!!方便阅读 《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决方案。   作为一本讲述T-SQL高级查询的专业图书,《Microsoft SQL Server 2008技术内幕:T-SQL查询》旨在结合实践中的各种常见问题,教读者如何用SQL作为语言工具来思考问题,揭示基于集合查询的强大威力。《Microsoft SQL Server 2008技术内幕:T-SQL查询》内容丰富、文字简洁明快,列举的实例具有一定的难度,而且实用性很强,可以把它们作为解决实际问题的标准模式。阅读《Microsoft SQL Server 2008技术内幕:T-SQL查询》,可以充分地理解T-SQL语言和良好的编程实践,学会如何编写更加有效而强大的查询语句。 序言 I 致谢III 前言 V 第1章 逻辑查询处理 1.1 逻辑查询处理的各个阶段 1.1.1 逻辑查询处理阶段简介 1.2 客户/订单场景下的查询示例 1.3 逻辑查询处理阶段详解 1.3.1 步骤1:FROM阶段 1.3.2 步骤2:WHERE阶段 1.3.3 步骤3:GROUP BY阶段 1.3.4 步骤4:HAVING阶段 1.3.5 步骤5:SELECT阶段 1.3.6 步骤6:排序用的ORDER BY阶段 1.4 逻辑查询处理的深入内容 1.4.1 表运算符 1.4.2 OVER子句 1.4.3 集合运算符 1.5 总结 第2章 集合论和谓词逻辑 2.1 自然语言表述到数学表示的转换 2.1.1 严格定义(well-Definedness) 2.1.2 相等、恒等和同一性 2.1.3 数学命名约定 2.1.4 数字 2.1.5 上下文 2.1.6 函数、参数和变量 2.1.7 指令和算法 2.2 集合论 2.2.1 集合的标记方法 2.2.2 集合的严格定义 2.2.3 论域 2.2.4 真实性 2.2.5 罗素悖论(Russell s Paradox) 2.2.6 有序对、元组和笛卡尔积 2.2.7 空集 2.2.8 集合的特征函数 2.2.9 集合的基数(Cardinality) 2.2.10 顺序 2.2.11 集合运算符 2.2.12 集合论的推广 2.3 谓词逻辑 2.3.1 编程语言中的逻辑功能 2.3.2 命题和谓词 2.3.3 排中律 2.3.4 与、或、非运算 2.3.5 逻辑等价 2.3.6 逻辑蕴含 2.3.7 量化(Quantification) 2.3.8 替代和推广 2.4 关系 2.4.1 自反性、对称性和传递性 2.5 一个实际的应用 2.6 总结 第3章 关系模型 3.1 关系模型简介 3.1.1 关系、元组和类型 3.1.2 关系模型:快速摘要 3.2 关系代数和关系计算 3.2.1 基本运算符 3.2.2 关系代数 3.2.3 Codd提出的8个原始关系运算符 3.2.4 关系演算 T-SQL支持 3.3 数据完整性 3.3.1 声明式约束 3.3.2 实施完整性的其他方法 3.4 数据库正规化和其他设计主题 3.4.1 解决函数依赖的范式 3.4.2 更高级的范式 3.4.3 反规范化(Denormalization) 3.4.4 一般化和特殊化 3.5 总结 第4章 查询优化 4.1 本章用到的样本数据 4.2 优化方法论 4.2.1 分析实例级别的等待 4.2.2 关联等待和队列 4.2.3 确定行动方案 4.2.4 细化到数据库/文件级别 4.2.5 细化到进程级别 4.2.6 优化索引和查询 4.3 查询优化的工具  4.3.1 查询执行计划的缓存  4.3.2 清空缓存 4.3.3 动态管理对象 4.3.4 STATISTICS 4.3.5 测量查询的运行时间 4.3.6 分析执行计划 4.3.7 图形化的执行计划 4.3.8 提示(Hint) 4.3.9 跟踪/Profiler 4.3.10 数据库引擎优化顾问 4.3.11 数据收集和管理数据仓库 4.3.12 使用SMO来复制统计信息 4.4 索引优化 4.4.1 表和索引的结构 4.4.2 索引访问方法 4.4.3 索引策略的分析 4.4.4 碎片 4.4.5 分区 4.5 准备样本数据 4.5.1 数据准备 4.5.2 TABLESAMPLE2 4.6 基于集合的方法和迭代/过程方法的比较,以及一个优化练习2 4.7 总结 第5章 算法和复杂性 5.1 你有一个1夸特的硬币吗? 5.1.1 如何从零钱罐中取回1夸特钱 5.1.2 有时零钱罐中没有1夸特的硬币 5.2 如何度量算法(How Algorithms Scale) 5.2.1 次缩放(Quadratic Scaling)的一个例子 5.2.2 具有线性复杂度的算法 5.2.3 指数和超指数复杂度 5.2.4 次线性(sublinear)复杂度 5.2.5 常量复杂度 5.2.6 复杂度的技术定义 5.2.7 复杂度的比较 5.3 经典算法和算法策略 5.3.1 排序算法 5.3.2 字符串查找 5.4 一个实际的应用程序 5.4.1 识别测量数据的趋势 5.4.2 LISLP算法的复杂度 5.4.3 用T-SQL解决最长上升子序列的长度问题 5.5 总结 第6章 子查询、表表达式和排名函数 6.1 子查询 6.1.1 独立子查询 6.1.2 相关子查询 6.1.3 行为不当的子查询 6.1.4 不常用的谓词 6.2 表表达式(Table Expressions) 6.2.1 派生表 6.2.2 公用表表达式 6.3 分析排名函数 6.3.1 行号 6.3.2 排名和密集排名(Dense Rank) 6.3.3 组号(Tile Number) 6.4 数字辅助表 6.5 缺失范围和现有范围(也称为间断和孤岛) 6.5.1 缺失范围(间断) 6.5.2 现有范围(孤岛) 6.6 总结 第7章 联接和集合运算 7.1 联接 7.1.1 旧语法和新语法 7.1.2 基本联接类型 7.1.3 其他的联接分类 7.1.4 上一年度的滑动合计 7.1.5 联接算法 7.1.6 拆分元素 7.2 集合运算 7.2.1 UNION 7.2.2 EXCEPT  7.2.3 INTERSECT 7.2.4 集合运算的优先级 7.2.5 在集合运算中使用INTO 7.2.6 避开不支持的逻辑阶段 7.3 总结 第8章 数据聚合和透视 8.1 OVER 子句 8.2 决胜属性(Tiebreaker) 8.3 连续聚合 8.3.1 累积聚合(Cumulative Aggregation) 8.3.2 滑动聚合(Sliding Aggregation) 8.3.3 年初至今(YTD) 8.4 透视转换(Pivoting)35 8.4.1 透视转换属性35 8.4.2 关系除法 8.4.3 聚合数据 8.5 逆透视转换 8.6 自定义聚合 8.6.1 使用透视转换的自定义聚合 8.6.2 用户定义聚合函数(UDA,User Defined Aggregate) 8.6.3 专用解决方案 8.7 直方图(Histogram) 8.8 分组因子 8.9 分组集 8.9.1 样例数据 8.9.2 GROUPING SETS从属子句 8.9.3 CUBE从属子句 8.9.4 ROLLUP从属子句 8.9.5 分组集代数 8.9.6 GROUPING_ID函数 8.9.7 保存分组集 8.9.8 排序 8.10 总结 第9章 TOP和APPLY 9.1 SELECT TOP 9.1.1 TOP和确定性 9.1.2 TOP和输入表达式 9.1.3 TOP和修改 9.1.4 增强的TOP 9.2 APPLY 9.3 使用TOP和APPLY解决常见问题 9.3.1 每组中的TOP n 9.3.2 匹配当前值和前一个值 9.3.3 分页 9.4 逻辑转换 9.5 总结 第10章 数据修改 10.1 插入数据 10.1.1 增强的VALUES子句 10.1.2 SELECT INTO 10.1.3 BULK行集提供程序 10.1.4 按最小方式记录日志的操作  10.1.5 INSERT EXEC 10.1.6 序列机制45 10.2 删除数据 10.2.1 TRUNCATE与DELETE 10.2.2 删除包含重复数据的行 10.2.3 基于联结的DELETE 10.3 更新数据 10.3.1 基于联结的UPDATE 10.3.3 更新大值数据类型 10.3.3 用SELECT和UPDATE语句进行赋值 10.4 合并数据 10.4.1 MERGE语句基础 10.4.2 额外增加一个谓词 10.4.3 多个WHEN子句 10.4.4 WHEN NOT MATCHED BY SOURCE子句 10.4.5 MERGE Values 10.4.6 MERGE与触发器 10.5 OUTPUT子句 10.6 总结 第11章 查询分区表 11.1 在SQL Server中进行分区 11.1.1 分区视图 11.1.2 分区表 11.2 总结 第12章 图、树、层次结构和递归查询 12.1 术语 12.1.1 图 12.1.2 树 12.1.3 层次结构 12.2 应用场景 12.2.1 员工组织图 12.2.2 材料清单(BOM) 12.2.3 道路系统 12.3 迭代/递归 12.3.1 下属 12.3.2 祖先 12.3.3 带有路径枚举的子图/子树 12.3.4 排序 12.3.5 环 12.4 具体化路径 12.4.1 维护数据 12.4.2 查询 12.5 使用HIERARCHYID数据类型的具体化路径5 12.5.1 维护数据 12.5.2 查询 12.5.3 使用HIERARCHYID的其他方面 12.6 嵌套集合 12.6.1 分配左值和右值 12.6.2 查询 12.7 传递闭包(Transitive Closure) 12.7.1 有向无环图 12.7.2 无向有环图 12.8 总结 索引
### 回答1: SQL Server第四章-数据查询)主要介绍了SQL Server数据查询的高级技巧,包括使用多个表进行联合查询、使用子查询进行嵌套查询、使用聚合函数进行数据汇总和分组查询、使用窗口函数进行数据分析和排序等。这些技巧可以帮助用户更加灵活地查询和分析数据,提高数据处理的效率和精度。同时,本章还介绍了一些常用的查询优化技巧,如创建索引、使用视图和存储过程等,以提高查询的性能和可维护性。总之,本章内容丰富,涵盖了SQL Server数据查询的各个方面,是SQL Server学习和应用的重要一章。 ### 回答2: 本章主要介绍了 SQL Server数据查询操作,包括查询语句的基本框架、关键字、通配符、函数、排序和分组等。其中,查询语句的基本框架包括 SELECT、FROM、WHERE、GROUP BY、HAVING 和 ORDER BY 这几个关键字,每个关键字所代表的含义和在语句中的使用方法都得到了详细讲解。 在查询语句中,WHERE 关键字用于过滤数据,可以使用各种比较运算符和逻辑运算符实现复杂的查询条件。通配符也是查询语句的重要组成部分,可以使用百分号(%)和下划线(_)代表任意字符或一定范围内的字符。同时,SQL Server 中也提供了丰富的函数,如字符串函数、数学函数、日期函数、聚合函数等,可以用于查询结果的处理和整理。 查询数据时,排序和分组是非常实用的功能。ORDER BY 关键字可以按照指定的列或表达式对结果集中的数据进行排序,而 GROUP BY 关键字则可将结果按照指定的列或表达式进行分组,并计算每个组的聚合值。 代码示例也随之出现,并详细讲解了其运行过程和结果。整个章节贯穿 SQL Server数据查询、过滤、排序、分组等基本操作,为读者提供了较为系统化的 SQL Server 基础知识,值得初学者和进阶者一试。 ### 回答3: 在SQL Server第四章节中,我们学习了如何对数据进行查询。在本节的第部分,我们将深入探讨SQL Server查询功能,并介绍一些高级查询技巧。 首先,我们将介绍SQL Server的内置函数。内置函数分为三类:数值函数、字符函数和日期/时间函数。数值函数用于执行数学运算,包括SUM、AVG、MIN和MAX等。字符函数用于在字符数据上执行操作,例如LEN(计算字符串长度)、UPPER(将字符串转换为大写)和LOWER(将字符串转换为小写)。日期/时间函数用于在日期和时间上执行操作,例如GETDATE(返回当前日期和时间)和DATEPART(返回日期或时间部分的值)。 接下来,我们将介绍如何使用子查询。子查询是一种查询语句,它嵌套在另一个查询语句中。子查询用于从另一个查询中检索数据,并返回一个结果集。子查询可以用于任何SQL语句,包括SELECT、INSERT、UPDATE和DELETE。在使用子查询时,我们需要确保其返回的结果集不为空。 在SQL Server中,我们还可以使用JOIN操作。JOIN操作用于将两个或多个表连接起来,从而创建新的结果集。JOIN操作分为INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN四种类型。INNER JOIN返回与两个表关联的行,LEFT JOIN返回与左表关联的行,RIGHT JOIN返回与右表关联的行,FULL OUTER JOIN返回两个表中所有的行。 最后,我们将介绍如何使用GROUP BY和HAVING进行分组和过滤。GROUP BY用于按照一个或多个列对结果集进行分组,HAVING用于在分组结果集上进行过滤。通过使用GROUP BY和HAVING,我们可以创建汇总报表,例如按照地区、产品类型和销售额对销售数据进行分组和过滤的报表。 综上所述,SQL Server查询功能非常强大。通过使用内置函数、子查询、JOIN、GROUP BY和HAVING等高级技巧,我们可以对大量数据进行高效的查询和分析。因此,我们需要不断学习和实践,以便提高我们的查询技能并更好地应对复杂的数据分析需求。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值