第一篇:Oracle基础练习题及答案(子查询)
子查询
1.查询和scott相同部门的员工姓名ename和雇用日期hiredate select ename,hiredate from emp where deptno=(select b.deptno from emp a,dept b where a.deptno=b.deptno and ename='SCOTT');
2.查询工资比公司平均工资高的所有员工的员工号empno,姓名ename和工资sal。
select empno,ename,sal from emp where sal>(select avg(sal)from emp);
3.查询和姓名中包含字母u的员工在相同部门的员工的员工号empno和姓名ename select empno,ename from emp a,dept b where a.deptno(+)=b.deptno and a.deptno=(select deptno from emp where ename like '%U%');
4.查询在部门的loc为newYork的部门工作的员工的员工姓名ename,部门名称dname和岗位名称job select ename,dname,job from emp a,dept b where a.deptno=b.deptno and loc='NEW YORK';
查询管理者是king的员工姓名ename和工资sal select a.ename,a.sal from emp a,emp b where a.mgr=b.empno and b.ename='KING';
第二篇:Oracle基础练习题及答案(多表查询1)
利用scott用户自带的四张表完成如下作业:
1.列出至少有一个员工的所有部门
select b.deptno,b.dname from emp a,dept b where a.deptno=b.deptno group by b.deptno,b.dname having count(*)>=1;
2.列出薪金比SMITH高的所有员工
select * from emp where sal>(select sal from emp where ename='SMITH');
3.列出所有员工的姓名及其直接上级领导的姓名
select a.ename,b.ename “leader” from emp a,emp b where a.mgr=b.empno;
4.列出受雇日期早于其直接上级的所有员工的编号,姓名,部门名称
select a.empno,a.ename,a.hiredate,c.dname from emp a,emp b,dept c where a.mgr=b.empno and a.deptno=c.deptno and a.hiredate 5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门 select b.dname,a.* from emp a,dept b where a.deptno(+)=b.deptno; 6.列出所有CLERK(办事员)的姓名,及其部门名称,部门人数 select aa.ename,aa.job,bb.dname,(select count(a.deptno)from emp a,dept b where a.deptno=b.deptno and b.dname=bb.dname group by a.deptno)from emp aa,dept bb where aa.deptno(+)=bb.deptno and aa.job='CLERK'; 7.列出最低薪金大于1500的各种工作及从事此工作的全部雇员人数 select a.job,min(sal),count(ename)from emp a,dept b where a.deptno=b.deptno having min(sal)>1500 group by a.job; 8.列出在部门SALES(销售部)工作的员工的姓名,假定不知道销售部的部门编号。select ename from emp a,dept b where a.deptno=b.deptno and dname='SALES'; 9.列出薪金高于公司平均薪金的所有员工,所在部门,上级领导,公司的等级工资 select a.ename,dname,aa.ename “Leader” ,grade from emp a,dept b,emp aa,salgrade s where a.deptno=b.deptno and a.mgr=aa.empno and a.sal>(select avg(sal)from emp)and a.sal between losal and hisal; 10.列出与SCOTT从事相同工作的所有员工的编号,姓名,职位及其部门名称 select empno,ename,job,dname from emp a,dept b where a.deptno=b.deptno and job=(select job from emp where ename='SCOTT'); 11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。 select ename,sal from emp where sal=any(select sal from emp where deptno=30); 12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名、薪金和部门名称 select ename,sal,dname from emp a,dept b where a.deptno=b.deptno and sal>all(select sal from emp where deptno=30); 13.列出在每个部门工作的员工数量、平均工资和平均服务期限 select dname,count(ename),avg(sal),avg(sysdate-a.hiredate)from emp a,dept b where a.deptno(+)=b.deptno group by a.deptno,dname; 14.列出所有员工的姓名、部门名称和工资 select ename,dname,sal from emp a,dept b where a.deptno=b.deptno; 15.列出所有部门的详细信息和部门人数 select b.deptno,dname,loc,count(ename)from emp a,dept b where a.deptno(+)=b.deptno group by b.deptno,dname,loc; 16.列出各种工作的最低工资及从事此工作的雇员姓名 select b.ename,c “MIN SAL”,a.job from(select job,min(sal)c from emp group by job)a,emp b where a.job=b.job and c=b.sal; 17.列出各个部门的MANAGER(经理)的最低薪金 select deptno,min(sal)from emp where job='MANAGER' group by deptno; 18.列出员工的年工资,按年薪从低到高排序 select ename,(sal+nvl(comm,0))*12 a from emp order by a; 19.查出某个员工的上级主管,并要求出这些主管中的薪水超过3000 select a.ename,b.ename,b.sal “boss sal” from emp a,emp b where a.mgr=b.empno and b.sal>=3000; 《网络数据库》讲稿 查询练习题 简单的单表查询 例1:检索出1983年6月1日之后出生的学生的姓名、性别和民族,并按降序排列。 SELECT 姓名,性别,民族 FROM 学生 WHERE 出生日期>'1983-6-1' ORDER BY 出生日期 DESC 多表查询 在FROM后跟随多个表。 例1:查找出已修学分达到20分的学生的姓名、出生日期、班级名称、已修学分。 SELECT 姓名,出生日期,班级名称,已修学分FROM 学生,班级WHERE 学生.班级编号=班级.班级编号AND 已修学分>=20 解释:这里的“学生.班级编号=班级.班级编号”是连接条件。如果在FROM短语中有两个表,那么这两个表必须具备可建立联系的字段,否则无法查询。如果FROM短语中的多个表中有同名字段,当使用这些字段名时,需要在字段名左边加上表名和圆点,作为字段名的前缀。 练习题01:查找出已修学分低于20分的学生的姓名、性别和班主任。练习题02:查找出学生“王林”的班主任。 练习题03:查找出班主任“刘成河”班的全部男生的信息。 例2:查找出课程“中国历史”考试及格的全部学生的学号、姓名。 SELECT 学生.学号,姓名 FROM 学生,课程,成绩 WHERE 分数>=60 AND 课程名称='中国历史' AND 学生.学号=成绩.学号 AND 成绩.课程编号=课程.课程编号 练习题04:查找出课程“中国历史”考试及格的全部学生的学号、姓名、班级名称和分数。练习题05:查找出全部同学的所有考试的姓名、课程名称、分数,查找结果的格式如下: 嵌套查询 P121-126 例1:查找出取得过95分及其以上考试成绩的学生的学号和姓名。 SELECT 学号,姓名 FROM 学生 WHERE 学号IN(SELECT 学号 FROM 成绩 WHERE 分数>=95) 解释:该命令中的IN相当于集合运算的包含运算符∈。括号外的查询称为外层查询;括号内的查询称为内层查询(也称为“子查询”)。内层查询的结果被当做是一个集合。 P104 例2:查找出“计算机应用”课程考试取得95分及其以上考试成绩的学生的学号和姓名。 SELECT 学号,姓名 FROM 学生 WHERE 学号 IN(SELECT 学号 FROM 成绩 WHERE 分数>=95 AND 课程编号 IN(SELECT 课程编号 FROM 课程 WHERE 课程名称='计算机应用')) 例3:查找出所有学生的考试都及格的班级名称。 答案一: SELECT 班级名称 FROM 班级 WHERE 班级编号 NOT IN(SELECT 班级编号 FROM 学生 WHERE 学号 IN(SELECT 学号 FROM 成绩 WHERE 分数<60)) 答案二: select 班级名称 from 班级 where not exists(select * from 学生 where exists(select * from 成绩 where 分数<60 and 班级.班级编号=学生.班级编号 and 成绩.学号=学生.学号)) 答案三: select 班级名称 from 班级 where not exists(select * from 成绩,学生 where 班级.班级编号=学生.班级编号 and 学生.学号=成绩.学号 and 分数<60) 练习题01:查找出班主任“刘成河”班的全部男生的信息。练习题02:查找出考试全及格的课程名称。 练习题03:查找出所有学生的考试都及格的班级,并排除那些没有学生的班级。练习题04:使用多表查询实现例1。练习题05:使用多表查询实现例2。 练习题06:查找出“数学专业”班全体同学的姓名和“数学”课程考试分数。 三个特殊运算符 一、谓词EXISTS P122 EXISTS判断子查询中是否为空集。 例1:查找出那些还没有学生的班级名称。 SELECT 班级名称 FROM 班级 WHERE NOT EXISTS (SELECT * FROM 学生 WHERE 学生.班级编号=班级.班级编号) 例2:检索出每个学生都选修了的课程(并且考试都及格)。 SELECT 课程编号,课程名称 FROM 课程 WHERE NOT EXISTS(SELECT 学号 FROM 学生 WHERE NOT EXISTS(SELECT * FROM 成绩 WHERE 课程.课程编号=成绩.课程编号AND 学生.学号=成绩.学号AND 分数>=60)) 练习题01:写出可实现例1要求的其他命令。练习题02:写出可实现例2要求的其他命令。 二、范围运算符BETWEEN …AND… P103 该范围是一个闭区间,意思是在 …和… 之间,包括两个端点的值。 例3:查找出1983年6月1日至1984年6月1日之间出生的学生的信息。 SELECT * FROM 学生 WHERE 出生日期 BETWEEN '1983-6-1' AND '1984-6-1' 练习题03:查找出已修学分在15和20之间的学生的信息。 练习题04:查找出1983年6月1日至1984年6月1日之间出生的少数民族学生的信息。 练习题05:查找出已修学分在15和20之间、且“自然辨证法”课程的考试分数达到80分的学生的姓名、性别、所在班级。 三、字符串匹配运算符LIKE P105 例4:查找出姓名中包含有“林”的学生的信息。SELECT * FROM 学生WHERE 姓名LIKE '%林%' 例5:查找出姓名中第二个字是“林”的学生的信息。SELECT * FROM 学生WHERE 姓名LIKE '_林%' 练习题06:查找出湖北出生的学生的信息。练习题07:查找出武汉出生的学生的信息。 练习题08:查找出班主任“郭大壮”的班中出生地是武汉的学生的姓名、班级。 练习题09:查找出至少参加了辛有余老师所任课程中一门课程考试的男生的姓名。至少写出两条不同的命令。 聚合函数及其分组查询 为了完成后续题目,请首先计算出每位同学的已修学分 UPDATE 学生 SET 已修学分=(SELECT SUM(学分)FROM 成绩,课程 WHERE 学生.学号=成绩.学号AND 分数>=60 AND 成绩.课程编号=课程.课程编号) 一、常用统计(聚合)函数 P109表4-3 例1:计算出全部学生的平均已修学分。SELECT AVG(已修学分)FROM 学生 例2:计算出“软件工程”班全体同学的平均已修学分。 SELECT AVG(已修学分)FROM 学生 WHERE 班级编号IN(SELECT 班级编号FROM 班级WHERE 班级名称='软件工程') 练习题01:计算出“软件工程”和“计算机应用”两个班全体同学的平均已修学分。 注意:当子查询的结果只有一个数据时,可以用等号;为多个数据时,需用 IN。练习题02:计算出李建同学各门课程考试总分。 例3:查找出“数学专业”班“数学”课程考试的最高分数。 SELECT MAX(分数)FROM 学生, 成绩 WHERE 学生.学号=成绩.学号 AND 班级编号=(SELECT 班级编号 FROM 班级 WHERE 班级名称='数学专业')AND 课程编号=(SELECT 课程编号 FROM 课程 WHERE 课程名称='数学') 另一个答案 SELECT MAX(分数)FROM 成绩 WHERE 学号 IN(SELECT 学号 FROM 学生 WHERE 班级编号=(SELECT 班级编号 FROM 班级 WHERE 班级名称='数学专业'))AND 课程编号=(SELECT 课程编号 FROM 课程 WHERE 课程名称='数学') 例4:查找出“数学专业”班“数学”课程考试最高得分的同学姓名和分数。 SELECT 姓名, 分数 FROM 学生, 成绩 WHERE 学生.学号=成绩.学号 AND 班级编号=(SELECT 班级编号 FROM 班级 WHERE 班级名称='数学专业')AND 课程编号=(SELECT 课程编号 FROM 课程 WHERE 课程名称='数学')AND 分数=(SELECT MAX(分数)FROM 学生, 成绩 WHERE 学生.学号=成绩.学号 AND 班级编号=(SELECT 班级编号 FROM 班级 WHERE 班级名称='数学专业')AND 课程编号=(SELECT 课程编号FROM 课程 WHERE 课程名称='数学')) 附:TOP … PERCENT P98 二、GROUP BY短语 GROUP BY后面跟随的是分组关键字段,按照关键字段的值,将记录分成若干个组,每一组转变为查询结果中的一行。 例5:计算出各班学生的平均已修学分。SELECT 班级编号,AVG(已修学分)FROM 学生 GROUP BY 班级编号 练习题04:计算出各门课程考试的平均分数。练习题05:计算出各位学生的考试总分。 练习题06:计算出辛有余老师所任课程中每门课程的课程编号和学生平均考试分数。 三、别名及其应用 P113-114, P99 例6:查找出已修学分低于本班平均已修学分的学生信息。 SELECT 姓名, 班级编号, 已修学分 FROM 学生 WHERE 已修学分<(SELECT AVG(已修学分)FROM 学生 XS WHERE 学生.班级编号=XS.班级编号) 说明:在FROM短语中为表取别名也可省略AS,例如FROM 学生 XS。 例7:查找和计算出各位学生的姓名和考试总分。 SELECT 姓名, 总分 FROM 学生,(SELECT 学号, SUM(分数)AS 总分 FROM 成绩 GROUP BY 学号)AS ZF WHERE 学生.学号=ZF.学号 说明:在FROM短语中可用子查询的结果作为表,此时,必须为该子查询取别名。 在SELECT短语中可为查询结果列取别名,其格式有三种,见P99。 练习题07:查找和计算出各门课程的名称及其考试的平均分数。 练习题08:查找和计算出各门课程的名称及其考试达到90分的人数。 四、HAVING短语 HAVING后面跟随的是筛选条件,作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含统计(聚合)函数。 例8:查找出讲授多门课程的教师姓名及其授课门数。 SELECT 任课教师,COUNT(*)AS 授课门数 FROM 课程 GROUP BY 任课教师 HAVING COUNT(*)>1 说明:HAVING短语通常与GROUP BY短语配合使用,否则无使用价值。HAVING短语中使用的统计函数应该是SELECT短语中使用的函数。 练习题10:查找出考试成绩优秀人数多于3人的课程编号及其学生人数(假定考试分数达到90分为优秀)。练习题11:查找出考试成绩优秀人数多于3人的课程名称及其学生人数(假定考试分数达到90分为优秀)。练习题12:查找出考试成绩优秀人次多于5人次的班级名称及其人次(假定考试分数达到90分为优秀)。 练习题13:查找出考试分数标准差小于 10、且最高分与最低分之差小于20的各班(班级名称)各门课程(课程名称)的考试人数,考试分数的最高分、最低分、平均分、标准差、方差。 常用函数、连接 一、常用函数 P159 二、链接 P114 用于多表查询,实现表之间的链接。 例6:在多表查询中,下面的命令可查找出已修学分达到17分的学生的姓名、出生日期和班级:SELECT 姓名,出生日期,班级名称 FROM 学生,班级 WHERE 学生.班级编号=班级.班级编号 AND 已修学分>=17 用INNER JOIN … ON …,可将该命令改写为: SELECT 姓名,出生日期,班级名称 FROM 学生 INNER JOIN 班级 ON 学生.班级编号=班级.班级编号 WHERE 已修学分>=17 或 SELECT 姓名,出生日期,班级名称 FROM 学生 INNER JOIN 班级 ON 学生.班级编号=班级.班级编号 AND 已修学分>=17 解释:这里的“学生.班级编号=班级.班级编号”是连接条件。如果在FROM短语中有两个表,那么这两个表必须具备可建立联系的字段,否则无法查询。如果FROM短语中的多个表中有同名字段,当使用这些字段名时,需要在字段名左边加上表名和圆点,作为字段名的前缀。 练习题01:查找出已修学分低于17分的学生的姓名、性别和班主任。练习题02:查找出学生“王林”的班主任。 练习题03:查找出班主任“刘成河”班的全部男生的信息。 例7:在多表查询中,下面的命令可查找出课程“中国历史”考试及格的全部学生的学号、姓名:SELECT 学生.学号,姓名 FROM 学生,课程,成绩 WHERE 分数>=60 AND 课程名称=“中国历史” AND 学生.学号=成绩.学号 AND 成绩.课程编号=课程.课程编号 用INNER JOIN … ON …,可将该命令改写为: SELECT 学生.学号,姓名 FROM 学生 INNER JOIN(成绩 INNER JOIN 课程 ON 成绩.课程编号=课程.课程编号)ON 学生.学号=成绩.学号 WHERE 分数>=60 AND 课程名称=“中国历史” 练习题04:查找出课程“中国历史”考试及格的全部学生的学号、姓名、班级和分数。练习题05:查找出全部同学的所有考试的姓名、课程名称、分数。查找结果的格式如下: 练习题06:计算出每个同学实际取得的学分(不是学生表中的已修学分)。查找结果的格式如下: 操作查询 一、生成表查询 P136 例1: SELECT 姓名, 出生日期, 班级名称 INTO XYZ FROM 学生, 班级 WHERE 学生.班级编号=班级.班级编号 AND 已修学分>=17 例2: SELECT 班级名称, 课程名称, 分数 INTO 考试分数 FROM 课程 INNER JOIN((班级 INNER JOIN 学生 ON 班级.班级编号 = 学生.班级编号)INNER JOIN 成绩 ON 学生.学号 = 成绩.学号)ON 课程.课程编号 = 成绩.课程编号 二、更新查询 P137 例3:将每位同学的已修学分设置为0。 UPDATE 学生 SET 已修学分=0 将每位同学的已修学分设置为4。UPDATE 学生 SET 已修学分=4 省略WHERE短语,表示无条件修改全部记录。例4:为每个女生增加2学分。 UPDATE 学生 SET 已修学分=已修学分+2 WHERE 性别= “女” 练习题01:(综合练习)首先为“学生”表添加一个整型字段“年龄”,然后用UPDATE命令计算出每位同学的年龄并填入“年龄”字段。 例5:根据考试成绩,计算出每位同学的实际已修学分,并填入“学生”表的“已修学分”字段。 UPDATE 学生 SET 已修学分=(SELECT SUM(学分)FROM 成绩,课程 WHERE 学生.学号=成绩.学号AND 分数>=60 AND 成绩.课程编号=课程.课程编号) 练习题02:根据“学生”表,计算出每班的男生人数和女生人数,并填入“班级”表中。 三、追加查询 P134 四、删除查询 P141 例6:删除XS表中已修学分低于4分的记录。 DELETE FROM XS WHERE 已修学分<4 例7:删除没有学生的班级。 DELETE FROM 班级 WHERE 班级编号 NOT IN(SELECT 班级编号 FROM 学生 WHERE 班级编号 IS NOT NULL) 练习题03:删除没有参加过任何考试的学生。 练习题04:删除考试平均分数低于本班所有学生全部考试平均分数的同学。 考点7:查询 1.若在“tEmployee”表中查找所有出生日期在“1970-1-1”和“1980-1-1”之间的记录,可以在查询设计视图的准则行中输入()。答案:A A)Between #1970-1-1# And #1980-1-1# B)Between “1970-1-1” And “1980-1-1” C)“1970-1-1” And “1980-1-1” D)#1970-1-1# And #1980-1-1# 2.下面显示的是查询设计视图,从设计视图所示的内容中判断此查询将显示()。答案:B A)出生日期字段值 B)所有字段值 C)除出生日期以外的所有字段值 D)雇员ID字段值 3.在SQL查询中“GROUP BY”的含义是()。答案:D A)选择行条件 B)对查询进行排序 C)选择列字段 D)对查询进行分组 4.若要将“产品”表中所有供货商是“ABC”的产品单价下调50,则正确的SQL语句是()。答案:B A)UPDATE 产品 SET 单价=50 WHERE 供货商=“ABC” B)UPDATE 产品 SET 单价=单价-50 WHERE 供货商=“ABC” C)UPDATE FROM 产品 SET 单价=50 WHERE 供货商=“ABC” D)UPDATE FROM 产品 SET 单价=单价-50 WHERE 供货商=“ABC” 5.下面不是操作查询的是()。答案:C A)删除查询 B)更新查询 C)参数查询 D)生成表查询 6.在SQL语言的SELECT语句中,用于实现选择运算的子句是()。答案:D A)FOR B)IF C)WHILE D)WHERE 7.在SQL查询中,若要取得“学生”数据表中的所有记录和字段,其SQL语法为()。答案:B A)SELECT 姓名 FROM 学生 B)SELECT * FROM 学生 C)SELECT 姓名 FROM 学生 WHILE 学号=02650 D)SELECT * FROM 学生 WHILE 学号=02650 8.假设某数据表中有一个工作时间字段,查找1999年参加工作的职工记录的准则是()。答案:A A)Between # 99-01-01# And # 99-12-31 # B)Between “ 99-01-01 ” And “ 99-12-31 ” C)Between “ 99.01.01 ” And “ 99.12.31 ” D)# 99.01.01 # And # 99.12.31 # 9.SQL的含义是()。答案:A A)结构化查询语言 B)数据定义语言 C)数据库查询语言 D)数据库操纵与控制语言 10.在Access中已建立了“学生”表,表中有“学号”、“姓名”、“性别”和“入学成绩”等字段。执行如下SQL命令“Select 性别, avg(入学成绩)From 学生 Group by 性别”其结果是()。答案:B A)计算并显示所有学生的性别和入学成绩的平均值 B)按性别分组计算并显示性别和入学成绩的平均值 C)计算并显示所有学生的入学成绩的平均值 D)按性别分组计算并显示所有学生的入学成绩的平均值 11.假设“公司”表中有编号、名称、法人等字段,查找公司名称中有“网络”二字的公司信息,正确的命令是()。答案:D A)SELECT * FROM 公司 FOR 名称= “*网络*” B)SELECT * FROM 公司 FOR 名称 LIKE “*网络*” C)SELECT * FROM 公司 WHERE 名称= “*网络*” D)SELECT * FROM 公司 WHERE 名称 LIKE “*网络*” 12.下图是使用查询设计器完成的查询,与该查询等价的SQL语句是()。 答案:A A)select 学号,数学 from sc where 数学>(select avg(数学)from sc) B)select 学号 where 数学>(select avg(数学)from sc) C)select 数学 avg(数学)from sc D)select 数学>(select avg(数学)from sc) 13.在查询设计视图中()。答案:A A)可以添加数据库表,也可以添加查询 B)只能添加数据库表 C)只能添加查询 D)数据库表和查询都不能添加 14.检索价格在30万~60万元的产品,可以设置条件为()。答案:C A)“>30 Not <60” B)“>30 Or <60” C)“>30 And <60” D)“>30 Like <60” 15.下列关于SQL语句的说法中,错误的是()。答案:D A)INSERT语句可以向数据表中追加新的数据记录 B)UPDATE语句用来修改数据表中已经存在的数据记录 C)DELETE语句用来删除数据表中的记录 D)CREATE语句用来建立表结构并追加新的记录 16.下列不属于操作查询的是()。答案:A A)参数查询 B)生成表查询 C)更新查询 D)删除查询 17.在Access数据库中创建一个新表,应该使用的SQL语句是()。答案:A A)Create Table B)Create Index C)Alter Table D)Create Database 18.下面显示的是查询设计视图的“设计网格”部分:从所显示的内容中可以判断出该查询要查找的是()。答案:A A)性别为“女”并且1980年以前参加工作的记录 B)性别为“女”并且1980年以后参加工作的记录 C)性别为“女”或者1980年以前参加工作的记录 D)性别为“女”或者1980年以后参加工作的记录 19.在一个操作中可以更改多条记录的查询是()。答案:B A)参数查询 B)操作查询 C)SQL查询 D)选择查询 20.直接将命令发送ODBC数据,它使用服务器能接受的命令,利用它可以检索或更改记录的是()。答案:B A)联合查询 B)传递查询 C)数据定义查询 D)子查询 21.要求按学生学号统计出每名学生的借阅次数,下列SQL语句中,正确的是()。答案:B A)Select 学号,Count(学号)from 借阅 B)Select 学号,Count(学号)from 借阅 Group By 学号 C)Select 学号,Sum(学号)from 借阅 D)Select 学号,Sum(学号)from 借阅 Order By 学号 22.在一个Access的表中有字段“专业”,要查找包含“信息”两个字的记录,正确的条件表达式是()。答案:B A)=left([专业],2)=“信息” B)like “*信息*” C)=“信息*” D)Mid([专业],1,2)=“信息” 23.Access支持的查询类型有()。答案:A A)选择查询、交叉表查询、参数查询、SQL查询和操作查询 B)基本查询、选择查询、参数查询、SQL查询和操作查询 C)多表查询、单表查询、交叉表查询、参数查询和操作查询 D)选择查询、统计查询、参数查询、SQL查询和操作查询 24.要从数据库中删除一个表,应该使用的SQL语句是()。答案:D A)ALTER TABLE B)KILL TABLE C)DELETE TABLE D)DROP TABLE 25.在Access中已建立了“教师”表,表中有“教师编号”、“职称”、“性别”和“年龄”等字段。执行如下SQL命令:SELECT Count(“教师编号”)AS 各类职称人数 FROM 教师 GROUP BY 职称其结果是()。答案:B A)计算并显示各类职称人数的职称和教师编号 B)按职称分组,并计算教师编号的个数以各类职称人数显示 C)计算所有教师编号的个数,以各类职称人数显示 D)按各类职称人数分组计算并显示教师编号的个数和职称 26.在SELECT语句中使用ORDER BY子句是为了指定()。答案:B A)查询的表 B)查询的结果顺序 C)查询的条件 D)查询的字段 27.若要查询成绩为70~80分之间(包括70分,不包括80分)的学生的信息,查询准则设置正确的是()。答案:C A)>69 or <80 B)Between 70 with 80 C)>=70 and <80 D)IN(70,79) 28.对“将信息系1999年以前参加工作的教师的职称改为副教授”,合适的查询为()。答案:B A)生成表查询 B)更新查询 C)删除查询 D)追加查询 29.下图是简单查询向导:其中按钮和按钮分别代表的意思是()。答案:A A)单击按钮一次选择一个字段,单击按钮一次选择全部字段 B)单击按钮一次选择一个字段,单击按钮一次选择全部字段 C)两者的作用相同,都是选择一个字段 D)以上说法均错误 30.下面对查询功能的叙述中正确的是()。答案:C A)在查询中,选择查询可以只选择表中的部分字段,通过选择一个表中的不同字段生成同一个表 B)在查询中,编辑记录主要包括添加记录、修改记录、删除记录和导入、导出记录 C)在查询中,查询不仅可以找到满足条件的记录,而且还可以在建立查询的过程中进行各种统计计算 D)以上说法均不对 31.与SELECT TAB1.* FROM TAB1 WHERE InStr([简历],“篮球”)<>0功能相同的语句是()。答案:C A)SELECT TAB1.* FROM TAB1 WHERE TAB1.简历 Like “篮球” B)SELECT TAB1.* FROM TAB1 WHERE TAB1.简历 Like “*篮球” C)SELECT TAB1.* FROM TAB1 WHERE TAB1.简历 Like “*篮球*” D)SELECT TAB1.* FROM TAB1 WHERE TAB1.简历 Like “篮球*” 32.在Access 数据库的表设计视图中,不能进行的操作是()。答案:D A)修改字段类型 B)设置索引 C)增加字段 D)删除记录 33.关于准则 Like![北京,上海,广州],以下满足条件的是()。答案:D A)北京 B)上海 C)广州 D)杭州 34.现有某查询设计视图(如下图所示),该查询要查找的是()。 答案:A A)身高在160以上的女性和所有的男性 B)身高在160以上的男性和所有的女性 C)身高在160以上的所有人或男性 D)身高在160以上的所有人 35.Access中,以下不属于查询操作方式的是()。答案:C A)选择查询 B)参数查询 C)准则查询 D)操作查询 36.“A Or B”准则表达式表示的意思是()。答案:B A)表示查询表中的记录必须同时满足Or两端的准则A和B,才能进入查询结果集 B)表示查询表中的记录只需满足Or两端的准则A和B中的一个,即可进入查询结果集 C)表示查询表中记录的数据介于A、B之间的记录才能进入查询结果集 D)表示查询表中的记录当满足Or两端的准则A和B不相等时即进入查询结果集 37.若在“tEmployee”表中查找所有姓“王”的记录,可以在查询设计视图的准则行中输入()。答案:B A)Like “王” B)Like “王*” C)=“王” D)=“王*” 38.在SQL查询中使用WHERE子句指出的是()。答案:D A)查询目标 B)查询结果 C)查询视图 D)查询条件 39.将表A的记录复制到表B中,且不删除表B中的记录,可以使用的查询是()。答案:C A)删除查询 B)生成表查询 C)追加查询 D)交叉表查询 40.要将“90分以上学生情况”表中所有记录和“学生成绩查询”中80分以下的记录,显示内容为“学生编号”、“姓名”、“成绩”3个字段。正确的表达式是()。答案:C A)SELECT学生编号,姓名,成绩FROM学生成绩查询 WHERE 成绩<80 JOIN SELECT学生编号,姓名,成绩FROM 90分以上学生情况 B)SELECT学生编号,姓名,成绩FROM学生成绩查询 WHERE 成绩<80 UNION SELECT学生编号,成绩,姓名FROM 90分以上学生情况 C)SELECT学生编号,姓名,成绩FROM学生成绩查询 WHERE 成绩<80 NUION SELECT学生编号,姓名,成绩FROM 90分以上学生情况 D)SELECT学生编号,姓名,成绩FROM学生成绩查询 WHERE 成绩<80 NUION SELECT学生编号,成绩FROM 90分以上学生情况 41.假设已在Access中建立了包含“书名”、“单价”和“数量”3个字段的“tOfg”表。以该表为数据源创建的窗体中,有一个计算订购总金额的文本框,其控件来源为()。答案:B A)[单价]*[数量] B)=[单价]*[数量] C)[图书订单表]![单价]*[图书订单表]![数量] D)=[图书订单表]![单价]*[图书订单表]![数量] 查询Oracle正在执行和执行过的SQL语句 --正在执行的select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT from v$session a, v$sqlarea bwhere a.sql_address = b.address ---执行过的select b.SQL_TEXT,b.FIRST_LOAD_TIME,b.SQL_FULLTEXT from v$sqlarea b where b.FIRST_LOAD_TIME between '2009-10-15/09:24:47' and'2009-10-15/09:24:47' order by b.FIRST_LOAD_TIME (此方法好处可以查看某一时间段执行过的sql,并且 SQL_FULLTEXT 包含了完整的 sql 语句)其他 select OSUSER,PROGRAM,USERNAME,SCfrom V$SESSION A LEFT JOIN V$SQL B ON A.SQL_ADDRESS=B.ADDRESS AND A.SQL_HASH_VALUE=B.HASH_VALUE order by b.cpu_time desc HEMANAME,B.Cpu_Time,STATUS,B.SQL_TEXTselect address, sql_text, piece from v$session, v$sqltextwhere address = sql_address --and machine = < you machine name >order by address, piece 查找前十条性能差的sql.SELECT * FROM(select PARSING_USER_ID,EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,sql_text FROM v$sqlarea order BY disk_reads DESC)where ROWNUM<10; 查看占io较大的正在运行的sessionfacebook:http:// SELECT se.sid,se.serial#,pr.SPID,se.username,se.status,se.terminal,se.program,se.MODULE,、se.sql_address,st.event,st.p1text,si.physical_reads,si.block_changes FROM v$session se,v$session_wait st,v$sess_io si,v$process pr WHERE st.sid=se.sid AND st.sid=si.sid AND se.PADDR=pr.ADDR AND se.sid>6 AND st.wait_time=0 AND st.event NOT LIKE '%SQL%' ORDER BY physical_reads DESC第三篇:查询练习题
第四篇:access查询练习题
第五篇:查询Oracle正在执行和执行过的SQL语句