2005课件第04章T-SQL语言基础2

上传人:E**** 文档编号:91212571 上传时间:2019-06-26 格式:PPT 页数:64 大小:453KB
返回 下载 相关 举报
2005课件第04章T-SQL语言基础2_第1页
第1页 / 共64页
2005课件第04章T-SQL语言基础2_第2页
第2页 / 共64页
2005课件第04章T-SQL语言基础2_第3页
第3页 / 共64页
2005课件第04章T-SQL语言基础2_第4页
第4页 / 共64页
2005课件第04章T-SQL语言基础2_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《2005课件第04章T-SQL语言基础2》由会员分享,可在线阅读,更多相关《2005课件第04章T-SQL语言基础2(64页珍藏版)》请在金锄头文库上搜索。

1、第04章 Transact-SQL语言基础,内容提要: 本章主要介绍Transact-SQL语言中的常量、变量、函数、表达式等语言成份和控制流语句等。,第04章 Transact-SQL语言基础,4.1 了解Transact-SQL编程语言 4.2 Transact-SQL语法要素 4.3 Transact-SQL运算符 4.4 Transact-SQL函数 4.5 Transact-SQL表达式 4.6 Transact-SQL控制流语句 4.7小结,知识目标,正确理解和掌握使用SQL Server变量; 掌握SQL Server 函数的使用; 掌握流程控制语句; 掌握编写顺序结构、选择结构

2、和循环结构的程序,Transact-SQL语法格式约定,Transact-SQL 数据库对象命名方法,所有对数据库对象名的引用可以是由四部分组成的名称,格式如下。 server_namedatabase_nameschema_name | database_nameschema_name | schema_name object_name 各部分说明如下。 server_name:连接的服务器名称或远程服务器名称。 database_name:SQL Server 数据库的名称 。 schema_name :指定包含对象的架构的名称。 object_name :对象的名称。,对象名的有效格式,

3、利用CREATE TABLE语句在数据库teaching建立课程信息表course的程序代码如下: CREATE TABLE teaching.dbo.course( courseno nchar(6) NOT NULL, cname nchar(20) NULL, type nchar(8) NULL, period tinyint NULL, credit numeric(4, 1) NULL, CONSTRAINT PK_course PRIMARY KEY CLUSTERED ( Courseno ASC ) ) ON PRIMARY,Transact-SQL 语言的分类,(1)数据定

4、义语言DDL:用来创建数据库和数据库对象的命令。 (2)数据操作语言DML:用来操作数据库中各种对象,对数据进行修改和检索。 (3)数据控制语言DCL:用来设置或更改数据库用户或角色权限的语句。 (4)控制流语句:用于控制SQL语句、语句块或者存储过程的执行流程。,Transact-SQL 语法要素,标识符 常量 变量 注释,标识符,1常规标识符 常规标识符是符合成为常规标识符的下列格式规则的对象名称。 常规标识符的字母要符合如下格式规则: 标识符可以以字母开头,也可以符号(表示局部变量)、#(表示临时变量)或者下划线_开头。 后续字符可以是字母、数字和下划线。 标识符不能是Transact-

5、SQL的保留字。 标识符中不允许嵌入空格或特殊字符。,例如,下面给出的示例都是合法的常规标识符。 -声明了一个名为Ex_Local的局部变量。 DECLARE Ex_Local NCHAR(10) -声明了一个名为Ex_Table的表变量。 DECLARE Ex_Table TABLE(col1,CHAR) -定义了一个名为sp_User1的存储过程标识符。 CREATE PROCEDURE sp_User1 AS BEGIN END,2分隔标识符 符合所有标识符格式规则的标识符可以使用分隔符,也可以不使用分隔符。不符合常规标识符格式规则的标识符必须使用分隔符,使用方括号 “ ”进行分隔。 分

6、隔符仅用于标识符,不能用于关键字。,例如,可以创建名为 Employee 的表,其中右方括号是名称的一部分。若要执行此操作,必须再使用两个方括号以避免因使用右方括号而出现问题,如下所示: CREATE TABLE Employee ( EmployeeID int NOT NULL, FirstName varchar(30), LastName varchar(30) )-,常量,根据常量值的不同类型,常量分为字符串常量、二进制常量、整型常量、实数常量、日期时间常量、货币常量和惟一标识常量。,以下是字符串的示例: CA123 OBrien Process X is 50%. The leve

7、l for job_id: %d should be between %d and %d. “OBrien“ 对于Unicode 字符串,其前面必须有一个大写字母N 前缀。例如,ABCD 是字符串常量而 NABDC 则是 Unicode 常量。,数值型常量(包括integer 、decimal、 float 、money等类型)若要指示一个数是正数还是负数,可以对数值常量应用 + 或 - 一元运算符,成为一个表示有符号数字值的表达式。如果没有应用+或-一元运算符,则数值常量为正数。 例如,各数值类型的正负数示例如下: +3356 918 -2277 +3.1426 7.3789 -2.7182

8、8 +123E-3 -12E5 -$45.56 +$423456.99 $423455,变量,SQL Server2005提供两种变量:用户自己定义的局部变量和系统提供的全局变量。,局部变量,用户自己定义的变量称为局部变量,它的作用范围仅限制在程序内部。 定义格式: DECLARE 局部变量名 数据类型 ,.n 局部变量的赋值 SET 局部变量名 = 表达式,n SELECT 局部变量名 = 表达式,n FROM 子句 WHERE 子句 SET命令一次只能为一个变量赋值,而SELECT命令可以同时为多个变量赋值。,例4.1声明一个myvar 变量,然后将一个字符串值放在变量中,再输出myvar

9、 变量的值。 程序代码如下: DECLARE myvar nchar(20) set myvar = This is a test SELECT myvar GO,练习题,定义两个变量,并分别使用SET和 SELECT为其赋值,然后使用这两个变量查询价格小于50且出版社为“大李工作室”的书籍。,全局变量,全局变量由系统定义和维护的变量,用于记录服务器活动状态的一组数据。全局变量名由符号开始。用户不能建立全局变量,也不可能使用SET语句去修改全局变量的值。在SQL Server2005 中,全局变量以系统函数的形式在使用。,例4.2显示到当前日期和时间为止试图登录SQL Server 2005的

10、次数。 程序代码如下: SELECT GETDATE() AS 当前的时期和时间, CONNECTIONS AS 试图登录的次数,在SQL Server 2005中,可以使用两种类型的注释方法: -注释。该方式用于单行注释。 /* */注释。“/*”用于注释文字的 开头,“*/”用于注释文字的结尾,利用它们可以在程序中标识多行文字为注释。当然,单行注释也可以使用。,例4.3 为前面的例子添加注释。 程序代码如下: DECLARE myvar nchar(20) -定义变量myvar /* 下面第一行给变量赋值 第2行输出变量值 */ set myvar = This is a test SEL

11、ECT myvar GO,注释,Transact-SQL运算符,运算符的优先级 在SQL Server 2005中,当一个复杂的表达式中包含多种运算符时,运算符的优先顺序将决定表达式的计算和比较顺序。,算术运算符,位运算符,比较运算符,逻辑运算符,例4.5 逻辑运算符IN的使用方法。 程序代码如下: USE teaching GO SELECT * FROM score WHERE studentno IN(0925111109,0823210007,0937221508) 查询结果如图所示。,例4.6 逻辑运算符BETWEEN的使用方法。 程序代码如下: USE teaching GO SE

12、LECT * FROM score WHERE final BETWEEN 90 AND 99,字符串串联运算符,加号 (+) 是字符串串联运算符,将字符串串联起来。 例如,采购部主管: + 张立 的结果就是采购部主管:张立。,一元运算符,Transact-SQL控制流语句,流程控制语句是指那些用来控制程序执行和流程分支的命令,在SQL Server 2005中,流程控制语句主要用来控制SQL语句、语句块或者存储过程的执行流程。 1 IFELSE语句 2 BEGINEND语句 3 WHILECONTINUEBREAK语句 4 WAITFOR语句 5 RETURN语句,流程控制语句,1、BEGI

13、N END 语句 BEGIN END 语句用于将多个 Transact-SQL 语句组合为一个逻辑块,相当于一个单一语句,达到一起执行的目的。它的语法格式如下。 BEGIN 语句1 语句2 END SQL Server 2005允许BEGIN END 语句嵌套使用。,例4.12 用BEGIN END 语句可使IF 语句在计算结果为FALSE时跳过语句块。 程序代码如下: DECLARE MyVar float Set MyVar=5.7 If MyVar10.8 BEGIN SET MyVar = 123.456 PRINT 变量MyVar的值为: PRINT CAST(MyVar AS va

14、rchar(12 ) END ELSE PRINT CAST(MyVar AS varchar(12 ),declare a int,b varchar(8) set a=1 set b=大 print a+ +b declare a int,b varchar(8) set a=1 set b=大 print cast(a as varchar)+ +b 结果:1 大,练习,将两个变量打印后的值显示为s-q 的形式,比如5-8。 declare s int,q int select s=5,q=8 print cast(s as varchar(2)+-+cast(q as varchar(

15、2),流程控制语句(续),2、IFELSE语句 IFELSE语句实现程序选择结构。它的语法格式如下。 IF 逻辑表达式 语句块1 ELSE 语句块 2 ,例4.11在Transact-SQL中使用IF语句。 程序代码如下: DECLARE point AS int Set point =87 IF point =60 PRINT pass ,very good ! ELSE PRINT no pass , try again!,流程控制语句(续),3、WHILE、CONTINUE和BREAK语句 WHILE 语句实现循环结构。如果指定的条件为真,就重复执行语句块,直到逻辑表达式为假。其中,CONTINUE语句可以使程序跳过CONTINUE语句后面的语句,回到WHILE循环的第一行命令。BREAK语句则使程序完全跳出循环,结束WHILE语句的执行。 它的语法格式如下。 WHILE 逻辑表达式 BEGIN 语句块1 CONTINUE BREAK 语句块2 END,例4.13 循环控制语句WHILE的使用方法。 程序代码如下: declare r int ,s int ,t int select r=2,s=3 print r while r 5 begin select t=100*r+s print t select r=r+2 Select

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号