《数据库原理》期末考试题

得分

四、应用题(本大题共1小题,共18分)

1、设某生产零件的工厂有若干车间,每个车间加工若干种零件,每种零件在某个车间进行加工;车间的属性有车间名(唯一)、电话;零件的属性有零件号、零件名;零件由不同的原材料制成,不同的零件所用的原材料可以相同,也可能不同;制成的属性有制作时间;材料的属性有材料号和供应商。请画出相应的E-R图,并写出对应的关系模式。

(1)E-R图(标注联系类型)(10分)

(2)转换后的关系模式(要求达到第三范式主键外键可用符号标记在关系模式后文字表达)(8分)

关系模式

五、SQL应用题(本大题共2小题,第1小题27分,第2小题5分,共32分)

1、现有一名为“HouseSelling”的数据库,在此数据库下有三张表,请根据要求,写出相应的SQL语句。(共6个小题,其中1-3每题4分,4-6每题5分,共27分)

(1)房源表(houses),“房源编号”为主键。

(2)销售员表(salesman),“销售员编号”为主键。

(3)销售表(sales),“销售员编号,房源编号”为主键,销售员编号和房源编号均为外键。

说明:下列数据表中“()”部分为字段类型,SQL语句编写时请正确书写字段名称若字段名称写错将被扣分

houses表

房源编号

(char(12))

小区名称(char(20)

面积

(float)

总价

(decimal(10,2))

楼层

(int)

总楼层(int)

建成日期(date)

房间数

(int)

100-5-202

天华苑

55.90

1000000.00

2

15

2010.7.1

1

111-10-401

中诚阁

85.73

1700000.00

4

5

2013.12.2

2

100-2-801

诗远城

110.21

2298900.00

8

12

2015.9.1

3

233-1-302

博爱缘

79.27

1595000.00

3

6

2018.7.1

2

100-5-302

天华苑

55.90

1050000.00

2

15

2010.7.1

1

111-10-501

中诚阁

85.73

1760000.00

4

5

2013.12.2

2

100-2-1001

诗远城

110.21

2198900.00

8

12

2015.9.1

3

233-1-602

博爱缘

79.27

1545000.00

3

6

2018.7.1

2

sales表

销售员编号

(char(7))

房源编号

(char(12))

销售日期

(date)

10002

111-10-401

2014-5-3

12010

233-1-302

2018-10-2

12003

233-1-602

2018-9-10

10002

100-5-302

2011-1-2

salesman表

销售员编号

(char(7))

姓名

(char(10)

性别

(char(2)

电话

(char(11))

10002

孙华

13502100210

12003

张桂花

13502100211

12010

刘远航

13502100212

15079

王兴信

13502100213

  1. 查询所有在2015年及其以后建成的房源信息,包括房源编号、小区名称、面积、总价、房间数。

Select 房源编号,小区名称,面积,总价,房间数 from houses Where year(建成日期)>=2015

  1. salesman表中插入一条记录,姓名:王剑,男,编号为20001,手机号码为15120136490。

Insert into salesman values (20001,王剑,,15120136490)

  1. 编号为“10002”销售员因为某些原因更换了手机号码,请在salesman表中将其手机号码更改为“18902016688”。

Update salesman set 电话=18902016688 where 销售员编号=10002

  1. 删除无销售业绩的销售员信息。

Delete from salesman where 销售员编号 not in (Select distinct 销售员编号 from sales)

  1. 查询女销售员售出的房源信息,包括姓名、房源编号、小区、面积和总价。

Select 姓名,房源编号,小区,面积,总价 from houses h,salesman sm,sales ss

Where h.房源编号=ss.房源编号 and sm.销售员编号=ss.销售员编号 and 性别=

  1. 统计各小区房源数量,显示小区名称和房源数量。

Select 小区名称,count(*) AS 房源数量 from houses group by 小区名称

2、根据相应要求,编写相应T-SQL语句,完成相关功能。(共2小题,请 任选一题 作答,共5分)

请根据上一题“HouseSelling”材料完成完成下面两小题,任选一题完成即可。

  1. 建立统计销售员历史销售业绩的存储过程p_sales_smno(销售员编号为输入参数),显示销售员姓名、房源编号、销售日期、总价信息,并调用执行(查询销售员号为10002的历史销售业绩)。

存储过程:

Create proc p_sales_snmo @smno char(7) AS

Select 姓名,房源编号,销售日期,总价 from houses h,salesman sm, sales ss

Where h.房源编号=ss.房源编号 and sm.销售员编号=ss.销售员编号

And 销售员编号=@smno

调用执行:

execute p_sales_smno 10002

  1. 建立触发器t_house_update,在更新房源信息时,总价需在100万至300万之间,否则,提示“价格超出范围”,并撤销相关操作。

Create trigger t_house_update on houses After Update AS

If not exists(select * from inserted where 总价 between 1000000 and 3000000)

Begin

Rooback;

Print 总价超出范围;

End

猜你喜欢

转载自blog.csdn.net/qq_39154376/article/details/125394059