项目二 了解Transact-SQL程序设计基础 课件(共37张PPT) -《SQL Server 2008数据库管理与开发》同步教学(华南理工大学出版社)

资源下载
  1. 二一教育资源

项目二 了解Transact-SQL程序设计基础 课件(共37张PPT) -《SQL Server 2008数据库管理与开发》同步教学(华南理工大学出版社)

资源简介

(共37张PPT)
项目二 了解Transact-SQL程序设计基础
本项目介绍Transact-SQL常用语句,讲解如何使用Transaction-SQL(T-SQL) SELECT语句检索数据,使用UPDATE语句更新数据,使用INSERT语句插入数据,以及Pivot、UNPivot、Row_Number、DENSE_Rank、Rank、等SQL Server 2008中新增的T-SQL语句的用途和用法。
目录
任务
利用SQL语句进行数据查询


SQL








任务:利用SQL语句进行数据查询
准备知识
常用的SQL Server语句
常用的SQL语句介绍
使用SQL Server2008中新增函数和语句



SQL


1. 常用的SQL Server语句
SQL是结构化查询语言的缩写,是访问数据库的标准语言。标准化的数据库系统都对SQL语言提供支持,这给数据库应用程序开发人员带来了很大的方便,无论后台数据库是SQL Server、Oracle,还是IBM DB2,甚至是小型数据库Access,都可以使用标准的SQL语句对它进行操作。
(1)Select语句
SELECT语句主要用于从数据库中检索数据,同时它也可以用于向局部变量赋值或者调用一个函数。SELECT语句既可以简单,也可以复杂,但最好使用简单的语句,也就是说能达到同样目的,选择同样数据时,尽量使SELECT语句简单,在检索你需要的结果时,要尽量简化你的SELECT语句。
在使用SELECT语句检索数据时,你可以使用过滤条件过滤掉你不需要的数据,同时,在检索数据时,也应该考虑检索数据的速度,特别是从数据量很大的表中检索数据。一般可以在WHERE子句中尽量使用有索引的列以加速数据检索的速度。
小提示:



SQL


1. 常用的SQL Server语句
SELECT语句的语法包含几个子句,大多数子句都是可选的。一个SELECT语句至少要包括一个SELECT语句和一个FROM子句。这两个子句识别检索哪些列或者列中的数据,以及分别从哪些表中检索数据。
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 ] ]



SQL


1. 常用的SQL Server语句
1)Where语句
2)DISTINCT语句
3)ORDER BY语句对结果排序
4)使用GROUP BY 语句对查询结果分组
5)使用HAVING 语句对分组结果进行过滤
6)使用JOIN实现多表查询
7)使用UNION合并多个结果集



SQL


1. 常用的SQL Server语句
(2)INSERT语句
INSERT语句的功能是向表中插入记录,它的基本语法结构如下:
INSERT INTO 表名 (字段列表) VALUES (字段值列表)
字段列表和字段值列表都使用逗号分隔,而且两个列表中值的数量和数据类型必须对应。如果在INSERT语句中指定了表中所有记录的值,则字段列表可以省略。
例如,执行下面的语句可以在表Users中插入一个用户名为tester的记录。
INSERT INTO Users (UserName, UserPwd) VALUES ('tester', '111111')



SQL


1. 常用的SQL Server语句
运行后再查看表Users的内容,结果如图所示。
查看新插入的数据



SQL


1. 常用的SQL Server语句
(3)UPDATE语句
UPDATE语句的功能是更新表中指定记录的指定字段值,它的基本语法结构如下:
UPDATE 表名 SET 字段名1=值1, 字段名2=值2 WHERE 更新条件
知识链接
在一个UPDATE语句中可以同时更新多个字段的值,但是字段名不能重复。为了指定更新记录的条件,UPDATE语句中通常使用WHERE子句。



SQL


1. 常用的SQL Server语句
例如,执行下面的语句可以在表Users中将用户tester的密码更新为123456。
INSERT INTO Users (UserName, UserPwd) VALUES ('tester', '111111')
运行后再查看表Users的内容,结果如图所示。
查看新插入的数据
2.



SQL




2. 常用的SQL语句介绍
更新数据包括修改、删除和插入新的数据,其中修改和删除数据既可以整表更新或删除,也可以带条件进行更新或删除指定条件下的数据。
更新数据的T-SQL基本语法如下:
UPDATE table_name
SET column_name = expression
贵一张[,…n]
[FROM table_name]
[WHERE search_condition]
2.



SQL




2. 常用的SQL语句介绍
其中相关的参数说明如下:
UPDATE:该关键字表示要更新数据; table_name:是要更新数据的表。
SET:该关键字指定要更新哪些字段的数据;coloumn_name:需要更新数据的列。
Expression:是用于更新coloumn_name指定列值的表达式,expression既可以是常量、变量也可以是来自其它由FROM table_name子句中指定的table_name表中的字段,甚至可以是一个计算表达式。
WHERE:该子句指定要更新哪些行的数据,这些行必须符合search_condition中指定的条件。
2.



SQL




2. 常用的SQL语句介绍
下面介绍各种数据更新的方法。
(1)在指定条件下更新指定字段的值
通过在WHERE子句中指定搜索条件,可以更新指定字段的值。例如我们要更新表Sales_Tbl中店2-23305T在2006-07-12这天的销量Quantity。在更新数据前,先用下面的查询语句浏览一下2006-07-12这天店2-23305T的销量:
SELECT Quantity FROM Sales_Tbl
WHERE StoreId = '2-23305T'
AND SoldDate>='2006-07-12'
AND SoldDate<'2006-07-13'
运行结果如下:
Quantity
-----------
1
2.



SQL




2. 常用的SQL语句介绍
(2)带子查询的修改语句
子查询可以嵌套在 UPDATE、DELETE 和 INSERT 语句以及 SELECT 语句中。这一节看看子查询如何应用在UPDATE、DELETE 和 INSERT这些修改数据的修改语句中。
(3)PIVOT和UNPIVOT的用法
微软SQL Server 2008引入了新的SQL操作语句PIVOT和UNPIVOT。在以前的SQL Server 版本中,如果要产生交叉报表(Cross Report),我们采用CASE语句和聚合函数,但是在SQL Server 2008中,要到达同样的效果,只需使用PIVOT和UNPIVOT操作语句即可。
2.



SQL




2. 常用的SQL语句介绍
(4)Top 语句的用法
Top语句最基本的用法是限制返回到结果集中的行数。其语法如下:
TOP n [PERCENT]
其中n 指定返回的行数。如果未指定 PERCENT,n 就是返回的行数。如果指定了 PERCENT,n 就是返回的结果集行的百分比。
注意啦!
如果一个 SELECT 语句既包含 TOP 又包含 ORDER BY 子句,那么返回的行将会从排序后的结果集中选择。整个结果集按照指定的顺序建立并返回排好序的结果集的前 n 行。
3.
使








3. 使用SQL Server 2008中的新增函数和语句
(1)使用新增函数
1)Row_Number 函数
在先前版本的SQL Server中,要产生行号,需要借助于临时表或子查询, SQL Server 2008提供了这样的产生行号的函数,这就是Row_Number函数。Row_Number函数返回结果集分区内行的序列号,每个分区的第一行从 1 开始。其语法如下:
ROW_NUMBER ( ) OVER ( [ ] )
3.
使








3. 使用SQL Server 2008中的新增函数和语句
2)RNNK函数
RANK函数返回结果集的分区内指定字段的值的排名。指定字段的值的排名是相关行之前的排名数加一。其语法如下:
RANK ( ) OVER ( [ < partition_by_clause > ] < order_by_clause > )
3.
使








3. 使用SQL Server 2008中的新增函数和语句
3)DENSE_RANK函数
DENSE_RANK()函数也是一个排名统计函数,它返回结果集分区中行的排名,在排名中没有任何间断。
知识链接
如果有两个或多个行受同一个分区中排名的约束,则每个约束行将接收相同的排名。
3.
使








3. 使用SQL Server 2008中的新增函数和语句
4)NTILE函数
NTILE函数用于计算数据分布的函数,该函数将有序分区中的行分发到指定数目的组中。各个组有编号,编号从1开始。对于每一行,NTILE 将返回此行所属的组的编号。NTILE语法如下:
NTILE (integer_expression) OVER ( [ ] < order_by_clause > )
3.
使








3. 使用SQL Server 2008中的新增函数和语句
5)OpenRowSet函数
在SQL Server 2008中,OpenRowSet函数也得到了加强,本节主要介绍OpenRowSet函数批量操作的功能。在介绍增强功能之前,简单介绍一下OpenRowSet函数的功能和用法。
OpenRowSet的功能等同于使用链接服务器,并且OpenRowSet是使用OLE DB连接并访问远程数据的一次性的临时方法。可以在查询的 FROM 子句中像引用表名那样引用 OPENROWSET 函数。依据 OLE DB 访问接口的功能,还可以将 OPENROWSET 函数引用为 INSERT、UPDATE 或 DELETE 语句的目标表。
知识链接
尽管查询可能返回多个结果集,但 OPENROWSET 只返回第一个结果集。
3.
使








3. 使用SQL Server 2008中的新增函数和语句
(2)使用新增语句
1)OUTPUT语句
在SQL Server 2000中,在往表中插入数据后,若要获得新增的标识值,则需要使用系统变量@@IDENTITY或函数SCOPE_IDENTITY 和 IDENT_CURRENT,在SQL Server 2008中,新增了OUTPUT语句,用来在向表中插入数据、更新数据或删除数据后立即返回真实的数据。
3.
使








3. 使用SQL Server 2008中的新增函数和语句
应用程序需要返回新增的标识列值、计算列值或由缺省约束产生的缺省值时,可以采用OUTPUT语句方便地实现。OUTPUT语法如下:
OUTPUT{column_name | scalar_expression } INTO {@table_variable | output_table} [(column_list)]
或:
OUTPUT{column_name | scalar_expression }
其中column_name可以是下面几种值:
{ DELETED | INSERTED | from_table_name } . { * | column_name }
如果要将OUTPUT返回的值保存到表变量或输出表中,则使用INTO关键字,如果不需要保存这些返回值,则不需要关键字INTO关键字。
3.
使








3. 使用SQL Server 2008中的新增函数和语句
2)Execute AS 语句
SQL Server 2008新增了Execute AS语句,用于设置会话的执行上下文。在默认情况下,会话在用户登录时开始,在用户注销时结束。会话过程中的所有操作都受限于对该用户进行的权限检查。当运行 Execute AS 语句时,会话的执行上下文将切换到指定的登录名或用户名。切换上下文之后,SQL Server 2008数据库系统将根据登录名和用户安全令牌检查该帐户(而非调用 Execute AS 语句的用户)的权限。
3.
使








3. 使用SQL Server 2008中的新增函数和语句
实际上,SQL Server 2008数据库系统在会话或模块的执行期间模拟了用户或登录帐户,或显式恢复了上下文切换。Execute AS 语句的语法如下:
{Exec | Execute} AS {Login | User} = ‘Name’
[WITH { NO REVERT | COOKIE INTO @varbinary_variable } ] | Caller
其中Login指定要模拟执行上下文的是一个登录,模拟范围处于服务器级别。User指定要模拟执行的上下文是当前数据库中的用户,模拟范围只限于当前数据库。Name为有效的用户或登录名,Name必须是Sysadmin固定服务器角色成员,或者分别作为sys.database_principals或sys.server_Principals中的主体而存在。
Name可以被指定为局部变量。Name必须是单独帐户,而不能是组、角色、证书、密钥或内置帐户。
拓展提高:
在开发新程序时,尽量避免使用表3-3中列出的数据类型,这些类型在微软SQL Server未来的版本中将被删除。改用Varbinary(max),Varchar(max),Nvarchar(max)数据类型。
小提示:


SQL








任务实施
小张是某大型购物超市的销售经理,为了了解超市各物品的销售情况,及时对超市物品进行上新、价格调整等,小张需要统计超市物品的销售情况。
任务:利用SQL语句进行数据查询
任务分析:
理解牢记!
由于SQL Server语句具有数据查询的功能,读者可以根据SQL Server语句进行数据的查询与整理,因此,小张决定使用SQL Server语句的相关知识来完成超市销售情况的统计工作。
任务:利用SQL语句进行数据查询
利用SQL语句进行数据查询
任务
实施
假设现有下表所示的销售数据,共有11条记录。
Sales_Tbl样例数据
要从Sales_Tbl表检索StoreId,ProductModel和Quantity字段的值,SQL语句如下:
SELECT StoreId,ProductModel,Quantity FROM Sales_Tbl
在查询分析器中执行该SQL语句,结果如下表所示。
选择指定列查询结果
StpreId ProductModel Quantity
2-23305T g1030cn 1
2-23305T lj 1020 1
2-O3B-4983 u1560cn 4
2-O3B-5372 u1560cn 15
2-O3B-4283 Photosmart 7838 2
2-O3B-4562 Officejet 4255 1
2-O3B-4562 LJ 5100se 2
2-1XQDXC g1030cs 1
2-1XQDXC psc 1406 1
2-O3B-7304 U1560cn 3
2-1UDSCF 245 printer 34




项目二 了解Transact-SQL程序设计基础
重点难点
掌握SQL语句
熟练使用SQL语句
重点
难点

展开更多......

收起↑

资源预览