第7章_T-SQL高级编程.ppt
《第7章_T-SQL高级编程.ppt》由会员分享,可在线阅读,更多相关《第7章_T-SQL高级编程.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、SQL Server 2005第1页第七章第七章T-SQL高级编程SQL Server 2005第2页回顾n建库的语法?n补充下列语句:IF EXISTS(SELECT*FROM?WHERE name=student)DROP DATABASE studentn建表的语法?n补充下列语句:IF EXISTS(SELECT*FROM?WHERE name=tblstudent)DROP TABLE tblstudentn解释下列语句的含义?EXEC sp_helpindex tblstudent SQL Server 2005第3页n补充下列语句:1.ALTER TABLE tblstudent
2、 ADD CONSTRAINT?PRIMARY KEY(stuNo)2.ALTER TABLE tblstudent ADD CONSTRAINT UQ_identity_id?3.ALTER TABLE tblstudent ADD CONSTRAINT DF_stud_sex?4.ALTER TABLE tblstudent ADD CONSTRAINT CK_stud_sex CHECK(?)5.ALTER TABLE tblscore ADD CONSTRAINT FK_stud_id FOREIGN KEY?REFERENCES?回顾SQL Server 2005第4页学习T-SQL
3、高级编程的目的n在SQL SERVER的应用程序开发中,有两种访问数据库的方法:一是使用应用程序编程接口(API),另一种是使用数据库语言。对于前一种方法是定义如何编写连接并传送命令到数据库的应用程序代码,通过应用程序开发工具编写数据库应用系统;后一种方法是在SQL SERVER中使用T-SQL语言。n对于许多应用程序的开发,都是一方面在客户端进行应用程序的开发,另一方面在数据库服务器端进行复杂的完整性设计,为了确保数据库数据的完整性,需要使用T-SQL语言编写复杂的触发器、存储过程、自定义函数,游标和事物等数据库语言程序。SQL Server 2005第5页n 掌握IF、WHILE、CASE
4、逻辑控制语句n 学习用户自定义函数的建立n 理解游标知识并学会运用本章目标SQL Server 2005第6页Begin end 语句n将两条或两条以上的T-SQL语句组合成一个整体成为块语句,相当于C 语言中的n块语句的句法结构:nBegin end 说明:块语句中至少要包含一条T-SQL语句。Begin e nd 必须成对初向,单独各占一行 块语句常用于分支结构和循环结构中 块语句可以嵌套在其他块语句中SQL Server 2005第7页nIFELSE语句C语言中的if-else语句if(条件)语句1;语句2;else 语句1;语句2;SQL中的IF-ELSE语句IF(条件)BEGIN 语
5、句1 语句2 ENDELSE BEGIN 语句1;语句2;END 同C语言一样:lELSE是可选部分l如果有多条语句,才需要BEGIN-END语句块 ifelse语句SQL Server 2005第8页示例示例7.1示例示例7.1答案答案查询学生基本情况表(tblstudent),若其中存在学号“38071304”的学生,就显示已存在些信息,若无则插入该学生的记录。if exists(select stud_id from tblstudent where stud_id=38071304)print 已经存在学号为的学生else insert tblstudent(stud_id,stud_
6、name,stud_sex,birth,identity_id,class_id)values(38071304,刘表,男,1988-1-23,012345678900004,380713)ifelse语句SQL Server 2005第9页示例示例7.2示例示例7.2答案答案查询学生基本情况表(tblstudent),若其中存在学号“38071304”的学生,就显示已存在些信息,若无则插入该学生的记录。if exists(select stud_id from tblstudent where stud_id=38071304)print 已经存在学号为的学生 select*from tbl
7、student where stud_id=38071304 else insert tblstudent(stud_id,stud_name,stud_sex,birth,identity_id,class_id)values(38071304,刘表,男,1988-1-23,012345678900004,380713)ifelse语句SQL Server 2005第10页设置输出结果的格式n为了文本消息和输出结果显示在同一窗口,需要设置输出结果的格式SQL Server 2005第11页nWHILE循环语句C语言中的while语句while(条件)语句1;continue;语句2;brea
8、k;SQL中的WHILE语句WHILE(条件)BEGIN 语句1 CONTINUE 语句2 BREAK END 同C语言一样:lBREAK表示退出循环,CONTINUE结束本次循环继续下一循环。l如果有多条语句,才需要BEGIN-END语句块 while循环语句SQL Server 2005第12页示例示例7.3示例示例7.3答案答案使用while语句求1-100的累加和并输出。declare sum int,i intset i=1set sum=0while i=100beginset sum=sum+iset i=i+1endprint 1-100总和为=+convert(char(6)
9、,sum)while循环语句END对不能少!SQL Server 2005第13页示例示例7.4利用break和continue语句的求1-100之间小于50奇数之和。declare sum int,i intset i=0set sum=0while i=100beginset i=i+1if(i%2)=0)continue -当i是偶数跳过下面的语句set sum=sum+i if(i=49)-当i=49时结束循环breakendprint 1-50中奇数和为=+convert(char(6),sum)while循环语句SQL Server 2005第14页nCASEEND多分支语句形式1
10、case when 条件判断表达式结果1 then when 条件判断表达式结果2 then when 条件判断表达式结果n then else endcase多分支语句 SQL Server 2005第15页示例示例7.5判断学生成绩表(tblscoretblscore)中 course_idcourse_id (课程号)的值,如果为“30001”则返回“VB”,为“30002”则返回“数据结构”,为“30003”则返回“数据库”,为“30004”则返回“软件工程”,为“30005”则返回“J2EE”,否则返回“未知课程”。select stud_id 学号,课程名称=case course
11、_idwhen 30001 then VBwhen 30002 then 数据结构when 30003 then 数据库when 30004 then 软件工程when 30005 then J2EEelse 未知课程end,term 学期,score 成绩 from tblscorecase多分支语句 else前不能有when!SQL Server 2005第16页nCASEEND多分支语句形式2casewhen 条件表达式1 then when 条件表达式2 then when 条件表达式n then else endcase多分支语句 SQL Server 2005第17页 除实现示例7
12、.5的功能外根据学生成绩表(tblscore)中 score(成绩)输出对应的分数等级。select stud_id 学号,课程名称=case course_idwhen 30001 then VBend,term 学期,成绩=case when score=90 and score=80 and score=70 and score=60 and score70 then 及格else 不及格end from tblscorecase多分支语句 SQL Server 2005第18页Goto、return 语句n1 goto 语句 句法 goto例:查询学生成绩表(tblscore),若存在
13、学号为“31022001”的学生,就显示存在的学生成绩,如果没有则跳过这些语句。if(31022001 not in(select distinct stud_id from tblscore)Goto abcBeginPrint 已经存在该学生的成绩Select stud_id 学号,course _id 课程号,term 学期,score 成绩From tblscore where stud_id=31022001 end abc:print 没有该学生的成绩SQL Server 2005第19页n2 return 语句 该语句可以在存储过程,触发器,函数,批处理和语句块的任何位置使用,其
14、作用是无条件地从存储过程,触发器,函数,批处理和语句块中退出,在return之后的其他语句不会被执行。SQL Server 2005第20页n标量值型函数标量值型函数create function (参数名 输出参数的类型=默认值,.)returns 函数返回值类型with encryption -对函数定义的文本加密asbegin函数体return 函数返回值函数返回值 -该语句是必须包括的end用户自定义函数 SQL Server 2005第21页create function dbo.fu_dj(score int)returns varchar(6)as begin return ca
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- _T SQL 高级 编程
限制150内