仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 937|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL网页编程之SQL Server 实习题3

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:30:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
DBaaS向客户提供了许多与其他云服务相类似的优势:一个灵活的、可扩展的MySQL学习教程、按需服务的平台,它以自助服务和便捷管理为导向,可以对环境中的资源进行调配。server标题3
成绩形貌:
本题用到上面三个干系表:
CARD借书卡。CNO卡号,NAME姓名,CLASS班级
BOOKS图书。BNO书号,BNAME书名,AUTHOR作者,PRICE单价,QUANTITY库存册数
BORROW借书纪录。CNO借书卡号,BNO书号,RDATE还书日期
备注:限制每人每种书只能借一本;库存册数随借书、还书而改动。
请求完成以下15个处置:
1.写出创建BORROW表的SQL语句,请求界说主码完全性束缚和援用完全性束缚。
2.找归还书凌驾5本的读者,输入借书卡号及所借图书册数。
3.查询借阅了"水浒"一书的读者,输入姓名及班级。
4.查询过时未还图书,输入借阅者(卡号)、书号及还书日期。
5.查询书名包含"收集"关头词的图书,输入书号、书名、作者。
6.查询现有图书中代价最高的图书,输入书名及作者。
7.查询以后借了"盘算办法"但没有借"盘算办法习题集"的读者,输入其借书卡号,并按卡号降序排序输入。
8.将"C01"班同砚所借图书的还期都延伸一周。
9.从BOOKS表中删除以后无人借阅的图书纪录。
10.假如常常按书名查询图手札息,请创建符合的索引。
11.在BORROW表上创建一个触发器,完成以下功效:假如读者借阅的书名是"数据库手艺及使用",就将该读者的借阅纪录保留在BORROW_SAVE表中(注ORROW_SAVE表布局同BORROW表)。
12.创建一个视图,显现"力01"班先生的借手札息(只需求显现姓名和书名)。
13.查询以后同时借有"盘算办法"和"组合数学"两本书的读者,输入其借书卡号,并按卡号升序排序输入。
14.假定在建BOOKS表时没有界说主码,写出为BOOKS表追加界说主码的语句。
15.对CARD表做以下修正:
a.将NAME最年夜列宽增添到10个字符(假定原为6个字符)。
b.为该表增添1列NAME(系名),可变长,最年夜20个字符。


1.写出创建BORROW表的SQL语句,请求界说主码完全性束缚和援用完全性束缚
--完成代码:
CREATETABLEBORROW(
CNOintFOREIGNKEYREFERENCESCARD(CNO),
BNOintFOREIGNKEYREFERENCESBOOKS(BNO),
RDATEdatetime,
PRIMARYKEY(CNO,BNO))
2.找归还书凌驾5本的读者,输入借书卡号及所借图书册数
--完成代码:
SELECTCNO,借图书册数=COUNT(*)
FROMBORROW
GROUPBYCNO
HAVINGCOUNT(*)>5
3.查询借阅了"水浒"一书的读者,输入姓名及班级
--完成代码:
SELECT*FROMCARDc
WHEREEXISTS(
SELECT*FROMBORROWa,BOOKSb
WHEREa.BNO=b.BNO
ANDb.BNAME=N水浒
ANDa.CNO=c.CNO)
4.查询过时未还图书,输入借阅者(卡号)、书号及还书日期
--完成代码:
SELECT*FROMBORROW
WHERERDATE<GETDATE()
5.查询书名包含"收集"关头词的图书,输入书号、书名、作者
--完成代码:
SELECTBNO,BNAME,AUTHORFROMBOOKS
WHEREBNAMELIKEN%收集%
6.查询现有图书中代价最高的图书,输入书名及作者
--完成代码:
SELECTBNO,BNAME,AUTHORFROMBOOKS
WHEREPRICE=(
SELECTMAX(PRICE)FROMBOOKS)
7.查询以后借了"盘算办法"但没有借"盘算办法习题集"的读者,输入其借书卡号,并按卡号降序排序输入
--完成代码:
SELECTa.CNO
FROMBORROWa,BOOKSb
WHEREa.BNO=b.BNOANDb.BNAME=N盘算办法
ANDNOTEXISTS(
SELECT*FROMBORROWaa,BOOKSbb
WHEREaa.BNO=bb.BNO
ANDbb.BNAME=N盘算办法习题集
ANDaa.CNO=a.CNO)
ORDERBYa.CNODESC
8.将"C01"班同砚所借图书的还期都延伸一周
--完成代码:
UPDATEbSETRDATE=DATEADD(Day,7,b.RDATE)
FROMCARDa,BORROWb
WHEREa.CNO=b.CNO
ANDa.CLASS=NC01
9.从BOOKS表中删除以后无人借阅的图书纪录
--完成代码:
DELETEAFROMBOOKSa
WHERENOTEXISTS(
SELECT*FROMBORROW
WHEREBNO=a.BNO)
10.假如常常按书名查询图手札息,请创建符合的索引
--完成代码:
CREATECLUSTEREDINDEXIDX_BOOKS_BNAMEONBOOKS(BNAME)
11.在BORROW表上创建一个触发器,完成以下功效:假如读者借阅的书名是"数据库手艺及使用",就将该读者的借阅纪录保留在BORROW_SAVE表中(注ORROW_SAVE表布局同BORROW表)
--完成代码:
CREATETRIGGERTR_SAVEONBORROW
FORINSERT,UPDATE
AS
IF@@ROWCOUNT>0
INSERTBORROW_SAVESELECTi.*
FROMINSERTEDi,BOOKSb
WHEREi.BNO=b.BNO
ANDb.BNAME=N数据库手艺及使用
12.创建一个视图,显现"力01"班先生的借手札息(只需求显现姓名和书名)
--完成代码:
CREATEVIEWV_VIEW
AS
SELECTa.NAME,b.BNAME
FROMBORROWab,CARDa,BOOKSb
WHEREab.CNO=a.CNO
ANDab.BNO=b.BNO
ANDa.CLASS=N力01
13.查询以后同时借有"盘算办法"和"组合数学"两本书的读者,输入其借书卡号,并按卡号升序排序输入
--完成代码:
SELECTa.CNO
FROMBORROWa,BOOKSb
WHEREa.BNO=b.BNO
ANDb.BNAMEIN(N盘算办法,N组合数学)
GROUPBYa.CNO
HAVINGCOUNT(*)=2
ORDERBYa.CNODESC
14.假定在建BOOKS表时没有界说主码,写出为BOOKS表追加界说主码的语句
--完成代码:
ALTERTABLEBOOKSADDPRIMARYKEY(BNO)
15.1将NAME最年夜列宽增添到10个字符(假定原为6个字符)
--完成代码:
ALTERTABLECARDALTERCOLUMNNAMEvarchar(10)
15.2为该表增添1列NAME(系名),可变长,最年夜20个字符
--完成代码:
ALTERTABLECARDADD系名varchar(20)


那时候Sybase已经诞生了6年的时间。至于其他值得关注的开源数据库,PostgreSQL将在2009年达到20岁的生日。虽然MySQL并不是市场上最年轻的数据库,但是却有更多成熟的数据库可供我们选择。
分手快乐 该用户已被删除
沙发
发表于 2015-1-19 15:39:45 来自手机 | 只看该作者
如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。
金色的骷髅 该用户已被删除
板凳
发表于 2015-1-28 06:08:57 | 只看该作者
其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
透明 该用户已被删除
地板
发表于 2015-2-5 17:01:02 | 只看该作者
如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。
小女巫 该用户已被删除
5#
发表于 2015-2-12 23:55:21 | 只看该作者
入门没那么困难,精通没那么容易
小妖女 该用户已被删除
6#
发表于 2015-3-3 11:47:02 | 只看该作者
个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
7#
发表于 2015-3-11 10:50:06 | 只看该作者
语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!
第二个灵魂 该用户已被删除
8#
发表于 2015-3-18 07:18:40 | 只看该作者
外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。
简单生活 该用户已被删除
9#
发表于 2015-3-25 13:51:43 | 只看该作者
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 12:11

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表