《第5章 TSQL语言.ppt》由会员分享,可在线阅读,更多相关《第5章 TSQL语言.ppt(113页珍藏版)》请在三一办公上搜索。
1、第5章 T-SQL语言,(1)数据定义语言(DDL)。,第5章 T-SQL语言,(2)数据操纵语言(DML)。,第5章 T-SQL语言,(3)数据控制语言(DCL)。,5.1 常量、变量与数据类型,5.1.1 常 量,1.字符串常量,5.1.1 常 量,2.整型常量,5.1.1 常 量,3.实型常量,5.1.1 常 量,4.日期时间常量,5.1.1 常 量,5.1.2 数据类型,1.系统数据类型,2.用户自定义数据类型,5.1.2 数据类型,5.1.2 数 据 类 型,1)利用企业管理器定义,5.1.2 数 据 类 型,5.1.2 数 据 类 型,2)利用命令定义数据类型,语法格式,5.1.2
2、 数 据 类 型,3.自定义数据类型的删除1)用企业管理器删除自定义数据类型,5.1.2 数 据 类 型,2)义数利用命令删除自定据类型,删除library_card_num类型的语句为:,5.1.2 数 据 类 型,4.利用自定义类型定义字段,5.1.2 数 据 类 型,5.1.3 变 量,1.变 量,1)标识符,(1)常规标识符,(2)分隔标识符,2)变量的分类,(1)全局变量,(2)局部变量,以ASCII字母、Unicode字母、下划线(_)、或#开头,可后续一个或若干个ASCII字符、Unicode字符、下划线(_)、美元符号($)、或#,但不能全为下划线(_)、或#。,5.1.3 变
3、 量,2.局部变量的使用1)局部变量的定义与赋值(1)局部变量的定义,(2)局部变量的赋值,5.1.3 变 量,例如:创建局部变量var1、var2,并赋值,然后输出变量的值。,5.1.3 变 量,例如:创建一个名为sex的局部变量,并在 SELECT 语句中使用该局部变量查找表XS中所有男同学的借书证号、姓名。,5.1.3 变 量,例如:查询用于给 var1 赋值。在 XS 表中ID_number不存在,因此子查询不返回值,并将变量var1设为 NULL。,5.1.3 变 量,2)局部游标变量的定义与赋值(1)局部游标变量的定义,5.1.3 变 量,5.1.3 变 量,5.1.3 变 量,(
4、3)游标变量的使用步骤,例如:使用游标变量,5.1.3 变 量,5.2 运算符与表达式,1算术运算符,例如:求读者的年龄,5.2 运算符与表达式,2.位运算符,5.2 运算符与表达式,例如:在maste数据库中,建立表bitop,并插入一行,然后将a字段和 b字段上的值进行位运算。,5.2 运算符与表达式,5.2 运算符与表达式,5.2 运算符与表达式,3.比较运算符,5.2 运算符与表达式,例如:用于查询指定借书证号的学生在XS表中的信息。,5.2 运算符与表达式,4.逻辑运算符,5.2 运算符与表达式,1)ANY、SOME、ALL、IN的使用,例如:查询借书数量最多的读者借书证号、姓名及借
5、书数量。,5.2 运算符与表达式,5.2 运算符与表达式,例如:查询借书数量多于王娟借书数量的读者借书证号、姓名、借书数量。,5.2 运算符与表达式,2)BETWEEN的使用,例如:查询借书数量不在 510本之间的借书证号、姓名及借书量。,5.2 运算符与表达式,例如:查询借书数量在 510本之间的借书证号、姓名及借书量。,5.2 运算符与表达式,3)LIKE的使用,5.2 运算符与表达式,5.2 运算符与表达式,例如:查询书名以“计算机”开头的书籍的有关信息,5.2 运算符与表达式,例如:在如下的存储过程定义中,读者的借书证号作为入口参数,然后使用模式匹配查找某个学生借的全部书籍。,5.2
6、运算符与表达式,5.2 运算符与表达式,4)EXISTS与NOT EXISTS的使用,例如:查询所有当前借了书的读者借书证号、姓名。,5.2 运算符与表达式,5.2 运算符与表达式,5.字符串联接运算符,例如:多个字符串的联接。,5.2 运算符与表达式,6.一元运算,7.赋值运算符,指给局部变量赋值的SET和SELECT语句中使用的“=”。,5.2 运算符与表达式,8.运算符的优先顺序,5.3 流程控制语句,5.3.1 IF.ELSE语句,5.3.1 IF.ELSE语句,5.3.1 IF.ELSE语句,例如:如果“数据库原理”这一书籍的价格高于平均价格,则显示:“数据库原理的价格高于平均价格”
7、,否则显示“数据库原理的价格低于平均价格”。,5.3.1 IF.ELSE语句,5.3.2 GOTO语句,5.3.3 WHILE、BREAK和CONTINUE语句,1.WHILE循环语句,5.3.3 WHILE、BREAK和CONTINUE语句,5.3.3 WHILE、BREAK和CONTINUE语句,例如:显示字符串China中每个字符的 ASCII 值和字符。,5.3.4 RETURN语句,5.3.4 RETURN语句,例如:创建存储过程checkcount,根据书籍的ISBN检查其库存量,若库存量0,返回状态代码 1,否则,返回状态代码 2。,5.3.4 RETURN语句,5.3.5 WA
8、ITFOR语句,例如:语句设定在早上八点执行存储过程 Manager。,5.4 系统内置函数,SQL Server包含如下几类标量函数:,5.4 系统内置函数,1.数学函数,5.4 系统内置函数,例如:下面程序返回给定角的 ACOS 值。,5.4 系统内置函数,例如:下面程序通过 RAND 函数产生随机值。,5.4 系统内置函数,2.字符串处理函数,5.4 系统内置函数,例如:返回书名最左边的 10 个字符。,5.4 系统内置函数,例如:使用 LTRIM 字符删除字符变量中的起始空格。,例如:用 REPLACE实现字符串的替换。,5.4 系统内置函数,5.4 系统内置函数,例如:下面程序用于查
9、询ISBN号7-111-06359-7书籍的书名和库存量。,5.4 系统内置函数,3.系统函数,1)CASE函数,5.4 系统内置函数,5.4 系统内置函数,例如:使用 CASE 函数对读者按性别分类。,5.4 系统内置函数,2)CAST 和 CONVERT函数,5.4 系统内置函数,例如:下程序将检索库存量为3050的ISBN、书名,并将库存量转换为 char(20)。,5.4 系统内置函数,5.4 系统内置函数,5.4 系统内置函数,5.4 系统内置函数,3)COALESCE函数,5.4 系统内置函数,4.日期时间函数,5.4 系统内置函数,5.4 系统内置函数,例如:编写程序根据读者的出
10、生时间,计算其年龄。,5.4 系统内置函数,5.游标函数,5.4 系统内置函数,5.4 系统内置函数,5.4 系统内置函数,例如:用 FETCH_STATUS 控制在一个 WHILE 循环中的游标活动。,5.4 系统内置函数,6.元数据函数,5.5 用户定义函数,根据用户定义函数返回值的类型,可将用户定义函数分为如下三类:,5.5.1 系统表sysobjects,5.5.2 用户函数的定义与调用,5.5.2 用户函数的定义与调用,函数与其引用对象(如数据库表)的绑定关系只有在发生以下两种情况之一时才被解除:,5.5.2 用户函数的定义与调用,例如:定义一函数,按性别计算当前所有读者的平均年龄。
11、,5.5.2 用户函数的定义与调用,5.5.2 用户函数的定义与调用,5.5.2 用户函数的定义与调用,2)标量函数的调用,(1)在SELECT语句中调用,5.5.2 用户函数的定义与调用,(2)利用EXEC语句执行,例如:利用EXEC调用用户定义函数aver_age。,5.5.2 用户函数的定义与调用,2.内嵌表值函数,5.5.2 用户函数的定义与调用,5.5.2 用户函数的定义与调用,例如:对于XSBOOK数据库,若需要定义查询读者借阅历史的内嵌表值函数,如何实现?,5.5.2 用户函数的定义与调用,5.5.2 用户函数的定义与调用,5.5.2 用户函数的定义与调用,2)内嵌表值函数的调用
12、,例如:调用fn_query()函数,查询借书证号为“10000001”读者的借阅历史。,5.5.2 用户函数的定义与调用,3.多语句表值函数,5.5.2 用户函数的定义与调用,5.5.2 用户函数的定义与调用,例如:在XSBOOK数据库中创建返回table的函数book_readers,通过以ISBN号为实参,调用该函数,查询该书的名称,当前借阅该书的所有读者的借书证号、姓名及索书号。,5.5.2 用户函数的定义与调用,5.5.2 用户函数的定义与调用,4.用户函数的建立,1)利用查询分析器创建用户定义函数,2)利用企业管理器创建用户定义函数,5.5.2 用户函数的定义与调用,5.5.3 用户函数的删除,5.6 综合应用训练,