上机练习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 函数定义和调用)的更多相关文章

  1. 数据库高级数据库学习--上机练习5(Transact-SQL)

    上机练习5 启动SQL Server 2008中的 SQL Server Management Studio,恢复数据库ClassDB: 采用Transact-SQL程序设计完成以下练习: . 求1到 ...

  2. JavaScript高级程序设计学习笔记第五章--引用类型(函数部分)

    四.Function类型: 1.函数定义的方法: 函数声明:function sum (num1, num2) {return num1 + num2;} 函数表达式:var sum = functi ...

  3. 高级数据库及一步一步搭建versant数据库

    总的来说,高级数据库课程分为分布式数据库和面向对象数据库两块.分布式数据库介绍了分布式数据库的方方面面,包括数据库系统的设计.查询处理优化.事务管理和恢复.并发控制.可靠性.安全性与目录管理等.面向对 ...

  4. "高级"数据库小结

    刚刚考完高级数据库,这里有多高级等后面考完组合数学和算法再细聊.试卷在往年基础上改进了部分题目(貌似有人知道新题目的来源,如查询优化树),也可能是两份试卷交叉年份考.总之会的还是会,没看过的当然不会只 ...

  5. 【数据库开发】学习Redis从这里开始

    转载:http://www.epubit.com.cn/article/200 学习Redis从这里开始 本文主要内容 Redis与其他软件的相同之处和不同之处 Redis的用法 使用Python示例 ...

  6. Flas-SQLAchemy数据库操作使用学习笔记

    Flas-SQLAchemy数据库操作使用学习笔记 Flask-SQLALchemy 是一个给你的应用添加 SQLALchemy 支持的 Flask 扩展.SQLALchemy 是Python语言的S ...

  7. 数据库学习笔记 4 强大的SQL

    其实这篇文章应该至少一个星期前就应该更新了,但是最近小猿我和喜欢了好多年的女神牵手成功,所以这些天有点飘. ---创建表结构 create table tablename ( id int, name ...

  8. Redis数据库高级实用特性:持久化机制

    Redis数据库高级实用特性:持久化机制 大型web系统数据缓存设计 Redis高级特性:虚拟内存的使用技巧 Redis高级实用特性:安全性与主从复制 Memcached.Redis OR Tair

  9. 【Redis数据库】命令学习笔记——发布订阅、事务、脚本、连接等命令汇总

    本篇基于redis 4.0.11版本,学习发布订阅.事务.脚本.连接的相关命令. Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. 序号 ...

随机推荐

  1. Spring-AOP-学习笔记(2)-AspectJ

    1.启用@AspectJ,需要下载aspectjweaver.jar <!-- 默认启用动态代理 --><aop:aspectj-autoproxy/> <!-- 注解启 ...

  2. Hive的视图和索引(九)

    Hive的视图和索引 1.Hive Lateral View 1.基本介绍 ​ Lateral View用于和UDTF函数(explode.split)结合来使用. ​ 首先通过UDTF函数拆分成多行 ...

  3. python操作kafka实践

    1.先看最简单的场景,生产者生产消息,消费者接收消息,下面是生产者的简单代码. ------------------------------------------------------------ ...

  4. java8 stream().map().collect()用法

    有一个集合: List<User> users = getList(); //从数据库查询的用户集合 现在想获取User的身份证号码:在后续的逻辑处理中要用: 常用的方法我们大家都知道,用 ...

  5. hadoop/hbase/hive单机扩增slave

    原来只有一台机器,hadoop,hbase,hive都安装在一台机器上,现在又申请到一台机器,领导说做成主备, 要重新配置吗?还是原来的不动,把新增的机器做成slave,原来的当作master?网上找 ...

  6. ssh客户端命令

  7. oracle数据库 ORA-01461: can bind a LONG value only for insert into a LONG column解决方案

    oracle编码分为ZHS16GBK.utf8网上很多都是说驱动包 ojdbc6 和 ojdbc14 的问题实际上在遇到这个问题是需要同时加载两个jar 分别是class12.jar和nls_char ...

  8. 5 LAMP配置管理:模块(state、file、pkg、service)、jinja模板、job管理、redis主从

    1. 配置管理:state和file https://docs.saltstack.com/en/latest/topics/states/index.html Full list of states ...

  9. 【leetcode】1283. Find the Smallest Divisor Given a Threshold

    题目如下: Given an array of integers nums and an integer threshold, we will choose a positive integer di ...

  10. 对Webpack 应用的研究-----------------引用

    对大多数 Web 应用来说,页面性能直接影响着流量.这是一个经常为我们所忽视的事实.用户长时间的等待流失的不仅仅是跳出率.转化率,还有对产品的耐心和信赖.很多时候我们没有意识到性能问题,那是因为平常开 ...