文档库 最新最全的文档下载
当前位置:文档库 › 数据库基础与应用复习题及答案

数据库基础与应用复习题及答案

中南大学现代远程教育课程考试复习题及参考答案

《数据库基础与应用》

一、选择题:

1.若某表满足1NF,且其所有属性合起来组成主健,则一定还满足范式( )

A、只有2NF

B、只有3NF

C、2NF和3NF

D、没有

2.Microsoft SQL Server 2000各版本的服务器组件必须在特定的操作系统上使用,其中能在Windows 2000 Professional上运行,但不能在Windows 98上运行的是( )

A、企业版

B、标准版

C、个人版

D、开发版

3.SQL Server支持在线备份,但在备份过程中,不允许执行的操作是( )

(1)、创建或删除数据库文件(2)、创建索引

(3)、执行非日志操作(4)、自动或手工缩小数据库或数据库文件大小

A、(1)

B、(1)(2)

C、(1)(2)(3)

D、(1)(2)(3)(4)

4.MS SQL Server 2000是( )

A、数据库应用程序

B、数据库系统

C、层次数据管理系统

D、关系数据库管理系统

5.现有关系:学生(学号,姓名,系号,系名),为消除数据冗余,至少需要分解为( )

A、1个表

B、2个表

C、3个表

D、4个表

6.数据库中存放三个关系:学生(学号,姓名)和课程(课程号,课程名)和成绩(学号、课程号、成绩),为快速查出某位学生所学的课程名,应该( )

A、在学生表上按学号建索引

B、在成绩表上按课程号建索引

C、在课程表上按课程号建索引

D、在学生表上按姓名建索引

7.如果要从数据库中删除触发器,应该使用SQL语言的命令( )

A、DELETE TRIGGER

B、DROP TRIGGER

C、REMOVE TRIGGER

D、DISABLE TRIGGER

8.已知员工和员工亲属两个关系,当员工调出时,应该从员工关系中删除该员工的元组,同时在员工亲属关系中删除对应的亲属元组。在SQL语言中利用触发器定义这个完整性约束的短语是( )

A、INSTEAD OF DELETE

B、INSTEAD OF DROP

C、AFTER DELETE

D、AFTER UPDATE

9.安装MS SQL Server时,系统自动建立几个数据库,其中有一个数据库记录了一个SQL Server系统的所有系统信息,这个数据库是( )

A、master数据库

B、model数据库

C、tempdb数据库

D、pubs数据库

10.对于数据库的管理,对SQL Server中guest用户的描述错误的是( )

A、安装系统时,guest用户被加入到master、pubs、tempdb、northwind数据中

B、用户成功登录到SQL Server后,若该登录账号在某数据库中无合法数据库用户,则系统将可能

允许以guest用户来访问该数据库

C、不能从master、tempdb数据库中删除guest用户

D、在新建一个数据库时,guest用户将被自动添加

11.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从部门到职员的联系类型是( )

A、多对多

B、一对一

C、多对一

D、一对多

12.以下情况发生,往往要求我们立即对master 数据库进行备份,错误的是( )

A、增加用户数据库

B、删除用户数据库

C、执行与登录有关的操作

D、增加数据库用户

13.SQL语言中,删除一个表中所有数据,但保留表结构的命令是()

A、DELETE

B、DROP

C、CLEAR

D、REMORE

14.下列四项关于启动服务器的说法不正确的是( )

A、用企业管理器启动

B、用操作系统控制面板中的服务管理程序启动

C、用命令net begin mssqlserver

D、自动启动服务器

15.查询员工工资信息时,结果按工资降序排列,正确的是( )

A、ORDER BY 工资

B、ORDER BY 工资desc

C、ORDER BY 工资asc

D、ORDER BY 工资dictinct

16.下列聚合函数中正确的是( )

A、SUM (*)

B、MAX (*)

C、COUNT (*)

D、A VG (*)

17.SQL中,下列涉及通配符的操作,范围最大的是( )

A、name like ’hgf#’

B、name like ’hgf_t%’

C、name like ’hgf%’

D、name like ’h#%’ escape ’#’

18.在MS SQL Server中,关于数据库的说法正确的是()

A、一个数据库可以不包含事务日志文件

B、一个数据库可以只包含一个事务日志文件和一个数据库文件

C、一个数据库可以包含多个数据库文件,但只能包含一个事务日志文件

D、一个数据库可以包含多个事务日志文件,但只能包含一个数据库文件

19.能够实现执行SQL语句、分析查询计划、显示查询统计情况和实现索引分析等功能的SQL工具是()。

A、企业管理器

B、查询分析器

C、服务管理器

D、事件探查器

20.每个数据库有且只有一个()

A、主要数据库文件

B、次要数据库文件

C、日志文件

D、索引文件

21. 在查询分析器中执行SQL语句的快捷键是()。

A.F1 B.F3

C.F5 D.F6

22. SQL语言中,删除一个表的命令是( )。

A. DELETE

B. DROP

C. CLEAR

D. REMOVE

23. 哪个关键字用于测试跟随的子查询中的行是否存在()。

A.MOV B.EXISTS

C.UNION D.HA VING

24. 以哪个符号开头的变量是全局变量()。

A.@ B.@*

C.@@ D.@$

25. 下面哪项是一元运算符()。

A./ B.%

C.> D.-

26. 如果在一个关系中,存在某个属性(或属性组),虽然不是该关系的主码或只是主码的一部分,但

却是另一个关系的主码时,称该属性(或属性组)为这个关系的

A.候选码

B.主码

C.外码

D.连接码

27. 事务的持久性是由数据库管理系统中的哪个部件负责()

A. 恢复管理

B. 锁定设备(并发控制)

C. 完整性约束

D. 记录设备(存储管理)

28. E-R模型用于数据库设计的哪一个阶段( )。

A.需求分析

B.概念结构设计

C. 逻辑结构设计

D.物理结构设计

29. 查询语句select stuff('he rld',3,l, 'llo wo')结果为()。

A.hello B.world hello

C.hello world D.world

30. 在Student表中基于StuName字段建立的索引属于()。

A.惟一索引非聚集索引B.非惟一索引非聚集索引

C.聚集索引非惟一索引D.惟一索引聚集索引

31. 下列四项中,不属于数据库特点的是( )。

A.数据共享

B.数据完整性

C.数据冗余很高

D.数据独立性高

32. 反映现实世界中实体及实体间联系的信息模型是( )。

A.关系模型

B.层次模型

C.网状模型

D.E-R模型

33. 下列四项中,不正确的提法是( )。

A.SQL语言是关系数据库的国际标准语言

B.SQL语言具有数据定义、查询、操纵和控制功能

C.SQL语言可以自动实现关系数据库的规范化

D.SQL语言称为结构查询语言

34. 在SQL中,SELECT语句的"SELECT DISTINCT"表示查询结果中( )

A.属性名都不相同

B.去掉了重复的列

C.行都不相同

D.属性值都不相同

35.在数据操作语言(DML)的基本功能中,不包括的是( )

A.插入新数据

B.描述数据库结构

C.修改数据

D.删除数据

36. 在采用客户机/服务器体系结构的数据库应用系统中,应该将用户应用程序安装在( )

A.客户机端

B.服务器端

C.终端

D.系统端

37、实体型学生与任课教师之间具有()联系。

A 一对一

B 一对多

C 多对一

D 多对多

38. 数据库系统的日志文件用于记录下述哪类内容()

A) 程序运行过程B) 数据查询操作

C) 程序执行结果D) 数据更新操作

39. 数据库管理系统的英文缩写是()。

A.DB B.DBS

C.DBA D.DBMS

40. SQL语言中,删除一个表的命令是( )

A. DELETE

B. DROP

C. CLEAR

D. REMOVE

41.触发器可以创建在( )中。

A. 表

B. 过程

C. 数据库

D. 函数

42.删除表的语句是( )。

A.DROP

B.ALTER

C.UPDA TE

D.DELETE

43. 以下触发器是当对[表1]进行( )操作时触发。

Create Trigger abc on 表1

For insert , update , delete

A s ……

A.只是修改

B.只是插入

C.只是删除

D.修改、插入、删除

44. 规则对象在使用上与( )约束类似。

A.CHECK

B.PRIMARY KEY

C.FOREIGN KEY

D.UNIQU

45.主索引可确保字段中输入值的( )性。

A.多样

B.重复

C.唯一

D.若干

46.关于视图下列哪一个说法是错误的( )。

A.视图是一种虚拟表

B.视图中也保存有数据

C.视图也可由视图派生出来

D.视图是保存在SELECT查询

47.执行带参数的过程,正确的方法为( )。

A. 过程名参数

B. 过程名(参数)

C.过程名=参数

D.A,B,C三种都可以

48.查询毕业学校名称与“清华”有关的记录应该用( )。

A. SELECT * FROM 学习经历WHERE 毕业学校LIKE ’*清华*’

B. SELECT * FROM 学习经历WHERE 毕业学校= ’%清华%’

C. SELECT * FROM 学习经历WHERE 毕业学校LIKE ’?清华?’

D. SELECT * FROM 学习经历WHERE 毕业学校LIKE ’%清华%’

49. Select 职工号FROM 职工WHERE 工资>1250 命令的功能是( )。

A.查询工资大于1250的纪录

B.查询1250号记录后的记录

C.检索所有的职工号

D.从[职工]关系中检索工资大于1250的职工号

50. 关于关系图下列哪一个是正确的( )。

A.关系图是在同一个表中不同字段之间建立关联

B.关系图是表与表之间建立关联,与字段无关

C.关系图是在不同表中的字段之间建立关联

D.关系图是在不同数据库之间建立关联

51.不属于数据库管理系统三个要素组成的是()。

A. 数据结构

B. 数据操作

C. 完整性约束

D. 数据分析

52.删除表中数据的语句是()。

A. DROP

B. ALTER

C. UPDA TE

D. DELETE

53.限制输入到列的值的范围,应使用()约束。

A. CHECK

B. PRIMARY KEY

C. FOREIGN KEY

D. UNIQUE

54. 触发器可引用视图或临时表,并产生两个特殊的表是()。

A.Deleted、Inserted B. Delete、Insert

C. View、Table

D. View1、table1

55.使用索引下列哪个说法是正确的()。

A. 节省磁盘空间

B. 缩短查询时间

C. 在执行插入、修改、删除时节省时间

D. 与表无关

56.关于视图下列哪一个说法是错误的()。

A. 视图是一种虚拟表

B. 视图中也存有数据

C. 视图也可由视图派生出来

D. 视图是保存在数据库中的SELECT查询

57.创建表的命令是()。

A. Create database 表名

B. Create VIEW 表名

C. Create TABLE 表名

D. ALTER TABLE 表名

58.用于模糊查询的匹配符是( )。

A. _

B. []

C. ^

D. LIKE

59. 在sql SERVER中不是系统数据库的是( )。

A. master

B. model

C. tempdb

D. pubs

60.关于关系图下列哪一个是正确的()。

A. 关系图是在同一个表中不同字段之间建立关联

B. 关系图是在不同表中的字段之间建立关联

C. 关系图是表与表之间建立关联,与字段无关。

D. 关系图是在不同数据库之间建立关联

二、填空题:

11.MS SQL Server提供多个图形化工具,其中用来启动、停止和暂停SQL Serve的图形化工具称为_______________。

2._________是已经存储在SQL Server服务器中的一组预编译过的Transact-SQL语句。

3.在______________身份验证模式,输入的账号必须是在2000 professional(或NT)已经建立的登录者或组。

4.HAVING子句与WHERE子句很相似,其区别在于:

WHERE子句作用的对象是______________,HAVING子句作用的对象是________________。

5.已知有学生关系S(SNO,SNAME,AGE,DNO),各属性含义依次为学号,姓名、年龄和所在系号;学生选课关系SC(SNO,CNO,SCORE),各属性含义依次为学号、课程号和成绩。分析以下SQL语句:

SELECT SNO

FROM SC

WHERE SCORE= (SELECT SUM(SCORE)

FROM SC

WHERE CNO='002')

简述上述语句完成了的查询操作是_____________________________________________。

6. 表或视图的操作权限有select、___________、___________、___________和dri。

7.创建、修改和删除表命令分别是create table、_________ table和_________ table。

8. 实体—联系模型的三要素是______________、____________和实体之间的联系。

9. 创建、修改和删除表语句分别是_________ table、_________ table和_________ table。

10. SQL Server的数据类型可分为_______数据类型和_______数据类型。

11. Transact-SQL语言有4部分元素组成,分别是:数据定义语言、________________、______________

和一些附加的语言元素。

12. 表或视图的操作权限有select、___________、___________、___________和dri。

13. 数据完整性分为_______完整性、________完整性、________完整性和用户自定义完整性。

14. 将E-R图中的实体和联系转换为关系模型中的关系,这是数据库设计过程中____________设计阶段的

任务。

15. SQL Server复制把服务器分为______服务器、______服务器和订阅服务器三种。

16. SQL Server聚合函数有最大、最小、求和、平均和计数等,它们分别是max、_______、_______、avg

和count。

17.SQL Server 2000最常用的四个工具是__________、__________、__________和联机帮助。

18.SQL Server 2000四个系统数据库是__________、__________、__________和tempdb。

19.Transact-SQL语言主要由__________语言、__________语言、__________语言和一些附加的语言元素

等部分组成。

20.数据定义语言是指用来创建、修改和删除各种对象的语句是__________、__________和__________。

21.数据操纵语言是指用来查询、添加、修改和删除数据库中数据的语句,这些语句包括select、

__________、__________和__________。

22.数据控制语言是用于控制对数据库对象的权限的SQL 语句,授权、拒绝和撤销访问数据库对象权限

的语句是__________、__________和__________。

23. 语句select char(68), len('你是BigTiger ') 的执行结果是:______ ___和_________。24.IBM公司的研究人员E.F.Codd连续发表了论文,提出了关系模型,奠定了________管理系统的基础。25.数据库的数据模型包含_________、_______和_________三个要素。

26._________可用于实现参数化视图的功能,这种类型的函数在使用参数和扩展索引视图方面提供了比_________更多的灵活性。

27._________是已经存储在SQL Server服务器中的一组预编译过的Transact-SQL语句。

28.SQL Server 数据库的体系结构也是三级模式结构,但术语与传统的关系模式不同,在SQL Server 中,_________对应于视图、_______对应于基本表、________对应于存储文件。

29.SQL Server的数据库文件的扩展名为_____、事务日志文件的扩展名为_______。

30.建立和使用________的目的是为了保证数据的完整性。

31.BACKUP命令是对数据库进行__________, RESTORE命令是对数据库进行__________。

32.从最终用户角度来看,数据库应用系统分为单用户结构、主从式结构、分布式结构、____________结构和____________结构。

33.对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的_________。

34.SQL Server 2000的安全性分为两类:_______安全性和_______安全性。

三、简述题:

1、视图

2、索引

3、触发器

4、事务

5、警报

6. 视图的概念。

7. 游标的概念。

8. 试述关系的性质。

9. 数据库规范设计方法将数据库设计划分的六个阶段是什么?

10. 试述关系的性质。

11. 数据库系统的特点有哪些?

12.什么是数据库管理系统?它的主要功能是什么?

13.什么是数据完整性?完整性有哪些类型?

14.自定义内嵌表值函数与视图的使用有什么不同?

15.存储过程与触发器有什么不同?

四、程序设计题:

1.设有学生选修课程数据库,

学生表(学号,姓名,年龄,性别,所在系,地址,出生日期)

选课表(学号,课程号,成绩)

课程表(课程号,课程名称,教师姓名)

用SQL语言查询下列问题:

1)李老师所教的课程号、课程名称。

2)年龄大于23岁的女学生的学号和姓名。

3)“李小波”所选修的全部课程名称。

4)所有成绩都在80分以上的学生姓名及所在系。

5)没有选修“操作系统”课的学生姓名。

6)英语成绩比数学成绩好的学生。

7)至少选修两门以上课程的学生姓名、性别。

8)选修了李老师所讲课程的学生人数。

9)没有选修李老师所讲课程的学生。

10)“操作系统”课程得最高分的学生姓名、性别、所在系。

2.在[Xk]数据库中有

课程表[Course]由课程编码(CouNo)、课程名称(CouName)、教师名(Teacher)等组成,

学生表[Student]由学号(StuNo)、学生姓名(StuName)、班级编号(ClassNo)等组成,

学生选课表[StuCou] 由学号(StuNo)、课程编码(CouNo)等组成。

1.检索Xk数据库中的课程表(Course)中的教师名(Teacher)、课程编码(CouNo)、课程名称(CouName),

要求检索结果首先按照教师名降序排列,教师名相同时,则按照课程号升序排列。

2.使用IN关键字检索Xk数据库中的课程表(Course),要求检索课程编码(CouNo)不为'004'、'007'、

'013'

3.从Xk数据库中的Student表中检索第二个字为'宝'的学生名字。

4.使用Transact-SQL语句在XK数据库中创建一个名为[p_StudentPara]的存储过程。该存储过程能根据

给定的班级返回该班级代码对应的Student表中的记录。并赋值查询班级代码为'20000001'和'20000002'的学生记录。

5.创建一个触发器,要求当插入、更新、删除StuCou表的选课记录时,能更新Course表中相应的报名人

数。

6.在SQL查询分析器的查询窗口中创建一个尺寸为5MB的逻辑名字为newxk的数据库, 3MB的数据文件

NEW_DATA.MDF存储在C:\下,文件的最大尺寸为10MB,文件增量为1MB。2MB的事务日志文件NEW_LOG.LDF存储在C:\下,文件的最大尺寸为15MB,文件的增量为1MB。

3.现有关系数据库如下:

数据库名:学生选课数据库

学生表(学号,姓名,性别,年龄,专业)

课程表(课程号,课程名,学分,先行课程号)

选课表(ID, 学号,课程号,分数)

用SQL语言实现下列功能的sql语句代码:

1). 创建数据库[学生选课数据库]代码;

2). 创建[课程表]代码;

课程表(课程号char(6),课程名,学分,先行课程号)

要求使用:主键(课程号)、非空(课程名, 学分)

3). 创建[学生表]代码;

学生表(学号char(6),姓名,性别,年龄,专业)

要求使用:主键(学号)、非空(姓名,专业)、检查(性别)

4). 创建[选课表]代码;

选课表(ID,学号,课号,分数)

要求使用:外键(选课表.学号,选课表.课程号)、检查(分数),自动编号(ID)

5). 将下列课程信息添加到课程表的代码)

课程号课程名学分先行课程号

100001 C语言 2

100002 数据结构 2 100001

100003 数据库原理 2

修改课程号为100003的课程名:SQL数据库

删除课程号为100002的课程信息

6). 写出创建:选课表视图(学号,姓名,课程号,课程名,学分,分数)的代码;

7). 写出创建:某门课程成绩内嵌表值函数以及检索的代码;

检索:所有修SQL数据库这门学生的成绩;

8). 写出创建:某门课程高低均分计算某门课程成绩最高分、最低分、平均分存储过程以及执行

的代码;

执行:所有修SQL数据库这门学生的最高分、最低分、平均分;

9). 检索姓张的女同学的情况:姓名、学号、专业。(2分)

10).检索有一门或一门以上课程成绩小于60分的所有学生的信息,包括学号、姓名。

参考答案

一、选择题

二、填空题

1 服务管理器

2 存储过程

3 Windows

4 表和视图,分组

5 检索有与课程号为“002”的课程的最高成绩相等的同学的学号

6 insert、update、delete

7 alter、drop

8. 实体、属性

9. create、alter、drop

10. 系统、用户自定义

11. 数据操作语言、数据控制语言

12. insert、update、delete

13. 域、实体、参照

14. 逻辑结构

15. 发布、分发

16. min、sum

17. 服务管理器、企业管理器、查询分析器

18. master、model、msdb

19. 数据定义、数据操作、数据控制

20. create、alter、drop

21. insert、update、delete

22. grant、deny、revoke

23. D、11

24、关系数据库

25、数据结构、数据操作、完整性约束

26、内嵌表值函数、视图

27、存储过程

28、外模式、模式、内模式

29、mdf、ldf

30、约束

31、备份、恢复

32、客户/服务器、浏览器/服务器

33、基本表

34、数据访问、数据运行

三、简述题

1、视图是由一个或多个数据表(基本表)或视图导出的虚拟表或查询表。

2、索引就是表中数据和相应存储位置的列表。

3、触发器是特殊类型的存储过程,它能在任何试图改变表或视图中由触发器保护的数据时执行。触发

器主要通过操作事件(INSERT、UPDA TE、DELETE)进行触发而被自动执行,不能直接调用执行,也不能被传送和接受参数。

4、事务(Transaction)可以看成是由对数据库的若干操作组成的一个单元,如果这些操作在执行过程中任

何一条操作不能正常完成的话,就取消单元中的所有操作,要么单元中的所有操作都正常完成。

5、警报是指发生特定事件,如发生特定的错误或某种严重级别的错误,或者用户自定义的错误时所采

取的措施。

6. 视图是由一个或多个数据表(基本表)或视图导出的虚拟表或查询表。

7. 游标是允许用户能够从select语句查询的结果集中,逐条逐行地访问记录,可以按照自己的意愿逐行

地显示、修改或删除这些记录的数据访问处理机制。

8.

1)每一列中的数据必须具有相同的数据类型。

2)每一个关系模式中属性的个数是固定的,并且必须命名,而且属性名不能相同。

3)在同一个关系模式中,每一个属性必须是不可分解的。

4)在关系中,行和列的顺序是无关紧要的。

5)在关系中,不允许出现两个完全相同的元组。

9.

1)需求分析

2)概念结构设计

3)逻辑结构设计

4)数据库物理设计

5)数据库实施

6)数据库运行与维护

10. 1)每一列中的数据必须具有相同的数据类型。

2)每一个关系模式中属性的个数是固定的,并且必须命名,而且属性名不能相同。

3)在同一个关系模式中,每一个属性必须是不可分解的。

4)在关系中,行和列的顺序是无关紧要的。

5)在关系中,不允许出现两个完全相同的元组。

11. 1)采用特定的数据模型来管理数据。

2)程序独立于数据,实现了数据的独立性。

3)数据的共享性好,冗余度低,进而也减少了数据的不一致性。

4)数据由数据库管理系统统一管理和控制。

12.什么是数据库管理系统?它的主要功能是什么?

DBMS是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。包括数据库的建立、查询、更新及各种数据控制。

13.什么是数据完整性?完整性有哪些类型?

数据完整性用于保证数据库中数据的正确性、一致性和可靠性。数据完整性有四种类型:

实体完整性、域完整性、引用完整性、用户定义完整性

14.自定义内嵌表值函数与视图的使用有什么不同?

答:内嵌标值函数可用于实现参数化视图的功能。这种类型的函数在使用参数和扩展索引视图方面提供了比视图更多的灵活性。

15.存储过程与触发器有什么不同?

答:触发器是特殊类型的存储过程,它能在任何试图改变表中由触发器保护的数据时执行。触发器主要通过事件进行触发而被执行,触发器不能直接调用执行,也不能被传送和接受参数,而存储过程可以通过存储过程名被直接调用。触发器与表有关,存储过程与表无关。

四、程序设计题

1

1)

select 课程号, 课程名称

from 课程表

where 教师姓名='李老师'

2)

select 学号, 姓名from 学生表

where (性别='女') and (年龄>23)

3)

select 课程名称from 课程表

where 课程号in

(select 选课表.课程号from 选课表,学生表

where (选课表.学号=学生表.学号) and (学生表.姓名='李小波'))

4)

select 姓名, 所在系from 学生表where 学号in

(select distinct 学号from 选课表where 成绩>= 80)

5)没有选修“操作系统”课的学生姓名。

select distinct 学生表.学号, 姓名

from 学生表, 选课表, 课程表

where (选课表.学号=学生表.学号) and (选课表.课程号=课程表.课程号)

and (课程名称<>'操作系统')

6)英语成绩比数学成绩好的学生。

create function 课程成绩(@课程名nchar(255), @学号char(6))

returns numeric as

begin

declare @i numeric

select @i=成绩from [选课表], [课程表]

where (学号= @学号) and ([选课表].[课程号] =[课程表].[课程号]) and ([课程名称] = @课程名) return @i

end

select 学号, 姓名,

英语成绩= dbo.课程成绩('英语',学号), 数学成绩= dbo.课程成绩('数学',学号)

from 学生信息表

where dbo.课程成绩('英语',学号)>dbo.课程成绩('数学',学号)

7)至少选修两门以上课程的学生姓名、性别。

select [姓名], [性别] from [学生表]

where [学号] in

(SELECT [学号] FROM [选课表]

group by [学号] having count([学号])>1)

8)选修了李老师所讲课程的学生人数。

select count(学号)

from 选课表, 课程表

where (选课表.课程号=课程表.课程号) and (教师姓名='李老师')

9)没有选修李老师所讲课程的学生,

select distinct 学生表.学号, 学生表.姓名

from 学生表, 选课表, 课程表

where (选课表.学号=学生表.学号) and (选课表.课程号=课程表.课程号)

and (教师姓名<>'李老师')

10)“操作系统”课程得最高分的学生姓名、性别、所在系。

select top 1 学生表.学号, 姓名, 所在系

from 学生表, 选课表, 课程表

where (选课表.学号=学生表.学号) and (选课表.课程号=课程表.课程号)

and (课程名称= '操作系统')

order by 成绩desc

2

1). USE Xk

GO

SELECT Teacher AS '教师名',CouNo AS '课程号',CouName AS '课程名'

FROM Course

ORDER BY Teacher DESC,CouNo

GO

2). USE Xk

GO

Select CouName as ‘课程名称’

From Course

Where CouNo='004' or CouNo='007' or CouNo='013'

go

3). USE Xk

GO

Select * From Student

WHERE StuName LIKE '_宝%'

GO

4). CREATE PROCEDURE p_StudentPara

@ClassNo VARCHAR(8)

AS

SELECT * FROM Student WHERE ClassNo=@ClassNo

GO

EXEC p_StudentPara @ClassNo='20000001'

GO

EXEC p_StudentPara @ClassNo='20000002'

GO

5). USE Xk

GO

CREATE TRIGGER SetWillNum ON StuCou

FOR INSERT, UPDATE, DELETE

AS

UPDATE Course SET WillNum=WillNum+1 WHERE CouNo=(SELECT CouNo FROM INSERTED) UPDATE Course SET WillNum=WillNum-1 WHERE CouNo=(SELECT CouNo FROM DELETED) UPDATE StuCou SET CouNo='002' WHERE StuNo='00000011' AND CouNo='003'

6). CREATE DATABASE NEW

ON

(NAME =NEW_data,

FILENAME ='C:\NEW_data.mdf',

SIZE=3,

MAXSIZE=10,

FILEGROWTH=1)

LOG ON

(NAME ='NEW_log',

FILENAME='C:\NEW_log.ldf',

SIZE =2MB,

MAXSIZE= 15MB,

FILEGROWTH=1MB)

GO

3

1). create database [学生选课数据库]

go

use [学生选课数据库]

go

2). create table 学生表

([学号] char(6) primary key,

[姓名] nchar(4) not null,

[性别] nchar(1) check([性别] in ('男', '女')),

[年龄] numeric(2) ,

[专业] char(18) not null

)

3).create table课程表

([课程号] char(6) primary key,

[课程名] char(40) not null,

[学分] numeric(2) not null,

[先行课程号] char(6)

)

4). create table选课表

(ID IDENTITY(1, 1),

[学号] char(6) references 学生表(学号),

[课程号] char(6) references 课程表(课程号),

[分数] integer check([分数] between 0 and 100)

)

5). insert 课程表values('100001', 'C语言',2)

insert 课程表values('100002', '数据结构', 2, '100001')

insert 课程表values('100003', '数据库原理', 2)

update课程表set 课程名='SQL数据库' where 课程号='100003' delete课程表where 课程号='100002'

6). create view [选课表视图] as

select 选课表.学号,姓名,选课表.课程号,课程名, 学分, 分数

from 选课表,学生表,课程表

where 选课表.学号=学生表.学号

and 选课表.课程号=课程表.课程号

--或

create view [选课表视图] as

select 选课表.学号,姓名,选课表.课程号,课程名, 学分,分数

from 选课表join 学生表on 选课表.学号=学生表.学号

join 课程表on 选课表.课程号=课程表.课程号

7). create function [某门课程成绩](@课程名 varchar(40))

returns table as

return (select学号,姓名,课程名,学分,分数from 选课表视图

where 课程名=@课程名)

go

select * from [某门课程成绩]('SQL数据库')

8). create procedure [某门课程高低均分]

@课程名varchar(40) as

select 课程名, 最高分=max(分数)、最低分=min(分数)、平均分=avg(分数) from 选课表视图

where 课程名= @课程名

go

execute [某门课程高低均分] 'SQL数据库'

9). select 姓名, 学号, 专业 from 学生表

where 姓名like '张%' and 性别='女'

10). select 学号, 姓名, 专业 from 学生表 where学号 in

(select distinct 学号from 选课表where分数<60)

11).use [学生选课数据库]

exec sp_addlogin 'U领导', NULL, '学生选课数据库', '简体中文'

exec sp_password NULL, '888', 'U领导'

exec sp_grantdbaccess 'U领导', 'U读者'

exec sp_addrolemember 'db_datareader', 'U读者'

--或

use [学生选课数据库]

exec sp_addlogin 'U领导', '888', '学生选课数据库'

exec sp_grantdbaccess 'U领导', 'U读者'

exec sp_addrolemember 'db_datareader', 'U读者'

相关文档
相关文档 最新文档