很多东西只有自己动手去做了才能理解  其中的含义   呵呵  先把练手的代码贴出来以后有空了再做分析吧

本题用到下面三个关系表:
CARD     借书卡:   (CNO 卡号,NAME  姓名,CLASS 班级)
BOOKS    图书:     (BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数 )
BORROW   借书记录: (CNO 借书卡号,BNO 书号,RDATE 还书日期--1.    写出自定义函数,要求输入借书卡号能得到该卡号所借书金额的总和CREATE FUNCTION GetSUMP
(
@CNO int
)
RETURNS int
AS
BEGINdeclare @sum int
select @sum=sum(price) from BOOKS where bno in (select bno from BORROW where cno=@CNO)return @sum
END
GO
-- 2. 找出借书超过5本的读者,输出借书卡号及所借图书册数。
select cno,COUNT(bno) t from borrow group by cno having count(bno)>=2
-- 6. 查询现有图书中价格最高的图书,输出书名及作者。select author,t_Books.bname from t_Books where price in  (select  max(price) from t_Books)--  7. 查询当前借了"计算方法"但没有借"计算方法习题集"的读者,输出其借书卡号,并按卡号降序排序输出。
select * from borrow bb where bno= (select bno bt from t_Books where bname='计算机方法')and bb.cnonot in
(select cno c from borrow where bno=(select bno b from t_Books where bname='计算机方法习题集') ) order by cno desc;select cc.cno from borrow cc,t_Books ddwhere cc.bno=dd.bnoand dd.bname='计算机方法'and  not exists(SELECT * FROM BORROW aa,t_Books bbWHERE aa.BNO=bb.BNOAND bb.BNAME='计算机方法习题集'and cc.cno=aa.cno)--将"C01"班同学所借图书的还期都延长一周。update  borrow set  borrow.rdate=dateadd(day,7,rdate) where cno in (select bno from borrow where cno=1)--  9. 从BOOKS表中删除当前无人借阅的图书记录。
delete t from t_books twhere not exists( select * from borrow where t.bno=bno)--  10.如果经常按书名查询图书信息,请建立合适的索引。create clustered index IBname on t_Books(bname)--  11.在BORROW表上建立一个触发器,完成如下功能:如果读者借阅的书名是"数据库技术及应用",--就将该读者的借阅记录保存在BORROW_SAVE表中(注ORROW_SAVE表结构同BORROW表)。
alter trigger trg_insert on borrow
for insert,update
as
IF @@ROWCOUNT>0
insert  borrow_save
SELECT i.*
FROM INSERTED i,t_books b
WHERE i.BNO=b.BNO and b.bname='数据库技术及应用'insert into t_Books values('数据库技术及应用','张啊红',90.00,90)insert into borrow values(6,7,GETDATE())
--吧查询出来的数据存入指定表中
insert t_Books select bname,author,price,quantity from t_Books where bname='诛仙3'
-- 12.建立一个视图,显示"01"班学生的借书信息(只要求显示姓名和书名)。
alter view v_v05
as
select cc.name,tb.bname from borrow b,t_Card cc,t_Books tb where b.cno=cc.cno and tb.bno=b.bno and b.cno in(select cno c from t_Card where class='09软工5版')----
CREATE VIEW V_VIEW
AS
select name,bname
from  t_Books,t_Card,borrow
where borrow.cno=t_Card.cno and borrow.bno=t_Books.bno and class='09软工5版'select * from v_v05
select * from V_VIEW---  13.查询当前同时借有"计算方法"和"组合数学"两本书的读者,输出其借书卡号,并按卡号升序排序输出。select cno,COUNT(bno) from borrow bb where bb.bno in(select bno bb from t_Books where bname in ('计算机方法','组合数学'))group by cno having COUNT(bno)=2 order by cno desc--select cno,count(bno)  from borrow group by cnoselect * from borrow where bno in (select bno from t_Books where bname='计算机方法') and cno in(select cno from borrow where  bno in (select bno from t_Books where bname='组合数学'))order by cno desc---  14、用事务实现如下功能:一个借书卡号借走某书号的书,则该书的库存量减少1,---当某书的库存量不够1本的时候,该卡号不能借该书alter procedure proBorrowBook(@cno int ,@bno int,@rdate date)asbeginbegin transactiondeclare @quantity int select @quantity=quantity from t_Books where bno=@bno;insert into borrow values(@cno,@bno, dateadd(day,30, @rdate));update t_Books set quantity=@quantity-1 where bno=@bno;if(@quantity>0 and @@error<=0)begincommit transactionprint '借书成功'endelsebeginrollback transactionprint '无库存'endendselect GETDATE()exec proBorrowBook 2,1,'2013-01-08 17:46:01.160'--15、用游标实现将书号为‘80’的书本的价格提高10元declare @bno intdeclare @bname varchar(30)declare @author varchar(30)declare @price numeric(10,2)declare @quantity int declare myCursor cursor for select * from t_Booksopen myCursorfetch next from myCursor into @bno,@bname,@author,@price,@quantitywhile(@@FETCH_STATUS=0)beginif(@bno=2)beginupdate t_Books set price=@price+100 where current of myCursorendfetch next from myCursor into @bno,@bname,@author,@price,@quantityendclose myCursordeallocate myCursor

转载于:https://www.cnblogs.com/mxxblog/archive/2013/01/09/2853535.html

Sql Server 学习2相关推荐

  1. SQL Server 学习系列之五

    SQL Server 学习系列之五 SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) SQL Server 学习系列之三(SQL 关键字) SQ ...

  2. 【SQL Server 学习系列】-- sql 随机生成中文名字

    [SQL Server 学习系列]-- sql 随机生成中文名字 原文:[SQL Server 学习系列]-- sql 随机生成中文名字 1 DECLARE @fName TABLE(Id INT I ...

  3. SQL SERVER学习记录

    SQL SERVER学习记录 //创建数据库,请先在D盘手动建立一个 backup的文件夹 create database sl on (name = 'sl',filename = 'd:\back ...

  4. sql server 学习教程

    sql server 学习教程 SQL Server 系统数据库 master model msdb tempdb 索引 定义 分类 唯一索引 主键索引 聚集索引(Clustered) 非聚集索引(N ...

  5. sql server学习路径地址

    联机丛书2005:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2005/ms130214(v=sql.90) 联 ...

  6. SQL server学习_两表对照

    SQL server学习--两表对照 自己闲来无事的时候就写了一个存储过程,用来对比两张表的相同性. 1.这个存储过程主要是用来查看数据量大的前提下,在不知道删除了什么数据,想要恢复. 2.这个存储过 ...

  7. SQL Server学习之路:建立数据库、建立表

    SQL Server学习之路:建立数据库.建立表 1.前言 配置是win10+SQL Server 2012,使用的GUI管理工具是SQL Server 2012自带的SQL Server Manag ...

  8. [转]推荐国外SQL Server学习网站

    由于SQL Server在国外的应用比较成熟,因此国外的SQL Server的优秀学习站点很多,下面几个是自己长期关注的,里面的文章原创性高.知识性强,实在是学习SQL Server "居家 ...

  9. SQL Server学习笔记

    <SQL Server从入门到精通>学习笔记 1 数据管理技术的三个阶段:人工管理.文件系统.数据库系统. 2 数据库的组成:数据库.数据库管理系统.数据库管理员.硬件平台.软件平台5部分 ...

  10. SQL server学习日志(二)创建表!手把手教你创建表,修改表,了解数据类型!超详细!

    一.简单了解表(创建表之前一定要先了解数据类型与约束哦,这样我们才能创建正确的表!) 1.定义:基本表是数据库中组织和管理数据的基本单位,数据库的数据保存在一个个基本表中. 对于关系型数据库系统而言, ...

最新文章

  1. java 简单万年历_JAVA实现的简单万年历代码
  2. DevExpress 动态换肤
  3. 用 Go 构建一个区块链 ---- Part 1: 基本原型
  4. canal mysql重置_canal: 首先装完阿里的canal,然后数据库同步,仅供学习参考
  5. EMNLP 2021 | ST-ToD:小样本场景下的任务型对话预训练
  6. 闭包,sync使用细节
  7. IOS6 新特性之UIRefreshControl
  8. 猎豹浏览器禁止跟踪怎么开启 禁止跟踪功能开启方法
  9. 信息学奥赛一本通 2059:【例3.11】买笔
  10. python获取局域网在线主机_pythond的icmp广播报获取局域网主机IP
  11. 苹果无人车裁员200人,收购特斯拉呼声再起
  12. Windows 7安装到虚拟磁盘VHD文件中
  13. latex中输入matlab代码,Latex插入matlab代码
  14. 还不懂数据库模糊查询?总结7种窍门技巧!
  15. 【个人学习记录】RoboWare Studio安装使用
  16. 模电数电高频电路综合实验成套设备QY-MS535G
  17. 大数据分析-第九章 知识图谱
  18. 支付与对账业务的流程
  19. 武大博士后出站后应聘在社区做社工引热议,内卷还是人各有志?
  20. CMOS图像传感器 - 原理介绍

热门文章

  1. [USACO13FEB]Perimeter【DFS / 深搜】
  2. 回顾︱时间序列预测与分解有哪些模型?(一)
  3. 【Leetcode】98. 验证二叉搜索树
  4. redis(版本redis-5.0.2)的安装步骤
  5. SpringBoot中如何优雅的使用拦截器
  6. 利用Jsoup解析HTML
  7. 参与到开源项目中乐趣
  8. 杭电 2016 计算机组成原理,杭电计算机组成原理多功能ALU设计实验
  9. Javascript第六章JavaScript字面量加数组创建对象第三课
  10. Javascript第四章内置函数、函数的基本用法第一课