最新大型数据库第3章transactsql语言PPT课件.ppt
《最新大型数据库第3章transactsql语言PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新大型数据库第3章transactsql语言PPT课件.ppt(105页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2022-7-10第2页本章概述本章概述l如何方便地在数据库中执行访问数据库对象、查询业务数如何方便地在数据库中执行访问数据库对象、查询业务数据等各种操作呢?这需要掌握使用据等各种操作呢?这需要掌握使用Transact-SQL语言的语言的技术。技术。Transact-SQL语言是微软公司在关系型数据库管语言是微软公司在关系型数据库管理系统理系统Microsoft SQL Server中的中的ISO SQL的实现。的实现。SQL(Structure Query Language,结构化查询语言,结构化查询语言)语语言是国际标准化组织言是国际标准化组织(International Standard
2、ize Organization,ISO)采纳的标准数据库语言。通过使用采纳的标准数据库语言。通过使用Transact-SQL语言,用户几乎可以完成语言,用户几乎可以完成SQL Server数据数据库中的各种操作。本章全面介绍库中的各种操作。本章全面介绍Transact-SQL语言的特语言的特点和使用方式。点和使用方式。2022-7-10第9页类型类型l在在Microsoft SQL Server 2008系统中,根系统中,根据据Transact-SQL语言的功能特点,可以把语言的功能特点,可以把Transact-SQL语言分为语言分为5种类型,即数据种类型,即数据定义语言、数据操纵语言、数据
3、控制语言、定义语言、数据操纵语言、数据控制语言、事务管理语言和附加的语言元素。事务管理语言和附加的语言元素。2022-7-10第10页Transact-SQL语言的执行方式语言的执行方式l在在Microsoft SQL Server 2008系统中,主系统中,主要使用要使用SQL Server Management Studio工工具来执行具来执行Transact-SQL语言编写的查询语句。语言编写的查询语句。l除此之外,还可以使用除此之外,还可以使用sqlcmd实用命令、实用命令、PowerShell工具来执行工具来执行Transact-SQL语句。语句。l下面主要介绍下面主要介绍SQL S
4、erver Management Studio工具的特点。工具的特点。2022-7-10第11页在查询窗口中执行在查询窗口中执行Transact-SQL语句语句2022-7-10第12页数据定义语言数据定义语言l数据定义语言用于创建数据库和数据库对数据定义语言用于创建数据库和数据库对象,为数据库操作提供对象。象,为数据库操作提供对象。l例如,数据库以及表、触发器、存储过程、例如,数据库以及表、触发器、存储过程、视图、索引、函数、类型及用户等都是数视图、索引、函数、类型及用户等都是数据库中的对象,需要定义后才能使用。据库中的对象,需要定义后才能使用。l在在DDL中,主要的中,主要的Transac
5、t-SQL语句包括语句包括CREATE语句、语句、ALTER语句和语句和DROP语句。语句。2022-7-10第13页CREATE语句示例语句示例2022-7-10第14页ALTER语句示例语句示例2022-7-10第15页DROP语句示例语句示例2022-7-10第16页数据操纵语言数据操纵语言l数据操纵语言主要是用于操纵表、视图中数据的数据操纵语言主要是用于操纵表、视图中数据的语句。当创建表对象之后,初始状态时该表是空语句。当创建表对象之后,初始状态时该表是空的,没有任何数据。如何向表中添加数据呢?这的,没有任何数据。如何向表中添加数据呢?这时需要使用时需要使用INSERT语句。如何检索表
6、中数据呢?语句。如何检索表中数据呢?可以使用可以使用SELECT语句。如果表中数据不正确,语句。如果表中数据不正确,可以使用可以使用UPDATE语句进行更新。当然,也可以语句进行更新。当然,也可以使用使用DELETE语句删除表中的数据。语句删除表中的数据。l实际上,实际上,DML语言包括了语言包括了INSERT、SELECT、UPDATE和和DELETE等语句。等语句。2022-7-10第17页附加的语言元素附加的语言元素l除了前面介绍的语句之外,除了前面介绍的语句之外,Transact-SQL语言还包括了附加的语言元素。语言还包括了附加的语言元素。l这些附加的语言元素主要包括标识符、变这些附
7、加的语言元素主要包括标识符、变量和常量、运算符、表达式、数据类型、量和常量、运算符、表达式、数据类型、函数、控制流语言、错误处理语言和注释函数、控制流语言、错误处理语言和注释等。等。l下面,详细介绍这些内容。下面,详细介绍这些内容。2022-7-10第18页标识符标识符l在在Transact-SQL语言中,数据库对象的名称就是语言中,数据库对象的名称就是其标识符。其标识符。l在在Microsoft SQL Server系统中,所有的数据库系统中,所有的数据库对象都可以有标识符,例如服务器、数据库、表、对象都可以有标识符,例如服务器、数据库、表、视图、索引、触发器和约束等。大多数对象的标视图、索
8、引、触发器和约束等。大多数对象的标识符是必需的,例如,创建表时必须为表指定标识符是必需的,例如,创建表时必须为表指定标识符。但是,也有一些对象的标识符是可选的,识符。但是,也有一些对象的标识符是可选的,例如,创建约束时用户可以不提供标识符,其标例如,创建约束时用户可以不提供标识符,其标识符由系统自动生成。识符由系统自动生成。变量和常量变量和常量l常量是表示特定数据值的符号,常量也被称为字面量。常量是表示特定数据值的符号,常量也被称为字面量。l常量的格式取决于它所表示的值的数据类型。例如,常量的格式取决于它所表示的值的数据类型。例如,This is a book.、May 1, 2006、983
9、21等都是常量。等都是常量。对于字符常量或时间日期型常量,需要使用单引号引起对于字符常量或时间日期型常量,需要使用单引号引起来。来。l当字符串中有单引号时,则用两个单引号来表示。当字符串中有单引号时,则用两个单引号来表示。lUnicode常量必须有一个大写的常量必须有一个大写的N来区别字符串常量。来区别字符串常量。2022年7月10日第19页2022-7-10第20页变量和常量变量和常量l在在Microsoft SQL Server 2008系统中,变系统中,变量也被称为局部变量,是可以保存单个特定量也被称为局部变量,是可以保存单个特定类型数据值的对象。类型数据值的对象。l全局变量以全局变量以
10、开头命名,局部变量以开头命名,局部变量以开开头命名。头命名。l全局变量由系统提供,用于存储一些系统信全局变量由系统提供,用于存储一些系统信息,只可以使用全局变量,不可以自定义全息,只可以使用全局变量,不可以自定义全局变量。局变量。2022-7-10第21页声明和赋值声明和赋值l在在Transact-SQL语言中,可以使用语言中,可以使用DECLARE语句声明语句声明变量。变量。 在声明变量时需要注意:在声明变量时需要注意: 第一,为变量指定名称,且名称的第一个字符必须是第一,为变量指定名称,且名称的第一个字符必须是; 第二,指定该变量的数据类型和长度;第二,指定该变量的数据类型和长度; 第三,
11、默认情况下将该变量值设置为第三,默认情况下将该变量值设置为NULL。l可以在一个可以在一个DECLARE语句中声明多个变量,变量之间使语句中声明多个变量,变量之间使用逗号分割开。变量的作用域是可以引用该变量的用逗号分割开。变量的作用域是可以引用该变量的Transact-SQL语句的范围。变量的作用域从声明变量的语句的范围。变量的作用域从声明变量的地方开始到声明变量的批处理的结尾。地方开始到声明变量的批处理的结尾。l有两种为变量赋值的方式:使用有两种为变量赋值的方式:使用SET语句语句为变量赋值和使用为变量赋值和使用SELECT语句选择列表语句选择列表中当前所引用值来为变量赋值。中当前所引用值来
12、为变量赋值。l使用使用select和和print语句可以显示变量内容语句可以显示变量内容。2022-7-10第23页使用变量使用变量例:查询计算机系学生人数,并输出。declare renshu intselect renshu=count(*) from student where sdept=CSprintCS人数:+cast(renshu as varchar(10)2022-7-10第24页运算符运算符l运算符是一种符号,用来指定要在一个或运算符是一种符号,用来指定要在一个或多个表达式中执行的操作。在多个表达式中执行的操作。在Microsoft SQL Server 2008系统中,可
13、以使用的运系统中,可以使用的运算符可以分为算术运算符、逻辑运算符、算符可以分为算术运算符、逻辑运算符、赋值运算符、字符串串联运算符、按位运赋值运算符、字符串串联运算符、按位运算符、一元运算符和比较运算符等。算符、一元运算符和比较运算符等。2022-7-10第25页使用赋值运算符使用赋值运算符2022-7-10第26页使用字符串串联运算符使用字符串串联运算符2022-7-10第27页使用位运算符使用位运算符2022-7-10第28页表达式表达式l在在Transact-SQL语言中,表达式是由标识符、变量、常语言中,表达式是由标识符、变量、常量、标量函数、子查询以及运算符等的组合。在量、标量函数、
14、子查询以及运算符等的组合。在Microsoft SQL Server 2008系统中,表达式可以在多个系统中,表达式可以在多个不同的位置使用,这些位置包括查询中检索数据的一部分、不同的位置使用,这些位置包括查询中检索数据的一部分、搜索数据的条件等。搜索数据的条件等。l表达式可以分为简单表达式和复杂表达式两种类型。简单表达式可以分为简单表达式和复杂表达式两种类型。简单表达式只是一个变量、常量、列名或标量函数,复杂表达表达式只是一个变量、常量、列名或标量函数,复杂表达式是由两个或多个简单表达式通过使用运算符连接起来的式是由两个或多个简单表达式通过使用运算符连接起来的表达式。在复杂表达式中,两个或多
15、个表达式有相同的数表达式。在复杂表达式中,两个或多个表达式有相同的数据类型,优先级低的数据类型可以隐式地转换为优先级高据类型,优先级低的数据类型可以隐式地转换为优先级高的数据类型。的数据类型。2022-7-10第29页注释注释l所有的程序设计语言都有注释。注释是程序代码所有的程序设计语言都有注释。注释是程序代码中不执行的文本字符串,用于对代码进行说明或中不执行的文本字符串,用于对代码进行说明或暂时仅用正在进行诊断的部分语句。暂时仅用正在进行诊断的部分语句。l一般地,注释主要描述程序名称、作者名称、变一般地,注释主要描述程序名称、作者名称、变量说明、代码更改日期以及算法描述等。量说明、代码更改日
16、期以及算法描述等。l在在Microsoft SQL Server系统中,支持两种注释系统中,支持两种注释方式,即双连字符方式,即双连字符(-)注释方式和正斜杠星号字符注释方式和正斜杠星号字符对对(/*/)注释方式。注释方式。2022-7-10第30页使用注释使用注释2022-7-10第31页控制流语言控制流语言l一般地,结构化程序设计语言的基本结构一般地,结构化程序设计语言的基本结构是顺序结构、条件分支结构和循环结构。是顺序结构、条件分支结构和循环结构。顺序结构是一种自然结构,条件分支结构顺序结构是一种自然结构,条件分支结构和循环结构都需要根据程序的执行状况对和循环结构都需要根据程序的执行状况
17、对程序的执行顺序进行调整。程序的执行顺序进行调整。l在在Transact-SQL语言中,用于控制语句流语言中,用于控制语句流的语言被称为控制流语言。的语言被称为控制流语言。Microsoft SQL Server 2008系统提供了系统提供了8种控制流语句。种控制流语句。1.Beginend2.Ifelse3.while4.break5.continue6.goto7. Return8. wairforBeginend, Ifelse例:查询并显示MA系人数。begindeclare renshu intselect renshu=count(*) from student where sde
18、pt=MAif renshu=0 print MA系无人elseprintMA人数:+cast(renshu as varchar(10)endwhile语法:语法:WHILE Boolean_expression sql_statement | statement_block BREAK sql_statement | statement_block CONTINUE sql_statement | statement_block BREAK:导致从最内层的:导致从最内层的 WHILE 循环中退出循环中退出CONTINUE:使:使 WHILE 循环重新开始执行,忽略循环重新开始执行,忽略 C
19、ONTINUE 关键字后面的任何语句。关键字后面的任何语句。while例:求例:求1到到10的累加和。的累加和。declare i int,sum intset i=1set sum=0while(i=90 then 优秀优秀when grade=80 then 良好良好when grade=70 then 中等中等when grade=60 then 及格及格when grade60 then 不及格不及格endfrom sc2022-7-10第71页3.排名函数排名函数(1)rank返回结果集的分区内每行的排名。行的排名是相关行之前的返回结果集的分区内每行的排名。行的排名是相关行之前的排名
20、数加一。排名数加一。语法:语法: RANK( ) OVER()参数:参数:将:将FROM子句生成的结果集划分子句生成的结果集划分成成RANK函数适用的分区。函数适用的分区。:确定将:确定将RANK值应用于分区中的行时值应用于分区中的行时所基于的顺序。所基于的顺序。注意:注意:如果两个或多个行与一个排名关联,则每个如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名。例如,如果两关联行将得到相同的排名。例如,如果两位顶尖销售员具有相同的位顶尖销售员具有相同的 SalesYTD 值,值,则他们将并列第一。由于已有两行排名在则他们将并列第一。由于已有两行排名在前,所以具有下一个最大前,所以具
21、有下一个最大 SalesYTD 的销的销售人员将排名第三。因此,售人员将排名第三。因此,RANK 函数并函数并不总返回连续整数。不总返回连续整数。例:对每门课程进行排名。例:对每门课程进行排名。select cno,sno,grade,RANK() over(PARTITION BY CNO ORDER BY grade desc) 名次名次 from SC(2)DENSE_RANK返回结果集分区中行的排名,在排名中没有任何间断。行的返回结果集分区中行的排名,在排名中没有任何间断。行的排名等于所讨论行之前的所有排名数加一。排名等于所讨论行之前的所有排名数加一。语法:语法: DENSE_RANK
22、() OVER()注意:注意:如果有两个或多个行受同一个分区中排名的约束,则每个约如果有两个或多个行受同一个分区中排名的约束,则每个约束行将接收相同的排名。例如,如果两位顶尖销售员具有束行将接收相同的排名。例如,如果两位顶尖销售员具有相同的相同的 SalesYTD 值,则他们将并列第一。接下来值,则他们将并列第一。接下来 SalesYTD 最高的销售人员排名第二。该排名等于该行之最高的销售人员排名第二。该排名等于该行之前的所有行数加一。因此,前的所有行数加一。因此,DENSE_RANK 函数返回的数函数返回的数字没有间断,并且始终具有连续的排名。字没有间断,并且始终具有连续的排名。(3)ROW
23、_NUMBER返回结果集分区内行的序列号,每个分区的返回结果集分区内行的序列号,每个分区的第一行从第一行从 1 开始。开始。语法:语法: ROW_NUMBER() OVER()例:显示学生信息并显示行号。例:显示学生信息并显示行号。select ROW_NUMBER() OVER(ORDER BY Sno) 序号序号,* from Student例:返回第例:返回第4行数据。行数据。With xh_xs as(select ROW_NUMBER() OVER(ORDER BY Sno) 序号序号,* from Student)select * from xh_xs where 序号序号=4(4
24、)NTILE将有序分区中的行分到指定数目的组中。各将有序分区中的行分到指定数目的组中。各个组有编号,编号从个组有编号,编号从1开始。对于每一个行开始。对于每一个行,NTILE 将返回此行所属的组的编号。将返回此行所属的组的编号。语法:语法: NTILE(integer_expression) OVER()例:将学生成绩按照学号升序排列后分为例:将学生成绩按照学号升序排列后分为3组。组。select *,NTILE(3) over(order by sno) 组组 from sc例:将学生按学号分组后,每组中按照成绩降序排例:将学生按学号分组后,每组中按照成绩降序排列后分为列后分为3组。组。se
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 大型 数据库 transactsql 语言 PPT 课件
限制150内