数据库编程(1).pdf
《数据库编程(1).pdf》由会员分享,可在线阅读,更多相关《数据库编程(1).pdf(56页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、 )1 数据库原理与应用数据库原理与应用 第第7 7章章 数据库高级应用数据库高级应用 (1)(1)2 复复 习习 SQL Server中的数据类型中的数据类型?函数和过程函数和过程?)3 第第7 7章章 数据库高级应用数据库高级应用 7.1 T-SQL程序设计程序设计 7.2 存储过程存储过程 7.3 触发器触发器 7.4 备份和还原备份和还原 )4 7.1 7.1 T TSQLSQL程序设计程序设计 7.1.1 7.1.1 T T-SQLSQL程序的结构与批处理程序的结构与批处理 7.1.2 7.1.2 变量变量 7.1.3 7.1.3 控制语句控制语句 7.1.4 7.1.4 常用命令常
2、用命令 7.1.5 7.1.5 常用函数常用函数 )5 7.1.1 7.1.1 T T-SQLSQL程序的结构与批处理程序的结构与批处理 T T-SQLSQL语言就是在标准语言就是在标准SQLSQL的基础上进行扩充而推的基础上进行扩充而推 出的出的SQL ServerSQL Server专用专用的结构化的结构化SQLSQL。主要用途:设计服务器端能够在后台执行的程序主要用途:设计服务器端能够在后台执行的程序 块。块。1.Transact-SQL程序的结构程序的结构 例如,打开例如,打开Teach数据库,并从数据表数据库,并从数据表SC中读取中读取学号为“学号为“S1”同学所学课程的平均分,如果
3、该平均同学所学课程的平均分,如果该平均分大于等于分大于等于60分,则程序输出“总评及格”,否则分,则程序输出“总评及格”,否则输出“总评成绩不及格”。输出“总评成绩不及格”。USE Teach -将将教学管理数据库教学管理数据库Teach置为当前置为当前数据库数据库 GO DECLARE AvgScore DECIMAL/*定义变量定义变量AvgScore*/SET AvgScore=60 /*给变量给变量AvgScore赋值初值赋值初值*/IF(SELECT AVG(Score)FROM SC WHERE SNo=S1)=AvgScore -输出结果输出结果 PRINT 总评超过总评超过+C
4、ONVERT(VARCHAR(8),AvgScore)ELSE -输出结果输出结果 PRINT 总评没达到总评没达到+CONVERT(VARCHAR(8),AvgScore)-执行批处理执行批处理 GO )7 7.1.1 7.1.1 T T-SQLSQL程序的结构与批处理程序的结构与批处理 T T-SQLSQL语言就是在标准语言就是在标准SQLSQL的基础上进行扩充而推的基础上进行扩充而推 出的出的SQL ServerSQL Server专用的结构化专用的结构化SQLSQL。主要用途:设计服务器端能够在后台执行的程序主要用途:设计服务器端能够在后台执行的程序 块。块。1.Transact-SQ
5、L程序的结构程序的结构 例如,打开例如,打开Teach数据库,并从数据表数据库,并从数据表SC中读取中读取学号为“学号为“S1”同学所学课程的平均分,如果该平均同学所学课程的平均分,如果该平均分大于等于分大于等于60分,则程序输出“总评及格”,否则分,则程序输出“总评及格”,否则输出“总评成绩不及格”。输出“总评成绩不及格”。可以看出,一个可以看出,一个T T-SQLSQL程序与一般的高级语言程序与一般的高级语言 的语法要素基本一致,包括:的语法要素基本一致,包括:注释、变量与常量、注释、变量与常量、各种运算符、函数与表达式、流程控制语句、批处各种运算符、函数与表达式、流程控制语句、批处 理理
6、等等 。)8 7.1.1 7.1.1 T T-SQLSQL程序的结构与批处理程序的结构与批处理 2.T-SQL程序的批处理程序的批处理 在在T T-SQLSQL程序内,程序内,两个两个“GOGO”标记符之间标记符之间的代码的代码称为一个称为一个“批批”。SQL ServerSQL Server对对T T-SQLSQL程序的编译和执行是按照程序的编译和执行是按照“批批”为单位来进行的,称为为单位来进行的,称为批处理批处理。一个一个T T-SQLSQL程序内可以包含多个程序内可以包含多个“批批”)9 7.1 7.1 T TSQLSQL程序设计程序设计 7.1.1 7.1.1 T T-SQLSQL程
7、序的结构与批处理程序的结构与批处理 7.1.2 7.1.2 变量变量 7.1.3 7.1.3 控制语句控制语句 7.1.4 7.1.4 常用命令常用命令 7.1.5 7.1.5 常用函数常用函数 )10 7.1.2 7.1.2 变量变量 T T-SQLSQL中可以使用两种变量中可以使用两种变量 局部变量局部变量和和全局变量全局变量 1.1.局部变量局部变量 用户可以定义的变量用户可以定义的变量 变量名不区分大小写变量名不区分大小写 必须以必须以 开头开头 先声明后使用先声明后使用 )11 7.1.2 7.1.2 变量变量 (1)(1)局部变量的定义局部变量的定义 DECLARE 变量名变量名
8、数据类型数据类型 ,变量名变量名 数据类型数据类型,(2)(2)局部变量的赋值局部变量的赋值 SET语句语句:SET 局部变量名局部变量名 表达式表达式 SELECT语句语句:SELECT 局部变量名局部变量名 表达式表达式 ,n )12 7.2.2 7.2.2 变量变量 (3)(3)局部变量的输出局部变量的输出 SELECT语句语句:SELECT 局部变量名局部变量名,n PRINT语句语句:PRINT 局部变量名局部变量名 )13 7.2.2 7.2.2 变量变量 例例1定义一个变量,并赋值。定义一个变量,并赋值。declare sno varchar(10),sn varchar(10)
9、set sno=2008110121 set sn=王华王华 select sno,sn Print sno,sn )14 复习复习 变量的声明变量的声明 DECLARE 变量名变量名 数据类型数据类型 变量赋值变量赋值 SET 变量名变量名=表达式表达式 SELECT 变量名变量名=表达式表达式,.n 变量输出变量输出 PRINT 变量名变量名 SELECT 变量名变量名,.n 提示提示:SELECT 通常用于通常用于返回单个值返回单个值;若是;若是返回多返回多个个值,结果会值,结果会怎样?怎样?)15 7.1.2 7.1.2 变量变量 例例2 2 查询学号为查询学号为S7S7学生的姓名和系
10、部。学生的姓名和系部。declare sno varchar(10),v1 varchar(10),v2 varchar(20)SET sno=s7 SELECT Sname,dept FROM Student WHERE sno=sno SELECT v1 AS 姓名姓名,v2 AS 系部系部 V1=V2=)16 7.1.2 7.1.2 变量变量 2.2.全局变量全局变量 是是SQL SERVERSQL SERVER系统内部使用的变量,反应服务器系统内部使用的变量,反应服务器当前的活动状态当前的活动状态 由由系统定义和维护的系统定义和维护的,用户只能使用全局变量,用户只能使用全局变量。全局变
11、量是全局变量是只读只读的。的。必须以必须以“”开头开头 )17 7.1.2 7.1.2 变量变量 2.2.全局变量全局变量 SELECT*Form Student-返回最后执行的返回最后执行的T-SQL 语句的错误代码语句的错误代码 SELECT ERROR /*返回返回SQL上允许的同时用户连接的最大数。返回上允许的同时用户连接的最大数。返回的数不必为当前配置的数值的数不必为当前配置的数值*/SELECT MAX_CONNECTIONS as s )18 7.1.2 7.1.2 变量变量 3.3.注释符注释符 在在T T-SQLSQL中可以使用两类注释符:中可以使用两类注释符:(1)ANSI
12、(1)ANSI标准的注释符标准的注释符 -用于单行注释用于单行注释 (2)(2)与与C C语言相同的程序注释符语言相同的程序注释符 /*/*/*/可在程序中标识多行文字为注释。可在程序中标识多行文字为注释。)19 7.1 7.1 T TSQLSQL程序设计程序设计 7.1.1 7.1.1 T T-SQLSQL程序的结构与批处理程序的结构与批处理 7.1.2 7.1.2 变量变量 7.1.3 7.1.3 控制语句控制语句 7.1.4 7.1.4 常用命令常用命令 7.1.5 7.1.5 常用函数常用函数 )20 7.1.3 7.1.3 控制语句控制语句 BEGIN END IF ELSE 三种使
13、用方式三种使用方式 IF IF ELSE IF 嵌套嵌套 )21 7.1.3 7.1.3 控制语句控制语句 例例33如果如果“数学数学”的平均成绩高于的平均成绩高于6060分,则显示分,则显示“该课该课程教学成绩合格程教学成绩合格”。IF()=60 print 该课程教学成绩合格该课程教学成绩合格!else select 该课程教学成绩不合格该课程教学成绩不合格!Select avg(grade)from SC,Course where Cname=数学数学 and o=o )22 7.1.3 7.1.3 控制语句控制语句 IF NOT EXISTS(SELECT 子子查询查询)ELSE 测试
14、数据是否存在测试数据是否存在 )23 7.1.3 7.1.3 控制语句控制语句 例例44从从S S表中查询学号表中查询学号S1S1的学生信息,如果存在显示的学生信息,如果存在显示该学生信息,否则输出该学生信息,否则输出“不存在该学生信息不存在该学生信息”。IF EXISTS(Select *from S where Sno=S7)Select *from S where Sno=S7 else Print 不存在该学生信息不存在该学生信息!)24 7.1.3 7.1.3 控制语句控制语句 CASE WHEN THEN WHEN THEN ELSE END 有两种有两种形式形式 )25 7.1.
15、3 7.1.3 控制语句控制语句 例例55Select Sn,Sex from S=CASE Sex WHEN 男男 THEN M WHEN 女女 THEN F END )26 7.1.3 7.1.3 控制语句控制语句 例例66Select Sno,Cno,Score FROM SC=CASE WHEN Score IS NULL THEN 缺考缺考 WHEN Score=60 and Score=90 THEN 优秀优秀 END )27 7.1.3 7.1.3 控制语句控制语句 WHILE BEGIN BREAK CONTINUE 命令行或程序块命令行或程序块 END )28 7.1.3 7
16、.1.3 控制语句控制语句 补充补充 显示字符串“显示字符串“China”中每个字符。中每个字符。declare p int,string char(8)set p=1 set string=China while p=datalength(string)begin select substring(string,p,1)set p=p+1 end )29 WAITFOR DELAY -设定等待时间设定等待时间|TIME -设定设定结束时间结束时间点点|ERROREXIT -到处理非正常中断到处理非正常中断|PROCESSEXIT 正常或非正常中断正常或非正常中断|MIRROREXIT 镜像设
17、备失败镜像设备失败 GOTO 标识符标识符 RETURN(整数值整数值)7.1.3 7.1.3 控制语句控制语句 P257-258 取值:取值:0-99 )30 7.1 7.1 T TSQLSQL程序设计程序设计 7.1.1 7.1.1 T T-SQLSQL程序的结构与批处理程序的结构与批处理 7.1.2 7.1.2 变量变量 7.1.3 7.1.3 控制语句控制语句 7.1.4 7.1.4 常用命令常用命令 7.1.5 7.1.5 常用函数常用函数 )31 7.1.4 7.1.4 常用命令常用命令 BACKUP、RESTORE 用于将数据库内容用于将数据库内容或日志或日志备份和恢复操作备份和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 编程
限制150内