数据库高级数据库学习--上机练习7(Transact-SQL 函数定义和调用)
上机练习7 在Transact SQL中,有一类特殊的自定义函数,其返回值为一张表,该类自定义函数被称作内嵌(联)表值函数,其基本语句格式如下:
CREATE FUNCTION函数名称[( {@参数名称 [AS] 标量数据类型}[,...n])]
RETURNS TABLE
[AS]
RETURN [{SELECT 语句}] 试采用该类自定义函数完成下列操作:
1、 创建一个不带输入参数的表值函数返回所有学生信息。
CREATE FUNCTION studentInformation()
RETURNS TABLE
AS
RETURN
SELECT * FROM Student
2、 创建一个自定义函数,实现输入学生姓名,查询对应的学号。如果存在多个学号,则输出全部结果。
CREATE FUNCTION findSno(@Sna AS char(10))
RETURNS TABLE
AS
RETURN
SELECT Sno FROM Student WHERE Sname=@Sna DECLARE @Sname char(10)
SET @Sname = '张得民'
SELECT * FROM dbo.findSno(@Sname);
3、 创建一个自定义函数实现输入课程名查询选修了该课程的学号及其成绩。
CREATE FUNCTION findSnoGrade(@Cna AS char(10))
RETURNS TABLE
AS
RETURN
SELECT Sno,CScore FROM Score,Course
WHERE Cname=@Cna AND Course.Cno = Score.Cno SELECT * FROM dbo.findSnoGrade('计算机基础');
4、 创建一个自定义函数返回毕业班中目前无法毕业的学生信息,假设毕业班的学生学号以“14”开头,毕业条件为已修总学分10以上。
CREATE FUNCTION credictIsOK(@Sno AS char(10))
RETURNS real
BEGIN
DECLARE @sumCredict int
SELECT @sumCredict = (SELECT SUM(Ccredit) FROM Score,Course
WHERE Course.Cno = Score.Cno AND Score.Sno = @Sno
AND Cscore IS NOT NULL)
RETURN @sumCredict
END CREATE FUNCTION findCannotGradate()
RETURNS TABLE
AS
RETURN
SELECT Sno FROM Student
WHERE Sno LIKE '14%'
AND (dbo.credictIsOK(Sno)<=10
OR dbo.credictIsOK(Sno) IS NULL); SELECT * FROM dbo.findCannotGradate();
数据库高级数据库学习--上机练习7(Transact-SQL 函数定义和调用)的更多相关文章
- 数据库高级数据库学习--上机练习5(Transact-SQL)
上机练习5 启动SQL Server 2008中的 SQL Server Management Studio,恢复数据库ClassDB: 采用Transact-SQL程序设计完成以下练习: . 求1到 ...
- JavaScript高级程序设计学习笔记第五章--引用类型(函数部分)
四.Function类型: 1.函数定义的方法: 函数声明:function sum (num1, num2) {return num1 + num2;} 函数表达式:var sum = functi ...
- 高级数据库及一步一步搭建versant数据库
总的来说,高级数据库课程分为分布式数据库和面向对象数据库两块.分布式数据库介绍了分布式数据库的方方面面,包括数据库系统的设计.查询处理优化.事务管理和恢复.并发控制.可靠性.安全性与目录管理等.面向对 ...
- "高级"数据库小结
刚刚考完高级数据库,这里有多高级等后面考完组合数学和算法再细聊.试卷在往年基础上改进了部分题目(貌似有人知道新题目的来源,如查询优化树),也可能是两份试卷交叉年份考.总之会的还是会,没看过的当然不会只 ...
- 【数据库开发】学习Redis从这里开始
转载:http://www.epubit.com.cn/article/200 学习Redis从这里开始 本文主要内容 Redis与其他软件的相同之处和不同之处 Redis的用法 使用Python示例 ...
- Flas-SQLAchemy数据库操作使用学习笔记
Flas-SQLAchemy数据库操作使用学习笔记 Flask-SQLALchemy 是一个给你的应用添加 SQLALchemy 支持的 Flask 扩展.SQLALchemy 是Python语言的S ...
- 数据库学习笔记 4 强大的SQL
其实这篇文章应该至少一个星期前就应该更新了,但是最近小猿我和喜欢了好多年的女神牵手成功,所以这些天有点飘. ---创建表结构 create table tablename ( id int, name ...
- Redis数据库高级实用特性:持久化机制
Redis数据库高级实用特性:持久化机制 大型web系统数据缓存设计 Redis高级特性:虚拟内存的使用技巧 Redis高级实用特性:安全性与主从复制 Memcached.Redis OR Tair
- 【Redis数据库】命令学习笔记——发布订阅、事务、脚本、连接等命令汇总
本篇基于redis 4.0.11版本,学习发布订阅.事务.脚本.连接的相关命令. Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. 序号 ...
随机推荐
- js excel导出功能
<html> <head> <p style="font-size: 20px;color: red;">使用a标签方式将json导出csv文件 ...
- 数据库——Oracle(6)
1 默认值约束(默认值):对表中的某个列提前设置好默认值,当执行插入操作的时候,如果该列没有插入列值,则系统会自动的插入之前设置的默认值. 1)每个列只能插入一个默认值. 2)创建表的时候设置默认值. ...
- mybatic MapperScannerConfigurer的原理
原文地址:http://www.cnblogs.com/fangjian0423/p/spring-mybatis-MapperScannerConfigurer-analysis.html 前言 本 ...
- zsh使用技巧(WIP)
看了这个问题也关注这个问题很久了,很多人介绍的都是oh-my-zsh(一下简称omz)的一些特征.不可否认这是一个很优秀的框架,但zsh的世界不应该全是omz.这个回答,我想介绍一下zsh原生自带的一 ...
- h5构建页面(rem布局准备)
新建一个flex.js ! function () { function t(t) { return this.config = t, this } t.prototype = { reset: fu ...
- 验证码生成 C#
/// <summary> /// 验证码类 /// </summary> public class Rand { #region 生成随机数字 /// <summary ...
- angular打包(三):pkg
希望打包成1个web服务,运行exe,启动 angular,供浏览器显示. 问题分析: 其实angular编译后,都是静态文件了.只需要打包express,让express可以以exe的形式运行就可以 ...
- 类中定义成员方法。加不加public有什么区别?
class Trangle{ double sideA, sideB, sideC, area, length; boolean flag; Trangle(double a, double b, d ...
- jmeter操作登录等简单的使用
一.登录 1.打开jmeter创建“线程组” 2.创建HTTP默认值 3.添加http默认值后,后边的http请求就可以省略填写部分内容 4.添加“HTTP信息管理头”在内添加名称:“Content- ...
- 「CF803C」 Maximal GCD
题目链接 戳我 \(Solution\) 令\(gcd\)为\(x\),那么我们将整个序列\(/x\),则序列的和就变成了\(\frac{n}{x}\),所以\(x\)必定为\(n\)的约数所以现在就 ...