[SQL]数据库及SQL易错题

1._______提供了在Oracle数据库系统范围内执行某种任务的操作能力, 系统权限
2._______则是一种赋予用户在指定的数据库对象(如表、视图、过程等)。 对象权限

3.在下列 RDMBS 产品中,属于小型数据库系统的是( A )。(选择一项)

A. Access
B. Oracle
C. Sybase
D. Informix
4. 数据库系统的日志文件用于记录下述哪类内容( D )。(选择一项)
A. 程序运行过程
B. 数据查询操作
C. 程序执行结果
D. 数据更新操作
解析:日志文件是用来记录对数据库每一次更新活动的文件,当数据库毁坏后可重新装入后援副本把数据库回复到转储结束时刻的正确状态,然后利用日志文件,把已经完成的事务进行重新处理,对故障发生时尚未完成的事务进行撤销处理。

5.对表中的某一行,VARCHAR2列包含数值SMITHY,应用程序在右侧填充七个空格。length()函数处理这个列值时,返回什么值( B )。(选择一项)

A. 6
B. 13
C.30
D.60

6.如何删除sales表中产品类型为toys的profits列的列值( A )。(选择一项)
A. UPDATE sales SET profits = NULL WHERE product_type = ‘TOYS’
B. DELETE profits FROM sales WHERE product_type = ‘TOYS’
C. DELETE FROM sales WHERE product_type = ‘TOYS’
D. DELETE FROM sales

解析:题中要求删除的是列值而不是整个记录,因此使用update语句设置该列值为null.易错选项C审题不清删除了产品类型为toys的整个记录.

7.DELETE FROM S WHERE 年龄>60语句的功能是( A )。(选择一项)
A. 从S表中彻底删除年龄大于60岁的记录
B. S表中年龄大于60岁的记录被加上删除标记
C. 删除S表
D. 删除S表的年龄列
解析:没有commit提交的事务都可以rollback回滚撤销,因此只是加上了删除标记而没有彻底删除.

8.哪行代码有错误( C )。(选择一项)
A. SELECT dname,ename
B. FROM emp e,dept d
C. WHERE emp.deptno=dept.deptno
D. ORDER BY 1,2
解析:B中已经给emp和dept重命名为e和d,一旦重命名后只能使用别用而不能用原名了.易错选项D中order by 1,2的含义是对表的第一列按照从小到大的顺序进行排列,然后再对第二列按照从小到大的顺序进行排列.

5.每个启动的数据库都对应一个或者多个数据库实例,由这些实例来访问和控制数据库。( X )
解析:在任何时刻一个实例只能与一个数据库关联,访问一个数据库;而同一个数据库可由多个实例访问.

6.进行多表等值查询时,当被连接的多个表中存在同名字段时,须在该字段前加上"表名."前缀。使用表名(表别名)前缀不能提高查询效率。( X )
解析:使用表名前缀可以提高查询效率.

编码题
已知Oracle的Scott用户中提供了三个测试数据库表,名称分别为dept,emp和salgrade。使用SQL语言完成以下操作:
1 查询在2月份入职的所有员工信息:
select * from emp where to_char(hiredate,‘MM’)=‘02’;

2 显示所有员工的姓名、入职的年份和月份,按入职日期所在的月份排序,若月份相同则按入职的年份排序:
select ename,to_char(hiredate,‘yyyy’) year,to_char(hiredate,‘MM’)
month
from emp
order by month,year;

3 查询’JONES’员工及所有其直接、间接下属员工的信息:
select e.* from emp e
start with ename=‘JONES’
connect by prior empno=mgr;

4 查询SCOTT员工及其直接、间接上级员工的信息:
select e.* from emp e
start with ename=‘SCOTT’
connect by prior mgr=empno;

5 查询从事同一种工作但不属于同一部门的员工信息:
select a.ename,a.job,a.deptno,b.ename,b.job,b.deptno
from emp a,emp b
where a.job=b.job and a.deptno<>b.deptno;

数据库对象:
1 Oracle中要生成数据库表,下列哪个选项是无效表生成的语句( D )。(选择一项)

A. create table cats(c_name varchar2(10), c_weight number, c_owner varchar2(10));
B. create table my_cats as select * from cats where owner = ‘ME’;
C. create global temporary table temp_cats(c_name varchar2(10), c_weight number, c_owner varchar2(10));
D. create table 51cats as select c_name, c_weight from cats where c_weight > 5;
解析: D选项中的表名数字开头,不合法.

2 下列关于关系数据库视图的说法中,哪些是错误的( A )(选择一项)

A. 视图是关系数据库三级模式中的内模式。
B. 视图能够对机密数据库提供一定的安全保护。
C. 视图对重构数据库提供了一定程度的逻辑独立性
D. 对视图的一切操作最终都要转换为对基本表的操作
解析:SQL语言支持数据库三级模式结构,在SQL中,模式对应于基本表,内模式对应于存储文件,外模式对应于视图和部分基本表,元组对应于表中的行,属性对应于表中的列。

3 数据库的并发操作可能带来的问题包括( B )。(选择一项)

A. 非法用户的使用
B. 丢失更新
C. 数据独立性会提高
D. 增加数据冗余度
解析:并发操作可能带来的问题有:(1)丢失更新(2)不可重复读(3)读脏数据

4 唯一性约束条件的字段允许出现空值,但是最多只能是一个空值。( X )
解析:空值可以有多个

  1. 可增加或删除约束,也可以直接修改。( X )
    解析:约束不能直接修改

6索引的作用:在数据库中用来加速对表的查询,通过使用快速路径访问方法快速定位数据,减少了磁盘的I/O。( √ )

编码题:
11) 用SQL语句完成下列查询(多表嵌套查询-带有IN谓词的子查询):
a) 查询选修了C2课程的学生姓名:
SELECT Sname FROM S WHERE Sno IN ( SELECT Sno FROM SC WHERE Cno=‘C2’);
b) 查询与“张三”在同一个系学习的学生学号、姓名和系别:
SELECT Sno,Sname,Sdept FROM S WHERE Sdept IN (SELECT Sdept FROM S WHERE Sname=‘张三’);
c) 查询选修课程名为“数据库”的学生学号和姓名:
SELECT Sno,Sname FROM S WHERE Sno IN (SELECT Sno FROM SC WHERE Cno IN(SELECT Cno FROM C WHERE Cname=‘DB’));

你可能感兴趣的:(SQL练习)