发布网友 发布时间:2022-04-20 06:35
共8个回答
懂视网 时间:2022-05-02 13:54
Gregory Larsen,2014 / 03 / 05
该系列 本文是系列的一部分:楼梯楼梯T-SQL:超越基础 下面就从他的楼梯T-SQL DML、Gregory Larsen覆盖的T-SQL语言如子查询更先进的方面。 在这楼梯2级我讨论如何在Transact-SQL语句中使用子查询。这楼梯水平将扩大对查询主题的讨论类型的查询称为相关子查询。我将探讨什么是相关子查询以及它是如何不同于普通的子查询。此外,我将提供你一些事务的SQL语句,超越基本的例子和使用相关子查询来帮助识别返回的行的结果集,以满足复杂的业务需求。 相关子查询是什么? 在这楼梯2级我们得知一个正常的子查询是一个SELECT语句,在另一个Transact-SQL语句,在子查询可以独立运行的外部查询返回结果。相关子查询是一种形式的子查询不能独立运行的外部查询,因为它包含了从外部查询的一个或多个列。相关子查询,就像一个正常的子查询,有时被称为内部查询。如果相关子查询(内查询)是独立运行的外部查询将返回一个错误。由于内部查询的执行依赖于外部查询的值,则称为相关子查询。 相关子查询可以执行多次。它将在外部查询中选择的每个候选行运行一次。每个候选人排列的值将被用来为外部查询栏目内的相关子查询每个执行提供值。一个声明中包含一个相关子查询将基于对相关子查询每个执行结果的最终结果。 相关子查询实例样本数据 为了演示如何使用相关子查询我需要一些测试数据。而不是创建自己的测试数据,我所有的例子将使用adventureworks2008r2数据库。如果你想跟着我,跑在您的环境中的例子你可以从这里下载adventureworks2008r2数据库:http://msftdbprodsamples.codeplex.com/releases/view/93587 在一个相关子查询的WHERE子句的例子 展示一个相关子查询的WHERE子句中使用的假设,我想找出那些CustomerID已经购买了70多个款式。为了完成这个需求,我可以运行代码:
SELECT CustomerID FROM Sales.SalesOrderHeader OH
WHERE (SELECT COUNT(*) FROM Sales.SalesOrderDetail
WHERE SalesOrderID = OH.SalesOrderID) > 70;
清单1:相关子查询的WHERE子句中 当我运行清单1中的代码时,我得到了报表1中的输出。
CustomerID
-----------
29712
29722
30048
30107
报表1:运行清单1中的代码返回的结果 如果你回顾清单1中的代码,你会看到我约束我,通过使用相关子查询。子查询的代码是在圆括号中的我的相关子查询代码清单1和清单2中放。
SELECT COUNT(*) FROM Sales.SalesOrderDetail
WHERE SalesOrderID = OH.SalesOrderID
清单2中的代码清单1所示: 如果您运行清单2中的代码,我会发现我在报告2中显示了一个错误。
Msg 4104, Level 16, State 1, Line 3
The multi-part identifier "OH.SalesOrderID
" could not be bound.
报表2:运行清单2中的代码时出错 我得到错误显示在报告2因为我的相关子查询包含一个参考列oh.salesorderid是从外部查询的列。由于所有相关子查询引用一个或多个列,从外部查询你不能独立于外部查询与之相关的。事实上,你不能运行查询独立于整个Transact-SQL语句的区别在于,相关子查询在一个正常的子查询。 这里给出的例子是使用相关子查询在WHERE子句中一个很平凡的例子。希望通过这样一个简单的例子很容易理解一个正常的子查询和相关子查询的区别。通常一个相关子查询可能会相当复杂。另外,记住有可能满足您的业务需求而不使用相关子查询的其他方法。 正如你可以看到,写一个相关子查询是一个正常的查询非常相似,但你就是不能运行相关子查询独立于外部查询。 在HAVING子句相关子查询的例子 有时您可能希望通过外部查询使用不同的值来约束有子句。这是当你可以在HAVING子句中使用相关子查询。假设你必须写一个查询,计算那些在2008年度前购买超过150000美元产品的顾客的回扣金额。清单3中的代码计算返利金额为那些尊贵的客户通过使用相关子查询在HAVING子句。
SELECT Outer_H.[CustomerID]
, SUM(Outer_H.[SubTotal]) AS TotalPurchase
, SUM(Outer_H.[SubTotal]) * .10 AS Rebate
FROM [Sales].[SalesOrderHeader] AS Outer_H
WHERE YEAR(Outer_H.[OrderDate]) = ‘2008‘
GROUP BY Outer_H.[CustomerID]
HAVING (SELECT SUM(Inner_H.[SubTotal]) FROM [Sales].[SalesOrderHeader] AS Inner_H
WHERE Inner_H.[CustomerID] = Outer_H.[CustomerID]
AND YEAR(Inner_H.[OrderDate]) = ‘2008‘) > 150000
ORDER BY Rebate DESC;
清单3:HAVING子句相关子查询 当我运行清单5中的代码时,我在报告3中得到了结果。
CustomerID TotalPurchase Rebate
----------- --------------------- ---------------------------------------
29923 220496.658 22049.665800
29641 210647.4929 21064.749290
29617 187964.844 18796.484400
29913 186387.5613 18638.756130
29818 179916.2877 17991.628770
29940 175358.3954 17535.839540
29987 172169.4612 17216.946120
29736 157700.6034 15770.060340
29995 156984.5148 15698.451480
29770 151824.9944 15182.499440
报告3:运行清单3的结果 相关子查询清单3中的代码使用CustomerID从集团外部查询中的条款在相关子查询。相关子查询的执行将为每一行返回GROUP BY子句。这使得HAVING子句计算总金额的产品从外部查询卖给每个CustomerID的值求和,次全列每salesorderheader记录在记录与从外部查询相关信息。Transact-SQL语句在清单3中只返回一行,CustomerID在购买了价值超过150000美元的产品。
UPDATE语句包含一个相关子查询的例子 相关子查询不仅可以用于返回一个结果集,使用SELECT语句。还可以使用它们更新SQLServer表中的数据。为了证明这一点,我会先在tempdb表生成一些测试数据,通过使用清单4中的代码。
USE tempdb;
GO
SET NOCOUNT ON;
CREATE TABLE CarInventory (
ID int identity,
CarName varchar(50),
VIN varchar(50),
StickerPrice decimal (7,2),
InvoicePrice decimal (7,2));
GO
INSERT INTO CarInventory VALUES (‘Explorer‘,‘EXP2014123456A‘,46198.45,38201.87),
(‘Explorer‘,‘EXP2014123493A‘,47129.98, 38201.87),
(‘Grand Cherokee‘,‘JGC20141234345X‘,41678.45,36201.86),
(‘Grand Cherokee‘,‘JGC20141234556W‘,44518.31,36201.86),
(‘Pathfinder‘,‘NPF2014987365A‘,32587.73,28917.10),
(‘Pathfinder‘,‘NPF2014239657B‘,33577.54,28917.10),
(‘Pathfinder‘,‘NPF2014098587C‘,35876.12,28917.10),
(‘Tahoe‘,‘TAH201409674A‘,52001.08,46000.01);
清单4:创建和填充测试表的代码 清单4中的代码创建一个carinventory表然后填充八行代表车当前库存。 定期的销售经理喜欢通过运行清单5中的查询看到他的invoicepriceratio。
SELECT CarName, InvoicePrice/StickerPrice*100.0 AS InvoicePriceRatio
FROM CarInventory;
清单5:invoicepriceratio查询 当经理运行此查询她注意到有一些相同的发票价量有不同的invoicepriceratio值类似的汽车。为了最大化自己的发票价格比她问她写一个查询,将更新所有她的车,每一辆车的StickerPrice同carname值具有相同的invoicepriceratio IT支持。她希望这家伙把StickerPrice作为carname最高标价相同的值。这样,所有的汽车都有相同的carname值都有相同的stickerprice价值。为了完成这个更新的carinventory表,这家伙的交易清单6中的SQL语句,其中包含一个相关子查询。
UPDATE CarInventory
SET StickerPrice = (SELECT MAX(StickerPrice)
FROM CarInventory Inner_CI
WHERE Inner_CI.CarName = Outer_CI.CarName)
FROM CarInventory Outer_CI;
清单6:相关子查询更新carinventory Maximum Sticker Price 清单8中的代码使用在相关子查询的外部查询的carname确定每个独特的carname最大StickerPrice。这个最大的stickerprice价值在相关子查询发现,然后被用来更新stickerprice值为每个carinventory记录具有相同的carname。 相关子查询的性能考虑 有一些性能方面的考虑,你应该知道在编写Transact-SQL语句包含相关子查询。当外部查询包含少量行时,性能并不差。但是,当外部查询包含大量行时,它不会从性能角度很好地扩展。这是因为相关子查询需要外部查询中的每个候选行执行。因此,当外部查询包含越来越多的候选行相关子查询被执行多次,因此Transact-SQL语句将需要更长的时间来运行。如果你发现你的相关子查询的SQL语句的性能不能满足你的要求,那么你应该寻找替代解决方案,如使用内部或外部连接操作的查询,或是返回一个小数量的候选行从外部查询。 总结 相关子查询是一种内在的查询,包括从外部查询的一个或多个列。相关子查询被执行一次外部查询的每个候选行。因为一个相关子查询包含从外部查询不能列可独立运行的外部查询。相关子查询的地方,虽然没有规模从性能的角度来看,有大量的候选人排在外查询鉴定。
楼梯T-SQL:超越基础水平3:建立一个相关子查询
标签:支持 总结 生成 com 业务 level 方法 where 没有
热心网友 时间:2022-05-02 11:02
幼儿园教育活动目标有智力开发,身体体能锻炼,陌生环境的适应力,家庭到集体生活的过渡,自主独立性的培养,语言表达能力的开发以及团队合作的训练等,其中智力开发是最为重要的。
智力的开发:教育分为教和育,是身心发展的社会实践活动。幼儿教育是基础教育,也是对幼儿心智发展进行教化培育的最初阶段。因此智力开发必须首当其冲。
身体体能的锻炼:在幼儿阶段,身体处于猛涨期,科学而合理的身体体能锻炼有助于拉高孩子的成长曲线。另外,强身健体是为以后的学业打基础,也为步入小学进行正规学习做准备。
陌生环境的适应力,家庭到集体生活的过渡以及自主独立性的培养:普遍情况下,幼儿在首次入园都需要一定的适应期,而家庭的宠溺一般都会让孩子带有点自我为中心的心态。在幼儿园里要引导孩子学会参与集体生活,学会分享。另外,对于3-6岁的幼儿,通常的父母也都会张罗好生活的一切。在离开父母,参与到幼儿园的生活后,就要开始引导和培养孩子的独立生活:独自大小便,独自穿衣穿鞋穿袜子,独自洗手吃饭换衣服等等,一步步走向自主独立化的生活。
语言表达能力的开发,团队合作的训练:在智力开发,体能锻炼,以及适应独立能力的培养的过程中,也要不忘培养孩子学会与人交流,学会自主表达情感。与此同时,也要引导孩子之间的互帮互阻,互相合作的团队精神,协助他们从身心上逐渐强壮起来。
因此,教育要从幼小阶段抓起。幼儿园教育虽然不属于九年义务教育,但是其重要性远远不会低于九年义务教育。重视幼教,重视抓基础,未来孩子才能更优秀,更具竞争力!
热心网友 时间:2022-05-02 12:20
情感目标、认知目标、能力目标。
拓展资料:
情感目标:指兴趣、动机、自信、意志和合作精神等影响学生学习过程和学习效果的相关因素以及在学习过程中逐渐形成的祖国意识和国际视野。保持积极的学习态度是学习成功的关键。教师在教学中不断激发并强化学生的学习兴趣,并引导他们逐渐将兴趣转化为稳定的学习动机,以使他们树立自信心,增强克服困难的意志,认识到自己学习的优势与不足,乐于与他人合作,养成和谐和健康向上的品格。
认知目标:认知领域的教学目标分为知识、领会、应用、分析、综合和评价六个层次。形成由低到高的阶梯。
1.知识:指对所学材料的记忆,包括对具体事实、方法、过程、概念和原理的回忆。其所要求的心理过程是记忆。这是最低水平的认知学习结果。
2.领会:指把握所学材料的意义。可以借助三种形式来表明对材料的领会。一是转换,即用自己的话或用不同于原先表达方式的方法表达自己的思想;二是解释,即对一项信息加以说明或概述;三是推断,即对事物之间的逻辑关系进行推理。领会超越了单纯的记忆,代表最低水平的理解。
能力目标:主要包括人类生存所不可或缺的核心知识和学科基本知识;基本能力获取、收集、处理、运用信息的能力、创新精神和实践能力、终身学习的愿望和能力。
拓展资料:
教育活动有广义与狭义之分。教育本身就是一种活动。广义的教育活动泛指影响人的身心发展的各种教育活动,狭义的教育活动主要指学校教育活动。
学校教育活动有各种差别。从形式看,有教学活动、课外活动、实践活动;从活动主体看,有管理者的活动、教师的活动、学生的活动,从内容上看,有课内外进行的德育、智育、体育、美育、劳动技术教育,发展个性特长等各种活动。
教育活动,不论广义与狭义,其宗旨都是进行人的培养和训练。
热心网友 时间:2022-05-02 13:54
英盛观察认为幼儿园教学活动目标是教育工作者对幼儿在一定学习期限内的学习及结果的预期,是幼儿园教育目的的具体化。活动目标是幼儿园活动的指南针,它即是活动设计的起点,也是活动设计的终点;即是选择活动内容、活动组织方式和教学策略的依据,也是活动评价的标准。显然,在教学过程中教学目标的确定是一个非常重要的环节,那对于教育活动组织实施的幼儿教育工作者来说如何制定科学的活动目标,从而促进幼儿的发展,作者有一些思考,希望能与大家一起探讨。热心网友 时间:2022-05-02 15:46
幼儿园教育活动目标有:知识发展目标,技能发展目标,情感发展目标三方面。三个方面我都认真很重要,缺一不可。热心网友 时间:2022-05-02 17:54
目标主要有培养孩子的行为习惯、观察孩子的兴趣动向、给予孩子帮助和支持。我认为观察孩子的兴趣动向是最重要的,每个孩子都是独立的个体,肯定会有不同的兴趣爱好需要被挖掘的。热心网友 时间:2022-05-02 20:18
①行为目标②生成性目标③表现性目标。表现性目标最重要,它关注的是儿童在复杂的教育活动中的个性化和创造性的表现。热心网友 时间:2022-05-02 23:16
具体你可以参考当地的培训机构。