数据库技术与应用答案(詹英)

习题一

一、选择题

1.B

2.A

3.C

二、填空题

1.人工管理方式、文件管理方式、数据库系统管理方式

2.Window 身份验证模式、SQL Server身份验证模式

3..sql

4.Reporting Services 配置、Notification Services 命令提示、SQL Server Configuration Manager 、SQL Server错误和使用情况报告、SQL Server外围应用配置器。

习题二

一、选择题

1.A

2.B

3.A

4.A

二、填空题

1.二维表格、数据文件、日志文件、数据库管理系统

2.比较真实地模拟现实世界、容量被人所理解、便于计算机上实现

3.实体完整性规则、参照完整性规则、用户定义的完整性规则

习题三

一、选择题

1.C

2.D

3.A

4.A

5.A

6.C

7.A

8.B

习题四

一、选择题

1.A

2.B

3.B

4.A

5.A

二、填空题

1.UNIQUE

2.NONCLUSTERED

三、简答题

1.p88页,

1)在聚集索引中,表中各记录的物理顺序与索引的逻辑顺序相同,只有在表中建立了一个聚集索引后,数据才会按照索引键值的顺序存储到表中。由于一个表中的数据只能按照一种顺序存储,所以在表中只能建立一个聚集索引。通常在主键上创建聚集索引。

2)非聚集索引是完全独立于数据行的结构,表中的数据行不按非聚集索引的顺序排序和存储。在非聚集索引内,从索引行指向数据行的指针称为行定位器。在检索数据时,SQL Server 先在非聚集索引上搜索,找到相关信息后,再利用行定位器,找到数据表中的数据行。一个表上可以建立多个非聚集索引。

如果在一个表中既要创建聚集索引,又要创建非聚集索引,应先创建聚集索引,然后创建非聚集索引。因为创建聚集索引时将改变数据行的物理存放顺序。聚集索引的键值是唯一的,非聚集索引的键值可以重复,当然也可以指定唯一选项,这样任何两行记录的索引键值就不会相同。

2.建立主键时

3.CREATE NONCLUSTERED INDEX ID_XM ON S(姓名)

习题五

一、选择题

1.C

2.B

3.A

4.A

5.D

6.A

二、简答题

1.∏[型号,内存容量,硬盘容量]((σ价格

PRINTER ) 2.∏[生产厂家,型号,是否彩色,价格] (σ

习题六

一、选择题

1.C

2.A

3.D

4.C

5.D

6.C

7.B 、A

8.A

9.B

10.C

11.C

12.C

13.C

是否彩色=T (PRODUCT

3.∏[生产厂家](PRODUCT PRINTER)

14.C

15.D

二、填空题

1.SELECT

2.条件

3.#

4.子查询

5.T 、F 、相反

6.FROM,INTO,GROUP BY,ORDER BY,WHERE

7.结构化查询语言

8.[sever_name]指定链接的服务器名称或远程服务器名称. [database_name]如果对象驻留在SQL Server的本地实例中,则指定SQL Server数据库的名称,如果对象在链接服务器中,则指定OLE DB目录. [schema_name]如果对象在SQL Server 数据库中,则指定包含对象的架构的名称,如果对象在链接服务器中,则指定OLE DB 架构名称. object_name对象的名称

9.F5

10.Sql

11.内连接, 外连接, 交叉连接

12.等值连接, 自然连接, 自连接

13.左外连接, 右外连接, 完全外连接

三、简答题

1.见教材p151页

SELECT --它可以是星号(*)、表达式、列表、变量等。

[INTO新表] --用查询结果集合创建一个新表

FROM (或视图序列)--最多可以指定16个表或者视图,用逗号相互隔开。

[WHERE条件表达式]

[GROUP BY 属性名表] --分组子句

[HAVING 组条件表达式] --组条件子句

[ORDER BY 属性名[ASC|DESC]..] --排序子句

[COMPUTE 集函数(列名)] --汇总子句

2.见教材P133-135页

1.内连接

1)格式

SELECT 列名 FROM 表1 INNER JOIN 表2 ON

2)功能

INNER JOIN 内连接按照ON 指定的连接条件合并两个表,只返回满足条件的行,也可用于多个表的连接。只返回符合查询条件或连接条件的行作为结果集,即删除所有不符合限定条件的行。

2.外连接

外连接不但包含满足条件的行,还包括相应表中的所有行,只能用于两个表的连接。实际上基本表的外连接操作可以分为3类:

3.交叉连接

(1)格式

SELECT 列名 FROM 表1 CROSS JOIN 表2

(2)功能

相当于广义笛卡尔积。不能加筛选条件,即不能带WHERE 子句。结果表是第一个表的每行与第二个表的每行拼接后形成的表,结果表的行数等于两个表行数之积。

实验六

1、查询所有数学系学生的信息 。

--select * from s where 系='数学系'

2、查询李老师所教的课程号、课程名

--select 课程号, 课程名 from c where 教师 like '李%'

3、查询年龄大于20岁的女同学的学号和姓名。

--select 学号, 姓名 from s where year(getdate())-year(出生日期)+1>20 and 性别='女'

4、查询学号为‘H0301’所选修的全部课程成绩。

--select 成绩 from sc where 学号= 'H0301'

5、查询平均成绩都在80分以上的学生学号及平均成绩。

--select 学号,AVG(成绩) from sc group by 学号 having AVG(成绩)>=80

6、查询至少有6人选修的课程号。

--select 课程号 from sc group by 课程号 having count(*)>6

7、查询C02号课程得最高分的学生的学号

--select 学号 from sc where 课程号='c02' and 成绩=(select max(成绩) from sc where 课程号='c02')

8、查询学号为’ J0101’的学生选修的课程号和课程名

--select 课程号, 课程名 from c,sc where 学号 ='j0101' and c.课程号=sc.课程号

9、‘李小波’所选修的全部课程名称。

--Select c. 课程名 from s,c,sc where s. 学号=sc.学号 and c. 课程号=sc.课程号 and 姓名='李小波'

10、所有成绩都在70分以上的学生姓名及所在系。

--select 姓名, 系 from s,sc where s.学号=sc.学号 group by 学号 having min(成绩)>=70

11、英语成绩比数学成绩好的学生

--select sc2.学号 from c c1,c c2,sc sc1,sc sc2 where c1.课程名='英语'

--and c2.课程名='数学' and sc1.成绩>sc2.成绩 and sc1.学号=sc2.学号

--and c1.课程号=sc1.课程号 and c2.课程号=sc2.课程号

12、至少选修了两门课及以上的学生的姓名和性别

select 姓名, 性别 from s,sc

--where s.学号=sc.学号 group by 学号 having count(*)>=2

13、选修了李老师所讲课程的学生人数

--select count(*) from C,sc where 教师 like '李%' and c.课程号=sc.课程号 group by sc.课程号

14、‘操作系统’课程得最高分的学生的姓名、性别、所在系

--select 姓名, 性别, 系 from s,sc

--where s.学号=sc.学号 and 成绩=

--(select max(成绩) from c,sc where sc.课程号=c.课程号 and 课程名='操作系统')

15、显示所有课程的选修情况。

--select * from c left join sc on c.课程号=sc.课程号

16、取出没有选修‘操作系统’课程的学生姓名和年龄

select 姓名,(year(getdate())-year(出生日期))as 年龄 from s,c,sc where sc. 学号=s.学号 and c.课程号=sc.课程号 and 课程号 not in (select 课程号 from c where 课程名='操作系统')

17、没有选修李老师所讲课程的学生

--select 学号 from sc where 课程号 not in (select 课程号 from c where 教师 like '李%')

18、取出选修了全部课程的学生姓名,性别。

Select s.姓名,s. 性别 from s where not exists (select * from c where not exists(select * from sc

Where sc.学号=s.学号 and sc.课程号 = c.课程号))

19、检索至少选修课程“数据结构”和“C语言”的学生学号。

use studentcourse

select sc.学号 ,c. 课程名 from c,sc where c.课程名 = '数据结构' and c.课程号 = sc.课程号

and 学号 in ( select sc.学号 from sc ,c

where c.课程名 = 'C语言' and c.课程号 = sc.课程号)

20、检索学习课程号为C02的学生学号与姓名。

--select s.学号, 姓名 from sc,s where 课程号='c02' and s.学号=sc.学号

21、检索选修课程号为C01或C02的学生学号,姓名和所在系

--use studentcourse

--select s.学号, s.姓名,s. 系 from s,sc,c where sc.课程号 ='C02' or sc.课程号 = 'C01' --and sc.课程号 = c.课程号 and s.学号 = sc.学号 group by s. 学号, s.姓名,s. 系

22、检索至少选修课程号为C01和C03的学生姓名。

--select s.姓名

--from sc,s where sc.学号=s.学号 and 课程号='c01' and s.学号

--in (select 学号

--from sc where 课程号='c03')

23、检索每个学生的年龄。

--select year(getdate())-year(出生日期) as 年龄 from s

24、在S 中检索学生的姓名和出生年份,输出的列名为STUDENT_NAME和BIRTH_YEAR。

select 姓名 as STUDENT_NAME,year(出生日期) as BIRTH_YEAR from s

25、向学生选课数据表SC 中插入一个元组(S0404,C06,90)

insert into sc values ('S0403','C06',90)

26、把课程名为VB 的成绩从学生选课数据表SC 中删除

delete from sC where 课程号 IN (SELECT 课程号 FROM C WHERE 课程名='VB')

27、把女同学的成绩提高10%。

--update sc

--set 成绩 = 成绩*1.1 where 学号 in (select 学号 from s where 性别='女')

28、列出选修课程超过3门的学生姓名及选修门数。

select S.姓名,count(*) from S,SC,C where S.学号 =SC.学号

and SC.课程号=C.课程号

group by S.学号,S. 姓名 having count(*)>3

29、求选修了各课程的学生的人数。

select 课程号,count(*) as 人数 from SC group by 课程号

30、在学生选课数据表SC 中,求选修课程C01的学生的学号和得分,并将结果按分数降序排序。

select 学号, 成绩 from sc where 课程号='c01' order by 成绩 desc

31、查找每个同学的学号及选修课程的平均成绩情况。

--select sc.学号,avg(sc.成绩) as 平均成绩 from sc,c

--where sc.课程号 = c.课程号

--group by sc.学号

32、列出学生所有可能的选课情况。

--select * from c cross JOIN s

33、列出每个同学的学号、姓名及选修课程的平均成绩情况,没有选修的同学也列出。 select s.学号,s. 姓名, avg(成绩) from sc right join s on sc.学号=s.学号

34、列出每个同学的学号及选修课程号,没有选修的同学也列出

--select s.学号, 课程号 from sc right join s on s.学号 = sc.学号

--group by s.学号, 课程号 order by s.学号, 课程号

35、如果学号为J0404的学生的成绩少于90,则加上10分。

--update sc set 成绩 = 成绩 + 10 where 学号 = 'J0404' and 成绩

36、将成绩最低的学生的成绩加上10分。

--update sc set 成绩=成绩+10 where sc.成绩=(select min(成绩)from sc)

37、将前3名成绩最高的学生的成绩减去10分。

--update sc set 成绩=成绩 - 10 where 成绩 in (select top 3 成绩 from sc order by 成绩 DESC)

38、将前10%成绩最低的学生的成绩减去5分。

update SC set 成绩 = 成绩 - 5 where 成绩 in

(select top 10 percent 成绩 from SC order by 成绩)

39、检索至少有两名男生选修的课程名。

--select 课程名 from s,c,sc where 性别='男' and s.学号=sc.学号 and sc.课程号=c.课程号 group by 课程名 having count(*) >=2

40、检索学生基本信息表S 中不姓“王”的学生记录。

--select * from s where 姓名 not like '王%'

41、检索和“李军”同性别并同班的同学的姓名。

select 系, 姓名, 性别 from s where 性别

in (select 性别 from s where 姓名 = '李军')

and 系 in (select 系 from s where 姓名 = '李军')

42、统计被学生选修的课程门数。

--select count(distinct 课程号) 课程门数 from sc group by 课程号

43、求选修C04课程的学生的平均年龄。

--select avg(year(getdate())-year(出生日期))as 平均年龄 from s,sc,c

--where sc.课程号='C04'and s.学号=sc.学号 and sc.课程号=c.课程号

44、求刘老师所授课程的每门课程的学生平均成绩。

--select sc.课程号,avg(成绩) from sc,c

--where 教师 like '刘%' and sc.课程号 = c.课程号 group by sc.课程号

45、统计每门课程的学生选修人数(超过10人的课程才统计) 。

----要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同, ----按课程号升序排列。

--select 课程号,count(*)as 总人数 from sc

--group by 课程号

--having count(*)>10

--order by 总人数 desc, 课程号

习题七

一、选择题

1.C

2.A

3.A

二、填空题

1.查询、修改、删除、视图

2.Select_statament

3.表、视图、链接表、用户定义的函数、子查询、链接视图

习题八

一、选择题

1.C

2.A

3.D

4.B

5.A

6.A

7.B

8.B

9.A

10.A

二、填空题

1.数据定义语言、数据操纵语言、数据控制语言

2.BEGIN…..END

3.真

4.Read_only

5.SCROLL_LOCKS

6.定位和逐行处理

习题九

一、选择题

1.C

2.C

3.D

4.C

5.D

6.C

7.D

8.B

9.A

10.B

11.A

12.C

13.D

二、填空题

1.Sp_help、sp_helptext 、 sp_depends

2.Sp_rename

3. sp

4.Drop trigger

5.Insert 、delete 、update

6.事件、嵌套

7.事件

8.Inserted 、deleted

9.服务器

10.系统存储过程和用户自定义存储过程、临时存储过程、扩展存储过程四种类型

11.Insert 、delete 、update

12.完整性、一致性

习题十

一、选择题

1.D(选择分支的“原则性”应变改为“原子性”)

2.B

3.C

二、填空题

1.原子性、隔离性、一致性、持久性

2.COMMIT 、ROLLBACK TRANSACTION

习题十一

一、选择题

1.A

2.A

3.D

4.A

5.B

二、填空题

1.备份、磁盘文件

2.逻辑设备名称、物理设备名称、逻辑设备名称、物理设备名称

3.INIT 、NOINIT

4.还原数据库

习题十二

一、选择题

1.C

2.B

3.C

4.C

5.C

6.D

二、填空题

1.身份验证阶段、权限验证

2.sysadmin 、sysadmin 的任务成员

3.用户、用户组

4.Windows 用户、SQL Server用户

5.对象权限

习题十四

一、选择题

1.C

2.C

3.D

4.A

5.D

6.A

7.C

8.A

9.B

10.A

二、设计题

1.(1)满足要求的E-R 图如图所

示。

(2)书籍(品种、出版社名、数量、

书架号) 书籍借还情况(借书证号、品种、借

书日期、还书日期) 借书人(单位、姓名、借书证号)

出版社(电报编号、电话、邮编、地址,出版社名)

2. 答:(1)运动队局部E-R 图如图1

所示。

图1 运动队局部E-R 图

(2)合并结果如图2所示。

图3 运动会局部E-R 图

(3)命名冲突:项名、项目名异同义,统一命名为项目名。

结构冲突:项目在两个局部E-R 图中,一个作属性,一个作实体,合并统一为实体。

习题一

一、选择题

1.B

2.A

3.C

二、填空题

1.人工管理方式、文件管理方式、数据库系统管理方式

2.Window 身份验证模式、SQL Server身份验证模式

3..sql

4.Reporting Services 配置、Notification Services 命令提示、SQL Server Configuration Manager 、SQL Server错误和使用情况报告、SQL Server外围应用配置器。

习题二

一、选择题

1.A

2.B

3.A

4.A

二、填空题

1.二维表格、数据文件、日志文件、数据库管理系统

2.比较真实地模拟现实世界、容量被人所理解、便于计算机上实现

3.实体完整性规则、参照完整性规则、用户定义的完整性规则

习题三

一、选择题

1.C

2.D

3.A

4.A

5.A

6.C

7.A

8.B

习题四

一、选择题

1.A

2.B

3.B

4.A

5.A

二、填空题

1.UNIQUE

2.NONCLUSTERED

三、简答题

1.p88页,

1)在聚集索引中,表中各记录的物理顺序与索引的逻辑顺序相同,只有在表中建立了一个聚集索引后,数据才会按照索引键值的顺序存储到表中。由于一个表中的数据只能按照一种顺序存储,所以在表中只能建立一个聚集索引。通常在主键上创建聚集索引。

2)非聚集索引是完全独立于数据行的结构,表中的数据行不按非聚集索引的顺序排序和存储。在非聚集索引内,从索引行指向数据行的指针称为行定位器。在检索数据时,SQL Server 先在非聚集索引上搜索,找到相关信息后,再利用行定位器,找到数据表中的数据行。一个表上可以建立多个非聚集索引。

如果在一个表中既要创建聚集索引,又要创建非聚集索引,应先创建聚集索引,然后创建非聚集索引。因为创建聚集索引时将改变数据行的物理存放顺序。聚集索引的键值是唯一的,非聚集索引的键值可以重复,当然也可以指定唯一选项,这样任何两行记录的索引键值就不会相同。

2.建立主键时

3.CREATE NONCLUSTERED INDEX ID_XM ON S(姓名)

习题五

一、选择题

1.C

2.B

3.A

4.A

5.D

6.A

二、简答题

1.∏[型号,内存容量,硬盘容量]((σ价格

PRINTER ) 2.∏[生产厂家,型号,是否彩色,价格] (σ

习题六

一、选择题

1.C

2.A

3.D

4.C

5.D

6.C

7.B 、A

8.A

9.B

10.C

11.C

12.C

13.C

是否彩色=T (PRODUCT

3.∏[生产厂家](PRODUCT PRINTER)

14.C

15.D

二、填空题

1.SELECT

2.条件

3.#

4.子查询

5.T 、F 、相反

6.FROM,INTO,GROUP BY,ORDER BY,WHERE

7.结构化查询语言

8.[sever_name]指定链接的服务器名称或远程服务器名称. [database_name]如果对象驻留在SQL Server的本地实例中,则指定SQL Server数据库的名称,如果对象在链接服务器中,则指定OLE DB目录. [schema_name]如果对象在SQL Server 数据库中,则指定包含对象的架构的名称,如果对象在链接服务器中,则指定OLE DB 架构名称. object_name对象的名称

9.F5

10.Sql

11.内连接, 外连接, 交叉连接

12.等值连接, 自然连接, 自连接

13.左外连接, 右外连接, 完全外连接

三、简答题

1.见教材p151页

SELECT --它可以是星号(*)、表达式、列表、变量等。

[INTO新表] --用查询结果集合创建一个新表

FROM (或视图序列)--最多可以指定16个表或者视图,用逗号相互隔开。

[WHERE条件表达式]

[GROUP BY 属性名表] --分组子句

[HAVING 组条件表达式] --组条件子句

[ORDER BY 属性名[ASC|DESC]..] --排序子句

[COMPUTE 集函数(列名)] --汇总子句

2.见教材P133-135页

1.内连接

1)格式

SELECT 列名 FROM 表1 INNER JOIN 表2 ON

2)功能

INNER JOIN 内连接按照ON 指定的连接条件合并两个表,只返回满足条件的行,也可用于多个表的连接。只返回符合查询条件或连接条件的行作为结果集,即删除所有不符合限定条件的行。

2.外连接

外连接不但包含满足条件的行,还包括相应表中的所有行,只能用于两个表的连接。实际上基本表的外连接操作可以分为3类:

3.交叉连接

(1)格式

SELECT 列名 FROM 表1 CROSS JOIN 表2

(2)功能

相当于广义笛卡尔积。不能加筛选条件,即不能带WHERE 子句。结果表是第一个表的每行与第二个表的每行拼接后形成的表,结果表的行数等于两个表行数之积。

实验六

1、查询所有数学系学生的信息 。

--select * from s where 系='数学系'

2、查询李老师所教的课程号、课程名

--select 课程号, 课程名 from c where 教师 like '李%'

3、查询年龄大于20岁的女同学的学号和姓名。

--select 学号, 姓名 from s where year(getdate())-year(出生日期)+1>20 and 性别='女'

4、查询学号为‘H0301’所选修的全部课程成绩。

--select 成绩 from sc where 学号= 'H0301'

5、查询平均成绩都在80分以上的学生学号及平均成绩。

--select 学号,AVG(成绩) from sc group by 学号 having AVG(成绩)>=80

6、查询至少有6人选修的课程号。

--select 课程号 from sc group by 课程号 having count(*)>6

7、查询C02号课程得最高分的学生的学号

--select 学号 from sc where 课程号='c02' and 成绩=(select max(成绩) from sc where 课程号='c02')

8、查询学号为’ J0101’的学生选修的课程号和课程名

--select 课程号, 课程名 from c,sc where 学号 ='j0101' and c.课程号=sc.课程号

9、‘李小波’所选修的全部课程名称。

--Select c. 课程名 from s,c,sc where s. 学号=sc.学号 and c. 课程号=sc.课程号 and 姓名='李小波'

10、所有成绩都在70分以上的学生姓名及所在系。

--select 姓名, 系 from s,sc where s.学号=sc.学号 group by 学号 having min(成绩)>=70

11、英语成绩比数学成绩好的学生

--select sc2.学号 from c c1,c c2,sc sc1,sc sc2 where c1.课程名='英语'

--and c2.课程名='数学' and sc1.成绩>sc2.成绩 and sc1.学号=sc2.学号

--and c1.课程号=sc1.课程号 and c2.课程号=sc2.课程号

12、至少选修了两门课及以上的学生的姓名和性别

select 姓名, 性别 from s,sc

--where s.学号=sc.学号 group by 学号 having count(*)>=2

13、选修了李老师所讲课程的学生人数

--select count(*) from C,sc where 教师 like '李%' and c.课程号=sc.课程号 group by sc.课程号

14、‘操作系统’课程得最高分的学生的姓名、性别、所在系

--select 姓名, 性别, 系 from s,sc

--where s.学号=sc.学号 and 成绩=

--(select max(成绩) from c,sc where sc.课程号=c.课程号 and 课程名='操作系统')

15、显示所有课程的选修情况。

--select * from c left join sc on c.课程号=sc.课程号

16、取出没有选修‘操作系统’课程的学生姓名和年龄

select 姓名,(year(getdate())-year(出生日期))as 年龄 from s,c,sc where sc. 学号=s.学号 and c.课程号=sc.课程号 and 课程号 not in (select 课程号 from c where 课程名='操作系统')

17、没有选修李老师所讲课程的学生

--select 学号 from sc where 课程号 not in (select 课程号 from c where 教师 like '李%')

18、取出选修了全部课程的学生姓名,性别。

Select s.姓名,s. 性别 from s where not exists (select * from c where not exists(select * from sc

Where sc.学号=s.学号 and sc.课程号 = c.课程号))

19、检索至少选修课程“数据结构”和“C语言”的学生学号。

use studentcourse

select sc.学号 ,c. 课程名 from c,sc where c.课程名 = '数据结构' and c.课程号 = sc.课程号

and 学号 in ( select sc.学号 from sc ,c

where c.课程名 = 'C语言' and c.课程号 = sc.课程号)

20、检索学习课程号为C02的学生学号与姓名。

--select s.学号, 姓名 from sc,s where 课程号='c02' and s.学号=sc.学号

21、检索选修课程号为C01或C02的学生学号,姓名和所在系

--use studentcourse

--select s.学号, s.姓名,s. 系 from s,sc,c where sc.课程号 ='C02' or sc.课程号 = 'C01' --and sc.课程号 = c.课程号 and s.学号 = sc.学号 group by s. 学号, s.姓名,s. 系

22、检索至少选修课程号为C01和C03的学生姓名。

--select s.姓名

--from sc,s where sc.学号=s.学号 and 课程号='c01' and s.学号

--in (select 学号

--from sc where 课程号='c03')

23、检索每个学生的年龄。

--select year(getdate())-year(出生日期) as 年龄 from s

24、在S 中检索学生的姓名和出生年份,输出的列名为STUDENT_NAME和BIRTH_YEAR。

select 姓名 as STUDENT_NAME,year(出生日期) as BIRTH_YEAR from s

25、向学生选课数据表SC 中插入一个元组(S0404,C06,90)

insert into sc values ('S0403','C06',90)

26、把课程名为VB 的成绩从学生选课数据表SC 中删除

delete from sC where 课程号 IN (SELECT 课程号 FROM C WHERE 课程名='VB')

27、把女同学的成绩提高10%。

--update sc

--set 成绩 = 成绩*1.1 where 学号 in (select 学号 from s where 性别='女')

28、列出选修课程超过3门的学生姓名及选修门数。

select S.姓名,count(*) from S,SC,C where S.学号 =SC.学号

and SC.课程号=C.课程号

group by S.学号,S. 姓名 having count(*)>3

29、求选修了各课程的学生的人数。

select 课程号,count(*) as 人数 from SC group by 课程号

30、在学生选课数据表SC 中,求选修课程C01的学生的学号和得分,并将结果按分数降序排序。

select 学号, 成绩 from sc where 课程号='c01' order by 成绩 desc

31、查找每个同学的学号及选修课程的平均成绩情况。

--select sc.学号,avg(sc.成绩) as 平均成绩 from sc,c

--where sc.课程号 = c.课程号

--group by sc.学号

32、列出学生所有可能的选课情况。

--select * from c cross JOIN s

33、列出每个同学的学号、姓名及选修课程的平均成绩情况,没有选修的同学也列出。 select s.学号,s. 姓名, avg(成绩) from sc right join s on sc.学号=s.学号

34、列出每个同学的学号及选修课程号,没有选修的同学也列出

--select s.学号, 课程号 from sc right join s on s.学号 = sc.学号

--group by s.学号, 课程号 order by s.学号, 课程号

35、如果学号为J0404的学生的成绩少于90,则加上10分。

--update sc set 成绩 = 成绩 + 10 where 学号 = 'J0404' and 成绩

36、将成绩最低的学生的成绩加上10分。

--update sc set 成绩=成绩+10 where sc.成绩=(select min(成绩)from sc)

37、将前3名成绩最高的学生的成绩减去10分。

--update sc set 成绩=成绩 - 10 where 成绩 in (select top 3 成绩 from sc order by 成绩 DESC)

38、将前10%成绩最低的学生的成绩减去5分。

update SC set 成绩 = 成绩 - 5 where 成绩 in

(select top 10 percent 成绩 from SC order by 成绩)

39、检索至少有两名男生选修的课程名。

--select 课程名 from s,c,sc where 性别='男' and s.学号=sc.学号 and sc.课程号=c.课程号 group by 课程名 having count(*) >=2

40、检索学生基本信息表S 中不姓“王”的学生记录。

--select * from s where 姓名 not like '王%'

41、检索和“李军”同性别并同班的同学的姓名。

select 系, 姓名, 性别 from s where 性别

in (select 性别 from s where 姓名 = '李军')

and 系 in (select 系 from s where 姓名 = '李军')

42、统计被学生选修的课程门数。

--select count(distinct 课程号) 课程门数 from sc group by 课程号

43、求选修C04课程的学生的平均年龄。

--select avg(year(getdate())-year(出生日期))as 平均年龄 from s,sc,c

--where sc.课程号='C04'and s.学号=sc.学号 and sc.课程号=c.课程号

44、求刘老师所授课程的每门课程的学生平均成绩。

--select sc.课程号,avg(成绩) from sc,c

--where 教师 like '刘%' and sc.课程号 = c.课程号 group by sc.课程号

45、统计每门课程的学生选修人数(超过10人的课程才统计) 。

----要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同, ----按课程号升序排列。

--select 课程号,count(*)as 总人数 from sc

--group by 课程号

--having count(*)>10

--order by 总人数 desc, 课程号

习题七

一、选择题

1.C

2.A

3.A

二、填空题

1.查询、修改、删除、视图

2.Select_statament

3.表、视图、链接表、用户定义的函数、子查询、链接视图

习题八

一、选择题

1.C

2.A

3.D

4.B

5.A

6.A

7.B

8.B

9.A

10.A

二、填空题

1.数据定义语言、数据操纵语言、数据控制语言

2.BEGIN…..END

3.真

4.Read_only

5.SCROLL_LOCKS

6.定位和逐行处理

习题九

一、选择题

1.C

2.C

3.D

4.C

5.D

6.C

7.D

8.B

9.A

10.B

11.A

12.C

13.D

二、填空题

1.Sp_help、sp_helptext 、 sp_depends

2.Sp_rename

3. sp

4.Drop trigger

5.Insert 、delete 、update

6.事件、嵌套

7.事件

8.Inserted 、deleted

9.服务器

10.系统存储过程和用户自定义存储过程、临时存储过程、扩展存储过程四种类型

11.Insert 、delete 、update

12.完整性、一致性

习题十

一、选择题

1.D(选择分支的“原则性”应变改为“原子性”)

2.B

3.C

二、填空题

1.原子性、隔离性、一致性、持久性

2.COMMIT 、ROLLBACK TRANSACTION

习题十一

一、选择题

1.A

2.A

3.D

4.A

5.B

二、填空题

1.备份、磁盘文件

2.逻辑设备名称、物理设备名称、逻辑设备名称、物理设备名称

3.INIT 、NOINIT

4.还原数据库

习题十二

一、选择题

1.C

2.B

3.C

4.C

5.C

6.D

二、填空题

1.身份验证阶段、权限验证

2.sysadmin 、sysadmin 的任务成员

3.用户、用户组

4.Windows 用户、SQL Server用户

5.对象权限

习题十四

一、选择题

1.C

2.C

3.D

4.A

5.D

6.A

7.C

8.A

9.B

10.A

二、设计题

1.(1)满足要求的E-R 图如图所

示。

(2)书籍(品种、出版社名、数量、

书架号) 书籍借还情况(借书证号、品种、借

书日期、还书日期) 借书人(单位、姓名、借书证号)

出版社(电报编号、电话、邮编、地址,出版社名)

2. 答:(1)运动队局部E-R 图如图1

所示。

图1 运动队局部E-R 图

(2)合并结果如图2所示。

图3 运动会局部E-R 图

(3)命名冲突:项名、项目名异同义,统一命名为项目名。

结构冲突:项目在两个局部E-R 图中,一个作属性,一个作实体,合并统一为实体。


相关文章

  • 电子商务技术基础课后习题及答案
  • 电子商务技术基础课后习题及参考答案 第一章:参考答案 1.传统的商务与现代电子商务有什么区别? 参考答案:电子商务将传统商业活动中物流.资金流.信息流的传递方式利用网络科技整合,企业将重要的信息通过全球信息网(WWW).企业内部网(intr ...查看


  • 2017智慧城市继续教育题库单选题
  • 一.单项选择题( 每题1.5分, 共30题 ) 1 . 下列选项中,智慧城市建设中数据服务融合层不包含哪项内容? 咨询服务 2 . 有详细的步骤和方法,逻辑性强,主要是针对\n一个复杂组织的完整架构开发,但很难裁剪的EA 框架是哪项? DO ...查看


  • 2016管理信息系统概论作业及答案
  • 窗体顶端 您的本次作业分数为:97分 单选题 1. [第1章]管理信息系统科学的三要素是_________. A 计算机技术.管理理论和管理方法 B 管理方法.运筹学和计算机工具 C 系统的观点.数学方法和计算机应用 D 计算机技术.通信技 ...查看


  • 浙大管理信息系统作业答案
  • 您的本次作业分数为:100分单选题 1. [第1章]()反映了某个企业.组织或部门所涉及的数据本身的内容,同时也反映了数据之间的联系. A 数据库 B 数据文件(表) C 文件系统 D 数据结构 正确答案:A 单选题 2. [第1章]DSS ...查看


  • 2016年信息技术考试(含答案)
  • 2016年信息技术考试 一.判断题 (本大题共25小题,每小题2分,共50分) 1.网站发布后经营者最希望的就是有更多的人很快就知道自己的网站.( ) 正确 错误 (参考答案) :正确 2.稀缺性是一切经济资源共有的特征.( ) 正确 错误 ...查看


  • 5.电子商务
  • 1:电子钱包可以存放( ) 1.信用卡 2.传统支票 3.电子现金 4.所有者地址 5.所有者的身份证书 答案为:1 3 4 5 2: 电子商务软件的功能包括( ) 1.购物车 2.商品目录显示 3.WWW展示 4.交易处理机制 5.编译流 ...查看


  • 计算机应用基础知识试题
  • 计算机基础知识试题 1.一个完整的计算机系统包括____. A) 主机.键盘.显示器 B) 计算机及其外部设备 C) 系统软件与应用软件 D) 计算机的硬件系统和软件系统 解答:一个完整的计算机系统是由硬件系统和软件系统组成的.计算机的硬件 ...查看


  • 全国咨询工程师继续教育--工程咨询信息化答案
  • 全国咨询工程师继续教育--工程咨询的信息化 一.单选题 [本题型共15道题] 1.<国家信息化发展战略纲要>中出现了许多技术关键词,其中3S指的是( ) A.VS\GIS\GPS B.RS\PS\GIS C.RS\GIS\GPS ...查看


  • [网络教育应用基础]在线自测练习参考答案
  • <网络教育应用基础>在线自测练习参考答案 第一章 网络与教育 自测练习题 第1题:(2分) 美国前总统克林顿于1996年曾提出了一个所谓的()纲领 1. 信息高速公路发展 2. 教育技术行动 3. 京都协议 4. 网络教育 答案 ...查看


  • 高中信息技术考试题9
  • 广东省普通高中信息技术基础考试(第二套试题) 满分:100分 本卷分为第一卷和第二卷两部分.第一卷为客观题,含单选题和判断题,其中单选题30小题,共60.0分:判断题10小题,共10.0分.第二卷为操作题,共2题,第1题20.0分,第2题1 ...查看


热门内容