1、设教学数据库 Education 有三个关系:学生关系 s(student_id,student_name,birthday,sex,major) ;学习关系 sc(student_id,course_id,score) ;课程关系 course(course_id,course_name,term,period,credit)查询问题:单表查询1:查所有年龄在 20岁以下的学生姓名及年龄。select student_name,year(getdate() - year(birthday) as 年龄from swhere year(getdate() - year(birthday) 22
2、2:查询选修课程超过 3门的学生姓名及课程门数select student_name,count(*) as 课程门数from s,scwhere s.student_id=sc.student_idgroup by student_namehaving count(*) 3多表查询23:查询每个学生及其选修课程的情况。select *from s,sc,coursewhere s.student_id=sc.student_id and sc.course_id=course.course_id24:查询选修了 110011课程且成绩在 90分以上的学生信息。select *from s,s
3、cwhere s.student_id=sc.student_id and course_id=110010 and score9025:查询每个学生的姓名,选修的课程名及其成绩。select student_name,course_name,scorefrom s,sc,coursewhere s.student_id=sc.student_id and sc.course_id=course.course_id子查询27:查询选修了 110011课程的学生姓名。select student_namefrom swhere student_id in (select student_idfr
4、om scwhere course_id=110010)28:查询与“梁婷婷”在同一个专业学习的学生学号、姓名和专业。select student_id,student_name,majorfrom swhere major=(select majorfrom swhere student_name=梁婷婷)29:查询选修课程名为“C+”的学生学号和姓名。select student_id,student_namefrom swhere student_id in (select student_idfrom scwhere course_id=(select course_idfrom co
5、ursewhere course_name=C+)30:查询至少选修课程号为110010和110011的姓名。select student_namefrom swhere student_id in( select s1.student_idfrom sc s1,sc s2where s1.course_id=110010 and s2.course_id=110011and s1.student_id=s2.student_id)31:查询选修“C+”的最高分的学生姓名,性别,系别select student_name,sex,majorfrom s,scwhere s.student_id
6、 = sc.student_id and course_id in( select sc.course_idfrom sc,coursewhere sc.course_id = course.course_id and course_name = C+) and score = ( select max(score) from sc,coursewhere sc.course_id = course.course_id and course_name = C+)32:查询所有未选修C+课程的学生姓名。select student_name from swhere not exists (sel
7、ect * from sc where course_id=( select course_id from course where course_name=C+) and sc.student_id=s.student_id )1. ( A )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。ADBMS BDB (database)CDBS DDBA 2、查询表中的前3条记录使用的关键字是( D )A、up 3 B、down 3 C、pre 3 D、top 33. SQL Server安装程序
8、创建4个系统数据库,下列哪个不是( C )系统数据库。A. Master B. Model C. pub D. msdb4. 下列哪个不是sql 数据库文件的后缀(扩展名)。( C )A.mdf B .ldf C.tif D.ndf5. SQL的视图是从( C )中导出的。A. 基本表 B. 视图 C. 基本表或视图 D. 数据库6. 在SQL语言中,建立存储过程的命令是( A ) A、CREATE PROCEDURE B、CREATE RULE C、CREATE DURE D、CREATE FILE7. SQL语言中,删除表中数据的命令是( A )。 A. DELETE B. DROP C.
9、 CLEAR D. REMOVE8. 在MS SQL Server中,用来显示数据库信息的系统存储过程是( D )。A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb 9. Microsoft 公司的SQL Server 2005 数据库管理系统一般只能运行在( A )。A. Windows 平台 B. UNIX平台 C. LINX平台 D. NetWare 平台10. SQL Server 2005 的物理存储主要包括3类文件(A )。A. 主数据文件、次数据文件、事务日志文件B. 主数据文件、次数据文件、文本文件C. 表文件、索引文件、存储文件D.
10、表文件、索引文件、图表文件11. SQL Server 2000 系统中的所有系统级信息存储于哪个数据库( A )。A. master B. model C. tempdb D.msdb 12、下列说法正确的是( B )。A 、视图是观察数据的一种方法,只能基于基本表建立。B 、视图是虚表,观察到的数据是实际基本表中的数据。C 、索引查找法一定比表扫描法查询速度快。D 、索引的创建只和数据的存储有关系。13、SQL Server 2005是一个( C )的数据库系统。(A)网状型 (B)层次型 (C)关系型 (D)以上都不是14、在SQL Server 2005中,当数据表被修改时,系统自动执
11、行的数据库对象是( B )。(A)存储过程 (B)触发器 (C)视图 (D)其他数据库对象15、要查询book表中所有书名中包含“计算机”的书籍情况,可用( B )语句。(A) SELECT * FROM book WHERE book_name LIKE 计算机*(B) SELECT * FROM book WHERE book_name LIKE 计算机% (C) SELECT * FROM book WHERE book_name = 计算机*(D) SELECT * FROM book WHERE book_name = 计算机%16、关于主键描述正确的是:( C )(A)包含一列 (
12、B)包含两列 (C)包含一列或者多列 (D) 以上都不正确17、在SQL SERVER中局部变量前面的字符为:( D )(A)* (B)# (C) (D) 18、在WHILE循环语句中,如果循环体语句条数多于一条,必须使用:(A)(A) BEGINEND(B) CASEEND(C) IFTHEN(D) GOTO19、SELECT查询中,要把结果中的行按照某一列的值进行排序,所用到的子句是:(A)(A)ORDER BY (B)WHERE (C)GROUP BY (D)HAVING20、对视图的描述错误的是:( C )(A) 是一张虚拟的表(B) 在存储视图时存储的是视图的定义(C) 在存储视图时
13、存储的是视图中的数据(D) 可以像查询表一样来查询视图五、设计题(共45分) 现有关系数据库如下: 数据库名:学生成绩数据库学生信息表(学号 char(6),姓名,性别,民族,身份证号) 课程信息表(课号 char(6),名称) 成绩信息表(ID,学号,课号,分数) Select 学号,姓名 from 学生信息表 where 学号 in (Select distinct 学号 from 成绩信息表 where 分数=0 and 分数=100)5. 将下列课程信息添加到课程信息表的代码(8分)课号 名称100101 西班牙语100102 大学英语insert into 课程信息表values(1
14、00101,西班牙语)insert into 课程信息表values(100102,大学英语)修改 课号为100102的课程名称:专业英语update 课程信息表set 名称=专业英语 where 课号=100102删除 课号为100101的课程信息 delete from 课程信息表where 课号=1001016. 创建视图成绩信息表视图的代码;(5分)成绩信息表视图(学号,姓名,课号,课程名称,分数)Create view 成绩信息表视图asselect 学号,姓名,课号,课程名称,分数 from 学生信息表,课程信息表,成绩信息表where 学生信息表.学号=成绩信息表.学号 and
15、课程信息表.课号=成绩信息表.课号7. 从学生信息表中查询姓刘的女同学的情况:姓名、性别、民族。(2分select 姓名,性别,民族from 学生信息表where 姓名like 刘% and 性别=女8. 查询有一门或一门以上课程成绩小于60分的所有学生的信息,包括学号、姓名。(4分)select 学号,姓名from 学生信息表where 学号 in (select distinct 学号from 成绩信息表where 分数60)9. 创建带参数的存储过程某门课程高低均分、执行该过程的代码(7分)存储过程功能:查询某门课程的最高分、最低分、平均分; 执行该过程,查询所有修专业英语这门学生的最高分、最低分、平均分;create procedure 某门课程高低均分课程名nvarchar(30) asselect max(分数) as 最高分,min(分数) as 最低分 ,avg(分数) as 平均分from 课程信息表,成绩信息表where 课程信息表.课号=成绩信息表.课号and 名称=课程名执行过程:exec 某门课程高低均分 课程名=专业英语