第3章 SQL语言习题一、单项选择题1.SQL语言是()的语言,易学习。
A.过程化 B.非过程化 C.格式化 D.导航式2.SQL语言是()语言。
A.层次数据库B.网络数据库C.关系数据库D.非数据库3.SQL语言具有()的功能。
A.关系规范化、数据操纵、数据控制B数据定义、数据操纵、数据控制C.数据定义、关系规范化、数据控制D.数据定义、关系规范化、数据操4.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。
其中最重要的,也是使用最频繁的语句是()。
A.SELECTB.INSERTC.UPDATED.DELETE5.SQL语言具有两种使用方式,分别称为交互式SQL和()。
A.提示式SQLB.用户式SQLC.嵌入式SQLD.解释式SQL6.SQL语言中,实现数据检索的语句是()。
A.SELECTB.INSERTC.UPDATED.DELETE7.下列SQL语句中,修改表结构的是()。
A.ALTERB.CREATC.UPDATE D .DELETE8.在SQL中,用户可以直接操作的是()。
A 基本表B 视图C 存储文件D 基本表和视图9.在SQL的查询语句中,对应关系代数中“投影”运算的语句是()。
A WHEREB FROMC SELECTD HAVING10.在SELECT语句中,需对分组情况满足的条件进行判断时,应使用()。
A WHEREB GROUP BYC ORDER BYD HAVING11.SQL中,与“NOT IN”等价的操作符是()。
A =ANYB <>ANYC =ALLD <>ALL12.视图建立后,在数据字典中存放的是()。
A 查询语句B 组成视图的表的内容C 视图的定义D 产生视图的表的定义第13到第16题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:S(S#,SN,SEX,AGE,DEPT)C(C#,CN)SC(S#,C#,GRADE)其中:S#为学号,SN为姓名,SEX性别,AGE为年龄,DETP为系别,C#为课程号,CN为课程名,GRADE为成绩。
13.检索所有比“王华”年龄大的学生姓名、年龄和性别。
正确的SELECT语句是()。
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 WHERE AGE>王华.AGE14.检索选修课程“C2”的学生中成绩最高的学生的学号。
正确的SELECT语句是()。
A.SELECT S# FROM SC WHEREC#=’C2’ AND GRADE>= (SELECT GRADE FROM SC WHERE C#=’C2’)B.SELECT S# FROM SC WHERE C#=’C2’ AND GRADE IN(SELECT GRADE FROM SC WHEREC#=’C2’)C.SELECT S# FROM SC WHERE C#=’C2’ AND GRADE NOT IN(SELECT GRADE FROM SC WHEREC#=’C2’)D.SELECT S# FROM SC WHERE C#=’C2’ AND GRADE>=ALL (SELECT GRADE FROM SC WHEREC#=’C2’)15.检索学生姓名及其所选修课程的课程号和成绩。
正确的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 SC, S WHERE S.S#=SC.S#D.SELECT S.SN, SC.C#, SC.GRADE FROM S, SC16.检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。
正确的SELECT 的语句是( )。
A.SELECT S#, SUM (GRDAE) FROM SC WHERE GRADE>=60 GROUP BY S# ORDER BY 2 DESCHAVING COUNT (*)>=4B.SELECT S#, SUM (GRDAE) FROM SC WHERE GRADE>=60 GROUP BY S# HAVING COUNT (*)>=4ORDER BY 2 DESCC. SELECT S#, SUM (GRDAE) FROM SC WHERE GRADE>=60 HAVING COUNT (*)>=4 GROUP BY S# ORDER BY 2 DESCD. SELECT S#, SUM (GRDAE) FROM SC WHERE GRADE>=60 ORDER BY 2 DESC GROUP BY S#HAVING COUNT (*)>=417.假定学生关系是S (S#,SNAME ,SEX ,AGE ),课程关系是C (C#,CNAME ,TEACHER ),学生选课关系是SC (S#,C#,GRADE )。
要查找选修“COMPUTER ”课程的“女”学生姓名,将涉及到关系( )。
A.SB.SC ,CC.S, SC D .S,C,SC 18.下面的数据库的表中,若职工表的主关键字是职工号,部门表的主关键字是部门号,SQL 操作( )不能执行。
职工表 部门表 职工号 职工名 部门号 工资 001 李红 01 580 005 刘军 01 670 025 王芳 03 720 038张强02650A. 从职工表中删除行(‘025’,‘王芳‘03’,720)B. 将行(‘005’,‘乔兴’,‘04’,750)插入到职工表中C. 将职工号为‘001’的工资改为700D. 将职工号为‘038’的部门号改为‘03’19.若用如下的SQL 语句创建一个student 表:CREAT TABLE student(NO CHAR(4) NOT NULL, NAME CHAR(10) NOT NULL, SEX CHAR(2), AGE INT),可以插到student 表中的是( )。
A.(‘1031’,‘曾华’,男,23)B.(‘1031’,‘曾华’,NULL ,NULL )C.(NULL ,‘曾华’,‘男’,‘23’)D.(‘1031’,NULL ,‘男’,23) 二、综合题1.已知学生表S 和学生选课表SC 其关系模式如下: S (SNO ,SN ,SD, PROV );SC (SNO ,CN,GR ),其中SNO 为学号,SD 为系名,PROV 为省区,CN 为课程名,GR 为分数。
试用SQL 语言实现下列操作: (1) 查询“信息系”的学生来自哪些省区。
(2) 按分数降序排序,输出“英语系”学生选修了“计算机”课程的学生的姓名和分数。
2.设有学生表S (SNO ,SN )(SNO 为学生号,SN 为姓名)和学生选修课程表SC (SNO ,CNO ,CN ,G )(CNO 为课程号,CN 为课程名,G 为成绩),试用SQL 语言完成以下各操作: (1)创建一个视图V-SSC (SNO ,SN ,CNO ,CN ,G )。
(2)从视图V-SSC 上查询平均成绩在90分以上的SNO 和平均分。
3.假设有如下4个样本表: student (学生信息表)部门号 部门名 主任 01 人事处 高平 02 财务处 蒋华 03 教务处 许红 04学生处杜琼NO NAME SEX BIRTHDAY CLASS 108 105 107 101 109 103曾华 匡明 王丽 李军 王芳 陆军男 男 女 男 女 南09/01/77 10/02/75 01/23/76 02/20/76/ 02/10/75 06/03/7495033 95031 95033 95033 95031 95031teacher (教师信息表)NO NAME SEX BIRTHDAY PROF DEPART 804 856 825 831 李成 张旭 王萍 刘冰 男 男 女 女 12/02/58 03/12/69 05/05/72 08/14/77副教授 讲师 助教 助教 计算机系 电子工程系 计算机系 电子工程系 course (课程表) score (成绩表)CNO CNAME TNO 3-105 3-245 6-166 9-888计算机导论 操作系统 数字电路 高等数学825 804 856 100(1)列出至少有2名男生的班号。
(2)显示student 表中不姓“王”的同学记录。
(3)显示student 表中每个学生的姓名和年龄。
(4)显示student 表中最大和最小的birthday 日期值。
(5)以班号和年龄从大到小的顺序显示student 表中的全部记录。
(6)显示“男”教师及其所上的课程。
(7)列出最高分同学的no 、cno 和degree 列。
(8)列出和“李军”同性别的所有同学的name 。
(9)列出和“李军”同性别并同班的同学name 。
(10)列出所有选修“计算机导论”课程的“男”同学的成绩表。
4、今有两个关系模式:(书后P148第8题)职工(职工号,姓名,年龄,职务,工资,部门号) 部门(部门号,名称,经理名,地址,电话号)请用SQL 的GRANT 语句(加上视图机制)完成以下授权定义或存取控制功能: (1)用户王明对两个表有select 权力;(2)用户李勇对两个表有insert 和delete 权力;(3)用户刘星对职工表有查询权力,对工资字段具有更新权力; (4)用户张新具有修改这两个表的结构的权力;(5)用户周平具有对两个表所有权力(读、插、改、删数据),并具有给其他用户授权的权力;(6)用户杨兰具有从每个部门职工中查询最高工资、最低工资、平均工资的权力,他不能查看每个人的工资。
NO CNO DEGREE 103 1053-245 3-24586 75。