ORACLE数据库习题(有答案)大题
Oracle 考试试题(带答案)

a) b) c) d) 参考答案
OracleHOME_NAMETNSListener OracleServiceSID OracleHOME_NAMEAgent OracleHOME_NAMEHTTPServer
B
9) 在 Oracle 中创建用户时,若未提及 DEFAULT TABLESPACE 关键字,则 Oracle 就将()表空间分配 给用户作为默认表空间。。
DATEPART EXTRACT TO_CHAR TRUNC
bc
5) 在Oracle中,有一个教师表teacher的结构如下: ID NUMBER(5) NAME VARCHAR2(25) EMAIL VARCHAR2(50) 下面哪个语句显示没有Email地址的教师姓名()。
a) b) c) d) 参考答案
a) b) c) d) 参考答案
OracleHOME_NAMETNSListener OracleServiceSID OracleHOME_NAMEAgent OracleHOME_NAMEHTTPServer
a
8) 在Windows操作系统中,Oracle的()服务是使用 iSQL*Plus必须的。
A
12) 在Oracle中,下面用于限制分组函数的返回值的子句是 ()。
a) WHERE b) HAVING c) ORDER BY d) 无法限定分组函数的返回值
参考答案 b
13) 在Oracle中,有一个名为seq的序列对象,以下语句能返 回序列值但不会引起序列值增加的是()。
a) b) c) d) 参考答案
%NOTFOUND %FOUND %ROWTYPE %ISOPEN %ROWCOUNT
c
15) 在Oracle中,当控制一个显式游标时,下面哪种命令包 含INTO子句()。
Oracle经典练习题及标准答案

Oracle经典练习题及标准答案oracle经典练习sql/*1、选择在部门30中员工的所有信息*/select * from scott.emp where deptno = '30'/*2、列出职位为(MANAGER)的员工的编号,姓名*/select empno, ename from scott.emp where job = 'MANAGER'/*3、找出奖金高于工资的员工*/select * from scott.emp where comm > sal/*4、找出每个员工奖金和工资的总和*/select ename, sal + nvl(comm, 0) from scott.emp/*5、找出部门10中的经理(MANAGER)和部门20中的普通员工(CLERK) */select *from scott.empwhere deptno = '10'and job = 'MANAGER'unionselect *from scott.empwhere job = 'CLERK'and deptno = '20'/*6、找出部门10中既不是经理也不是普通员工,而且工资大于等于2000的员工*/ select *from scott.empwhere job != 'MANAGER'and job != 'CLERK'and sal > 2000/*7、找出有奖金的员工的不同工作*/select distinct(job) from scott.emp where comm is not null /*8、找出没有奖金或者奖金低于500的员工*/select *from scott.empwhere comm is not nulland comm > 500/*9、显示雇员姓名,根据其服务年限,将最老的雇员排在最前面*/select enamefrom scott.emporder by (months_between(sysdate, hiredate) / 12) descselect ename,hiredate from scott.emp order by hiredate/*10、找出每个月倒数第三天受雇的员工*/select * from scott.emp where hiredate = last_day(hiredate) - 2/*11、分别用case和decode函数列出员工所在的部门,deptno=10显示'部门10',deptno=20显示'部门20'deptno=30显示'部门30'deptno=40显示'部门40'否则为'其他部门'*/select ename,case deptnowhen 10 then'部门10'when 20 then'部门20'when 30 then'部门30'when 40 then'部门40'else'其他部门'end 工资情况from scott.empselect ename,decode(deptno,10,'部门10',20,'部门20',30,'部门30',40,'部门40','其他部门') 工资情况from scott.emp/*12、分组统计各部门下工资>500的员工的平均工资*/select avg(sal) from scott.emp where sal > 500 group by deptno/*13、统计各部门下平均工资大于500的部门*/select deptno from scott.emp group by deptno having avg(sal) > 500 /*14、算出部门30中得到最多奖金的员工奖金*/ select max(comm) from scott.emp where deptno = 30/*15、算出部门30中得到最多奖金的员工姓名*/select enamefrom scott.empwhere deptno = 30and comm = (select max(comm) from scott.emp where deptno = 30) /*16、算出每个职位的员工数和最低工资*/select count(ename), min(sal), job from scott.emp group by job/*17、列出员工表中每个部门的员工数,和部门no */select count(ename), deptno from scott.emp group by deptno/*18、得到工资大于自己部门平均工资的员工信息*/select *from scott.emp ewhere sal > (select avg(sal) from scott.emp where e.deptno = deptno)select *from scott.emp e1,(select avg(sal) sals, deptno from scott.emp group by deptno) e2where sal > salsand e1.deptno = e2.deptno/*19、分组统计每个部门下,每种职位的平均奖金(也要算没奖金的人)和总工资(包括奖金) */select avg(nvl(comm,0)), sum(sal + nvl(comm, 0))from scott.empgroup by deptno,job/*20、笛卡尔集*/select * from scott.emp, scott.dept/*21、显示员工ID,名字,直属主管ID,名字*/select empno,ename,mgr,(select ename from scott.emp e1 where e1.empno = e2.mgr) 直属主管名字from scott.emp e2/*22、DEPT表按照部门跟EMP表左关联*/select *fromscott.dept, scott.empwherescott.dept.deptno = scott.emp.deptno(+)/*23、使用此语句重复的内容不再显示了*/select distinct (job) from scott.emp/*24、重复的内容依然显示*/select *from scott.empUNION ALLselect * from scott.emp/*23和24题和22题是一样的*//*25、只显示了两个表中彼此重复的记录。
oracle数据库题库

选择题1)哪些DBMS的调度器过程可以用来启用程序?2)A. ENABLE3)B. ENABLE_PROGRAM4)C. VALIDATE_PROGRAM5)D. SET_ATTRIBUTE6)E. SET_ENABLED7)答案: A,D8)下列哪项不是一个有效的日程表语法元素A. FREQB. BYHOURC. RUNDATED. INTERVALE. BYMINUTE答案:C"3)哪个调度视图可以查询目前正在执行工作?4)A. DBA_SCHEDULER_JOB_RUN_DETAILS5)B. DBA_SCHEDULER_RUNNING_JOBS DBA6)C. DBA_SCHEDULER_CURRENT_JOBS7)D. DBA_SCHEDULER_JOBS DBA8)E. DBA_SCHEDULER_EXECUTING_JOBS9)答案: B,D10)一个作业或程序创建时,启用属性的默认值是什么?11)A. TRUE12)B. FALSE13)C. There is no default. It must be defined at creation time.D. PENDINGE. NULL答案: B14)全球化支持是通过Oracle特性中的哪一个提供的文本和字符处理功能实现?15)A. RSTLNE16)B. NLSRTL17)C. LISTENER18)D. NLSSORT19)E. Linguistic sorts20)答案: B21)以下哪种数据类型存储时区信息到数据库中?22)A. TIMESTAMP23)B. DATE24)C. TIMESTAMP WITH TIME ZONED. TIMESTAMP WITH LOCAL TIME ZONEE. DATETIME答案: C,25)你要备份你的100 GB的数据库到一台远程磁带设备上。
当转移备份到磁带设备时您必须确保最低网络带宽消耗。
oracle试题答案解释版

要求20道判断、20道单选选择10道多选7道问答3道编程,再加20道填空一、单项选择题(每题1分,共20分)1、在Oracle中,一个用户拥有的所有数据库对象统称为(B )A)数据库B)模式C)表空间D)实例2、在Oracle 中创建用户时,若未提及DEFAULT TABLESPACE 关键字,则Oracle 就将(D )表空间分配给用户作为默认表空间。
A) USER B) SYS C)DEFAULT D) SYSTEM3、在oracle中获取前10条的关键字是(D)A) top B)Limit C)first D) rownum解释:top 是sql server数据库的关键字,limit 是mysql数据库的关键字,first是informix 数据库的关键字4、在Oracle中,( B)操作符返回并集操作并不包括重复行A) Intersect B)Union C)Union all D) Minus解释:Intersect返回交集,union返回并集,不包括重复行,union all 返回并集,包括重复行,minus返回差集5、下面那个语句是错误的(D)A) create synonym dept_synon for scott。
deptB) create sequence dept_seque increment by 1C)alter sequence dept_seque increment by 2D)drop dept_synon6、oracle数据库中,通过( C)可以以最快的方式访问表中的一行.A) 主键B) 唯一索引C)rowid D) 全表扫描7、下面那个不是oracle程序设计中的循环语句(A)A)for… end for B) loop…end loopC)while…end loop D) for… end loop8、oracle存储结构正确的是(B)A) tablespace--segment--osblock——blockB) tablespace-—segment——extent——blockC)tablespace-—extent——segment--blockD) tablespace-—extent-—block –segment9、若tnsnames.ora文件中部分配置如下:xfhtdb =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = hello)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = scce)))则表明:(C)A) Oracle服务器所在的主机名为DEDICATEDB) Oracle服务器所在的主机名为scceC) 对应数据库的SID为scceD)对应数据库的SID为xfhtdb10、现在要启动数据库,那么下面哪一个启动语句是错误的(A)A) STRATUP NORMAL B) STRATUP FORCEC)STRATUP NOMOUNT D)STARTUP MOUNT11、授予sa用户在SCOTT.EMP表中SAL列的更新权限的语句是:( C )A) GRANT CHANGE ON SCOTT.EMP TO SAB) GRANT UPDATE ON SCOTT.EMP(SAL) TO SAC)GRANT UPDATE(SAL) ON SCOTT。
oracle习题汇总答案

oracle习题汇总答案Oracle习题汇总答案在学习Oracle数据库的过程中,练习题是非常重要的一部分。
通过解答习题,我们可以更好地掌握数据库的知识和技能。
下面是一些常见的Oracle数据库习题及其答案汇总,希望能够帮助大家更好地学习和理解Oracle数据库。
1. 什么是Oracle数据库?Oracle数据库是一种关系型数据库管理系统,由美国Oracle公司开发。
它是目前世界上最流行的企业级数据库之一,被广泛应用于各种企业和组织的信息管理系统中。
2. Oracle数据库的特点有哪些?Oracle数据库具有高性能、高可用性、高安全性和可扩展性等特点。
它支持多种操作系统平台,能够处理大规模的数据,具有强大的事务处理能力和灵活的数据管理功能。
3. 如何创建一个新的数据库用户?可以使用CREATE USER语句来创建一个新的数据库用户,例如:```sqlCREATE USER new_user IDENTIFIED BY password;```4. 如何查询数据库中的表结构?可以使用DESCRIBE语句或者查询数据字典来查询数据库中的表结构,例如:```sqlDESCRIBE table_name;SELECT * FROM user_tab_columns WHERE table_name = 'table_name';```5. 如何在Oracle数据库中插入新的数据?可以使用INSERT INTO语句来插入新的数据,例如:```sqlINSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);```6. 如何更新数据库中的数据?可以使用UPDATE语句来更新数据库中的数据,例如:```sqlUPDATE table_name SET column1 = value1, column2 = value2 WHERE condition; ```7. 如何删除数据库中的数据?可以使用DELETE FROM语句来删除数据库中的数据,例如:```sqlDELETE FROM table_name WHERE condition;```通过不断地练习和积累,我们可以更加熟练地掌握Oracle数据库的知识和技能。
Oracle数据库基础题库【含答案】

Oracle数据库基础题库【含答案】一、判断题,正确请写写"T",错误请写写"F",1、oracle数据库系统中,启动数据库的第一步是启动一个数据库实例。
( T )2、Oracle服务器端的监听程序是驻留在服务器上的单独进程,专门负责响应客户机的连接请求。
( F)3、oracle数据库中实例和数据库是一一对应的(非ORACLE并行服务,非集群)。
( T)4、系统全局区SGA 是针对某一服务器进程而保留的内存区域,它是不可以共享的。
( F )5、数据库字典视图ALL_***视图只包含当前用户拥有的数据库对象信息。
( F )8、数据字典中的内容都被保存在SYSTEM表空间中。
( T )9、HAVING后面的条件中可以有聚集函数,比如SUM(),AVG()等,WHERE 后面的条件中也可以有聚集函数。
( F )10、"上海西北京" 可以通过like ‘%上海_’查出来。
( F )11、表空间是oracle 最大的逻辑组成部分。
Oracle数据库由一个或多个表空间组成。
一个表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表空间。
( T )12、表空间分为永久表空间和临时表空间两种类型。
( T )13、truncate是DDL操作,不能 rollback。
( T )14、如果需要向表中插入一批已经存在的数据,可以在INSERT 语句中使用WHERE 语句。
( F )15、Oracle数据库中字符串和日期必须使用双引号标识。
( F )16、Oracle数据库中字符串数据是区分大小写的。
( T )17、Oracle数据库中可以对约束进行禁用,禁用约束可以在执行一些特殊操作时候保证操作能正常进行。
( F )18、为了节省存储空间,定义表时应该将可能包含NULL值的字段放在字段列表的末尾。
( T )20、在连接操作中,如果左表和右表中不满足连接条件的数据都出现在结果中,那么这种连接是全外连接。
oracle试题答案解释版

要求20道判断、20道单选选择10道多选7道问答3道编程,再加20道填空一、单项选择题(每题1分,共20分)1、在Oracle中,一个用户拥有的所有数据库对象统称为(B )A) 数据库B) 模式C) 表空间D) 实例2、在Oracle 中创建用户时,若未提及DEFAULT TABLESPACE 关键字,则Oracle 就将(D)表空间分配给用户作为默认表空间。
A) USER B) SYS C) DEFAULT D) SYSTEM3、在oracle中获取前10条的关键字是(D)A) top B)Limit C)first D) rownum解释:top 是sql server数据库的关键字,limit 是mysql数据库的关键字,first是informix 数据库的关键字4、在Oracle中,( B)操作符返回并集操作并不包括重复行A) Intersect B) Union C) Union all D) Minus解释:Intersect返回交集,union返回并集,不包括重复行,union all 返回并集,包括重复行,minus返回差集5、下面那个语句是错误的(D)A) create synonym dept_synon for scott.deptB) create sequence dept_seque increment by 1C) alter sequence dept_seque increment by 2D) drop dept_synon6、oracle数据库中,通过( C)可以以最快的方式访问表中的一行。
A) 主键B) 唯一索引C) rowid D) 全表扫描7、下面那个不是oracle程序设计中的循环语句( A)A) for… end for B) loop…end loopC) while…end loop D) for… end loop8、oracle存储结构正确的是(B)A) tablespace--segment--osblock--blockB) tablespace--segment--extent--blockC) tablespace--extent--segment--blockD) tablespace--extent--block –segment9、若tnsnames.ora文件中部分配置如下:xfhtdb =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = hello)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = scce)))则表明:( C)A) Oracle服务器所在的主机名为DEDICATEDB) Oracle服务器所在的主机名为scceC) 对应数据库的SID为scceD) 对应数据库的SID为xfhtdb10、现在要启动数据库,那么下面哪一个启动语句是错误的(A)A) STRATUP NORMAL B) STRATUP FORCEC) STRATUP NOMOUNT D) STARTUP MOUNT11、授予sa用户在SCOTT.EMP表中SAL列的更新权限的语句是:( C )A) GRANT CHANGE ON SCOTT.EMP TO SAB) GRANT UPDATE ON SCOTT.EMP(SAL) TO SAC) GRANT UPDATE(SAL) ON SCOTT.EMP TO SAD)GRANT MODIFY ON SCOTT.EMP TO SA12、一个表有百万以上数据,其中一个列经常被作为查询条件并且只有25个不同数据,适合使用(C)索引提高查询速度。
ORACLE数据库及SQL语言考试题一(含答案)

ORACLE 数据库及SQL 语言考试题及答案考试试题说明:试题包括三类,名词解释、ORACLE 数据库知识问答、SQL 语句编写,主要用于考察新同事ORACLE 数据库知识和SQL 语言掌握情况。
名词解释可以在回答中阐明名词的定义和你所了解的任何相关信息,没有字数限制,但避免长篇大论,简要描述即可。
ORACLE 数据库知识问答,重点在于切中要害,回答按点给分,每题2分。
SQL 语句编写检查大家的实际SQL 语句编写能力及掌握情况,注意格式规范,要清晰易读。
一、名词解释一、名词解释1. 数据库数据库是按照数据结构来组织、存储和管理数据的仓库。
2. 实例实例是一组Oracle 后台进程/线程以及一个共享内存区,这些内存由同一个计算机上运行的线程/进程所共享。
3. 表空间表空间是数据库的逻辑划分,用于存放数据库对象,主要是数据表,所以称作表空间。
ORACLE 自身存在一些表空间,如system 、user 和undo 表空间。
数据库用户也可以自己定义自己的表空间,并为每个表空间分配对应的数据文件。
4. 索引索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
索引不论逻辑上和物理上都与相关的表的数据无关,索引需要独立的存储空间,所以索引在创建之初就需要设置对应的表空间。
二、ORACLE 数据库知识问答1. 数据表Pirmary Key 和Unique Key 的作用和区别作用:Pirmary Key 和Unique Key 都是为数据表提供唯一性约束。
区别:Primary key 的1个或多个列必须为NOT NULL ,如果列为NULL ,在增加PRIMARY KEY 时,列自动更改为NOT NULL 。
而UNIQUE KEY 对列没有此要求。
一个表只能有一个PRIMARY KEY ,但可以有多个UNIQUE KEY 。
2. dos 模式下数据库用户备份、恢复命令数据库备份:exp 用户名/密码@连接标识符数据库恢复:imp 用户名/密码@连接标识符3. 列举五个常用的集合函数max,min,sum,avg,count4. round 与trunc 在处理数字方面的区别,并举例说明round 返回四舍五入后的值,而trunc 返回截取后的值,不进行四舍五入。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ORACLE数据库习题(有答案)大题1.检索部门编号、部门名称、部门所在地及其每个部门的员工总数。
select d.deptno,d.dname,d.loc,count(*) from emp e,dept d wheree.deptno=d.deptno group by d.deptno,d.dname,d.loc;2.检索员工和所属经理的姓名。
select e.ename 雇员,m.ename 经理 from emp e,emp m wheree.mgr=m.empno;3. 检索工资等级处于第四级别的员工的姓名。
select e.ename from emp e inner join salgrade s on (e.sal between s.losal and s.hisal) where s.grade=4;4.检索工资等级高于smith的员工信息。
select * from emp e join salgrade s on (e.sal between s.losal and s.hisal) where s.grade>(select distinct s.grade from emp e join salgrade s on ((select sal from emp where ename='SMITH') between s.losal and s.hisal));5.检索30部门中1980年1月份之前入职的员工信息。
显示:员工号、员工名、部门号,部门名、入职日期。
select empno,ename,d.deptno,d.dname,hiredate from emp,dept d where emp.deptno=d.deptno and d.deptno=30 and hiredate<to_date('1980-01-01','yyyy-mm-dd');< p="">6. 检索雇员的雇佣日期早于其经理雇佣日期的员工及其经理姓名。
select e.ename 雇员,m.ename 经理,e.HIREDATE 雇员的雇佣日期,m.hiredate 经理雇佣日期from emp e,emp m wheree.mgr=m.empno and e.hiredate<m.hiredate;< p="">7.按部门号(deptno)及工资(sal)排序检索公司的员工信息(要求部门号从大到小,部门号相同的按工资由低到高),显示的字段为:员工号、员工名、工资、部门号。
select empno,ename,sal,deptno from emp order by deptnodesc,sal;8.检索不同部门经理的最低工资。
select m.ename,e.empno,e.sal from emp e,emp m where e.mgr=m.empno and e.deptno in (select deptno from emp group by deptno) and e.sal in (select min(sal) from emp group by deptno);9.检索部门号及其本部门的最低工资。
select deptno,min(sal) from emp group by deptno;10.检索从事clerk工作的员工姓名和所在部门名称。
select e.ename,d.dname from emp e join dept d one.deptno=d.deptno where e.job='CLERK';11.检索和名叫SCOTT的员工相同工资的员工信息,但不显示SCOTT。
显示字段:员工号、员工名、工资。
select empno,ename,sal from emp where sal =(select sal from emp where ename='SCOTT') and ename!='SCOTT'12. 检索与SCOTT从事相同工作的员工信息。
select * from emp where job=(select job from emp where ename='SCOTT');13.检索出员工表emp中的第3条到第8条记录。
显示字段:emp 表中的全部字段。
select * from (select rownum num,e.* from emp e) where num>=3 and num<=8;14. 检索与30部门员工工资等级相同的员工姓名与工资。
select * from emp e join salgrade s on (e.sal between s.LOSAL and s.HISAL) where s.grade=(select distinct s.grade from emp e join salgrade s on ((select avg(sal) from emp where deptno=30) between s.LOSAL and s.HISAL));15. 求分段显示薪水的个数。
显示结果如下:DEPTNO 800-2000 2001-5000------ ---------- ----------30 5 120 2 310 1 2select t1.deptno, "800-2000", "2001-5000" from (select deptno , count(*) as "800-2000" from emp where sal b etween 800 and 2000group by deptno ) t1join (select deptno , count(*) as "2001-5000" from emp where sal between 2001 and 5000group by deptno) t2on t1.deptno = t2.deptno;16. 用PL/sql实现输出7369号员工的姓名。
set serveroutput on;declarevar_empno number(4) := 7369 ; var_name varchar2(10);v ar_sal number(9,2);beginselect ename ,sal into var_name ,var_sal from emp where empno = var_empno;dbms_output.put_line(var_empno || ' 的名字是:' || var_name); dbms_output.put_line(var_empno || ' 的工资是 :' || var_ sal );end;17.编写一sql语句,将7369号员工的入职日期改为1997/7/1,工资提高800 ,其他信息不变。
update empset hiredate=to_date('1997/7/1','yyyy-mm-dd'),sal=sal+800 where empno=7369;18.假定现在有一张表,表名为T_emp ,其表结构和现有的emp 表结构完全相同,但是T_emp中没有记录,请编写一sql语句,实现将emp中部门编号为20的员工信息添加到T_emp中。
Insert into t_empSelect * from emp where deptno=2019. 对所有员工,如果该员工职位是MANAGER,并且在DALLAS 工作那么就给他薪金加15%;如果该员工职位是CLERK,并且在NEW YORK工作那么就给他薪金扣除5%;其他情况不作处理。
要求:使用游标或函数编程实现。
set serveroutput on;declarecursor c1 is select * from emp;c1rec c1%rowtype;v_loc varchar2(20);beginfor c1rec in c1 loopselect loc into v_loc from dept where deptno = c1rec.deptno;if c1rec.job = 'MANAGER' and v_loc = 'DALLAS' thenupdate emp set sal = sal * 1.15 where empno = c1rec.empno;elsif c1rec.job='CLERK' and v_loc = 'NEW YORK' thenupdate emp set sal = sal * 0.95 where empno = c1rec.empno;elsenull;end if;end loop;end;20.对直接上级是'BLAKE'的所有员工,按照参加工作的时间加薪:1981年6月以前入职的员工加薪10%、1981年6月以后入职的员工加薪5%。
要求:使用游标或函数编程实现。
declarecursor c1 is select * from emp where mgr = (select empno from emp where ename='BLAKE'); --直接上级是'BLAKE'的所有员工c1rec c1%rowtype;beginfor c1rec in c1 loopif c1rec.hiredate < '01-6月-81' thenupdate emp set sal = sal * 1.1 where empno = c1rec.empno;elseupdate emp set sal = sal * 1.05 where empno = c1rec.empno;end if;end loop;end;21.创建一个角色MYROLE,此角色具有建表,建视图系统权限和查找SCOTT用户EMP,DEPT表的权限,将此角色授权给TEST用户。
CREATE ROLE MYROLE;GRANT CREATE TABLE,CREATE VIEW TO MYROLE;GRANT SELECT ON SCOTT.EMP TO MYROLE;GRANT SELECT ON SCOTT.DEPT TO MYROLE;CREATE USER TEST IDENTIFIED BY TEST;GRANT MYROLE TO TEST;22.创建EMP,DEPT两张表的副表(包括它们之间的约束)CREATE TABLE mydept AS SELECT * FROM dept;ALTER TABLE mydept ADD CONSTRAINT pk_mydept_deptno PRIMARY KEY(deptno);CREATE TABLE myemp AS SELECT * FROM empALTER TABLE myemp ADD CONSTRAINT pk_myemp_empno PAIMARY KEY(empno);ALTER TABLE myemp ADD CONSTRAINT fk_myemp_mydept FOREIGN KEY(deptno) REFERENCES mydept(deptno);23.找出部门10中所有经理、部门20中所有办事员,既不是经理又不是办事员但其薪金>=2000的所有雇员的详细资料select * from emp where (deptno=10 and job=upper('manager')) or (deptno=20 and job=upper('clerk ')) or (job<>upper(‘manager’) and job<>upper(‘clerk’) and sal>=2000)24.找出不收取佣金或收取的佣金低于100的雇员select * from emp where nvl(comm,0)<100;25.显示不带有'R'的雇员姓名Select ename from emp where ename not like ‘%R%’; 26.显示所有雇员的姓名、工作和薪金,按工作的降序顺序排序,而工作相同时按薪金升序Select ename,job,sal from emp order by job desc ,sal asc 27.求哪些人工资在平均工资之上,列出姓名和工资。