T-SQL基础和存储过程.ppt

上传人:M****1 文档编号:569177100 上传时间:2024-07-28 格式:PPT 页数:74 大小:657.55KB
返回 下载 相关 举报
T-SQL基础和存储过程.ppt_第1页
第1页 / 共74页
T-SQL基础和存储过程.ppt_第2页
第2页 / 共74页
T-SQL基础和存储过程.ppt_第3页
第3页 / 共74页
T-SQL基础和存储过程.ppt_第4页
第4页 / 共74页
T-SQL基础和存储过程.ppt_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《T-SQL基础和存储过程.ppt》由会员分享,可在线阅读,更多相关《T-SQL基础和存储过程.ppt(74页珍藏版)》请在金锄头文库上搜索。

1、Copy by spring第六章第六章T-SQL 基础和存储过程Copy by springT-SQL 基础和存储过程 第第1讲讲T-SQL语言基础语言基础学习要点T-SQL语言基础存储过程T-SQL定义、功能、组成定义、功能、组成定义Transact-SQL(简写为T-SQL)是SQL Server对标准SQL功能的增强与扩充 功能T-SQL可以完成数据库上的各种操作,而且可以编制复杂的例行程序 组成系统内置函数语言基础T-SQL学习要点变量显示和输出语句流程控制语句CASE表达式标识符注 释批处理运算符语言基础标识符标识符定义标识符是指用户在SQL Server中定义的服务器、数据库、数

2、据库对象、变量和列等对象名称 分类常规标识符定界标识符T-SQLT-SQL语言基础标识符常规标识符常规标识符命名原则标识符长度可以为1128个字符。标识符的首字符必须为Unicode 2.0标准所定义的字母或_、符号。标识符第一个字符后面的字符可以为Unicode Standard 2.0所定义的字符、数字或、#、$、_符号。标识符内不能嵌入空格和特殊字符。标识符不能与SQL Server中的保留关键字同名 返回SELECT*FROMinformation此为常规标识符标识符定界标识符定界标识符实质包含在双引号 (“) 或者方括号 ( ) 内的标识符号示例CREATEtable(column1

3、CHAR(10)NOTNULLPRIMARYKEY,column2INT)表名表名Table与与T-SQL保留字相同,用方括号来分隔保留字相同,用方括号来分隔返回语言基础注释注释定义注释是程序代码中不执行的文本字符串。分类 - 用于单行注释/* */ 用于多行注释 示例【例6-2】 T-SQLT-SQL语言基础注释【例例6-2】使用单行与多行注释使用单行与多行注释返回USEstudentGOSELECT*FROMinformation-从表从表information中查询信息中查询信息GO/*下面下面SQL语句语句查询学生信息查询学生信息*/SELECT*FROMinformationGO语言

4、基础批处理批处理说明多条语句作为一个批处理执行时,其语句之间用GO分隔 示例【例6-3】批处理语句 T-SQLT-SQL语言基础USEstudentGOCREATEVIEWv_informationASSELECT*FROMinformationGOSELECT*FROMv_informationGO语言基础运算符运算符算术运算符位运算符比较运算符逻辑运算符T-SQLT-SQL语言基础赋值运算符字符串连接符单目运算符运算符优先级运算符算术运算符算术运算符加(+)减(-)乘(*)除(/)取模(%)返回运算符位运算符位运算符对整数或二进制数据进行按位逻辑运算例如与(&)或(|)异或()求反()等返

5、回运算符比较运算符比较运算符用来比较两个表达式的值是否相同 SQL Server支持的比较运算符包括 : 大于。= 等于。=大于等于。=小于等于。不等于。!= 不等于。! 不大于。!、=、=、!=、!和!(比较运算符)(位异或)、 &(位与)、|(位或)NOTANDOR、ALL、ANY、BETWEEN、IN、LIKE、SOME=(赋值)返回语言基础变量变量局部变量全局变量T-SQLT-SQL语言基础变量局部变量局部变量指名称以一个字符开始,由用户自己定义和赋值的变量 变量声明变量赋值返回局部变量变量声明变量声明DECLARE语句声明变量,并在声明后将变量的值初始化为NULL 基本语句:示例【例

6、6-7】 【例6-8】 局部变量DECLAREvariable_namedate_type,variable_namedata_type 【例例6-7】声明一个datetime类型变量 DECLAREbirthdaydatetime返回【例例6-8】声明两个变量var1和var2,它们的数据类型分别为int和char DECLAREvar1INT,var2CHAR(8)DECLARE语句中可以同时声明多个局部变量,它们相互之间用逗号逗号分隔 返回返回局部变量变量赋值变量赋值变量声明后,DECLARE语句将变量初始化为NULL ,可使用SET语句为变量赋值 基本语句:示例【例6-9】 【例6-1

7、0】 局部变量SELECTvariable_name=expressionFROMWHERE【例例6-9】利用SET语句为所声明的birthday变量赋值 DECLAREbirthdaydatetimeSETbirthday=2006-4-1返回【例例6-10】用SELECT语句将Course表中的最高学分赋值给变量maxxf: 返回结果:USEstudentDECLAREmaxxfINTSELECTmaxxf=MAX(c_credit)FROMcoursePRINTmaxxf返回声明声明maxxf变量变量给给maxxf变量赋值变量赋值输出输出maxxf的值的值5变量全局变量全局变量指由系统定

8、义和维护,名称以字符开始的变量 注意要点全局变量不是由用户的程序定义的,它们是在服务器级定义的。用户只能使用预先定义的全局变量。引用全局变量时,必须以标记符“”开头局部变量的名称不能与全局变量的名称相同 常用全局变量ERROR 【例6-11】 ROWCOUNT 【例6-12】 IDENTITY 返回【例例6-11】使用 全局变量ERROR 在一个 UPDATE 语句中检测限制检查冲突(错误 #547)返回结果USEstudentGOUPDATEinformationSETs_sex=工工WHEREs_no=20021003010IFERROR=547PRINT违反违反Check约束约束!返回返

9、回最后执行的返回最后执行的T-SQL语句的错误代码语句的错误代码返回类型为返回类型为integer【例例6-12】执行 UPDATE 语句并用 ROWCOUNT 来检测是否有发生更改的行 返回结果USEstudentGOUPDATEinformationSETs_name=张三张三WHEREs_no=200200000001IFROWCOUNT=0PRINT警告:没有数据被更新警告:没有数据被更新!返回返回受上一语句影响的行数返回受上一语句影响的行数 语言基础显示和输出语句PRINT语句语句RAISERROR语句语句T-SQLT-SQL语言基础显示与输出语句PRINT语句把用户定义的消息返回客

10、户端 基本语句:示例输出Hello World字符串 显示与输出语句PRINTanyASCIItext|local_variable|FUNCTION|string_exprPRINTHelloWorld显示与输出语句RAISERROR语句返回用户定义的错误信息 基本语句:示例使用RAISERROR 返回结果显示与输出语句RAISERROR(msg_id|msg_str,severity,state)RAISERROR(发生错误发生错误,16,1)语言基础流程控制语句流程控制语句流程控制语句用于控制流程控制语句用于控制T-SQL的执行流程的执行流程BEGINEND语句语句 条件语句条件语句转移

11、语句转移语句循环语句循环语句返回语句返回语句 T-SQLT-SQL语言基础流程控制语句BEGINEND语句语句基本语句格式示例:流程控制语句BEGINSQL语句语句块语句语句块END DECLAREMyVarfloatSETMyVar=456.256BEGINPRINT变量变量MyVar的值为:的值为:PRINTCAST(MyVarASVARCHAR(12)END流程控制语句条件语句条件语句基本语句格式示例:流程控制语句IFSQL语句语句块ELSESQL语句语句块USEstudentGOIFEXISTS(SELECT*FROMinformationWHEREs_name=刘志刘志)PRINT刘

12、志刘志ELSEPRINT没有名为刘志的同学没有名为刘志的同学流程控制语句转移语句转移语句基本语句格式说明:将SQL语句的执行流程无条件转移到用户所指定的标号处 ,一般避免使用GOTO语句流程控制语句GOTO流程控制语句循环语句基本语句格式示例:求1到10之间的奇数和 流程控制语句WHILESQL语句语句块语句语句块BREAKSQL语句语句块语句语句块CONTINUESQL语句语句块语句语句块DECLAREiSMALLINT,sumSMALLINTSETi=1SETsum=0WHILEi=90THEN优秀优秀WHENgrade=80THEN良良WHENgrade=70THEN中中WHENgrad

13、e=60THEN及格及格ELSE不及格不及格ENDFROMscoreWHEREsemester=200401语言基础系统内置函数系统内置函数数据转换函数字符串函数日期和时间函数聚合函数数学函数T-SQLT-SQL语言基础系统内置函数数据转换函数数据转换函数示例【例6-19】【例6-20】系统内置函数函数函数功能功能CAST 将某种数据类型的表达式显式转换为另一种数据类型CONVERT 将某种数据类型的表达式显式转换为另一种数据类型,可以指定长度;Style为日期格式样式【例例6-19】使用 CAST 数据类型转换函数返回结果返回USEstudentGOSELECT成绩是:成绩是:+CAST(g

14、radeASVARCHAR(12)FROMscoreWHEREgrade85.0【例例6-20】使用Convert(CHAR(20),birthday)将日期型变量birthday转换为字符型 返回结果返回DECLAREbirthdaydatetime;SELECTbirthday=s_birthFROMinformationWHEREs_name=周天周天PRINT周天的生日是:周天的生日是:+Convert(CHAR(20),),birthday)周天的生日是:04 20 1984 12:00AM 系统内置函数字符串函数字符串函数系统内置函数示例【例6-21】【例6-22】【例例6-21】

15、使用 xxx 替换 abcdefghi 中的字符串 cde 返回结果返回SELECTREPLACE(abcdefghicde,cde,xxx)abxxxfghixxx【例例6-22】使用LTRIM消除字符串左边的空格 返回结果返回SELECT消除左边空格的结果:消除左边空格的结果:+LTRIM(1234)消除左边空格的结果:1234系统内置函数日期和时间函数日期和时间函数示例【例6-22】【例6-23】系统内置函数【例例6-22】取得系统当前日期 返回结果返回SELECT当前日期:当前日期:+convert(CHAR(50),),GETDATE()()当前日期:11 27 2006 10:28

16、AM【例例6-23】取得系统当前日期中的月份 返回结果SELECT月份为月份为:+convert(CHAR(10),),DATEPART(month,GETDATE()()月份为:11 返回系统内置函数聚合函数聚合函数示例 【例6-24】取得数据库所在的计算机名 返回结果SELECTHOST_NAME()()E-EIW9TD75VVEV0系统内置函数系统内置函数数学函数数学函数示例 【例6-25】系统内置函数【例例6-25】显示使用 CEILING 函数的正数、负数和零值 返回结果SELECTCEILING(123.45),),CEILING(-123.45),),CEILING(0.0)12

17、4 -123 0返回存储过程存储过程存储过程简介SSMS创建存储过程 T-SQL创建和执行存储过程修改和删除存储过程常用系统存储过程学习要点存储过程简介简介定义:SQL Server提供的一种方法,它可以将一些固定的操作集中起来由SQL Server数据库服务器来完成,以实现某个任务 分类1.系统提供的存储过程2.定义的存储过程3.扩展存储过程 存储过程存储过程SSMS创建存储过程创建存储过程Step1:展开数据库右键选择“存储过程” 快捷菜单next存储过程SSMS创建存储过程创建存储过程Step2:打开“新建存储过程”对话框 书写存储过程定义 next存储过程SSMS创建存储过程创建存储过

18、程Step3:查看存储过程 存储过程存储过程T-SQL创建和执行存储过程创建和执行存储过程基本语句创建:执行:示例存储过程: 【例6-26】 执行存储过程:【例6-27】 综合【例6-28】 存储过程CREATEPROCEDURE存储过程名存储过程名参数参数1数据类型数据类型=默认值默认值OUTPUT,参数参数n数据类型数据类型=默认值默认值OUTPUTASSQL语句语句EXECprocedure_nameValue_List【例例6-26】创建一存储过程,检索信息021班学生的记录 返回USEstudentGOCREATEPROCEDUREpr_informationASSELECTs_na

19、me,s_addressFROMinformationWHEREs_class=信息信息021【例例6-27】执行一个名为pr_student的存储过程 返回结果返回USEstudentGOpr_studnet【例例6-28】1.创建一存储过程,检索信息021班学生的记录2.调用AddCourse存储过程插入一条课程号为gdsx、课程名为高等数学、学分为3的记录 返回USEstudentGOCREATEPROCAddCourse(c_noVARCHAR(12),c_nameVARCHAR(20),c_creditINT,c_typeVARCHAR(12)ASINSERTINTOcourseVA

20、LUES(c_no,c_name,c_credit,c_type)EXECAddCoursegdsx,1001高等数学高等数学(2),3,基础课基础课存储过程修改和删除存储过程修改和删除存储过程基本语句格式修改删除示例修改【例6-32】 存储过程CREATEPROCEDURE存储过程名存储过程名参数参数1数据类型数据类型=默认值默认值OUTPUT,参数参数n数据类型数据类型=默认值默认值OUTPUTASSQL语句语句DROPPROCEDURE存储过程名存储过程名【例例6-32】修改存储过程 返回USEstudentGO-创建存储过程创建存储过程p_1CREATEprocp_1AsSELECT*

21、FROMcourseGO-修改存储过程修改存储过程p_1ALTERPROCp_1ASSELECTs_name,s_addressFROMinformationWHEREs_class=信息信息021GOEXECp_1返回结果 存储过程常用系统存储过程常用系统存储过程sp_helpsp_helptextsp_dependssp_stored_proceduressp_rename存储过程常用存储过程sp_help显示存储过程的参数及其数据类型 基本语句格式返回sp_helpobjname=name存储过程的名称存储过程的名称常用存储过程sp_helptext显示存储过程的源代码 基本语句格式返回sp_helptextobjname=name常用存储过程sp_depends显示和存储过程相关的数据库对象 基本语句格式返回sp_depENDsobjname=object为要查看依赖关系为要查看依赖关系的存储过程的名称的存储过程的名称常用存储过程sp_stored_procedures返回当前数据库中的存储过程列表返回常用存储过程sp_rename重命名存储过程 返回sp_rename原存储过程名称,新存储过程名称原存储过程名称,新存储过程名称

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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