赶紧的,谢谢~~~~~~ 来他个十一二十三十个. 谢谢~~~~~ 哈哈..
求SQL选择题,只要 索引,试图游标,存储过程 触发器 事务处理与并发控制.
- 提问者网友:萌卜娃娃
- 2021-04-24 11:45
- 五星知识达人网友:狂恋
- 2021-04-24 12:00
今天的数据库试题(满意不?):
一,简答题
1、简述SQL Server 数据库系统的安全性四个层次
答案:
2,简述视图概念以及视图作用
答案:
3,简述索引的概念,分类,作用以及用法
答案:
4. 请阐述事务的概念,作用以及特点?
答案:
二.编程
一.已知学生数据库中存在这样的三张表,
学生表:学号,姓名,性别,年龄,系别
Student(Sno,Sname,Ssex,Sage,Sdept),
课程表:课程编号,课程名称,授课老师
Course(Cno,Cname,Cteacher),
成绩表:学号,课程号,成绩
SC(Sno,Cno,Grade)
按要求完成下列操作:
1. 查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列
2.查询选修了课程名为“信息系统”的学生学号和姓名
3.查询每个学生的学号、姓名、选修的课程名及成绩
4.利用查询创建一张新表student1,把跟’刘晨’在同一个系学习的学生的基本信息放到表student1中
5.求各个课程号及相应的选课人数
6.查询选修了3门以上课程的学生学号
7. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号
8. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩
9. 找出没有选修过“李明”老师讲授课程的所有学生姓名
10. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
11. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名
12.这时,管理员要在学生表中修改某个学生的学号,
这时就希望修改了学生表中的学号,成绩表中的该学号也应该变成在学生表中修改后的学号,不许使用两个UPDATE,而希望用触发器实现,即修改了学生表中的学号,成绩表中对应的学号也作一致变化,应如何操作?
二.已知学生数据库中存放了这样的两张表,如下所示,一张为毕业生信息表,记录毕业生的一些基本信息,一张为学生缴费表,记录了学生的缴费信息。由于学生毕业,我们要从学生信息表中把毕业生的记录删除,但是如果这个学生欠费的话,则不允许删除这个学生的记录,要求:删除毕业生信息表中的哪条记录,必须通过存储过程实现,并带有输入参数,而判断该学生是否欠费,必须使用触发器实现。(提示:用带输入参数的存储过程完成删除操作,用触发器判断是否欠费,如果欠费,则回滚事务)
毕业生信息表
学号 姓名 性别 地址 联系方式
001 吴迪 男 淮南市潘集镇赵前村18号 0554-6840157
002 潘倩萍 女 芜湖市繁昌县孙村镇65号 0553-4855986
003 余建星 男 黄山市歙县北岸镇52号 0559-7852013
004 贺艳 女 蚌埠市长淮卫镇淮上村85号 0552-6589421
学生缴费表
学号 姓名 已交费用 欠费
001 吴迪 5000 400
002 潘倩萍 5400 0
003 余建星 4000 1400
004 贺艳 3000 2400
三.现要为学校建立一个数据库,设学校环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生。 . 现要建立关于系、学生、班级的数据库,关系模式为:
学生 STUDENT (学号,姓名,性别,年龄,班号)班 CLASS (班号,专业名,系名,入学年份)系 DEPARTMENT (系号,系名)
试用 SQL 语言完成以下功能:
1、建表,在定义中要求声明:
( 1 )每个表的主键。
( 2 )学生的年龄介于 15 到 40 岁之间。
( 3 )学生姓名不能为空。
2、插入如下数据
CLASS (
101 ,软件,计算机, 1995 ; 102 ,微电子,计算机, 1996 ;
111 ,无机化学,化学, 1995 ; 112 ,高分子化学,化学, 1996 ;
121 ,统计数学,数学, 1995 ; 131 ,现代语言,中文, 1996 ;
141 ,国际贸易,经济, 1997 ; 142 ,国际金融,经济, 1996 ;
)
STUDENT (
8101 ,张三,男, 18 , 101 ; 8102 ,钱四,女, 16 , 121 ;
8103 ,王玲,女, 17 , 131 ; 8105 ,李飞,男, 19 , 102 ;
8109 ,赵四,女, 18 , 141 ; 8110 ,李可,女, 20 , 142;
DEPARTMENT(
01,中文; 02,计算机;
03,数学; 04,化学;
05,经济;)
3 完成以下查询功能
( 1 )找出所有姓李的学生,并按其年龄由小到大排序。
( 2 )列出所有开设超过两个专业的系的名字。
( 3 )列出学生的基本信息、入学年份、所在系的名称。
( 4 )列出年龄在19~20之间的学生的姓名、系名和年龄
4.创建一个视图,包含学生的姓名,性别,班号和系号。
5.在班级表建立一个触发器,当某班号的记录被删除时,学生表中对应班号的学生记录自动删除。
6. 用查询分析器创建一个学生数据库(student),将数据文件和日志文件都存放在D盘自已学号的目录下。其中数据文件和日志文件初始大小都为3MB,自动增长率都为10%。
四,假设供应销售数据库有供应商表s,零件表p,工程项目表j,供销情况表spj关系,希望建立四个索引,其中,供应商s中sno按升序建立索引,零件p中pno 按升序建立索引,工程项目j中jno按升序建立索引,供销情况 spj中sno按升序,pno按降序,jno按升序建立索引
- 1楼网友:枭雄戏美人
- 2021-04-24 12:07
以下是触发器的代码包括了事务 前提你要先建2张表。别的你要我也可以写给你,但是你要先加分 因为实在要花点时间!
select * from person
select * from users
if exists(select * from sysobjects where name='trig_person') drop trigger trig_person go
create trigger trig_person on person for insert,delete,update as begin tran select * from inserted select * from deleted if @@error<>0 begin rollback tran end else begin commit tran end go
insert into person values('accp',22)
delete from person where age=22
update person set name='china', age =600 where id=2