数据库原理与应用习题
D. SQL语句的结束符为分号“;”
10. 索引是在基本表的列上建立的一种数据库对象,它同基本表分开存储,使用它能够加快数据的____速度。
A. 插入 B. 修改 C. 删除 D. 查询
13.假定学生关系是S(S#,SNAME,SEX,AGE),课程关系C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。要查找选修“DATABASE”课程的“男”学生姓名,将涉及到关系____。
A.S B.SC,C C.S,SC D.S,C,SC
14. 在SQL中,使用INSERT命令添加数据,若需要添加一批数据应使用____语句。
A.INSERT?VALUES B.INSERT?SELECT C.INSERT?DEFAULT D.A B C均可
15. 定义基本表时,若要求某一列的值是唯一的,则应在定义时使用____保留字,但如果该列是主键,则可省写。
A.NULL B.NOT NULL C.DISTINCT D.UNIQUE
16. 使用SQL语句进行查询操作时,若希望查询结果中不出现重复元组,应在SELECT子句中使用____保留字。
A. UNIQUE B.ALL C.EXCEPT D.DISTINCT
17. 与HAVING子句一起使用的子句是____。
A.GROUP BY B.ORDER BY C.WHERE D.JOIN
18. FOREIGN KEY约束是____约束。
A.实体完整性 B.参照完整性 C.用户自定义完整性 D.域完整性
19. 若要修改基本表中某一列的数据类型,需要使用ALTER语句中的____子句。
A. DELETE B. DROP COLUMN C. ALTER COLUMN D. ADD
20. 向基本表中增加一个新列后,原有元组在该列上的值是____。
A.TRUE B.FALSE C.空值 D.不确定
22.在关系数据库系统中,为了简化用户的查询操作,而又不增加数据的存储空间,常用的方法是创建____。
A. 另一个表 B. 游标 C. 视图 D.索引
23. 查询中需要统计元组的个数时,应使用____函数。
A.SUM(列名) B.COUNT(列名) C.COUNT(*) D.AVG(列名)
24. 查询中需要统计某列中值的个数应使用____函数。
11
数据库原理与应用习题
A.SUM(列名) B.COUNT(列名) C.COUNT(*) D.AVG(列名)
25. 若用如下的SQL语句创建一个student表:
CREATE TABLE student( SNO CHAR(4) NOT NULL, SNAME CHAR(8) NOT NULL, SEX CHAR(2), AGE SMALLINT );
可以插入到student表中的是____。
A.('1031','曾华',男,23) B.('1031','曾华',NULL,NULL) C.(NULL,'曾华','男',23) D.('1031',NULL,'男',23)
第26题到第28题基于这样的3个表即学生表S、课程表C和学生选课表SC,它们的结构如下:
S(S#,SN,SEX,AGE,DEPT) C(C#,CN)
SC(S#,C#,GRADE)
其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。
26. 检索学生姓名及其所选修课程的课程号和成绩,正确的SELECT语句是____。 A.SELECT S.SN,SC.C#,SC.GRADE FROM S WHERE S.S#=SC.S#; B.SELECT S.SN,SC.C#,SC.GRADE FROM SC WHERE S.S#=SC.GRADE; C. SELECT S.SN,SC.C#,SC.GRADE FROM S,SC WHERE S.S#=SC.S#; D.SELECT S.SN,SC.C#,SC.GRADE FROM S,SC;
27. 检索选修课程名称为“DB”的男生中的最高成绩,正确的SELECT语句是____。 A.SELECT MAX(GRADE) FROM SC WHERE CN='DB’ AND SEX='男'; B.SELECT MAX(GRADE) FROM SC,C,S WHERE CN='DB' AND SEX='男';
C.SELECT MAX(GRADE) FROM SC,S WHERE SC.C#=C.C# AND CN='DB' AND SEX='男'; D.SELECT MAX(GRADE) FROM SC,C,S WHERE SC.C#=C.C# AND SC.S#=S.S# AND CN='DB' AND SEX='男';
28. 检索选修5门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。正确的SELECT语句是( )。
A.SELECT S#,SUM(GRADE) FROM SC WHERE GRADE>=60
GROUP BY S# ORDER BY 2 DESC HAVING COUNT(*)>=45 B.SELECT S#,SUM(GRADE) FROM SC WHERE GRADE>=60 GROUP BY S# HAVING COUNT(*)>=5 ORDER BY 2 DESC C.SELECT S#,SUM(GRADE) FROM SC WHERE GRADE>=60 HAVING COUNT(*)>=5 GROUP BY S# ORDER BY 2 DESC D.SELECT S#,SUM(GRADE) FROM SC WHERE GRADE>=60 ORDER BY 2 DESC GROUP BY S# HAVING COUNT(*)>=5
12
数据库原理与应用习题
29. 视图创建完成后,DBMS中存放的是____。
A. 查询语句 B.查询结果 C.视图的定义 D.所引用的基本表的定义
30.下面列出的关于视图的条目中,不正确的是____。
A.视图是外模式 B. 视图是虚表 C.使用视图可以加快查询语句的执行速度 D.使用视图可以简化查询语句的编写 (三)判断题
1.原则上讲,两个不同的对象所具有的属性值不能相同,但在给定的关系中的元组可以是完全相同的。( )
2.在关系模型中每个元组的分量不能是结构、集合、数组等复合类型。( ) 3.学生李明同时修财经和电子商务的双学位、有如下关系: StudentNo 20001101 20001101 StudentName 李明 李明 Age 18 18 Dept 财经系 电子商务系 在该关系中,学号是主码。( ) 4. 表中的一列即为一个元组。( ) 5. 从学生表(Student)中删除所有数据的语法是DROP FROM Student。( ) 6. 视图是定义在基本表之上的,对视图的操作最终也要转换为对基本表的操作。( ) 7. 关系模式的候选码可以有1个或多个,而主码只能有1个。( ) 8.在SELECT语句中,可以用%表示任意长度(长度可以为0)的字符串。( ) (四)综合题
1.(1)用sql语句建立图书数据库,数据库名称为library。 (2)用sql语句在上题所建的library数据库中建立图书表,表名为book,表结构如下。 列名 Book_id Book_name Publisher Price Lend 说明 图书编号 图书名称 出版社名称 价格 是否借出 数据类型 字符串,长度为4 字符串,长度为20 字符串,长度为20 整数 字符串,长度为2 约束 主码 非空 (3)用sql语句往book表中插入如下数据。
(4)将图书名称列(book_name)更改为varchar型,长度为40。
(5)按图书名称列(Book_name)的升序建立唯一索引,索引名称为i_bname。 (6)检索尚未借出的图书信息。
(7)删除Book表上的索引i_bname。
(8)建立已经借出的并且价格在28元以上的图书视图,名称为v_book。
13
数据库原理与应用习题
2.(1)用sql语句建立人事数据库,数据库名称为person。 (2)用sql语句在person数据库中分别建立职工表、公司表、工作表,表结构分别如下。
表1 职工表(表名:EMP) 列名 ENO ENAME AGE SEX ECITY 说明 职工工号 姓名 年龄 性别 居住城市 数据类型 字符串,长度为4 字符串,长度为12 整数 字符串,长度为2 字符串,长度为10 约束 主码 非空
表2 公司表(表名:COMP) 列名 CNO CNAME CITY 说明 公司编号 公司名称 公司所在城市 数据类型 字符串,长度为4 字符串,长度为12 字符串,长度为12 约束 主码 非空
表3 工作表(表名:WORKS) 列名 ENO CNO SALARY 说明 职工工号 公司编号 工资 数据类型 字符串,长度为4 字符串,长度为4 整数 约束 主码,引用职工表的外码 主码,引用公司表的外码
(3)往表中插入如下数据(用企业管理器或查询分析器均可)。 职工表(表名:EMP)
公司表(表名:COMP)
工作表(表名:WORKS)
(4)查询工作表(WORKS)中的信息,并且按照工资升序排列。
14
数据库原理与应用习题
(5)检索职工的工作信息,并列出职工工号、姓名、公司编号、公司名称、工资。 (6)检索工资超过2000元的男性职工工号和姓名。 3.(1)用sql语句建立经销商数据库,数据库名称为jxs。
(2)用sql语句在上题所建的jxs数据库中建立雇员表和订单表,表结构如下。
雇员表(表名:employee) 列名 Emp_no Emp_name Address 说明 雇员编号 雇员姓名 通信地址 数据类型 字符串,长度为5 字符串,长度为20 字符串,长度为100 约束 主码 非空 订单表(表名:ord) 列名 Ord_no Emp_no Ord_date Ord_money 说明 订单号 雇员编号 订单日期 订单金额 数据类型 字符串,长度为5 字符串,长度为5 日期时间型 数值型 约束 主码 外码,引用employee的主码
(3)往表中插入如下数据(用企业管理器或查询分析器均可)。 雇员表(表名:employee)
订单表(表名:ord)
(4)检索每个雇员的最高销售金额,并列出雇员号、最高金额。 (5)按照日期的升序对订单进行排序。 (6)将07001雇员的订单金额更改为0。
(7)建立雇员和订单的视图,视图中列出订单号、雇员号、雇员姓名、订单日期、订单金额,视图名称为v_1。
4.(1)创建名称为test的数据库。 (2)创建学生表,具体要求如下。
学生表:表名——student 属性:
Sno 字符型,最大7个字符 Sname 字符型,最大8个字符
表示学生学号 表示学生姓名
15