第7章:T SQL高级查询及数据更新

第7章:T-SQL高级查询及更新

2.回顾(20分钟)

回顾上一章节主要内容,侧重理论及上机实践操作。

由学生提交上一章实验的疑难问题,在周五之前,由负责该章的学生负责收集并发送到班级群共享里。

嵌套查询指一个查询语句嵌套在另一个查询语句内部的查询。嵌套查询又叫子查询。

先计算子查询,子查询结果作为外层另一个查询的过滤条件,查询可以基于一个表或者多个表。 常用的比较运算符(如<,>,<=,>=,!=)和操作运算符(any、some、in、exists)。

子查询可以添加到select、update和delete语句中。

重点讲解in和exists关键字,另外讲解any和all的区别。

连接查询是最主要的查询,主要包括内连接和外连接,实现多表查询。

内连接有等值连接和不等连接。

等值连接查询结果中列出被连接表中的所有列,包括重复列。

内连接使用inner join关键字。

Join on连接之间区别:

内连接:inner join必须是满足条件的记录

左外连接:left join显示左表所有的记录,如果右表没有与之相对应记录则相应字段为空

右外连接:right join显示右表所有的记录,如果左表没有与之相对应记录则相应字段为空全外连接:显示所有记录,如果另一个表中没有与之相应得记录,则相应字段为空。

校对书本上自连接错误。

另外强调自连接经常在存放树形结构信息使用。如学校部门信息表(部门编号、部门名称、部门联系电话、部门负责人、上级部门编号)。

使用Visio绘制部门信息表。展示VISIO软件及相关学习资料,以后要求设计分析图例用Visio 来绘制完成,如业务流程图、组织机构图、功能模块图、程序流程图、类图、ER图等。(课外指导和讨论)

AXURE网页原型设计工具:下载相关资料并共享相关学习社区,要求页面原型设计采用AXURE 工具来完成。(课外指导和讨论)

PowerDesigner工具:数据库建模工具。

外连接分为左连接(LEFT JOIN)、右连接(RIGHT JOIN)、全外连接(FULL JOIN),注意其中之间的区别。

产生错误时,数学函数返回值为NULL。

了解AdventureWorks数据库中各个表的相关信息以及其关系。

https://www.360docs.net/doc/f118111163.html,/zh-cn/library/ms124590(v=sql.100)

左连接、右连接、全连接及交叉连接的综合示例,注意根据查询结果区分其差别。

排序函数提供一种按升序方式组织输出结果集,可以为每一行或者每一个分组指定一个唯一的序号。

Row_NUMBER函数:为每条记录增添递增的顺序数值序号,通常用在分页中使用。

RANK函数:如果两个或者多个行与一个排名关联,则每个关联行将得到相同的排名。RANK不返回连续整数。

DENSE_RANK函数:返回结果集分区中行的排名,排名没有任何间断,相同的数据序号相同,接下来顺序递增。

NTILE函数:将查询结果中的记录分为N组,各个组有编号,编号从1开始,对于每一行,将返回此行所属的组的编号。

排序函数综合案例

注意各个排序函数的查询结果分析,体会其具体作用。

SQL语句是固定的,查询条件相关的数据类型也是固定的,称之为静态SQL语句。

不能编写通用程序,需要临时组装SQL语句。动态SQL语句在运行时由程序创建的字符串。 动态查询通常使用在存储过程、触发器或者视图中。

Insert语句可以一次插入一条记录,也可以插入多条记录,插入记录中的值必须符合各个字段的数据类型。

不能向标识列插入值,不能向计算列插入值。查看文章《SQL Server计算列》https://www.360docs.net/doc/f118111163.html,/bluedoctor/archive/2012/01/20/2327951.html

若字段不允许为空,且未设置默认值,则必须给该字段赋值。

Value子句中给出的数据类型必须和列的数据类型相对应。

重点讲解临时表的创建及临时表的数据插入到正式表中。

临时表和正式表的区别:生存周期不同,存放位置不同,具体演示。

Update语句可以更新所有的行也可以更新特定的行,可以更新一列,也可以更新多列。 Delete语句可以删除单行,也可以删除多行数据,也可以删除全部数据。

Update和delete语法格式见书本。

Truncate也能清空表中数据。参看文档注意Delete和Truncate之间区别。

问题:如何快速清空数据库中各个表的数据?考虑各个表之间有约束关系。

重点讲解update语句。

相关主题
相关文档
最新文档