华东师范大学成人高等教育(网络教育)
电子商务(专科)
《网络数据库与应用》模拟试卷(C卷)
考试形式:开卷 考试时间:90分钟
学习中心:_________ 姓名:_________ 学号:_________ 成绩:_________
注:答案统一做在答题纸上。
一. 是非题(每题1分共30分,在括号中使用×√答题))
1. 在应用程序中使用了数据库管理系统,可以提高编程效率和应用程序的运行
效率。 2. MySQL对数据文件大小的限制主要取决于操作系统控制下的磁盘文件格式。 3. 在C/S结构中,前端应用程序必须知道数据库的文件名及存放地。 4. MySQL产品中自带的一个简单的客户端程序的文件名是mysql.exe。 5. SQL语言在Windows系统下关键字大小写敏感。 6. 同一表中,列名不能重复。 7. 每个表中只能有一个主键的定义。 8. 查看当前数据库中各表名的语句为show table。 9. 结构化查询语言只涉及查询数据的语句,并不包括修改和删除数据的语句。 10. 相对而言,char类型的列比varchar类型的列浪费空间。 11. 数据类型为tinyint的列只能保存正整数。 12. NULL参加任何算术运算,结果也为NULL。 13. x between y and z等同于x>y && x 14. 逻辑值的“真”和“假”可以用逻辑常量TRUE和FALSE表示。 15. 数值列中的0就是NULL。 16. 函数名和紧跟其后的括号之间可以留有空格。 17. avg(x)和sum(x)函数在运行时,那些x为NULL的行将不进行计算。 18. 所创建的数据库和表的名字,都可以使用中文。 19. 建立索引的目的在于加快查询速度以及约束输入的数据。 20. 表中对行的插入、修改和删除,不会引起该表索引数据的自动更新。 21. 主键被强制定义成NOT NULL和UNIQUE。 22. ALTER TABLE语句可以修改表中各列的先后顺序。 23. select语句的过滤条件既可以放在where子句中,也可以放在from子句中。 24. 一句insert语句可以插入多行。 25. UPDATE语句可以按照指定的排序规则更新数据。 26. DELETE语句中只要是没有WHERE子句,就将删除表中的所有数据行,不 管有没有LIMIT语句。 27. 带有GROUP BY子句的SELECT语句,结果集中每一个组只用一行数据来 表示。 28. 如果在排序和分组的对象上建立了索引,可以极大地提高速度。 29. 不使用JOIN关键字,也可以表示内连接。 第1页 共6页 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 30. 参与UNION联合的各个SELECT语句结果集的列数可以不同。 ( ) 二. 单选题(每题1分,共10分) 1. 如果三层结构中的三层分别安装在三台机器中,那么各台机器所用的操作系统的关系 应该是____。 A. 三台机器可以使用各不相同的操作系统。 B. 前两层所在的机器操作系统必须相同。 C. 后两层所在的机器操作系统必须相同。 D. 三台机器必须使用相同的操作系统。 2. 数据库服务器、数据库和表的关系,正确的说法是_____。 A. 一个数据库服务器可以管理多个数据库,一个数据库只能包含一个表。 B. 一个数据库服务器只能管理一个数据库,一个数据库可以包含多个表。 C. 一个数据库服务器可以管理多个数据库,一个数据库可以包含多个表。 D. 一个数据库服务器只能管理一个数据库,一个数据库只能包含一个表。 3. 察看数据库服务器所管理的数据库名称的语句为_____。 A. show databases B. show tables C. show database D. show table 4. 对于insert语句正确的说法是_____。 A. 一句语句可以插入多行数据,能指定插入至某一已存在的行的前面。 B. 一句语句只能插入一行数据,能指定插入至某一已存在的行的前面。 C. 一句语句只能插入一行数据,不能指定插入至某一已存在的行的前面。 D. 一句语句可以插入多行数据,不能指定插入至某一已存在的行的前面。 5. 对于delete语句正确的说法是:_____。 A. 可以删除整个数据库。 B. 可以删除整个表,包括表的结构。 C. 只能删除一个表中的行,不能删除表结构。 D. 一句语句只能删除一行。 6. SELECT语句中的限制结果集行数子句为_____。 A. limit B. order by C. from D. having 7. 表中有一个列的数据类型为int(5),其中的5表示_____。 A. 最小存储宽度 B. 最大存储宽度 C. 最小显示宽度 D. 最大显示宽度 8. 将某一个数据库指定为当前数据库,可以使用的语句为_____。 A. OPEN B. DEFAULT C. CURRENT 第2页 共6页 D. USE 9. 有三个表,它们的记录行数分别是10行、2行和6行,三个表进行交叉连接后,结果 集中共有_____行数据。 A. 18 B. 26 C. 120 D. 不确定 10. SELECT m.member,b.book FROM members m inner join books b using(mid);语句等 效于_____。 A. SELECT m.member,b.book FROM members m,books b where m.mid=b.mid; B. SELECT m.member,b.book FROM members m left join books b where m.mid=b.mid; C. SELECT m.member,b.book FROM members m left join books b where m.mid<>b.mid; D. SELECT m.member,b.book FROM members m inner join books b on (mid); 三. 填充题(每格1.5分共15分) 1. 如果MySQL服务名为MySQL5,则在Windows的命令窗口中,启动MySQL服务2. 的指令是 net start mysql5 。 smallint和tinyint两种数据类型占用的字节数分别为 2 和 1 。 写出两种DBMS: SQL Server和Oracle 3. bigint类型的数据占用的字节数为: 8 。 4. select -2.0*4.0;的结果为__-8.00___。 5. select 9/3;的结果为__3.0000___。 6. select 'Abc'='abc';的结果为_____。 7. select NULL=NULL/1;的结果为_____。 说明:如下所列的数据表及其中的数据适用于下列所有的试题! 当前数据库是testdb,在该数据库中,有students、scores、courses、majors四个表,其结构及数据如下所列: students id 学号 int(11) name sex bofd 姓名 性别 生日 char(4) char(1) date 1980-12-03 1980-09-22 1981-03-04 1981-05-24 1980-06-02 1980-08-30 mid 专业号 tinyint 1 3 2 1 4 2 1 张三 男 2 王武 女 3 李四 女 4 赵六 女 5 张建国 男 6 赵娟 女 第3页 共6页 scores id term 学号 学期 char(10) tinyint 1 1 1 2 2 1 2 2 3 4 3 4 3 4 3 4 5 1 6 1 6 2 6 2 courses cid 课程编号smallint 1 2 3 4 5 6 cname 课程名称chr(24) 电子商务概论 c语言程序设计 MySQL数据库 php程序设计 FoxPro数据库 会计原理 cid score 课程编号 分数 smallint numerirc(4,1) 2 2 3 3 1 2 4 6 2 2 2 3 80.0 76.0 60.0 65.0 66.0 NULL 81.0 70.0 67.0 50.0 87.0 86.0 mid 专业号tinyint 1 2 3 4 5 6 majors mname 专业名称chr(24) 电子商务 商务英语 计算机硬件 计算机软件 社区管理 日语 四. 程序改错(注意:在题目的原意上修改,最终语句写在题目的右方)(每题5分共10 分) 1. 在scores表中,列出“课程编号”不为2、4、5并且还没有输入“分数”的记录行, 结果按学期从小到大排序,如学期相同,再按“课程编号”从大到小排序, select * from scores Select * from scores where course not in where course in not (’2’,’4’,’5’) (‘ 2’, ‘4’, ‘5’) and score is null oder by term or score=null asc, cid desc order term-cid; 2. 对scores表的分数在“课程编号”和“学期”上进行分组计数、累加、平均统计, 不包括第4学期,也不包括学号为6的同学,结果按计数和平均值排序,并满足平均分在70到81之间的行。 第4页 共6页 select cid, term, count(*) cnt, sum(score),avg(score) avg from \where term<>4 group cid+term having id<>’6’ and avg between 70 and 81 order cnt+avg; Select cid, term, count(*) as cnt, sum(score) as total, avg(score) as avg from ‘scores’ where term != 4 and id != 6 group by cid, term having avg between 70 and 81 order by cnt, avg 五. 写出下列语句的运行结果(每题5分共10分) 1. SELECT s2.name, s2.mid FROM students s1, students s2 WHERE s1. mid = s2. mid and s1.name =’赵六’ and s2.name<>’赵六’; 2. select cid,cname from courses where not exists (select * from scores where courses.cid=scores.cid); name mid 张三 1 5, FoxPro数据库 六. 按要求写出SQL语句(每题5分,共25分) 查询统计所有男同学的平均分数和所有女同学的平均分数。查询结果集中有两列,分别为“性别”和“平均分”,只有两行记录,一行是男同学的平均分数,另一行是女同学的平均分数。(使用一句语句) select stu.sex as sex, avg(sc.score) as avg from scores as sc join students as stu on ( stu.id = sc.id ) group by stu.sex 1. 2. 查询没有任何成绩的学生的名字。(使用一句语句) select stu.name from scores as sc join students as stu on ( stu.id = sc.id) where sc.scores is null 将students表中的结构(主键和索引)和数据复制到一个新的students1表中。(分两个步骤两句语句) create table students1 like students; 3. insert into students1 select * from students; 在students1表中添加一个email列,该列最大字符宽度为40、具有唯一索引,并将该列放在mid列的前面。(使用一句语句) create table students1 like students; 4. insert into students1 select * from students; 第5页 共6页