SQL Server数据库管理、开发与实践 教学课件 ppt 作者 郑诚 第3章 Transact-SQL 语法基础

上传人:E**** 文档编号:89455375 上传时间:2019-05-25 格式:PPTX 页数:60 大小:1.01MB
返回 下载 相关 举报
SQL Server数据库管理、开发与实践 教学课件 ppt 作者  郑诚 第3章  Transact-SQL 语法基础_第1页
第1页 / 共60页
SQL Server数据库管理、开发与实践 教学课件 ppt 作者  郑诚 第3章  Transact-SQL 语法基础_第2页
第2页 / 共60页
SQL Server数据库管理、开发与实践 教学课件 ppt 作者  郑诚 第3章  Transact-SQL 语法基础_第3页
第3页 / 共60页
SQL Server数据库管理、开发与实践 教学课件 ppt 作者  郑诚 第3章  Transact-SQL 语法基础_第4页
第4页 / 共60页
SQL Server数据库管理、开发与实践 教学课件 ppt 作者  郑诚 第3章  Transact-SQL 语法基础_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《SQL Server数据库管理、开发与实践 教学课件 ppt 作者 郑诚 第3章 Transact-SQL 语法基础》由会员分享,可在线阅读,更多相关《SQL Server数据库管理、开发与实践 教学课件 ppt 作者 郑诚 第3章 Transact-SQL 语法基础(60页珍藏版)》请在金锄头文库上搜索。

1、本章要求,第3章 Transact-SQL 语法基础,T-SQL语言的组成 T-SQL语句结构 T-SQL语句分类 常量 变量 注释符、运算符与通配符 流程控制语句,主要内容,第3章 Transact-SQL 语法基础,1.T-SQL概述 2.常量 3.变量 4.注释符、运算符与通配符 5.流 程 控 制 6.综合实例修改数据库中的表,3.1.1 T-SQL语言的组成 3.1.2 T-SQL语句结构,3.1 T-SQL概述,T-SQL语言是具有强大查询功能的数据库语言,除此以外,T-SQL还可以控制DBMS为其用户提供的所有功能,主要包括如下: 数据定义语言(DDL,Data Definiti

2、on Language):SQL让用户定义存储数据的结构和组织,以及数据项之间的关系。 数据检索语言:SQL允许用户或应用程序从数据库中检索存储的数据并使用它。 数据操纵语言(DML,Data Manipulation Language):SQL允许用户或应用程序通过添加新数据、删除旧数据和修改以前存储的数据对数据库进行更新。 数据控制语言(DCL,Data Control Language):可以使用SQL来限制用户检索、添加和修改数据的能力,保护存储的数据不被未授权的用户所访问。 数据共享:可以使用SQL来协调多个并发用户共享数据,确保他们不会相互干扰。 数据完整性:SQL在数据库中定义完

3、整性约束条件,使它不会由不一致的更新或系统失败而遭到破坏。 因此,T-SQL是一种综合性语言,用来控制并与数据库管理系统进行交互作用。T-SQL是数据库子语言,包含大约40条专用于数据库管理任务的语句。各类的SQL语句分别如表3-1表3-5所示。,3.1.1 T-SQL语言的组成,数据操作类SQL语句如表3-1所示。 表3-1 数据操作类SQL语句 数据定义类SQL语句如表3-2所示。 表3-2 数据定义类SQL语句,数据控制类SQL语句如表3-3所示。 事务控制类SQL语句如表3-4所示。 程序化SQL语句如表3-5所示。,每条SQL语句均由一个谓词(Verb)开始,该谓词描述这条语句要产生

4、的动作,例如SELECT或UPDATE关键字。谓词后紧接着一个或多个子句(Clause),子句中给出了被谓词作用的数据或提供谓词动作的详细信息。每一条子句都由一个关键字开始。下面以SELECT语句为例介绍T-SQL语句的结构,语法格式如下: SELECT 子句 INTO 子句 FROM 子句 WHERE 子句 GROUP BY 子句 HAVING 子句 ORDER BY 子句,3.1.2 T-SQL语句结构,【例3-1】 在Student数据库中查询“course”表的信息。在查询分析器中运行的结果如图3-1所示 图3-1 查询“course”数据表的信息 SQL语句如下: use stude

5、nt select * from course where 课程类别=艺术类 order by 课程内容,【例3-1】查询“course”数据表的信息,3.2.1 字符串常量 3.2.2 二进制常量 3.2.3 bit 常量 3.2.4 日期和时间常量,3.2 常量,字符串常量定义在单引号内。字符串常量包含字母、数字字符(az、AZ和09)及特殊字符(如数字号#、感叹号!、at符)。 例如,以下为字符串常量: Hello World Microsoft Windows Good Morning ,3.2.1 字符串常量,在TransactSQL中定义二进制常量,需要使用0x,并采用十六进制来表

6、示,不再需要括号。 例如,以下为二进制常量: 0xB0A1 0xB0C4 0xB0C5,3.2.2 二进制常量,在TransactSQL中,bit常量使用数字0或1即可,并且不包括在引号中。如果使用一个大于1的数字,则该数字将转换为1。,3.2.3 bit常量,定义日期和时间常量需要使用特定格式的字符日期值,并使用单引号。 例如,以下为日期和时间常量: 2008年1月9日 15:39:15 01/09/2008 06:59 AM,3.2.4 日期和时间常量,3.3.1 局部变量 3.3.2 全局变量,3.3 变量,局部变量是用户可自定义的变量,它的作用范围仅在程序内部。局部变量的名称是用户自定

7、义的,命名的局部变量名要符合SQL Server标识符命名规则,局部变量名必须以开头。 1声明局部变量 局部变量的声明需要使用DECLARE语句。语法格式如下: DECLARE varaible_name datatype , n 参数说明: varaible_name:局部变量的变量名必须以开头,另外变量名的形式必须符合SQL Server标识符的命名方式。 datatype:局部变量使用的数据类型可以是除text , ntext或者image类型外所有的系统数据类型和用户自定义数据类型。一般来说,如果没有特殊的用途,建议在应用时尽量使用系统提供的数据类型。这样做,可以减少维护应用程序的工作

8、量。 例如:声明局部变量 songname,SQL语句如下: declare songname char(10),3.3.1 局部变量,2为局部变量赋值 为变量赋值的方式一般有两种,一种是使用SELECT语句,一种是使用SET语句。使用SELECT语句为变量赋值的语法如下: SELECT varible_name = expression FROM table_name , n WHERE clause 上面的SELECT语句的作用是为了给变量赋值,而不是为了从表中查询出数据。而且在使用SELECT语句进行赋值的过程中,并不一定非要使用FROM关键字和WHERE子句。,【例3-2】 在“stu

9、dent”数据库的“course”表中,把“课程内容”是“艺术类”信息赋值给局部变量songname,并把它的值用print关键字显示出来。在查询分析器中运行的结果如图3-2所示。 图3-2 把查询内容赋值给局部变量,【例3-2】把查询内容赋值给局部变量,SQL语句如下: use student declare songname char(10) select songname=课程内容 from course where 课程类别=艺术类 print songname SELECT语句赋值和查询不能混淆,例如声明一个局部变量名是 b并赋值的SQL语句如下: declare b int sel

10、ect b=1 另一种为局部变量赋值的方式是使用SET语句。使用SET语句对变量进行赋值的常用语法如下: SET varible_name = ecpression , n 下面是一个简单的赋值语句: DECLARE song char(20) SET song = I love flower 还可以为多个变量一起赋值,相应的SQL语句如下所示: declare b int, c char(10),a int select b=1, c=love,a=2 注意:数据库语言和编程语言有一些关键字,关键字是在某一环境下能够促使某一操作发生的字符组。为避免冲突和产生错误,在命名表、列、变量以及其他对

11、象时应避免使用关键字。,全局变量是SQL Server系统内部事先定义好的变量,不需要用户参与定义,对用户而言,其作用范围并不局限于某一程序,而是任何程序均可随时调用。全局变量通常用于存储一些SQL Server的配置设定值和效能统计数据。 SQL Server一共提供了30多个全局变量,本节只对一些常用变量的功能和使用方法进行介绍。全局变量的名称都是以开头的。 (1)CONNECTIONS 记录自最后一次服务器启动以来,所有针对这台服务器进行的连接数目,包括没有连接成功的尝试。 使用CONNECTIONS可以让系统管理员很容易地得到今天所有试图连接本服务器的连接数目。 (2)CUP_BUSY

12、 记录自上次启动以来尝试的连接数,无论连接成功还是失败,都以ms为单位的CPU工作时间。 (3)CURSOR_ROWS 返回在本次服务器连接中,打开游标取出数据行的数目。 (4)DBTS 返回当前数据库中timestamp数据类型的当前值。,3.3.2 全局变量,(5)ERROR 返回执行上一条Transact-SQL语句所返回的错误代码。 在SQL Server服务器执行完一条语句后,如果该语句执行成功,将返回ERROR的值为0,如果该语句执行过程中发生错误,将返回错误的信息,而ERROR将返回相应的错误编号,该编号将一直保持下去,直到下一条语句得到执行为止。 由于ERROR在每一条语句执行

13、后被清除并且重置,应在语句验证后立即检查它,或将其保存到一个局部变量中以备事后查看。 【例3-3】 在“pubs”数据库中修改“authors”数据表时,用ERROR检测限制查询冲突。在查询分析器中运行的结果如图3-3所示。 图3-3 修改数据时检测错误,【例3-3】修改数据时检测错误,SQL语句如下: USE pubs GO UPDATE authors SET au_id = 172 32 1176 WHERE au_id = 172-32-1176 IF ERROR = 547 print A check constraint violation occurred (6)FETCH_ST

14、ATUS 返回上一次使用游标FETCH操作所返回的状态值,且返回值为整型。 返回值描述如表3-6所示。 表3-6 FETCH_STATUS返回值的描述 例如,到了最后一行数据后,还要接着取下一行数据,返回的值为2,表示返回的值已经丢失。,(7)IDENTITY 返回最近一次插入的identity列的数值,返回值是numeric。 【例3-4】 在“pugs”数据库中的“jobs”数据表中,插入一行数据,并用identity显示新行的标识值。在查询分析器运行的结果如图3-4所示。 图3-4 显示新行的标识值 SQL语句如下: USE pubs INSERT INTO jobs (job_desc

15、,min_lvl,max_lvl) VALUES (Accountant,12,125) SELECT IDENTITY AS Identity (8)IDLE 返回以ms为单位计算SQL Server服务器自最近一次启动以来处于停顿状态的时间。,【例3-4】显示新行的标识值,(9)IO_BUSY 返回以ms为单位计算的SQL Server服务器自最近一次启动以来花在输入和输出上的时间。 (10)LOCK_TIMEOUT 返回当前对数据锁定的超时设置。 (11)PACK_RECEIVED 返回SQL Server服务器自最近一次启动以来一共从网络上接收数据分组的数目。 (12)PACK_SENT 返回SQL Server服务器自最近一次启动以来一共向网络上发送数据分组的数目。 (13)PROCID 返回当前存储过程的ID标识。 (14)REMSERVER 返回在登录记录中记载远程SQL Server服务器的名字。 (15)ROWCOUNT 返回上一条SQL语句所影响到数据行的数目。对所有不影响数据库数据的SQL语句,这个全局变量返回的结果是0。在进行数据库编程时,经常要检测ROWCOUNT的返回值,以便明确所执行的操作是否达到了目标。,(16)SPID 返回当前服务器进程的ID标识。 (17)TOTAL_ERRORS 返回自

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

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

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