oralce题库及答案.doc

上传人:PIYPING 文档编号:10624132 上传时间:2021-05-27 格式:DOC 页数:32 大小:128KB
返回 下载 相关 举报
oralce题库及答案.doc_第1页
第1页 / 共32页
oralce题库及答案.doc_第2页
第2页 / 共32页
oralce题库及答案.doc_第3页
第3页 / 共32页
oralce题库及答案.doc_第4页
第4页 / 共32页
oralce题库及答案.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《oralce题库及答案.doc》由会员分享,可在线阅读,更多相关《oralce题库及答案.doc(32页珍藏版)》请在三一文库上搜索。

1、一、选择题1.当你执行以下查询语句:SELECT empno,ename FROM emp WHERE empno =7782 OR empno =7876; 在WHERE语句中,以下哪个操作符可以取代OR?A. INB. BETWEEN C. LIKED. =2. 以下哪行有错?(1) SELECT deptno(2) FROM emp(3) GROUP BY deptno(4) HAVING COUNT(deptno)=(5) (SELECT max(count(deptno)(6) FROM emp(7) GROUP BY deptno);A. Line 3B. Line 4C. Lin

2、e 5D. Line 7E. 都没错.3. 以下哪个命令可以被用来从表 STATE中 drop 列 UPDATE_DT ?A. ALTER TABLE STATE DROP COLUMN UPDATE_DT;B. ALTER TABLE STATE REMOVE COLUMN UPDATE_DT;C. DROP COLUMN UPDATE_DT FROM STATE;D. 你不能从这个表中DROP该列.数据定义语言是用于( )的方法。选择一项确保数据的准确性 B、定义和修改数据结构C、查看数据 D、删除和更新数据5、执行下面的语句: select e.ename,d.dname from em

3、ployees e, deptment d where e.deptno (+) = d.deptno;会显示什么样的结果?A. 显示dept表的全部信息,没有对应员工以null代替B. 显示emp表的全部信息,没有对应部门以null代替C. 报错D. 语法正确,但不会运行6、emp表结构如下:empno number(9,3)ename varchar2(10)sal number (9,3) mgr (4)什么命令可以让你添加loc列到列sal后:( )A. alter table emp add column3( loc varchar2(20);B. alter table emp m

4、odify after column3 ( loc varchar2(20);C. alter table add ( sal ) column3 ( loc varchar2( 20);D. 无法指定新列出现的位置7. begin for I in 1.10 loop if I = 3 or I = 9 then null ; else insert into ord values (I); end if ; end loop ; end ;多少行数据insert到了ord表?( )A. 3B. 4C. 8D. 9E. 18. 下面哪一个 like 命令会返回名字为HOTKA 的行? A.w

5、here ename like _HOT% B.where ename like H_T% C.where ename like %TKA_ D.where ename like %TOK%9. 在Oracle的SQL PLUS中执行DML语句后,没有提交便正常退出后,事务将:( )A.自动回滚B.自动提交C.报错警告D.提示是否保存11、Oracle启动的初始化参数文件搜寻顺序是:A. initsid.oraB. init.oraC. spfilesid.oraD. spfile.ora答案:从C到D到A12、显示系统时间: 答案:select sysdate from dual;13、执行

6、下面的语句: select e.ename,d.dname from employees e, deptment d where e.deptno (+) = d.deptno;会显示什么样的结果?A. 显示dept表的全部信息,没有对应员工以null代替B. 显示emp表的全部信息,没有对应部门以null代替C. 报错D. 语法正确,但不会运行 16、create table ord ( ordid number (3) constraint ord_v_pk primary key, #orderdate date, ship4date date , 3item_id number (7)

7、 constraint it_v not null) ; 上面的语句,哪两行有错误?a. 1b. 2c. 3d. 4e. 5要以自身的模式创建私有同义词,用户必须拥有( )系统权限。选择一项A.CREATE PRIVATE SYNONYMB.CREATE PUBLIC SYNONYMC.CREATE SYNONYMD.CREATE ANY SYNONYM通常情况下,( )值可以唯一地标识数据库中的一行。选择二项A.ROWNUMB.PRIMARY KEYC.UNIQUED.ROWIDOracle中,表名应该严格遵循下列哪些命名规则()(选择二项)A.表名的最大长度为20个字符B.表名首字符可以为

8、字母或下划线C.同一用户模式下的不同表不能具有相同的名称D.不能使用Oracle保留字来为表命名在设计数据库时,要充分考虑数据的完整性或准确性。下面关于primary key和unique的描述错误的是()选择二项)A.primary key用来在表中设置主键,主键列的值是可以重复的,用来唯一标识表中 的每一条记录B.primary key列和unique列都不可以有null值C.设为unique的列的值是不能重复的,用来唯一区别unique列的值D.primary key列不可以有null值, 而unique列是可以有null的假定有一张表用户表users,其中一身份证字段ID_card。为

9、了维护数据的完整性,在设计数据库时,最好对ID_card字段添加约束,请问应该添加什么约束()(选择一项)A.primary keyB、check C、defaultD、unique下面哪个命令不属于数据操纵语言(DML)( )(选择二项)A.ALTER B.INSERTC.UPDATE D.DROP你发出命令:DROP TABLE emp;此时你还没有明确发出COMMIT命令。你能用什么命令撤消上面的drop语句所做的操作?( )选择一项A.关闭数据库B.什么命令都不可以,因为DDL语句不能被回滚C.发出一个ROLLBACK命令D.终断正在活动的会话表ORDERS的结构定义如下:ORDER_

10、ID NUMBER(4) NOT NULL;CUSTOMER_ID NUMBER(12) NOT NULL;ORDER_TOTAL NUMBER(10.2);下列哪两个语句,能检索出预定总量在100.00与2000.00之间的记录? ()不定项选择A.SELECT customer_id,order_id,order_total FROM orders HAVING order_total BETWEEN 100 AND 2000;B.SELECT customer_id,order_id,order_total FROM orders WHERE order_total BETWEEN 10

11、0 AND 2000;C.SELECT customer_id,order_id,order_total FROM orders WHERE order_total=100 AND =100 AND order_total5; B.SELECT ENAME FROM EMP1 WHERE HIRE_DATE-SYSDATE5;C.SELECT ENAME FROM EMP1 WHERE (SYSDATE-HIRE_DATE)/3655;D.SELECT ENAME FROM EMP1 WHERE (SYSDATE-HIRE_DATE)*3655;在Oracle中,使用下列的语句: CREATE

12、 PUBLIC SYNONYM parts FOR Scott.inventory;完成的任务是()。(选择一项)A.需要给出schema被除去的对象名B.指定了新的对象权限C.指定了新的系统权限D.给Scott.inventory对象创建一个公用同义词parts在Oracle中,有一个名为seq_id的序列对象,假定此时查看seq_id序列当前值显示为100,那么执行下面的sql insert into test(id, name) values(seq_id.NEXTVAL,tom );很不幸,这个insert没有执行成功,随后马上执行rollback,问:此时查看seq_id序列当前值显

13、示为( )选择一项A. 99 B、100C、101 D、不能确定PL/SQL块中不能直接使用的SQL命令是( )选一项A.SELECTB.INSERTC.UPDATED.DROP在PL/SQL块中,以零作除数时会引发下列( )异常。(选择一项)A.VALUE_ERRORB.ZERO_DIVIDEC.VALUE_DIVIDED.ZERO_ERROR当Select Into语句的返回没有数据时,将引发下列哪个异常?( )选择一项A.No_Data_FoundB.To_Many_RowC.Too_Many_RowsD.Invalid_Number创建序列时,若未指定Cycle选项,则当前值大于Max

14、Value时将( )选择一项A.从MinValue重新开始循环B.重复使用MaxValue 值C.执行出错D.使用随机值在Oracle中,PL/SQL块中定义了一个带参数的游标:CURSOR emp_cursor(dnum NUMBER) ISSELECT sal, comm FROM emp WHERE deptno = dnum;那么正确打开此游标的语句是()(选择两项)A.OPEN emp_cursor(20);B.OPEN emp_cursor FOR 20;C.OPEN emp_cursor USING 20;D.FOR emp_rec IN emp_cursor(20) LOOP

15、END LOOP;在Insert触发器中可使用的引用有( )选一项A.new B.OldC.:Update D.ew和:Old下面哪些是过程中的有效参数模式?()不定项选择A.IN B. INOUT C.OUT D. OUT IN下面哪个命令是用于oracle中数据导出的( )选择一项A.exp B、impC、inputD、outputOracle数据表中,下面哪个可以作为有效的列名()(选择一项)A. class B.123_NUMC.date D.23_NUMOracle中的三种系统文件分别是( )选择三项A .数据文件 DBFB. 控制文件 CTLC. 日志文件 LOGD.归档文件 AR

16、C下面哪个命令可以用来查看学生表(表名student)的表结构( )选择一项A. Select student ; B.Display student ;C.Desc student ; D.Show student ;下面哪个命令不属于数据定义语言(DDL)( )(选择一项)alter table B、drop indexC、create viewD、update tablename在设计数据库时,要充分考虑数据的完整性或准确性。下面关于primary key和unique的描述错误的是()选择一项)A. primary key用来在表中设置主键,主键列的值是不能重复的,用来唯一标识表中的每

17、一条记录 B.设为unique的列的值是不能重复的,用来唯一区别unique列的值 primary key列不可以有null值, 而unique列是可以有null的primary key列和unique列都不可以有null值假定有一张表员工表employee,其中一性别字段sex,该列只能存入男或女。为了维护数据的完整性,在设计数据库时,最好对sex字段添加约束,请问应该添加什么约束()(选择一项)primary keyB、check C、defaultD、unique为表TEST中ID列添加主键约束的语法是()选择一项ALTER TABLE TEST CHANGE( ID INT PRIMA

18、RY KEY)ALTER TABLE TEST ADD( ID INT PRIMARY KEY)ALTER TABLE TEST MODIFY( ID INT PRIMARY KEY)ALTER TABLE TEST ADD CONSTRAINT PK PRIMARY KEY (ID)如果表DEPT包含3条记录,现在用如下命令对其进行修改,ALTER TABLE DEPT ADD(COMP NUMBER(4) NOT NULL);请问下面哪一个说法是正确的?( )(选择一项)该语句在表的最前面插入一个非空列该语句在表的最后插入一个非空列该语句执行完成后,应当立即执行COMMIT语句,以确保更改

19、生效该语句将产生错误关于聚合行数描述错误的是( )选择一项)A. avg(), sum() 只能用于数值类型的字段上 max() , min() 只能用于数值类型的字段上max() , min() 可以用于数值类型 或 日期类型 或 字符串类型的字段上count()可以用于任何类型的字段上Oracle中获得当前系统日期的查询语句是( )选择一项Select getdate() ;Select sysdate ;Select sysdate from dual ;Select sysdate() from dual ; 你发出命令:DROP TABLE emp;此时你还没有明确发出COMMIT命

20、令。你能用什么命令撤消上面的drop语句所做的操作?( )选择一项A. 关闭数据库发出一个ROLLBACK命令终断正在活动的会话什么命令都不可以,因为DDL语句不能被回滚有Oracle表”cd”,它包含属性”cdcode”,”category”和”cdname”,你要查询category取值为”CLASSIC”或”ROCK”的行,你采用语句( )(选择两项)SELECT * FROM cd WHERE category IN (CLASSIC,ROCK);SELECT * FROM cd WHERE category BETWEEN CLASSIC AND ROCK;SELECT * FROM

21、 cd WHERE category=CLASSIC AND category=ROCK;SELECT * FROM cd WHERE category=CLASSIC OR category=ROCK更改oracle用户HR,使其变为不可用(锁定)状态()选择一项A.UPDATE USER HR ACCOUNT DISABLE ;B.UPDATE USER HR ACCOUNT LOCK ;C.ALTER USER HR ACCOUNT DISABLE ;D.ALTER USER HR ACCOUNT LOCK ;INSERT INTO TEST VALUES(&ID, &NAME); 语句

22、在执行时将( )选择一项A. 编译错:提示变量未定义B. 运行错:提示不能识别符号将值&ID和&NAME插入到表中提示用户输入输入ID和NAME的值,再将输入值插入表中下面关于删除视图的说法哪一个是正确的()。(选择一项)A. 删除视图后应立即用COMMIT语句使更改生效B. 删除视图后,和视图关联的表中的数据依然存在C.视图被删除后视图中的数据也将被删除D.用delete VIEW删除视图若update emp set salary=1000 中缺少where 条件:( )(选择一项)A.更改表中所有记录 B.更改第一条记录 C.记录未更改。D.提示错误:缺少where字句集合操作符Inte

23、rsect的作用是( )选择一项A.将两个记录集联接起来B.选择第一个查询有,而第二个没有的记录C.选择第二个查询有,而第一个没有的记录D.选择两个查询的交集在Oracle中,使用下列的语句: CREATE PUBLIC SYNONYM parts FOR Scott.inventory;完成的任务是()。(选择一项)A.需要给出schema被除去的对象名B.指定了新的对象权限C.指定了新的系统权限D.给Scott.inventory对象创建一个公用同义词parts在Oracle中,有一个名为seq的序列对象,以下语句能返回序列值但不会引起序列值增加的是()(选择一项)select seq.R

24、OWNUM from dual;select seq.ROWID from dual;select seq.CURRVAL from dual;select seq.NEXTVAL from dual;在Oracle中,有一个名为seq的序列对象,假定此时查看seq序列当前值显示为7,那么执行下面的sql insert into stu(id, name) values(seq.NEXTVAL,tom );很不幸,这个insert没有执行成功,随后马上执行rollback,问:此时查看seq序列当前值显示为( )选择一项A. 6B、8C、7D、不能确定在PL/SQL块中定义一个名为PI值为3.

25、14的Real型常量的语法是( )选一项A.Pi Const Real3.14;B.Pi Real Const 3.14;C.Constant Pi Real:3.14D.Pi Constant Real:=3.14Oracle中,在一个PL/SQL块中调用另一个PL/SQL过程的方法是( )(选择一项)A.使用CALL语句B.使用EXECUTE语句C.使用RUN语句D.直接使用过程名当Select Into语句的返回多于一行时,将引发下列哪个异常?( )选择一项A.No_Data_FoundB.To_Many_RowC.Too_Many_RowsD.Invalid_Number创建序列时,若

26、未指定Cycle选项,则当当前值大于MaxValue时将( )选择一项A.从MinValue重新开始循环B.重复使用MaxValue 值C.执行出错D.使用随机值PL/SQL块中哪几部分是可选的( )选择二项DeclareBeginException以上均是在Oracle中,PL/SQL块中定义了一个带参数的游标:CURSOR emp_cursor(dnum NUMBER) ISSELECT sal, comm FROM emp WHERE deptno = dnum;那么可以打开此游标的语句是()(选择两项)A.OPEN emp_cursor(20);B.OPEN emp_cursor FO

27、R 20;C.OPEN emp_cursor USING 20;D.FOR emp_rec IN emp_cursor(20) LOOP END LOOP;在Insert触发器中可使用的引用有( )选一项A.newB.OldC.:UpdateD.:New和:Old在Oracle中,有表Person,如下:IDNameTel001Amber1234002Amy2345003Emily4567004Eric5678005Roy6789执行下面sql查询:SELECT Tel FROM Person WHERE Name = A%;结果是( )。(选择一项)123423454567以上皆非二、sql

28、编写题1.检索部门编号、部门名称、部门所在地及其每个部门的员工总数。select d.deptno,d.dname,d.loc,count(*)from emp e,dept dwhere e.deptno=d.deptnogroup by d.deptno,d.dname,d.loc;2、找员工姓名和直接上级的名字select e.ename 雇员,m.ename 经理 from emp e,emp mwhere e.mgr=m.empno;3、低于部门30中员工工资的其他员工?select * from emp where sal+nvl(comm,0) to_date(1980-01-0

29、1,yyyy-mm-dd);11、显示每个部门的工资前2名的员工select * from emp a where (select count(*) from empwhere deptno = a.deptno and sal a.sal) all (select sal+nvl(comm,0) from empwhere deptno = 30);13.按部门号(deptno) 及 工资(sal)排序检索公司的员工信息(要求部门号从大到小 ,部门号相同的按工资由低到高),显示的字段为:员工号、员工名、工资、部门号。select empno,ename,sal,deptno from emp

30、 order by deptno desc,sal;14.检索部门号及其本部门的最低工资。select deptno,min(sal) from emp group by deptno;15. 检索与SCOTT从事相同工作的员工信息。select * from emp where job=(select job from emp where ename=SCOTT);16、只复制部分数据insert into mydept1 select * from dept where deptno20;或insert into mydept1(deptno,loc) select deptno,locf

31、rom dept;17、统计emp表中不同工作的个数 ?select count(distinct job) from emp;或select job,count(job) from emp group by job;18、查询姓名首字母为A或第二个字符为B的雇员信息select * from emp where ENAME likeA% or ENAME like_O%;19、部门编号降序姓名升序select * from emp order by DEPTNO desc,ename asc;20、每个部门平均工资和最高工资select avg(SAL),max(SAL) from emp

32、group by DEPTNO;21、每个部门平均工资和最高工资按平均工资排序select avg(SAL),max(SAL) from emp group by DEPTNO order by avg(SAL) desc;22、显示每个部门、每种岗位的平均工资和最高工资select avg(SAL),max(SAL) from emp group by DEPTNO,JOB;23. 用PL/sql实现输出7369号员工的姓名。-用PL/sql实现输出7369员工的姓名;set serveroutput on;- 将sql*plus的输出功能开启declare -声明部分var_empno n

33、umber(4) := 7369 ;-声明一个变量var_empno ,并给赋值,用:= 赋值var_name varchar2(10); -声明一个变量var_name begin -执行部分的开始 select ename into var_name from emp where empno = var_empno; dbms_output.put_line(var_empno | 的名字是 : | var_name);-输出语句end;-执行部分的结束,end后面要加 ;-执行结果为:7369 的名字是 : SMITHPL/SQL 过程已成功完成。24.编写一sql语句,将7369号员工

34、的入职日期改为1997/7/1,工资提高800 ,其他信息不变。update emp set hiredate=to_date(1997/7/1,yyyy-mm-dd),sal=sal+800 where empno=7369;25、平均工资高于2000的部门编号,部门工资,最高工资select DEPTNO,avg(SAL),max(SAL) from emp group by DEPTNO having avg(SAL)2000;26、查询emp表所在部门30的雇员及管理员的姓名select 雇员表.ename,管理员表.ename from emp 雇员表,emp 管理员表 where

35、雇员表.MGR=管理员表.EMPNO and deptno=30;27、显示工资最高的员工信息select * from emp where SAL=(select max(SAL) from emp);28、统计公司有多少个岗位(工种的个数)。select count(distinct job) from emp;或select job,count(job) from emp group by job;29.检索公司员工中姓张的员工信息。显示字段:empno、ename、deptno。 Select empno,ename,deptno from emp where ename like 张

36、%;30.检索所有员工的工号、员工名、入职时间,要求入职时间按YYYY-MM-DD格式输出。Select empno,ename, to_char(HIREDATE,YYYY-MM-DD) from emp;31.检索每个部门的最高工资 和 最低工资,显示字段为:deptno、losal、hisalselect max(sal) hisal,min(sal) losal,deptno from emp group by deptno;32.按部门号(deptno) 及 工资(sal)排序检索公司的员工信息(要求部门号从小到大 ,部门号相同的按工资由高到低),显示的字段为:empno、ename、sal、deptno。select empno,ename,sal,deptno from emp order by deptno desc,sal;33.检索每个部门的岗位平均工资。显示字段:empno、平均工资、job。select deptno,job,avg(sal) 平均工资 from scott.emp group by (deptno,job);34.检索和名叫SCOTT的员工相同工资的员工信息,但不显示SCOTT。显示字段:员工号、员工名

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1