2019A SQL 模拟卷

发布 2023-06-04 22:35:28 阅读 5066

浙江理工大学2011—2012学年第2学期。

数据库原理与应用》期末试卷(a)卷。

本人郑重承诺:本人已阅读并且透彻地理解《浙江理工大学考场规则》,愿意在考试中自觉遵守这些规定,保证按规定的程序和要求参加考试,如有违反,自愿按《浙江理工大学学生违纪处分规定》有关条款接受处理。

承诺人签名学号班级。

一、解答题(本题共35分)

1.某公司需建立产品信息数据库,其语义如下:

一种产品可以使用多个不同种类的部件,也可以使用多个不同种类的零件:一种部件至少被用在一种产品中;一种部件可以由多个不同种类的零件组成;一种零件至少被用在一种产品或一种部件中;

对于一种具体的部件,要记录这种部件使用的各种零件的数量;

对于一种具体的产品,要记录这种产品使用的各种部件数量和各种零件数量,但部件所使用的零件数量不计入该产品的零件数量;

一个**商可**多种零件,但一种零件只能由一个**商**。

图1. 产品信息数据库e—r图。

在此e-r图中,实体的属性完整,试完成下列各题:

根据以上需求,在图1中写出各个实体(型)之间的联系及其联系的属性。(7分)

根据e-r图导出该数据库的各个关系模式,标出每个关系模式的主码和外码,并根据范式理论,分析上述各个关系模式是否属于3nf。(10分)

2.某数据库包含学生(students)、课程(courses)、选课(studcourses)等3个关系模式,其基本数据如表1所示,试解答以下各题。

表1. 关系数据库实例。

a)学生关系:studentsb)课程关系:coursesc)选课关系:studcourses

关系代数π2,4(students(π1,2(stucourses)÷π1(σ3=2(courses)))的计算结果为:(6分)

检索学生“胡斌”没有选修过的课程的名称,写出其关系代数表达式。(6分)

已知某数据检索的关系代数表达式如下:

2(studentsσ1=4^2≠5(stucourses×stucourses)),写出与该语句对应的t-sql语句。(6分)

二、程序阅读题(本题共30分,每小题6分)

已知数据表test1和test2的定义如下。其数据分别如表2和表3所示(表中未列出的数据需要自己计算得出),写出下列各个小题中select语句的输出结果。

create table test1 (productid char(2) primary key,productname varchar(20),category char(1),price money,

ytdsales int,rowid int identity(10,2) )

gocreate table test2 ( orderid char(4),orderdate datetime,qty int default(0),productid char(2),primary key(orderid, productid) )

表2. test1表数据表3. test2表数据。

第1小题。create procedure pro1 @str nvarchar(20)

asselect as 'orderday', qty*price as 'amt' from test2 a

join test1 b on

where productname like @str and datediff(month,orderdate,getdate())6

order by amt desc

goexecute pro1 '%ir]o%'

go第2小题。

with tmp as

select category,count(*)as number from test1

group by category with rollup)

select case category

when 'a' then 'water'

when 'b' then 'fruit'

when 'c' then 'leaf'

else '*t*' end as 'category',number from tmp

go第3小题。

declare @t table (pid char(2), qty int)

insert into @t (pid,qty) select productid,sum(qty) from test2

group by productid h**ing sum(qty)>14

select as 'pname',qty from @t a,test1 b

where

go第4小题。

drop function fn1

gocreate function fn1 (@v1 char(2))

returns int as

begindeclare @x int

select @x=sum(qty) from test2 where productid=@v1

if @x is null set @x=0

return(@x)

end go

update test1 set ytdsales=

select productid,productname,ytdsales,rowid from test1 where rowid>17

go第5小题。

alter table test2 add ytdqty int

godeclare c1 cursor for select productid,qty from test2

order by productid,orderdate

open c1

declare @qty int,@qty1 int,@id char(2),@id1 char(2),@price money

fetch next from c1 into @id1,@qty1

set @id=''id

set @qty=0

while @@fetch_status=0

beginif @id<>@id1

beginset @id=@id1

set @qty=@qty1

end else set @qty=@qty+@qty1

update test2 set ytdqty=@qty where current of c1

fetch next from c1 into @id1,@qty1

enddeallocate c1

select productid,orderid,convert(varchar(10),orderdate,120) as 'orderdate',qty,ytdqty

from test2 where productid like 'c[1-3]' order by productid,orderdate

go 三、程序设计题(本题共35分,任选5小题解答,每小题7分)

数据库sales用来存放某企业产品销售数据,它有4张表,表products用来存放产品信息(其中合计销售额pf6是未知的);表customers用来存放客户信息;表orders用来存放订单信息;orderitems用来存放订单明细信息。这4张表的结构见表4~表7。

表4. products表结构。

表5. customers表结构。

表6. orders表结构。

表7. orderitems表结构。

试编写t-sql语句,完成以下各项功能(注意必须按试题中规定的列名答题,不能篡改列名,否则答题无效。临时表可自行定义):

1. 根据orderitems表结构描述和各个约束条件,编写创建该表所需的t-sql语句,并创建由订单编号和产品编号组成的组合主键。

2. 根据各表数据,列出客户名称为b's beverages的这个客户2023年度所购买的全部产品的名称。

2019模拟卷

2012年数学能力题模拟卷。一 填空。14分 2 甲乙两人共有203.5元,乙的钱数的小数点向右移动一位,就和甲的钱数一样多,甲有 元。3 甲数是a,比乙数的3倍多b,乙数是 4 一个三位小数保留两位小数后是10.00,这个三位小数最大是 最小是 11 0.2727 小数部分第100位上的数字是 从...

2019模拟卷

黑龙江省试卷。一 填空题 每空1分,共20分 1 一道数学题,全班35人做对,5人做错,则正确率是 错误率是 2 一个长方体的礼品盒长是8厘米,宽是3厘米,高是5厘米,在这个长方体的各个面中最大的一个面的面积是 平方厘米,最小的一个面的面积是 平方厘米。3 王宁家去年存入银行4000元钱,定期三年,...

2019模拟卷

2010 2011学年度第二学期六年级语文水平测试题。全卷共6页,十大题,满分120分,答卷时间100分钟。一 读拼音,写汉字。6分 市义工联在北湖广场举行义卖义诊义演活动,此举得到社会各界的d ng l支持,所得将全部ju n z ng给市慈善机构,热心市民的q n c q n l使我市的助学助残...