《SQL-Server-2012数据库技术及应用2.7.ppt》由会员分享,可在线阅读,更多相关《SQL-Server-2012数据库技术及应用2.7.ppt(118页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、周慧周慧教学单元教学单元2.7第第9章章 T-SQL编程与应用编程与应用SQL Server 2012数据库技术及应用数据库技术及应用MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*T-SQL编程与应用编程与应用 学习导航学习导航2 2MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*T-SQL编程与应用编程与应用 知识框架知识
2、框架3 3MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*单元单元2.7 T-SQL编程与应用编程与应用vv能力目标能力目标能力目标能力目标n能够能够正确应用正确应用T-SQL的表达式的表达式n能够能够正确应用正确应用T-SQL的程序控制语句的程序控制语句n能够能够根据数据库应用系统的功能需求编写简单的根据数据库应用系统的功能需求编写简单的T-SQL程序程序n能够能够阅读并熟练书写常用数据类型、函数和控制阅读并熟练书写常用数据类型、函数和控制语句(英文)语句(
3、英文)4 4MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*单元单元2.7 T-SQL编程与应用编程与应用vv知识目标知识目标知识目标知识目标nT-SQL语言基础语言基础n数据类型数据类型n表达式表达式(常量、变量、函数、运算符、小括号)(常量、变量、函数、运算符、小括号)n流程流程控制语句(顺序、分支、循环)控制语句(顺序、分支、循环)nCASE表达式表达式vv素质目标素质目标素质目标素质目标n养成养成严谨、严格的软件编程职业习惯严谨、严格的软件编程职业习惯
4、n进一步进一步加强自主学习的能力加强自主学习的能力5 5MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*打好数据库编程的基础打好数据库编程的基础l表达式应用训练表达式应用训练l流程控制语句训练流程控制语句训练工作任务工作任务6 6单元单元2.7 T-SQL编程与应用编程与应用MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*单元
5、单元2.7 T-SQL编程与应用编程与应用7 7T-SQL编程基础编程基础一一表达式表达式二二流程控制语句流程控制语句三三批处理批处理四四事务事务五五MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*一、一、T-SQL编程基础编程基础常见的对象(除数据库对象)标识符常见的对象(除数据库对象)标识符服务器实例、数据类型、变量、参数和函数等服务器实例、数据类型、变量、参数和函数等命名规则和数据库对象的命名规则相同命名规则和数据库对象的命名规则相同特殊符号开头的标识符
6、特殊符号开头的标识符“”开头:局部变量或是函数的参数开头:局部变量或是函数的参数“”开头:全局变量开头:全局变量“#”开头:临时表或是一个存储过程开头:临时表或是一个存储过程“#”开头:全局的临时数据库对象。开头:全局的临时数据库对象。1.有效标识符有效标识符8 8MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*一、一、T-SQL编程基础编程基础多行注释:多行注释:“/*”和和“*/”括起来可以连续书写多行的注释语句括起来可以连续书写多行的注释语句例如:例如:
7、/*设置读者编号设置读者编号RID为外键,为外键,删除主键表行时级联删除从表相应行删除主键表行时级联删除从表相应行*/单行注释:单行注释:“-”表示单行书写注释语句表示单行书写注释语句例如:例如:-声明局部变量声明局部变量2.注释注释9 9MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*一、一、T-SQL编程基础编程基础数据类型在数据结构中的定义是一个值的集合以及定义在数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。这个值集上的一组操作
8、。在在T-SQL中,表和视图的列、局部变量、函数的参数和返中,表和视图的列、局部变量、函数的参数和返回值、存储过程的参数和返回值(具有返回代码)和表达回值、存储过程的参数和返回值(具有返回代码)和表达式等都具有相关的数据类型。式等都具有相关的数据类型。3.数据类型数据类型1010MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*一、一、T-SQL编程基础编程基础系统数据类型系统数据类型T-SQL常用的系统数据类型常用的系统数据类型有有常用的有常用的有int、de
9、cimal(p,s)、char(n)、varchar(n)、date、time、datetime2和和bit等(前有介绍)等(前有介绍)3.数据类型数据类型-系统系统1111MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*一、一、T-SQL编程基础编程基础用户定义数据类型用户定义数据类型以基本数据类型为基础创建的别名数据类型,它提供一种以基本数据类型为基础创建的别名数据类型,它提供一种更能清楚地说明对象中值类型的名称并将其应用于数据类更能清楚地说明对象中值类型
10、的名称并将其应用于数据类型的机制。型的机制。例例1:为数据库为数据库“EDUC”定义一个基于定义一个基于char型的数据类型型的数据类型“StudentID”,用于说明表中学号列的数据类型。,用于说明表中学号列的数据类型。3.数据类型数据类型-用户定义用户定义1212MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*一、一、T-SQL编程基础编程基础在在【对象资源管理器对象资源管理器】窗口中:窗口中:展开展开“EDUC”“可编程性可编程性”节点,用右键单击节点,
11、用右键单击“类型类型”节点,从弹出的快捷菜单中选择节点,从弹出的快捷菜单中选择“新建新建”“用户定义数用户定义数据类型据类型”命令,打开命令,打开【新建用户定义数据类型新建用户定义数据类型】窗口窗口3.数据类型数据类型-用户定义用户定义1313MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*一、一、T-SQL编程基础编程基础在在【新建用户定义数据类型新建用户定义数据类型】窗口窗口中:输入类型名称、数据类型等中:输入类型名称、数据类型等3.数据类型数据类型-用户
12、定义用户定义1414MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*一、一、T-SQL编程基础编程基础在在【对对象象资资源源管管理理器器】窗窗口口中中:展展开开数数据据库库下下的的“用用户户定定义义类类型型节节点点”3.数据类型数据类型-查看用户定义类型查看用户定义类型1515MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*一
13、、一、T-SQL编程基础编程基础在在定定 义义 数数 据据 库库 表表“Student”或或“SC”时时,可可 以以 用用 自自 定定 义义 数数 据据 类类 型型“StudentID”指明学号指明学号“SID”的数据类型,的数据类型,3.数据类型数据类型-应用用户定义类型应用用户定义类型1616MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*一、一、T-SQL编程基础编程基础在变量声明中也可以应用用户自定义类型来定义内存变量的类型的数据类型在变量声明中也可以
14、应用用户自定义类型来定义内存变量的类型的数据类型例例1:USEEDUCGODECLAREStuIDStudentID3.数据类型数据类型-应用用户定义类型应用用户定义类型1717MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*单元单元2.7 T-SQL编程与应用编程与应用1818T-SQL编程基础编程基础一一表达式表达式二二流程控制语句流程控制语句三三批处理批处理四四事务事务五五MicrosoftMicrosoftSQL Server 2012SQL Serv
15、er 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*二、表达式二、表达式1919常量常量1变量变量2日期时间类型表达式日期时间类型表达式3内置函数内置函数4运算符运算符5MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)常量(一)常量常量常量:也称为文字值或标量值,是表示一个特定数据值的符号也称为文字值或标量值,是表示一个特定数据值的符号常量的格式取决于它所表示值的数据类型常量的格式取决于它所表示值的数据类
16、型日期型常量说明:日期型常量说明:使用使用SETDATEFORMAT或或SETLANGUAGE指定日期和时间常量指定日期和时间常量的格式,注意这两种设置方法只是影响如何把字符串转换为的格式,注意这两种设置方法只是影响如何把字符串转换为DATETIME类型的值,类型的值,并不影响其显示形式并不影响其显示形式SETDATEFORMATymd之后,常量之后,常量2017/3/243:00PM合法合法SETLANGUAGEus_english之后,常量之后,常量24March20173:00PM合法合法什么是常量什么是常量2020MicrosoftMicrosoftSQL Server 2012SQL
17、 Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)常量(一)常量常用数据类型的常量表现形式常用数据类型的常量表现形式数数据据类类型型常常量量举举例例char(n),varchar(n)abc,123,2*6,Imastudent.UnicodeN数据库技术数据库技术bigint,intsmallint,tinyint1278,256,23decimal(p,s)例如:例如:decimal(5,2)则有则有123.45,123.40,1.23,-123.45date,timedatetime2datetimeoffsetdate
18、:20170228,2017-02-28,28February2017,02/28/2017time:14:30:26,10:00:00.123456datetime2:2017-02-2814:30:26datetimeoffset:2017-02-2814:30:26+08:00,表示比协调世界表示比协调世界时时UTC早早8小时小时2121MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)常量(一)常量常用数据类型的常量表现形式常用数据类型的常量表现形
19、式数数据据类类型型常常量量举举例例binary(n)varbinary(n)0 x为前缀的十六进制数字字符,如为前缀的十六进制数字字符,如0 x123和和0 xAFbit数字数字0和和1,非零的数字转换为非零的数字转换为1字符串字符串True转换为转换为1,字符串,字符串False转换为转换为0uniqueidentifierFF19966F-868B-11D0-B42D-00C04FC964FF0 x6F9619FF8B86D011B42D00C04FC964FF2222MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012
20、数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)变量(二)变量变量是指在程序运行过程中其值可以改变的量。变量是指在程序运行过程中其值可以改变的量。T-SQL的变量有局部变量和全局变量之分。的变量有局部变量和全局变量之分。什么是变量什么是变量2323MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)变量(二)变量局部变量局部变量:局部变量是用户定义的变量,其作用范围仅在程序内部。局部变量是用户定义的变量,其作用范围仅在程序内部。在程序中通
21、常用来存储从表中查询到的数据或暂存程序执行在程序中通常用来存储从表中查询到的数据或暂存程序执行过程中的数据。过程中的数据。变量声明:变量声明:语法:语法:DECLARE变量名变量名数据类型数据类型,.n1.局部变量(局部变量(DECLARE声明)声明)2424MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)变量(二)变量说明:说明:变量名必须以变量名必须以开头,先用开头,先用DECLARE声明之后才能使用。声明之后才能使用。用用DECLARE命令声明之后
22、,所有的变量都被赋予初值命令声明之后,所有的变量都被赋予初值NULL。数据类型可以是系统提供的类型、用户定义类型或别名数据数据类型可以是系统提供的类型、用户定义类型或别名数据类型。类型。变量不能是变量不能是varchar(MAX)或或varbinary(MAX)等数据类型。等数据类型。1.局部变量(局部变量(DECLARE声明)声明)2525MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)变量(二)变量SELECT赋值语句:赋值语句:语法:语法:SELE
23、CT变量名变量名=表达式表达式,.n说明:说明:用用SELECT命令可以一次给多个变量赋值。命令可以一次给多个变量赋值。当表达式为表的列名时,可使用子查询功能从表中一次返回当表达式为表的列名时,可使用子查询功能从表中一次返回多个值,而赋值给变量的是其返回的最后一个值。多个值,而赋值给变量的是其返回的最后一个值。如果子查询没有返回值,则变量被设为如果子查询没有返回值,则变量被设为NULL。1.局部变量(局部变量(SELECT赋值)赋值)2626MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用
24、人民邮电出版社人民邮电出版社*(二)变量(二)变量例例2:声明一个变长字符型变量声明一个变长字符型变量var1,用,用SELECT赋值语句为它赋值语句为它赋予从表赋予从表“Reader”中查询出编号为中查询出编号为2003216008的读者姓的读者姓名,再用名,再用SELECT输出语句输出变量输出语句输出变量var1的值。的值。代码:代码:USELibraryDECLAREvar1varchar(8)-声明变长字符型局部变量声明变长字符型局部变量SELECTvar1=RnameFROMReaderWHERERID=2003216008-将子查询的结果赋值给局部变量将子查询的结果赋值给局部变量S
25、ELECTvar1AS读者姓名读者姓名-显示局部变量结果显示局部变量结果1.局部变量(局部变量(SELECT赋值)赋值)2727MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)变量(二)变量代码:代码:USELibraryDECLAREvar1varchar(8)-声明变长字符型局部变量声明变长字符型局部变量SELECTvar1=RnameFROMReaderWHERERID=2003216008-将子查询的结果赋值给局部变量将子查询的结果赋值给局部变量
26、SELECTvar1AS读者姓名读者姓名-显示局部变量结果显示局部变量结果执行结果:执行结果:1.局部变量(局部变量(SELECT赋值)赋值)2828MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)变量(二)变量例例3:用用SELECT语句赋值时,在多个返回值中取最后一个。语句赋值时,在多个返回值中取最后一个。代码:代码:USELibraryDECLAREvar1varchar(8)-声明变长字符型局部变量声明变长字符型局部变量-将子查询的结果赋值给局部
27、变量将子查询的结果赋值给局部变量SELECTvar1=RnameFROMReader-或:或:var1=(SELECTRnameFROMReader)SELECTvar1AS读者姓名读者姓名-显示局部变量的结果显示局部变量的结果1.局部变量(局部变量(SELECT赋值)赋值)2929MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)变量(二)变量代码:代码:USELibraryDECLAREvar1varchar(8)-声明变长字符型局部变量声明变长字符型
28、局部变量-将子查询的结果赋值给局部变量将子查询的结果赋值给局部变量SELECTvar1=RnameFROMReader-或:或:var1=(SELECTRnameFROMReader)SELECTvar1AS读者姓名读者姓名-显示局部变量的结果显示局部变量的结果执行结果:执行结果:1.局部变量(局部变量(SELECT赋值)赋值)3030MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)变量(二)变量SET赋值语句:赋值语句:语法:语法:SET变量名变量名=
29、表达式表达式说明:说明:SET赋值语句只能给一个变量赋值。赋值语句只能给一个变量赋值。子查询必须是括号括起来的完整子查询必须是括号括起来的完整SELECT查询语句。查询语句。1.局部变量(局部变量(SET赋值)赋值)3131MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)变量(二)变量例例4:用用SET赋值语句为局部变量赋值语句为局部变量no赋值,再用赋值,再用SELECT查查询语句查询出读者表中读者号为询语句查询出读者表中读者号为no的读者信息。的读者
30、信息。代码:代码:USELibraryDECLAREnochar(10)-声明变长字符型局部变量声明变长字符型局部变量SETno=2004060003-局部变量赋值局部变量赋值SELECTRID,Rname-查询语句查询语句FROMReaderWHERERID=no-查询中引用局部变量查询中引用局部变量1.局部变量(局部变量(SET赋值)赋值)3232MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)变量(二)变量代码:代码:USELibraryDECLA
31、REnochar(10)-声明变长字符型局部变量声明变长字符型局部变量SETno=2004060003-局部变量赋值局部变量赋值SELECTRID,Rname-查询语句查询语句FROMReaderWHERERID=no-查询中引用局部变量查询中引用局部变量查询结果:查询结果:1.局部变量(局部变量(SET赋值)赋值)3333MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)变量(二)变量例例5:用用SET赋值语句将学生表赋值语句将学生表“Student”统
32、计查询出的学统计查询出的学生总数赋值给局部变量生总数赋值给局部变量count,并用,并用SELECT语句输出。语句输出。代码:代码:USEEDUCGODECLAREcountint-声明整型局部变量声明整型局部变量-将子查询的结果赋值给局部变量将子查询的结果赋值给局部变量SETcount=(SELECTCOUNT(*)FROMStudent)SELECTcountAS学生总数学生总数1.局部变量(局部变量(SET赋值)赋值)3434MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出
33、版社人民邮电出版社*(二)变量(二)变量代码:代码:USEEDUCGODECLAREcountint-声明整型局部变量声明整型局部变量-将子查询的结果赋值给局部变量将子查询的结果赋值给局部变量SETcount=(SELECTCOUNT(*)FROMStudent)SELECTcountAS学生总数学生总数执行结果:执行结果:1.局部变量(局部变量(SET赋值)赋值)3535MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)变量(二)变量赋值语句比较赋值语句
34、比较SETcount=(SELECTCOUNT(*)FROMStudent)SELECTvar1=RnameFROMReader一般选择约定一般选择约定n当执行一个简单的变量赋值时,使用当执行一个简单的变量赋值时,使用SET赋值语句。赋值语句。n当基于查询进行变量赋值时,使用当基于查询进行变量赋值时,使用SELECT赋值语句。赋值语句。局部变量赋值语句比较局部变量赋值语句比较3636MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)变量(二)变量全局变量全
35、局变量:全局变量是全局变量是SQLServer系统提供并赋值的变量。系统提供并赋值的变量。用用户户不不能能建建立立全全局局变变量量,也也不不能能用用SET赋赋值值语语句句和和SELECT赋值语句修改全局变量的值。赋值语句修改全局变量的值。通常可以将全局变量的值赋给局部变量,以便保存和处理。通常可以将全局变量的值赋给局部变量,以便保存和处理。全全局局变变量量以以开开头头,例例如如,全全局局变变量量servername提提供供服服务务器器名名,全全局局变变量量version提提供供SQLServer的的版版本本信信息息。2.全局变量全局变量3737MicrosoftMicrosoftSQL Ser
36、ver 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)变量(二)变量例例6:显示显示SQLServer的版本。的版本。代码代码:SELECTversion执行结果:执行结果:2.全局变量全局变量3838MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)日期时间类型表达式(三)日期时间类型表达式ISO8601国际标准格式:国际标准格式:YYYY-MM-DDThh:mm:ss
37、.mmmYYYY、MM、DD在在字字符符串串中中分分别别表表示示四四位位数数字字的的年年、两两位位数数字字的的月月和和两两位数字日位数字日T表表示示之之后后为为时时间间,hh为为两两位位数数字字小小时时,mm为为两两位位数数字字分分钟钟,ss为为两两位位数字秒和数字秒和mmm三位数字的毫秒。三位数字的毫秒。例如:例如:2017-03-23、2017-03-23T21:25:10.487或者或者20170323SQLServer2012日期时间数据类型值的存储与显示均为日期时间数据类型值的存储与显示均为“-”号间隔国际标准日期时间格式号间隔国际标准日期时间格式不受不受SETDATEFORMAT或
38、或SETLANGUAGE设置的影响,始终有效设置的影响,始终有效建议设计者尽量使用此格式建议设计者尽量使用此格式1.国际标准日期时间格式国际标准日期时间格式3939MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)日期时间类型表达式(三)日期时间类型表达式年月日之间也可以使用斜线年月日之间也可以使用斜线(/)、连字符、连字符(-)或句点或句点(.)作为分隔符,以满足各个作为分隔符,以满足各个国家日期表达习惯的之需。国家日期表达习惯的之需。特殊日期格式的设置
39、特殊日期格式的设置SETDATEFORMATformat|format_var功能:功能:用用于于解解释释date、datetime2和和datetimeoffset等等类类型型的的字字符符格格式式字字符符串串“年年、月月、日日”在在日日期期部部分分的的顺顺序序。如如果果顺顺序序和和设设置置不不匹匹配配,这这些些值值将将由于超出范围而不会被解释为日期,或者被错误地解释。由于超出范围而不会被解释为日期,或者被错误地解释。不影响存储在数据库中的日期数据类型值的显示,也不影响存储格式。不影响存储在数据库中的日期数据类型值的显示,也不影响存储格式。2.日期的有效格式日期的有效格式4040说明说明参数参
40、数format|format_var为日期部分的顺序为日期部分的顺序有效字符串为:有效字符串为:mdy、dmy、ymd、ydm、myd和和dymMicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)日期时间类型表达式(三)日期时间类型表达式例例7:各种日期字符格式字符串的有效格式设置。各种日期字符格式字符串的有效格式设置。DECLAREOLDTimedate-声明日期型变量声明日期型变量SETDATEFORMATdmy-设置日月年顺序设置日月年顺序SELECT
41、OLDTime=23/3/2017-日月年有效日期字符串日月年有效日期字符串SELECT23/3/2017ASdmy,OLDTimeAS输出格式输出格式-输出常量变输出常量变量量SETDATEFORMATmdy-设置月日年顺序设置月日年顺序SELECTOLDTime=3.23.2012-月日年有效日期字符串月日年有效日期字符串SELECT3.23.2012ASmdy,OLDTimeAS输出格式输出格式-输出常量变量输出常量变量SETDATEFORMATdym-设置日年月顺序设置日年月顺序SELECTOLDTime=23/2017/3-日年月有效日期字符串日年月有效日期字符串SELECT23/2
42、017/3ASdym,OLDTimeAS输出格式输出格式-输出常量变输出常量变量量SELECTOLDTime=2017-3-23-ISO8601有效日期,不受设置影响有效日期,不受设置影响SELECT2017-3-23ASISO8601,OLDTimeAS输出格式输出格式-输输出出2.日期的有效格式日期的有效格式4141MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)日期时间类型表达式(三)日期时间类型表达式例例7:各种日期字符格式字符串的有效格式设置。
43、各种日期字符格式字符串的有效格式设置。DECLAREOLDTimedate-声明日期型变量声明日期型变量SETDATEFORMATdmy-设置日月年顺序设置日月年顺序SELECTOLDTime=23/3/2017-日月年有效日期字符串日月年有效日期字符串SELECT23/3/2017ASdmy,OLDTimeAS输出格式输出格式-输出常量变输出常量变量量SETDATEFORMATmdy-设置月日年顺序设置月日年顺序SELECTOLDTime=3.23.2012-月日年有效日期字符串月日年有效日期字符串SELECT3.23.2012ASmdy,OLDTimeAS输出格式输出格式-输出常量变量输出
44、常量变量SETDATEFORMATdym-设置日年月顺序设置日年月顺序SELECTOLDTime=23/2017/3-日年月有效日期字符串日年月有效日期字符串SELECT23/2017/3ASdym,OLDTimeAS输出格式输出格式-输出常量变输出常量变量量SELECTOLDTime=2017/3/23-ISO8601有效日期,不受设置影响有效日期,不受设置影响SELECT2017/3/23ASISO8601,OLDTimeAS输出格式输出格式-输输出出2.日期的有效格式日期的有效格式4242MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQ
45、LServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)日期时间类型表达式(三)日期时间类型表达式会话语言环境设置:会话语言环境设置:SETLANGUAGENlanguage|language_var功能:功能:指指定定会会话话的的语语言言环环境境。会会话话语语言言确确定定日日期期格格式式和和系系统统消消息息,并并隐隐式式设设置置SETDATEFORMAT的设置。的设置。说明:说明:参参数数Nlanguage|language_var是是存存储储在在系系统统中中的的语语言言的的名名称称,N表示可以使用表示可以使用Unicode的语言。的语言。可通过执行可通过执
46、行sp_helplanguage命令查看各国的语言的信息。命令查看各国的语言的信息。3.会话的语言环境设置会话的语言环境设置4343MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)日期时间类型表达式(三)日期时间类型表达式例例8:会话中日期语言环境设置。会话中日期语言环境设置。DECLARETodayDATESETToday=2017/5/23SETLANGUAGEItalianSELECTDATENAME(WEEKDAY,Today)AS意大利星期意大
47、利星期SETLANGUAGEus_englishSELECTDATENAME(WEEKDAY,Today)AS英文星期英文星期SETLANGUAGE简体中文简体中文SELECTDATENAME(WEEKDAY,Today)AS中文星期中文星期3.会话的语言环境设置会话的语言环境设置4444MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(四)内置函数(四)内置函数常用聚合函数:常用聚合函数:COUNT、SUM、AVG、MAX和和MIN其他其他9种:种:计算标准
48、偏差(计算标准偏差(STDEV)、方差()、方差(VAR)等)等例例9:计算学生表中入学录取成绩的平均分和标准偏差(一种计算学生表中入学录取成绩的平均分和标准偏差(一种量度数据分布的分散程度之标准,用以衡量数据值偏离算术量度数据分布的分散程度之标准,用以衡量数据值偏离算术平均值的程度)。平均值的程度)。1.聚合函数(列函数)聚合函数(列函数)4545MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(四)内置函数(四)内置函数代码:代码:USEEDUCGOSEL
49、ECTAVG(AScores)AS平均分平均分,STDEV(AScores)AS标准偏差标准偏差FROMStudent执行结果:执行结果:说明:说明:从从统统计计学学的的角角度度来来看看,在在平平均均分分数数相相同同的的情情况况下下,标标准准偏偏差差越大说明学生之间的录取分数差距越大。越大说明学生之间的录取分数差距越大。1.聚合函数(列函数)聚合函数(列函数)4646MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(四)内置函数(四)内置函数2.日期时间函数日
50、期时间函数日期元素日期元素日日 期期 元元 素素缩缩 写写含含 义义日日 期期 元元 素素缩缩 写写含含 义义yearYYYY年年quarterQQ季度数季度数monthMM月月hourHH时时dayDD日日minuteMI分分dayofyear DY年的天数年的天数secondSS秒秒weekWK星期数星期数millisecondMS毫秒毫秒weekday DW星期几星期几microsecondMCS微秒微秒4747MicrosoftMicrosoftSQL Server 2012SQL Server 2012SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出