oralce题库及答案_第1页
oralce题库及答案_第2页
oralce题库及答案_第3页
oralce题库及答案_第4页
oralce题库及答案_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、选择题1.当你执行以下查询语句:select empno,ename from emp where empno =7782 or empno =7876; 在where语句中,以下哪个操作符可以取代or?a. inb. between c. liked. <=e. >=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.

2、line 4c. line 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.d

3、name from employees 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

4、 table emp modify 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 命令会返回名字为h

5、otka 的行? a.where 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、显示系统时间: 答

6、案:select sysdate from dual;13、执行下面的语句: 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, ship

7、4date date , 3item_id number (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中,表名应该严格遵循下列哪些命名规则(

8、)(选择二项)a.表名的最大长度为20个字符b.表名首字符可以为字母或下划线c.同一用户模式下的不同表不能具有相同的名称d.不能使用oracle保留字来为表命名在设计数据库时,要充分考虑数据的完整性或准确性。下面关于primary key和unique的描述错误的是()选择二项)a.primary key用来在表中设置主键,主键列的值是可以重复的,用来唯一标识表中 的每一条记录b.primary key列和unique列都不可以有null值c.设为unique的列的值是不能重复的,用来唯一区别unique列的值d.primary key列不可以有null值, 而unique列是可以有null的

9、假定有一张表用户表users,其中一身份证字段id_card。为了维护数据的完整性,在设计数据库时,最好对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命令

10、d.终断正在活动的会话表orders的结构定义如下:order_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 ord

11、ers where order_total between 100 and 2000;c.select customer_id,order_id,order_total from orders where order_total>=100 and <=2000;d.select customer_id,order_id,order_total from orders having on order_total (100 and 2000) inclusive;e.select customer_id,order_id,order_total from orders where or

12、der_total>=100 and order_total<=2000; 以下哪些是有效的oracle约束类型?( )(选择四项)a. unique b.nonunique c. check d.cascade e. primary key f.constantg g.not null更改oracle用户hr,使其变为不可用(锁定)状态()选择一项a.update user hr account disable ;b.update user hr account lock ;c.alter user hr account lock ;d.alter user hr account

13、 disable ;insert into test values(&id, &name); 语句在执行时将( )选择一项a.编译错:提示变量未定义b.运行错:提示不能识别符号c.将值&id和&name插入到表中d.提示用户输入输入id和name的值,再将输入值插入表中下面关于删除视图的说法哪一个是正确的()。(选择一项)a.删除视图后应立即用commit语句使更改生效b.删除视图后,和视图关联的表中的数据不再存在c.视图被删除后视图中的数据也将被删除d.用dorp view删除视图( )函数通常用来计算累计排名、移动平均数和报表聚合等。选择一项)a.汇总 b.

14、分析c.分组 d.单行集合操作符intersect的作用是( )选择一项a.将两个记录集联接起来b.选择第一个查询有,而第二个没有的记录c.选择二个查询的交集d.选择第二个查询有,而第一个没有的记录emp1表包含下面这些字段。ename varchar2(35)salary number(8,2)hire_date date管理部门想要一份已在公司工作了5年以上的员工名单。以下哪个sql语句可以显示需要的结果。( )(选择一项)a.select ename from emp1 where sysdate-hire_date>5; b.select ename from emp1 wher

15、e hire_date-sysdate>5;c.select ename from emp1 where (sysdate-hire_date)/365>5;d.select ename from emp1 where (sysdate-hire_date)*365>5;在oracle中,使用下列的语句: create public synonym parts for scott.inventory;完成的任务是()。(选择一项)a.需要给出schema被除去的对象名b.指定了新的对象权限c.指定了新的系统权限d.给scott.inventory对象创建一个公用同义词part

16、s在oracle中,有一个名为seq_id的序列对象,假定此时查看seq_id序列当前值显示为100,那么执行下面的sql insert into test(id, name) values(seq_id.nextval,'tom' );很不幸,这个insert没有执行成功,随后马上执行rollback,问:此时查看seq_id序列当前值显示为( )选择一项a. 99 b、100c、101 d、不能确定pl/sql块中不能直接使用的sql命令是( )选一项a.selectb.insertc.updated.drop在pl/sql块中,以零作除数时会引发下列( )异常。(选择一项

17、)a.value_errorb.zero_dividec.value_divided.zero_error当select into语句的返回没有数据时,将引发下列哪个异常?( )选择一项a.no_data_foundb.to_many_rowc.too_many_rowsd.invalid_number创建序列时,若未指定cycle选项,则当前值大于maxvalue时将( )选择一项a.从minvalue重新开始循环b.重复使用maxvalue 值c.执行出错d.使用随机值在oracle中,pl/sql块中定义了一个带参数的游标:cursor emp_cursor(dnum number) i

18、sselect 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 end loop;在insert触发器中可使用的引用有( )选一项a.new b.oldc.:update d.ew和:old下面哪些是过程中的有效参数模式?()不定项选择a.in b. inout c.out d. out in下面哪个命令

19、是用于oracle中数据导出的( )选择一项a.exp b、impc、inputd、outputoracle数据表中,下面哪个可以作为有效的列名()(选择一项)a. class b.123_numc.date d.23_numoracle中的三种系统文件分别是( )选择三项a .数据文件 dbfb. 控制文件 ctlc. 日志文件 logd.归档文件 arc下面哪个命令可以用来查看学生表(表名student)的表结构( )选择一项a. select student ; b.display student ;c.desc student ; d.show student ;下面哪个命令不属于数据

20、定义语言(ddl)( )(选择一项)alter table b、drop indexc、create viewd、update tablename在设计数据库时,要充分考虑数据的完整性或准确性。下面关于primary key和unique的描述错误的是()选择一项)a. primary key用来在表中设置主键,主键列的值是不能重复的,用来唯一标识表中的每一条记录 b.设为unique的列的值是不能重复的,用来唯一区别unique列的值 primary key列不可以有null值, 而unique列是可以有null的primary key列和unique列都不可以有null值假定有一张表员工表

21、employee,其中一性别字段sex,该列只能存入'男'或'女'。为了维护数据的完整性,在设计数据库时,最好对sex字段添加约束,请问应该添加什么约束()(选择一项)primary keyb、check c、defaultd、unique为表test中id列添加主键约束的语法是()选择一项alter table test change( id int primary key)alter table test add( id int primary key)alter table test modify( id int primary key)alter tab

22、le test add constraint pk primary key (id)如果表dept包含3条记录,现在用如下命令对其进行修改,alter table dept add(comp number(4) not null);请问下面哪一个说法是正确的?( )(选择一项)该语句在表的最前面插入一个非空列该语句在表的最后插入一个非空列该语句执行完成后,应当立即执行commit语句,以确保更改生效该语句将产生错误关于聚合行数描述错误的是( )选择一项)a. avg(), sum() 只能用于数值类型的字段上 max() , min() 只能用于数值类型的字段上max() , min() 可以

23、用于数值类型 或 日期类型 或 字符串类型的字段上count()可以用于任何类型的字段上oracle中获得当前系统日期的查询语句是( )选择一项select getdate() ;select sysdate ;select sysdate from dual ;select sysdate() from dual ; 你发出命令:drop table emp;此时你还没有明确发出commit命令。你能用什么命令撤消上面的drop语句所做的操作?( )选择一项a. 关闭数据库发出一个rollback命令终断正在活动的会话什么命令都不可以,因为ddl语句不能被回滚有oracle表”cd”,它包含

24、属性”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 cd where category='classic' and category='rock

25、9;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); 语句在执行时将( )选择一项a.

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

27、用是( )选择一项a.将两个记录集联接起来b.选择第一个查询有,而第二个没有的记录c.选择第二个查询有,而第一个没有的记录d.选择两个查询的交集在oracle中,使用下列的语句: create public synonym parts for scott.inventory;完成的任务是()。(选择一项)a.需要给出schema被除去的对象名b.指定了新的对象权限c.指定了新的系统权限d.给scott.inventory对象创建一个公用同义词parts在oracle中,有一个名为seq的序列对象,以下语句能返回序列值但不会引起序列值增加的是()(选择一项)select seq.rownum f

28、rom 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值

29、为3.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创建序列

30、时,若未指定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

31、 for 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以上皆非二、

32、sql编写题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) < all (sele

33、ct sal+nvl(comm,0) from emp where deptno = 30);4、复制一张表的结构,数据一起复制create table mydept as select * from dept;5、只复制结构create table mydept1 as select * from dept where 1=2;6、把数据从一个表复制到另一个结构相同的表insert into mydept1select * from dept;7.检索员工和所属经理的姓名。select e.ename 雇员,m.ename 经理 from emp e,emp m where e.mgr=m.

34、empno;8、找每个部门中每种工作的最高和最低的工资?select deptno,job,max(sal),min(sal) from emp group by deptno,job;9、找每个工作的最高和最低的工资?select job,max(sal),min(sal) from emp group by job; 10.检索30部门中1980年1月份之前入职的员工信息。显示:员工号、员工名、部门号,部门名、入职日期。select empno,ename,d.deptno,d.dname,hiredatefrom emp,dept d where emp.deptno=d.deptno

35、and d.deptno=30 and hiredate>to_date('1980-01-01','yyyy-mm-dd');11、显示每个部门的工资前2名的员工select * from emp a where (select count(*) from empwhere deptno = a.deptno and sal > a.sal) <=1;12、高于部门30中员工最高工资的其他员工?select * from emp where sal+nvl(comm,0) > all (select sal+nvl(comm,0) fr

36、om empwhere deptno = 30);13.按部门号(deptno) 及 工资(sal)排序检索公司的员工信息(要求部门号从大到小 ,部门号相同的按工资由低到高),显示的字段为:员工号、员工名、工资、部门号。select empno,ename,sal,deptno from emp order by deptno desc,sal;14.检索部门号及其本部门的最低工资。select deptno,min(sal) from emp group by deptno;15. 检索与scott从事相同工作的员工信息。select * from emp where job=(select

37、 job from emp where ename='scott');16、只复制部分数据insert into mydept1 select * from dept where deptno>20;或insert into mydept1(deptno,loc) select deptno,locfrom dept;17、统计emp表中不同工作的个数 ?select count(distinct job) from emp;或select job,count(job) from emp group by job;18、查询姓名首字母为a或第二个字符为b的雇员信息sele

38、ct * from emp where ename like'a%' or ename like'_o%'19、部门编号降序姓名升序select * from emp order by deptno desc,ename asc;20、每个部门平均工资和最高工资select avg(sal),max(sal) from emp group by deptno;21、每个部门平均工资和最高工资按平均工资排序select avg(sal),max(sal) from emp group by deptno order by avg(sal) desc;22、显示每个

39、部门、每种岗位的平均工资和最高工资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 number(4) := 7369 ;-声明一个变量var_empno ,并给赋值,用:= 赋值var_name varchar2(10); -声明一个变量var_name begin -执行部分的开始 select ename into

40、var_name from emp where empno = var_empno; dbms_output.put_line(var_empno | ' 的名字是 :' | var_name);-输出语句end;-执行部分的结束,end后面要加 ;-执行结果为:7369 的名字是 : smithpl/sql 过程已成功完成。24.编写一sql语句,将7369号员工的入职日期改为1997/7/1,工资提高800 ,其他信息不变。update emp set hiredate=to_date('1997/7/1','yyyy-mm-dd'),sal

41、=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 雇员表.mgr=管理员表.empno and deptno=30;27、显示工资最高的员工信息select * from emp where sal=(select m

42、ax(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 张%;30.检索所有员工的工号、员工名、入职时间,要求入职时间按yyyy-mm-dd格式输出。select empno,ename, to_char(hiredate,y

43、yyy-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.检索每个部

44、门的岗位平均工资。显示字段:empno、平均工资、job。select deptno,job,avg(sal) 平均工资 from scott.emp group by (deptno,job);34.检索和名叫scott的员工相同工资的员工信息,但不显示scott。显示字段:员工号、员工名、工资。select empno,ename,sal from emp where sal =(select sal from emp where ename='scott') and ename!='scott'35.编写一sql语句,将7521号员工的入职日期改为1998

45、/5/26,工资提高500 ,其他信息不变。update emp set hiredate=to_date('1998/5/26','yyyy/mm/dd'),sal=sal+500 where empno=7521;36. 对所有员工,如果该员工职位是manager,并且在dallas工作那么就给他薪金加15;如果该员工职位是clerk,并且在new york工作那么就给他薪金扣除5;其他情况不作处理。要求:使用游标或函数编程实现。set serveroutput on;declare cursor c1 is select * from emp; c1rec

46、 c1%rowtype; v_loc varchar2(20);begin for c1rec in c1 loop select loc into v_loc from dept where deptno = c1rec.deptno; if c1rec.job = 'manager' and v_loc = 'dallas' then update emp set sal = sal * 1.15 where empno = c1rec.empno; elsif c1rec.job='clerk' and v_loc = 'new y

47、ork' then update emp set sal = sal * 0.95 where empno = c1rec.empno; else null; end if; end loop; end;37. 对直接上级是'blake'的所有员工,按照参加工作的时间加薪:1981年6月以前入职的员工加薪10、1981年6月以后入职的员工加薪5。要求:使用游标或函数编程实现。declare cursor c1 is select * from emp where mgr = (select empno from emp where ename='blake'); -直接上级是'blake'的所有员工 c1rec c1%rowtype;begin for c1rec

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论