- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验 2 SQL语言回顾与进阶 数据定义语言(DDL)语句 Create 、Alter、Drop 数据操作语言(DML)语句 Insert、Update、Delete、Select 数据控制语言(DCL)语句 Grant、Revoke、Deny SQL语言 Insert语句-插入数据 用Values子句插入一行数据 使用INSERT…SELECT语句 使用SELECT INTO语句创建表 插入部分数据 示例参考文件Lab02Demo.sql。 Update语句-更新数据 根据表中数据更新行 根据其他表更新行 示例参考文件Lab02Demo.sql。 Delete语句-删除数据 使用DELETE语句 使用TRUNCATE TABLE 语句 删除基于其他表的行 Select语句 检索数据 数据分组与汇总 多表联接 子查询 修改数据 使用WHERE子句 USE AdventureWorks SELECT ProductID, NAME FROM Production.Product WHERE Class =H AND ,OR ,NOT 逻辑运算符 IS NULL, IS NOT NULL 未知值 LIKE,NOT LIKE 字符串比较 IN ,NOT IN 值的列表 BETWEEN AND,NOT BETWEEN AND 值的范围 =,,,=,=,!=, 比较运算符 谓词 查询条件 设置结果集格式 可以通过设置结果集格式,改善结果集的可读性。 使用ORDER BY 使用DISTINCT消除重复行 改变列名 使用字面值 使用TOP n列出前n个记录 可以用TOP n关键字列出结果集中前n个记录。 USE AdventureWorks SELECT Top 5 Salesorderid, productid, OrderQty FROM Sales.SalesOrderDetail ORDER BY OrderQty DESC GO 使用聚合函数 聚合函数的功能是计算平均值和总和。 COUNT MIN and MAX SUM and AVG GROUP BY的基础知识 如果想要在一列中生成多个汇总值,可以使用聚合函数与GROUP BY子句。 USE AdventureWorks SELECT Size, AVG(ListPrice) AS Average ListPrice FROM Production.Product GROUP BY Size ORDER BY Size 联合使用GROUP BY子句和HAVING子句 当使用HAVING子句时,注意以下事项和原则: HAVING子句只有与GROUP BY子句联用才能对分组进行约束。只使用HAVING子句而不使用GROUP BY子句是没有意义的。 可以引用任何出现在选择列表中的列。 不要与HAVING子句一起使用ALL关键字,因为HAVING子句会忽略ALL关键字而返回只满足自己条件的分组。 在结果集中生成汇总值 使用带有ROLLUP运算符的GROUP BY子句 使用带有CUBE运算符的GROUP BY子句 使用GROUPING函数 使用 PIVOT 和 UNPIVOT 使用COMPUTE和COMPUTE BY子句 生成某一列的明细值和汇总值的报表 为组中的子集生成明细值和汇总值的报表 推荐操作 当使用子句和运算符汇总数据时,注意下面的推荐操作: 对经常聚合的列进行索引可以提高查询效率。例如,增加quantity列的索引能加快汇总操作的执行,甚至当使用了ROLLUP运算符时也是如此。 在包含空值的列中避免使用聚合函数,因为结果集可能并没有正确地返回你要查询的数据。 在结果集中使用ORDER BY子句以保证返回数据的排列顺序。如果不使用ORDER BY子句,SQL Server就不保证结果顺序。 因为ROLLUP运算符比CUBE运算符更高效,所以只要可能就使用它。ROLLUP运算符之所以高效是因为它把汇总数据作为具体数据处理。CUBE运算符在执行时需要大量的运算,所以它需要更多的资源。 使用COMPUTE或COMPUTE BY子句,是因为它们可以有助于查看和输出用于测试应用程序的结果集。但是,它们产生的额外汇总记录不符合关系型格式,所以它们不适合作为产品数据库的输出。 使用表的别名 使用表的别名可以增强脚本的可读性,有利于编写复杂联接,同时简化对Transact-SQL的维护。 SELECT * FROM server.database.schema.table AS table_alias 组合多个表中的数据(本次实验不作要求) 联接概述 使用内联接 使用外联接 使用交叉联接 联接两个以上的表 自联接(Self-Jo
文档评论(0)