第9章 T-SQL 编程.ppt_第1页
第9章 T-SQL 编程.ppt_第2页
第9章 T-SQL 编程.ppt_第3页
第9章 T-SQL 编程.ppt_第4页
第9章 T-SQL 编程.ppt_第5页
已阅读5页,还剩127页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

29.05.2020,1,第9章T-SQL编程,语法基本函数过程控制语句,29.05.2020,2,T-SQL语言,SQL(StructuredQueryLanguage)就是用一些简单的句子来形成基本的语法来访问数据库的内容。因为SQL简单易学,所以它已经成为关系数据库系统中使用最广泛的语言。Transact-SQL是由微软SQLServer提供的一种结构化查询语言。29.05.2020,3,SQL语言分类:根据SQLServer数据库管理系统的功能,T-SQL语言可分为:数据定义语言(DDL):用于执行数据库任务以及对SQLServer中的各种对象执行创建、更改、删除等操作的语句。数据处理语言(DML):用于操作数据库中各种对象、检索和修改数据的语句,包括选择、更新、删除、插入操作。数据控制语言(DCL):它用于安全管理,可以决定哪些用户可以查看或修改数据。通常,它指的是专门用于设置数据库对象使用权的语句,包括授予、拒绝、撤销和其他语句。在SQL中,DCL可以将几个SQL语句组合起来,然后提交给数据库系统进行处理,即DTL。数据事务语言(DTL):完成事务控制的语句。新语言。29.05.2020,4,T-SQL编程-语法基础,1,标识符,注释2,数据类型3,常量和变量4,运算符和表达式,29.05.2020,5,标识符。在SQLServer中,标识符是用于定义服务器、数据库、数据库对象、变量等的名称。可分为常规标识符和分隔标识符。传统的标识符是不需要由分隔标识符分隔的标识符,并且符合标识符的格式规则。29.05.2020,6。标识符的命名规则:(1)可用作标识符的英文字符:A Z或A Z,在SQL中不区分大小写。数字:0 9,但数字不能是标识符的第一个字符。特殊字符:_、#、$,但$不能是标识符的第一个字符。特殊语系的法律字符:例如,汉字也可以用作标识符的法律字符。(2)标识符不能是SQL的关键字(包括大小写),如“表”、“表”、“选择”和“选择”不能用作标识符。(3)标识符中不允许除_、#、$以外的空格字符或特殊符号。(4)标识符的长度不得超过128个字符。示例选择* Fromboookwherebname=大型数据库的特殊描述:如果对象名称不符合上述规则,只要在名称前后添加方括号,该名称将成为合法标识符(但是,标识符的长度不能超过128个字符)。这是分隔标识符。示例从我的表中选择*其中顺序=10,29.05.2020,7,注释是不执行的程序主体。注释有两个功能:(1)解释代码的含义,增强代码的可读性;(2)暂时不在程序中使用的语句可以被注释,以便它们暂时不会被执行。当需要这些语句时,它们将被恢复。SQLServer有两种类型的注释:(1) -(两个减号):用于注释一行。(2)/*.*/:用于多行注释。注意,29.05.2020,8,【示例】使用语句函数使用学生图书借阅管理GODECLARE student number Varchar(10), name Varchar (8)-declare变量/*将查询结果赋给变量*/SELECT student number=student number。 name=学生信息中的姓名,其中图书馆卡号=00002选择学生编号作为学生编号。 name AS name-显示变量内容,29.05.2020,9,数据类型,29.05.2020,10,用户定义的数据类型可以由sp_addtype和enterprise manager创建,创建的自定义类型可以用于在ALTERDATABASE和CREATEDATABASE语句中定义数据库列。示例根据varchar类型创建一个不允许空值的用户定义数据类型,命名为ssn,长度为11。Execsp _ addtypessn, varchar (11),非空示例创建一个名为生日的用户定义数据类型。基于smalldatetime类型,此列允许空值。exec sp _addtype生日,smalldatetime, null ,29.05.2020,11,常量,也称为文字值或标量值,是表示特定数据值的符号。常数是指程序的值在操作过程中不会改变的量。29.05.2020,12,变量,变量是当数据存储在内存中时可以改变的变量。其变量由用户定义并可分配的实体。为了在存储器中存储信息,用户必须指定存储信息的单元并命名该单元,以便于获得信息。这是变量的函数。它可以使用两个变量,全局变量和局部变量。主要区别在于存储数据的范围不同。全局变量:由系统维护和定义,名称以两个 符号开头。局部变量:由声明语句声明,由设置语句或选择语句赋值。它只能在声明变量的过程中使用。名称以符号开头。29.05.2020,13,Variable globalvariable,globalvariable(以 开头)是由SQLServer系统提供和分配的用于保存某些系统信息的变量,也是由系统提供并预先声明的用于保存SQLServer系统运行状态数据值的变量。用户不能建立全局变量,也不能使用SET语句修改全局变量的值。一般来说,全局变量的值应该分配给同一批中的局部变量进行存储和处理。全局变量分为两类:与连接相关的全局变量,例如:rowcount(受影响的行数);与系统内部信息相关的全局变量。例如 版本(SQL的版本号)。29.05.2020,14,SQL通用全局变量表,29.05.2020,15,【示例】使用SELECT语句查询全局变量。选择 versionas版本选择languageas Language,29.05.2020,16,Variable localvariable,localvariable(以作为变量名开始)是用户可定义的变量。它的作用范围仅在程序内,它是一个用于存储指定数据类型的单个数据值的对象。我们可以使用这些变量来存储数据,如值和字符串。局部变量用于批处理、用户定义的函数、存储过程或触发器,以保存指定的数据或函数。在SQLServer中,局部变量由declaration语句声明(定义),并且可以一次声明多个变量。所有局部变量在声明后都被初始化为空,并由SET语句或SELECT语句赋值。它只能在声明变量的过程实体中使用,也就是说,使用范围是定义它的批处理、存储过程、触发器等。它的名字以符号开头。29.05.2020,17,其中:局部变量名必须以符号“”开头。必须符合标识符命名规则。数据类型是任何系统提供的或用户定义的数据类型。变量不能是文本、ntext或图像数据类型。用DECLARE语句声明一个变量,并用SET或SELECT语句给它赋值。您必须在同一个批处理或存储过程中声明、设置初始值和使用局部变量。所有变量在声明后都被初始化为空。定义:声明本地变量名数据类型,n赋值:设置局部变量名=表达式,n ,n,29.05.2020,18,【示例】使用SELECT语句查询局部变量。声明 int, svarchar (9) set int=40sets=欢迎来到Xi!选择整数变量。s,29.05.2020,19,【示例】创建和使用局部变量使用学生等级GODECLAREstudentidCHAR(8字符(8)。maxscore (9) SET maxscore=(从成绩表中选择最大(课程分数)SETstudentid=(从成绩表中选择学生编号,其中课程分数=maxscore)SELECTstudentid学生编号。 maxscore最高分GO,29.05.2020,20,【示例】声明两个变量,然后使用set和select为声明的变量赋值。然后用这两个变量查询“图书信息”表中价格小于50的“清华大学出版社”的图书信息。使用学生图书借阅管理声明 Pricing decimal(4,1), Press Name varchar(20)SET Pricing=50 SELECT Press Name=清华大学出版社/* Variable */SELECT * FROM Book Information,其中可以在查询语句的where子句的条件表达式中引用定价,大于或等于(=),等于(=),不等于(),小于(),小于或等于(23.44打印4523.44正确!错误!-比较字符串顺序,如果白打印白正确!ELSEPRINT,杜甫和李白犯了一个错误!29.05.2020,31,逻辑运算,逻辑运算符是用来测试某个条件以获得其真实情况的。逻辑运算符,如比较运算符,返回真或假的布尔数据类型。结果:真或假用法:条件if,while语句和where,with子句。29.05.2020,32,位运算符,包括,|,和三个位运算符,用于对位执行逻辑运算。是按位“与”运算符。当运算符前后的操作数都是1时,结果是1。只要1不是1,结果就是0。|:是按位“或”运算符。只要该运算符前后的一个操作数是1,结果就是1,并且只有当两个操作数都是0时,结果才是0。是一个ExclusiveOR运算符。只有当两个操作数具有不同的值时,它们才会是1;否则,它们将是0。29.05.2020,33示例查找59和12的按位与、按位或、按位异或。选择5912-0011100001100选择59 | 12-00111011 | 00001100选择59 12-00111011 00001100结果是:8000001030110111115500110111、29.05.2020、34,一元运算符分别为“正”、“负”和“负”。示例求整数5的按位逆。DECLARE NUM 1 TINYINT-为避免负值,选择TINYNT类型数据,对应于8位二进制数SET NUM 1=5-二进制数00000101选择Num1结果是:十进制数250,二进制数11111010。一元运算符(一元运算符),29.05.2020,35,运算符优先。当有多个运算符组成一个复杂表达式时,运算符优先级决定了操作的顺序。优先级较高的运算符优先。操作员优先级选择(23) * 5-6/(4-(5-3),29.05.2020,36,操作员优先级,执行顺序:从上到下,从左到右相同级别。当表达式中的两个运算符具有相同的优先级时,它们将根据它们在表达式中的位置来确定。29.05.2020,37,函数,函数可以帮助用户获取信息,执行数学计算和统计功能,实现数据类型转换等。像其他高级编程语言一样,Transact-SQL编程语言也提供了各种可以返回相应信息的函数。编程语言中的函数是用来封装经常执行的逻辑的子程序。任何必须执行函数中包含的逻辑的代码都可以调用函数,而无需重复所有的函数逻辑。SQLServer2000支持两种类型的函数:系统内置函数和用户定义函数。SQL Server 2000提供了大量执行特定操作的内置函数。函数总是与括号一起使用,即使没有参数。与DEFAULT关键字一起使用的niladic函数(不带参数的函数)是个例外。函数可以嵌套(一个函数在另一个函数中使用)。打印的当前日期和时间是CAST(GETDATE()ASchar(50),1。系统内置功能,29.05.2020,39。Transact-SQL编程语言提供了三个函数:行集函数可以像SQL语句中的表引用一样使用。聚合函数对一组值进行操作,但返回单个聚合值。标量函数对单个值进行运算,并返回单个值。只要表达式有效,就可以使用标量函数。标量函数如下:配置函数:返回当前配置信息。光标功能:返回光标信息。日期和时间函数:对日期和时间输入值执行操作,返回字符串、数字或日期和时间值。数学函数:对作为函数参数提供的输入值执行计算,并返回一个数值。元数据函数:返回关于数据库和数据库对象的信息。安全功能:返回关于用户和角色的信息。字符串函数:对字符串(char或varchar)的输入值执行操作,以返回字符串或数值。系统功能:在MicrosoftSQLServer中执行操作并返回有关值、对象和设置的信息。系统统计功能:返回系统的统计信息。文本和图像函数:对文本或图像输入值或列执行操作,以返回关于这些值的信息。29.05.2020,40,Transact-SQL语言函数类型,29.05.2020,41,聚合函数,聚合函数(聚合函数)对一组值执行计算并返回单个值。除了COUNT函数,total函数忽略空值。主要用于SELECT语句groupby子句和computeby子句。29.05.2020,42,【示例】总函数USEPUBSGOOSELECTCOUNT(DISTINCT CITY),COUNT (ALL CITY) FROMAUTHORSGO,29.05.2020,43,数据转换函数。一般情况下,SQLServer会自动完成数据类型转换,例如,它可以直接将字符类型表达式与数据时间类型比较公式进行比较;当表达式中使用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论