《mysql数据库武洪萍版第四章习题与答案.doc》由会员分享,可在线阅读,更多相关《mysql数据库武洪萍版第四章习题与答案.doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流一二三四五六七 mysql数据库武洪萍版第四章习题与答案【精品文档】第 8 页八 选择题1. 下面哪种数字数据类型不可以存储数据256?(D)A. bigint B. int C. Smallint D. tinyint 2. 下面是有关主键和外键之间的关系描述,正确的是(AC)A. 一个表最多只能有一个主键约束,多个外键约束。B. 一个表中最多只有一个外键约束,一个主键约束。C. 在定义主键外键约束时,应该首先定义主键约束,然后定义外键约束。D. 在定义主键外键约束时,应该首先定义主键约束,然后定义主键约束。3. 下面关于数据库中表的行和列的叙述正确的
2、是(D) A. 表中的行是有序的,列是无序的 B. 表中的列是有序的,行是无序的C. 表中的行和列都是有序的 D. 表中的行和列都是无序的4. SQL语言的数据操作语句包括 SELECT、INSERT、UPDATE、DELETE等。其中最重要的,也是使用最频繁的语句是(A) A. SELECT B.INSERT C.UPDATE D.DELETE5. 在下列SQL语句中,修改表结构的语句是(A )。A. ALTER B. CREATE C. UPDATE D. INSERT6. 设有关系R(A,B,C)和S(C,D),与关系代数表达式A,B,D(R.C=S.C(R S)等价的SQL语句是(B)
3、。A. SELECT *FROM R,S WHERE R.C=S.CB. SELECT A,B,D FROM R,S WHERE R.C=S.CC. SELECT A,B,D FROM R,S WHERE R=SD. SELECT A,B FROM R WHERE(SELECT D FROM S WHERE R.C=S.C)7. 设关系 R(A,B,C) 与SQL语句“SELECT DISTINST A FROM R WHERE B=17”等价的关系代数表达式是(A)A. A(B=17 (R) B. B=17 (A(R)C. B=17 (A. C(R) D. A. C(B=17 (R) 下面第
4、(8)-(12)题,基于“学生-选课-课程”数据库中的3个关系。S(S#,SNAME,SEX,DEPAPTMENT),主码是S#C(C#,CNAME,TEACHER),主码是 C#SC(S#,C#,GRADE),主码是(S#,C#)8. 在下列关于保持数据库完整性的叙述中,哪一个是不正确的?(D)A. 向关系SC 插入元组时,S#和C#都不能是空值(NULL)B. 可以任意删除关系SC中的元组C. 向任何一个关系插入元组时,必须保证该关系主码值得唯一性D. 可以任意删除关系C中的元组9. 查找每个学生的学号、姓名、选修的课程名和成绩,将使用关系(D)A. 只有 S,SC B. 只有 SC,C
5、C. 只有 S,C D. S,SC,C10若要查找姓名中第1个字为“王”的学生的学号和姓名,则下面列出的SQL语句中,哪个(些)是正确的?(B). SELECT S#,SNAME FROM S WHERE SNAME=王%. SELECT S#,SNAME FROM S WHERE SNAME LIKE 王%. SELECT S#,SNAME FROM S WHERE SNAME LIKE王_A. B. C. D.全部11. 若要“查询选修了3门以上课程的学生的学号”,则正确的SQL语句是(B)A. SELECT S# FROM SC GROUP BY S# WHERE COUNT(*)3B.
6、 SELECT S# FROM SC GROUP BY S# HAVING COUNT(*)3C. SELECT S# FROM SC ORDER BY S# WHERE COUNT(*)3D. SELECT S# FROM SC ORDER BY S# HAVING COUNT(*)312. 若要查找“由张劲老师执教的数据库课程的平均成绩、最高成绩和最低成绩”,则将使用关系(D)。A. S和SC B. SC和C C. S和C D. S、SC和 C下面第(13)-(16)题基于这样的3个表,即学生表S、课程表C和学生选课表SC,它们的关系模式如下。S(S#,SN,SEX,AGE,DEPT)(学
7、号,姓名,性别,年龄,系别)C(C#,CN)(课程号,课程名称)SC(S#,C#,GRADE)(学号,课程号,成绩)13. 检索所有比“王华”年龄大的学生姓名、年龄和性别。下面正确的SELECT语句是(A)A. SELECT SN,AGE, SEX FROM S WHERE AGE(SELECT AGE FROM S WHERE SN=王华)B. SELECT SN,AGE,SEX FROM S WHERE SN=王华C. SELECT SN,AGE,SEX FROM S WHERE AGE(SELECT AGE WHERE SN=王华)D. SELECT SN,AGE,SEX FROM S
8、WHERE AGE王华.AGE14. 检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT 语句是(D)。A. SELECT S# FROM SC WHERE C#=C2 AND GRADE=(SELECT GRADE FROM SC WHERE C#=C2)B. SELECT S# FROM SC WHERE C#=C2 AND GRADE IN(SELECT GRADE GORM SC WHERE C#=C2)C. SELECT S# FROM SC WHERE C#=C2 AND GRADE NOT IN(SELECT GRADE GORM SC WHERE C#=C2)
9、D. SELECT S# FROM SC WHERE C#=C2 AND GRADE=ALL(SELCET GRADE FROM SC WHERE C#=C2)15. 检索4门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。正确的 SELECT 语句是(B)A. SELECT S#,SUM(GRAGE) FROM SC WHERE GRADE=60 GROUP BY S# ORDER BY S# HAVING COUNT(*)=4B. SELECT S#,SUM(GRADE)FROM SC WHERE GRADE=60 GROUP BY S# HAVING COUNT
10、(*)=4 ORDER BY 2 DESCC. SELECT S#,SUM(GRADE)FROM SC WHERE GRADE=60 HAVING COUNT(*)=60 HAVING COUNT(*)=4 GROUP BY S# ORDER BY 217. 数据库见表 4.59和表4.60,若职工表的主关键字是职工号,部门表的关键字是部门号,SQL操作(B)不能执行。A. 从职工表中删除行(025,王芳,03,720)B. 将行(005,乔兴,04,720)插入到职工表中C. 将职工号为“001”的工资改为700D. 将职工号为038的部门号改为“03”表4.59 职工表 职工号 职工名部门
11、号工资E.F.001李红01580G.H.005刘军01670I.J.025王芳03720K.L.038张强02650M.N.表4.60 部门表部门号部门名主任01人事处高平02财务处蒋华03教务处许红04学生处杜琼18. 若用如下的STUDENT表。CREATE TABLE STUDENT(NO char(4) NOT NULL,NAME char(8) NOT NULL,SEX char(2),AGE int);可以插入到STUDENT表中的是(B)。A. (1031,曾华,男,23) B. (1031,曾华,NULL,NULL)C. (NULL,曾华,男,23) D. (1031,NUL
12、L,男,23)19. 有关系 S(S#,SNAME,SAGE), C(C#,CNAME), SC(S#,C#,GRADE)。要查询选修”ACCESS”课的年龄不小20的全体学生姓名的SQL语句”SELECT SNAME FROM S,C,SC WHERE 子句”。这里的WHERE子句的内容是(A)A. S.S#=SC.S# AND C.C#=SC.C# ANDSAGE=20 AND CNAME=ACCESSB. S.S#=SC.S# AND C.C#=SC.C# AND SAGE IN=20 AND CNAME IN ACCESSC. SAGE=20 AND CNAME=ACCESSD. SA
13、GE=20 AND CNAMEINACCESS20. 若要在基本表中S中增加一列CN(课程名),可用(D)A. ADD TABLE S(CN char(8)B. ADD TABLE S ALTER(CN char(8)C. ALTER TABLE S ADD(CN,char(8)D. ALTER TABLE S(ADD CN char(8)21. 学生关系模式 S(S#,SNAME,AGE,SEX), S的属性分别表示学生的学号、姓名、年龄、性别。要在表S中删除一个属性“年龄”,可选用的SQL语句是(B)。A. DELETE AGE FROM SB. ALTER TABLE S DROP CO
14、LUMN AGEC. UPDATE S AGED. ALTER TABLE SAGE22.设关系数据库中有一个表S的关系模式为S(SN,CN,GRADE),其中SN为学生名,CN为课程名,二者为字符型;GRADE为成绩,数值型,取值范围0-100。若要更正“王二”的化学成绩为85分,则可用(A)。A. UPDATE S SET GRADE=85 WHERE SN=王二 AND CN=化学B. UPDATE S SET GRADE=85 WHERE SN=王二 AND SN=化学C. UPDATE GRADE=85 WHERE SN=王二 AND CN=化学D. UPDATE GRADE=85
15、WHERE SN=王二 AND CN=化学23. 在SQL语言中,子查询语句是(D)。A. 返回单表中数据子集的查询语句B. 选取多表中字段子集的查询语句C. 选取单表中字段子集的查询语句D. 嵌入到另一个查询语句之中的查询语句24.在SQL语言中,条件“年龄 BETWEEN 20 AND 30”表示年龄在20-30,且(A)。A. 包括20岁和30岁 B.不包括20岁和30岁C. 包括20岁但不包括30岁 D.包括30岁但不包括20岁25. 下列聚合函数不忽略空值(NULL)的是(C)。A. SUM(列名) B. MAX(列名)C. COUNT(*) D.NOT(AGE IS NULL)26
16、. 在SQL中,下列涉及空值的操作,不正确的是(C)。A. AGE IS NULL B. AGE IS NOT NULLC. AGE=NULL D.NOT(AGE IS NULL)27. 已知学生选课信息表sc(sno,cno,grade)。 查询“至少选修了一门课程,但没有学习成绩的学生学号和课程号”的SQL语句是(C)。A. SELECT sno,cno FROM sc WHERE grade=NULLB. SELECT sno,cno FROM sc WHERE grade IS”C. SELECT sno,cno FROM sc WHERE grade IS NULLD. SELECT
17、 sno,cno FROM sc WHERE grade=”28. 有如下的SQL语句。. SELECT sname FROM s,sc WHERE grade60. SELECT sname FROM s WHERE sno IN(SELECT sno FROM sc WHERE grade60).SELECT sname FROM s,sc WHERE s.sno=sc.sno AND grade60若要查找分数(grade)不及格的学生姓名(sname),则以上正确的有哪些?(C)A. 和 B. 和 C. 和 D. 、 和二 填空题1. 关系R(A,B,C)和S(A,D,E,F),有R.
18、A=S.A。 若将关系代数表达式R.A,R.B,S.D,S.F(RS),用SQL语言的查询语句表示,则为:SELECT R.A,R.B,S.D,S.F FROM R,S WHERE R.A=S.A 。2. SELECT 语句中,WHERE 子句用于选择满足给定条件的元组。使用 GROUP BY 子句可按指定列的值分组,同时使用 HAVING 可提取满足条件的组。若希望将查询结果排序,则应在SELECT 语句中使用 ORDER BY 子句,其中, ASC 选项表示升序,DESC 选项表示降序。若希望查询的结果不出现重复元组,则应在SELECT 子句中使用 Distinct 保留字。WHERE 子
19、句的条件表达式中,字符串匹配的操作符是 LIKE ,与0个或多个字符匹配的通配符是 % ,与单个字符匹配的通配符是 _下划线 。3. 子查询的条件不依赖于父查询,这类查询称为 嵌套子查询 ,否则称为 相关子查询。4. 有学生信息表 student,求年龄在 20-22岁(含 20 岁和22岁)的学生姓名和年龄的SQL语句是:SELECT sname,age FROM student WHERE age BETWEEN 20 AND 22 。5. 在“学生选课”数据库中的两个关系如下。S(SNO,SNAME,SEX,AGE),SC(SNO,CNO,GRADE)则与SQL命令“SELECT SNA
20、ME FROM S WHERE SNO IN(SELECT SNO FROM SC WHERE GRADE60)”等价的关系代数表达式是 Sname (Grade=80)或者INSERT INTO STUDENT SELECT S#,SNAME,SEX FROM S WHERE SNO IN (SELECT SNO FROM SC GROUP BY S# HAVING MIN(GRADE)=80) INSERT INTO S VALUES(S9,WU,18,F) UPDATE SC SET GRADE=GRADE*1.1 WHERE GRADE(SELECT AVG(GRADE)FROM SC
21、)AND S# IN (SELECT S# FROM S WHERE SEX=女)DELETE FROM SC WHRER S#=(SELECT S# FROM S WHERE SNAME=王林)3. 设要创建学生选课数据库,库中包括学生、课程和选课3个表,其表结构如下。学生(学号,姓名,性别,年龄,所在系)课程(课程号,课程名,先行课)选课(学号,课程号,成绩)用SQL语句完成下列操作。(1) 创建学生选课库。(2) 创建学生、课程和选课表,其中学生中“性别”的域为“男”或“女”,默认值为“男”。答:CREATE DATABASE 学生选课库 学生表:USE grademanagerGoCR
22、EATE TABLE student (sno char(10) PRIMARY KEY sname varchar(10) ,ssex char(2) CHECK(ssex IN(男,女) DEFAULT 男,sdept char(8)课程表CREATE TABLE course (cno char(5) NOT NULL, cname varchar(20) NOT NULL,cterm tinyint NOT NULL,CONSTRAINT C1 PRIMARY KEY(cno,cterm)CREATE TABLE sc (sno char(10) NOT NULL, cno char(5) NOT NULL, degree numeric(5,1),cterm tinyint NOT NULL, CONSTRAINT A1 PRIMARY KEY(sno,cno,cterm),CONSTRAINT A2 FOREIGN KEY(sno) REFERENCES STUDENT(sno),CONSTRAINT A3 FOREIGN KEY(cno) REFERENCES COURSE(cno), CONSTRAINT A5 CHECK(degree BETWEEN 0 AND 100)