Oracle练习题习题答案张表题

合集下载

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经典练习题及标准答案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基础练习题及答案(多表查询2)

Oracle基础练习题及答案(多表查询2)

多表查询1.显示所有员工的姓名ename,部门号deptno和部门名称dname。

select ename,a.deptno,dname from emp a,dept b where a.deptno=b.deptno;2.查询20号部门员工的job和20号部门的locselect ename,job,loc from emp a,dept b where a.deptno=b.deptno and a.deptno=20;3.选择所有有奖金comm的员工的ename , dname , locselect ename,dname,loc from emp a,dept b where a.deptno=b.deptno and comm is not null;4.选择在DALLAS工作的员工的ename , job , deptno, dnameselect ename,job,a.deptno,dname from emp a,dept b where a.deptno=b.deptno and loc='DALLAS';5.选择所有员工的姓名ename,员工号deptno,以及他的管理者mgr的姓名ename和员工号deptno,结果类似于下面的格式employees Emp# manager Mgr#SMITH 7369 FORD 7902select a.ename "employees",a.empno "Emp#",b.ename "manager",b.empno "Mgr#" from emp a,emp b where a.mgr=b.empno;6. 查询各部门员工姓名和他们所在位置,结果类似于下面的格式Deptno Ename Loc20 SMITH DALLASselect a.deptno "Deptno",ename "Ename",loc "Loc" from emp a,dept b where a.deptno=b.deptno;。

oracle数据库练习题参考答案

oracle数据库练习题参考答案

第1章Oracle 11g简介软件122班王平安一、选择题1.D 2.D 3.C 4.A 5.D6.D 7.B二、填空题1.视图2.索引3.簇4.DB_BLOCK_SIZE 5.SYSTEM 6.数据文件7.日志文件8.控制文件9.系统全局区(System Global Area,SGA)10.程序全局区(Program Global Area,PGA)11.数据库管理员12.安全官员13.网络管理员14.应用程序开发员15.应用程序管理员16.数据库用户。

三、简答题1.答:数据库由若干个表空间组成,表空间由表、索引、视图等逻辑对象组成,表由段组成,段由区组成,区则由数据块组成。

2.答:物理结构由构成数据库的操作系统文件所决定。

每个Oracle数据库都由3种类型的文件组成:数据文件、日志文件和控制文件。

Oracle数据库有一个或多个物理的数据文件。

数据库的数据文件包含全部数据库数据。

逻辑数据物理地存储在数据文件中。

每个数据库有两个或多个日志文件组,日志文件组用于收集数据库日志。

日志的主要功能是记录对数据所作的修改,所以对数据库作的全部修改记录在日志中。

在出现故障时,如果不能将修改数据永久地写入数据文件,则可利用日志得到修改记录,从而保证已经发生的操作成果不会丢失。

每个Oracle数据库有一个控制文件,记录数据库的物理结构。

控制文件包含数据库名、数据库数据文件和日志文件的名字、位置和数据库建立日期等信息。

3.答:SGA是一组共享内存结构,其中包含一个Oracle数据库例程数据及控制信息。

如果有多个用户同时连接到同一个例程,则此例程的SGA数据由这些用户共享。

因此,SGA也称为共享全局区(Shared Global Area)。

SGA包含以下数据结构。

∙数据库缓冲区:SGA用来保存从数据文件中读取的数据块。

∙重做日志缓冲区:SGA中的循环缓冲区,用于记录数据库发生改变的信息。

∙共享池:用于保存用户程序。

Oracle基础练习题及答案(多表查询1)(共5篇)

Oracle基础练习题及答案(多表查询1)(共5篇)

Oracle基础练习题及答案(多表查询1)(共5篇)第一篇: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 wherea.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 anda.hiredate5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门select b.dname,a.* from emp a,dept b wherea.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 wherea.deptno=b.deptno having min(sal)>1500 group by a.job;8.列出在部门SALES(销售部)工作的员工的姓名,假定不知道销售部的部门编号。

oracle数据库的试题及答案

oracle数据库的试题及答案

oracle数据库的试题及答案一、选择题1. Oracle数据库是一种()数据库管理系统。

A. 非关系型B. 关系型C. 分布式D. 图形化2. 数据库中,将所有数据进行分类和组织的基本单位是()。

A. 表B. 字段C. 记录D. 数据库3. 在Oracle数据库中,用于删除表中所有数据的操作是()。

A. DELETEB. REMOVEC. DROPD. TRUNCATE4. 在Oracle数据库中,用于更新表中数据的操作是()。

A. UPDATEB. MODIFYC. ALTERD. REPLACE5. 在Oracle数据库中,用于查询数据的操作是()。

A. SELECTB. SEARCHC. FINDD. WHERE二、简答题1. 请简述Oracle数据库的特点。

Oracle数据库具有以下特点:- 完整性:通过约束和触发器来保证数据的完整性。

- 可扩展性:支持集群部署和分布式数据库,可以动态扩展数据库的容量。

- 安全性:提供了严格的数据权限管理和用户认证机制,保护数据免受未经授权的访问。

- 可靠性:支持数据备份和恢复功能,保障数据的持久性和可靠性。

- 高性能:采用多线程和缓存技术,提高数据库的读写性能和响应速度。

2. 在Oracle数据库中,什么是事务?事务是指逻辑上的一组操作,这组操作要么全部成功执行,要么全部失败回滚。

事务具有以下特性:- 原子性:事务中的操作要么全部执行成功,要么全部回滚,不会出现部分执行的情况。

- 一致性:事务执行前后,数据库的状态保持一致性,不会破坏数据的完整性。

- 隔离性:事务之间相互独立,每个事务都认为自己是唯一在操作数据库的。

- 持久性:事务一旦提交,其对数据库的修改将永久保存,不会被回滚。

3. 请说明Oracle数据库中的索引是什么,并简要介绍索引的作用。

索引是一种特殊的数据库对象,用于快速查找数据库中的数据。

索引基于一个或多个列值创建,并按照特定的排序规则存储列值和对应的行指针。

oracle练习题(打印版)

oracle练习题(打印版)

oracle练习题(打印版)### Oracle数据库练习题#### 一、选择题1. Oracle数据库中,哪个命令用于创建表?- A. CREATE TABLE- B. CREATE DATABASE- C. DROP TABLE- D. ALTER TABLE2. 以下哪个不是Oracle数据库的数据类型?- A. NUMBER- B. CHAR- C. DATE- D. IMAGE3. 在Oracle数据库中,哪个命令用于删除表?- A. DELETE FROM- B. DROP TABLE- C. REMOVE TABLE- D. ERASE TABLE4. Oracle数据库中,如何查看当前用户?- A. SELECT USER FROM DUAL;- B. SELECT CURRENT_USER FROM DUAL;- C. SELECT USERNAME FROM ALL_USERS;- D. SELECT CURRENT_USER FROM ALL_USERS;5. 以下哪个命令用于在Oracle数据库中创建索引?- A. CREATE INDEX- B. CREATE KEY- C. CREATE CONSTRAINT- D. CREATE UNIQUE#### 二、填空题1. 在Oracle数据库中,使用____命令可以查看表结构。

2. Oracle数据库中,使用____命令可以查看当前数据库的所有表。

3. 要删除Oracle数据库中的行,可以使用____命令。

4. Oracle数据库中,____用于存储二进制数据。

5. Oracle数据库中,____命令用于查看数据库中所有的索引。

#### 三、简答题1. 描述Oracle数据库中事务的ACID属性。

2. 解释Oracle数据库中的锁定机制。

3. 说明Oracle数据库中视图的作用。

#### 四、操作题1. 创建一个名为`Employees`的表,包含以下字段:- `EmployeeID` NUMBER(10) PRIMARY KEY,- `FirstName` VARCHAR2(50),- `LastName` VARCHAR2(50),- `HireDate` DATE,- `Salary` NUMBER(10, 2),- `DepartmentID` NUMBER(10).2. 向`Employees`表中插入以下数据:- `EmployeeID`: 1001, `FirstName`: 'John', `LastName`:'Doe', `HireDate`: '2023-01-01', `Salary`: 70000,`DepartmentID`: 101.- `EmployeeID`: 1002, `FirstName`: 'Jane', `LastName`:'Smith', `HireDate`: '2023-02-15', `Salary`: 50000,`DepartmentID`: 102.3. 编写一个查询,显示所有员工的姓名和工资,按工资从高到低排序。

Oracle_练习与答案

Oracle_练习与答案

Oracle_练习与答案1.求部门中薪水最高的人select ename,sal,emp.deptno from empjoin (select deptno,max(sal) max_sal from emp group by deptno) ton (emp.deptno = t.deptno and emp.sal = t.max_sal);2.求部门平均薪水的等级select deptno, avg_sal, grade from(select deptno,avg(sal) avg_sal from emp group by deptno) tjoin salgradeon (t.avg_sal between salgrade.losal and salgrade.hisal);3.求部门平均的薪水等级select deptno, avg(grade) avg_sal_grade from(select deptno, grade from empjoin salgrade on emp.sal between salgrade.losal and salgrade.hisal) group by deptno;4.雇员中有哪些人是经理人select distinct e2.ename manager from emp e1 join emp e2 on e1.mgr = e2.empno;select ename from emp where empno in (select mgr from emp);5.不准用组函数,求薪水的最高值select distinct sal max_sal from empwhere sal not in(select e1.sal e1_sal from emp e1 join emp e2 on e1.sal < e2.sal);6.求平均薪水最高的部门的部门编号select deptno, avg_sal from(select deptno, avg(sal) avg_sal from emp group by deptno) where avg_sal =(select max(avg_sal) from(select avg(sal) avg_sal from emp group by deptno));组函数嵌套写法(对多可以嵌套一次,group by 只对内层函数有效) select deptno, avg_sal from(select deptno, avg(sal) avg_sal from emp group by deptno) where avg_sal =(select max(avg(sal)) from emp group by deptno);7.求平均薪水最高的部门的部门名称select t1.deptno, dname, avg_sal from(select deptno,avg(sal) avg_sal from emp group by deptno) t1 join dept on t1.deptno = dept.deptnowhere avg_sal =(select max(avg_sal) from(select deptno,avg(sal) avg_sal from emp group by deptno) );select dname from deptwhere deptno =(select deptno from(select deptno,avg(sal) avg_sal from emp group by deptno) where avg_sal =(select max(avg_sal) from(select deptno,avg(sal) avg_sal from emp group by deptno) ));8.求平均薪水的等级最低的部门的部门名称select dname from deptjoin(select deptno, grade from(select deptno, avg(sal) avg_sal from emp group by deptno) t join salgradeon (t.avg_sal between salgrade.losal and salgrade.hisal)) ton dept.deptno = t.deptnowhere t.grade =(select min(grade) from(select avg(sal) avg_sal from emp group by deptno) tjoin salgradeon (t.avg_sal between salgrade.losal and salgrade.hisal));9.求部门经理人中平均薪水最低的部门名称select dname from(select deptno, avg(sal) avg_sal from empwhere empno in (select mgr from emp)group by deptno) tjoin dept on t.deptno = dept.deptnowhere avg_sal =(select min(avg_sal) from(select avg(sal) avg_sal from empwhere empno in (select mgr from emp)group by deptno) t);10.求比普通员工的最高薪水还要高的经理人名称(not in) select ename from emp where empnoin (select mgr from emp) and sal >(select max(sal) from(select e2.sal fromemp e1 right join emp e2 on e1.mgr = e2.empno where e1.ename is null) t);select ename from emp where empnoin (select mgr from emp) and sal >(select max(sal) from emp where empno not in(select distinct mgr from emp where mgr is not null));//NOT IN遇到NULL则返回NULL,必须排除NULL值11.求薪水最高的前5名雇员select empno,ename from(select * from emp order by sal desc)where rownum<=5;12.求薪水最高的第6到第10名雇员(!important)select ename,sal from(select t.*,rownum r from(select * from emp order by sal desc) t) where r>=6 and r<=10;13.求最后入职的5名员工select ename, to_char(hiredate,'YYYY"年"MM"月"DD"日"') hiredate from (select t.*,rownum r from(select * from emp order by hiredate desc)t)where r<=5;select ename, to_char(hiredate,'YYYY"年"MM"月"DD"日"') hiredate from (select t.*,rownum r from(select * from emp order by hiredate)t)where r>(select count(*)-5 from emp);P。

Oracle测试题(卷)+答案解析

Oracle测试题(卷)+答案解析

Oracle测试题(卷)+答案解析1) PL/SQL块中可以使用下列()命令。

(选择两项)a) TRUNCATEb) DELETEc) SA VEPOINTd) ALTER TABLE2) 授予sa用户在SCOTT.EMP表中SAL列的更新权限的语句是(B)〔选择一项〕a) GRANT CHANGE ON SCOTT.EMP TO SAb) GRANT UPDA TE ON SCOTT.EMP(SAL) TO SAc) GRANT UPDA TE (SAL) ON SCOTT.EMP TO SAd) GRANT MODIFY ON SCOTT.EMP(SAL) TO SA3) EMP表有14条记录,则语句SELECT ‘Aptech’FROM EMP 的执行结果是(C)〔选择一项〕a) Aptechb) 无输出c) 14行Aptechd) 编译出错4) PL/SQL块中哪几部分是可选的()〔选择二项〕a) Declareb) Beginc) Exceptiond) Constant5) 在创建序列的过程中,下列()选项指定序列在达到最大值或最小值后,将继续从头开始生成值。

(选择一项)a) Cycleb) Nocyclec) Cached) Nocache6) 同义词有以下()用途。

(选择三项)a) 简化SQL 语句b) 隐藏对象的名称和所有者c) 提供对对象的公共访问d) 显示对象的名称和所有者7) Oracle中用来释放锁的语句有()〔选择二项〕a) commitb) Drop lockc) rollbackd) unlock8) 关于类型定义Number(9,2)说确的有()〔选择一项〕a) 整数部分9位,小数部分2位,共11位b) 整数部分7位,小数部分2位,共9位c) 整数部分6位,小数点一位,小数部分2位,共9位d) 以上说法均不正确9) 下列哪种Lob类型用来存储数据库以外的操作系统文件()〔选择一项〕a) CLOBb) BLOBc) CFILEd) BFILE10) Oracle中的三种系统文件分别是()〔选择三项〕a) 数据文件b) 归档文件c) 日志文件d) 控制文件11) 下列哪项不是Oracle中常用的分区方法?()〔选择一项〕a) 围分区b) 散列分区c) 列表分区d) 条件分区12) 查看Test中名称为P1的分区中的记录的查询语句为()〔选择一项〕a) Select * from Test Where PartitionName=’p1’b) Select * from Test(p1)c) Select * from Test Partition(p1);d) 以上均正确13) 创建序列时,若未指定Cycle选项,则当当前值大于MaxValue时将()〔选择一项〕a) 从MinValue重新开始循环b) 重复使用MaxValue 值c) 执行出错d) 使用随机值14) 下列哪项是创建索引组织表所必需的()〔选一项〕a) Primary Keyb) Order Byc) Group Byd) 以上均不是15) 若表的某字段值存在大量的重复,则基于该字段适合创建哪种索引?()〔选一项〕a) 标准索引b) 唯一索引c) 位图索引d) 分区索引16) 在PL/SQL块中定义一个名为PI值为3.14的Real型常量的语法是()〔选一项〕a) A.Pi Const Real=3.14;b) B.Pi Real Const =3.14;c) C.Constant Pi Real:=3.14d) D.Pi Constant Real:=3.1417) 22.当Select语句没有返回行时,将引发下列哪个异常?()[选择一项]a) A.No_rows_foundb) B.No_data_foundc) C.No_Data_rows_foundd) D.Invalid_Number18) Oracle中提供的两种游标是()〔选择二项〕a) A.隐式游标b) B.静态游标c) C.REF游标d) D.显式游标19) 若Emp表中有14条记录,则用户执行了以下操作,结果是:()〔选择一项〕Cursor mycur is Select * From emp;。

史上最全Oracle数据库基本操作练习题(含答案)

史上最全Oracle数据库基本操作练习题(含答案)

Oracl‎e基本操作‎练习题使用表:员工表(emp):(empno‎N UMBE‎R(4)notnu‎l l,--员工编号,表示唯一ename‎V ARCH‎A R2(10),--员工姓名job VARCH‎A R2(9),--员工工作职‎位mgrNU‎M BER(4),--员工上级领‎导编号hired‎a teDA‎T E,--员工入职日‎期salNU‎M BER(7,2),--员工薪水commN‎U MBER‎(7,2),--员工奖金deptn‎o NUMB‎E R(2)—员工部门编‎号)部门表(dept):(deptn‎o NUMB‎E R(2)notnu‎l l,--部门编号dname‎V ARCH‎A R2(14),--部门名称locVA‎R CHAR‎2(13)—部门地址)说明:增删改较简‎单,这些练习都‎是针对数据‎查询,查询主要用‎到函数、运算符、模糊查询、排序、分组、多变关联、子查询、分页查询等‎。

建表脚本.txt建表脚本(根据需要使‎用):练习题:1.找出奖金高‎于薪水60‎%的员工信息‎。

SELEC‎T * FROM emp WHERE‎comm>sal*0.6;2.找出部门1‎0中所有经‎理(MANAG‎E R)和部门20‎中所有办事‎员(CLERK ‎)的详细资料‎。

SELEC‎T* FROM emp WHERE‎(JOB='MANAG‎E R' AND DEPTN‎O=10) OR (JOB='CLERK‎' AND DEPTN‎O=20);3.统计各部门‎的薪水总和‎。

SELEC‎T deptn‎o,SUM(sal) FROM emp GROUP‎BY deptn‎o;4.找出部门1‎0中所有理‎(M ANAG‎E R),部门20中‎所有办事员‎(C LERK 以及既不是‎经理又不是‎办事员但其‎薪水大于或‎等2000‎的所有员工‎的‎)详细资料‎。

Oracle简单Scott用户表练习带答案

Oracle简单Scott用户表练习带答案

Oracle简单Scott用户表练习带答案一、使用scott/tiger用户下的emp表和dept表完成下列练习,表的结构说明如下:emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号) dept部门表(deptno部门编号/dname部门名称/loc地点)工资=薪金+佣金1. 列出在每个部门工作的员工数量、平均工资和平均服务期限。

Select deptno,count(*),avg(sal+nvl(comm,0)),avg(sysdate-hiredate) from emp group by deptno;2. 列出所有员工的姓名、部门名称和工资。

Select ename,bname,sal+nvl(comm,0) from dept,emp where dept.deptno=emp.deptno;3. 列出从事同一种工作但属于不同部门的员工的一种组合。

Select distinct a.ename ,a.job,a.deptno from emp a,emp b where (a.deptno>b.deptno) or (a.deptno<="" and="" by="" order="" p="">4. 列出所有部门的详细信息和部门人数。

[*]selecta.deptno,a.dname,a.loc,count(b.empno )from dept a,emp b where a.deptno = b.deptno group bya.deptno,a.dname,a.loc;5. 列出各种工作的最低工资。

select deptno,min(sal+nvl(comm,0) from emp group by deptno;6. 列出各个部门的MANAGER(经理)的最低薪金。

oracle练习题及答案

oracle练习题及答案

o r a c l e练习题及答案(总7页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--试题一一、填空题(每小题4分,共20分)1、数据库管理技术经历了___人工管理、文件系统、数据库系统__三个阶段2、数据库三级数据结构是:外模式、模式、内模式3、Oracle数据库中,SGA由_数据库缓冲区,重做日志缓冲区,共享池组成4、在Oracle数据库中,完正性约束类型有:Primay key约束。

Foreign key约束,Unique约束,check约束,not need约束5、PL/SQL中游标操作包括:声明游标,打开游标,提取游标,关闭游标二、正误判断题(每小题2分,共20分)1、数据库中存储的基本对象是数据(T)2、数据库系统的核心是DBMS(T)3、关系操作的特点是集合操作(T)4、关系代数中五种基本运算是并、差、选择、投影、连接(F)5、Oracle进程就是服务器进程(F)6、oraclet系统中SGA所有用户进程和服务器进程所共享(T)7、oracle数据库系统中数据块的大小与操作系统有关(T)8、oracle数据库系统中,启动数据库和第一步是启动一个数据库实例(T)9、PL/SQL中游标的数据是可以改变的(F)10、数据库概念模型主要用于数据库概念结构设计(T)三、简答题(每小题7分,共35分)1、何谓数据与程序的逻辑独立性和物理独立性2、试述关系代数中等值连接与自然连接的区别与联系3、何谓数据库,数据库设计一般分为哪些阶段4、简述Oracle逻辑数据库的组成5、试任举一例说明游标的使用方法五、设有雇员表emp(empno,ename,age,sal,tel,deptno),其中:empno-----编号,name------姓名,age -------年齡,sal-----工资,tel-----电话deptno-----部门号。

请按下列要求分别晨SQL*PLUS下编程。

oracle数据库试题及答案

oracle数据库试题及答案

oracle数据库试题及答案一、单选题1. Oracle数据库的特点是()A. 高安全性B. 高性能C. 可扩展性D. 全面支持ACID特性答案:D2. 在Oracle数据库中,数据存储在()中。

A. 数据块B. 数据段C. 数据文件D. 表空间答案:D3. 下面哪个是Oracle数据库的管理工具?A. SQL DeveloperB. ToadC. PL/SQL DeveloperD. SQL*Plus答案:A4. Oracle数据库中,用于创建和修改数据库对象的语言是()。

A. DMLB. DDLC. DCLD. TCL答案:B5. 在Oracle数据库中,用于查询和操作数据库对象的语言是()。

A. DMLB. DDLC. DCLD. TCL答案:A二、多选题1. 下列哪些是Oracle数据库的特点?()A. 支持事务处理B. 支持分布式数据库C. 支持并发控制D. 支持网络编程答案:A、B、C2. Oracle数据库的体系结构包含以下几个部分:()A. 数据块B. 数据文件C. 表空间D. 实例答案:A、B、C、D3. 下列哪些是Oracle数据库的安全机制?()A. 用户权限管理B. 数据加密C. 访问控制D. 数据备份答案:A、B、C4. Oracle数据库的存储结构包括以下几个层次:()A. 数据库B. 表空间C. 数据文件D. 段E. 数据块答案:A、B、C、D、E5. Oracle数据库的备份与恢复策略包括以下几种:()A. 完全备份B. 增量备份C. 差异备份D. 恢复点备份E. 日志备份答案:A、B、C、E三、判断题1. Oracle数据库是面向对象的数据库。

答案:错误2. Oracle数据库可以跨平台使用。

答案:正确3. Oracle数据库的事务具有原子性、一致性、隔离性和持久性。

答案:正确4. Oracle数据库可以使用PL/SQL语言进行存储过程和触发器的编写。

答案:正确5. Oracle数据库的数据存储采用以行为单位的方式。

Oracle数据库管理习题及答案.docx

Oracle数据库管理习题及答案.docx

.1.6 习题一.填空题1、关系模型提供了 3 类完整性规则,分别是_______、 _______、 _______。

参考答案:实体完整性规则、参照完整性规则、用户定义的完整性规则2、 RDBMS 由两部分组成,即_______、 _______两部分。

答案:数据库系统内核、数据字典3、关系数据库模型支持三种类型的表关联关系:_______、 _______、 _______。

答案:一对一、一对多以及多对多4、数据模型的种类有很多,例如_______、 _______、 _______和 _______等。

目前理论最成熟、使用最普及的是_______。

答案:层次模型、网状模型、关系数据模型、面向对象模型。

关系数据模型二、选择题1、 Oracle 11g 版本号中字母“g”的含义是()A .产品类型的“代”( generation)B.网格 (gridding)C.集成( integration )D.无含义答案: A2、设计性能较优的关系模式称为规范化,规范化主要的理论依据是()A .关系规范化理论B.关系运算理论C.关系代数理论D.数理逻辑答案: A3、消除了部分函数依赖的1NF 的关系模式必定是()A . 1NFB . 2NF C. 3NF D.4NF答案: B4、当 B 属于函数依赖于 A 属性时,属性 B 与 A 的联系是()A .1 对多B.多对1 C.多对多D.以上都不是答案:B5、根据关系数据库规范化理论,关系数据库中的关系要满足第一范式。

下面“部门”关系中,因哪个属性而使它不满足第一范式?部门(部门号,部门名,部门成员,部门总经理)A .部门总经理B.部门成员C.部门名D.部门号答案: B6、下列不属于Oracle 数据库数据类型的是()A . NUMBER B. FLOAT C. CLOB D. BOOLEAN答案: D三、简答题1、简述数据库与数据库管理系统的区别。

参考答案:数据库是用来存储信息或数据的机制,是按照数据结构来组织、存储和管理数据的仓库。

ORACLE数据库习题(有答案)大题

ORACLE数据库习题(有答案)大题

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. 检索雇员的雇佣日期早于其经理雇佣日期的员工及其经理姓名。

Oracle数据库试题100题(附答案)

Oracle数据库试题100题(附答案)

Oracle数据库试题100题(附答案)1.当Oracle服务器启动时,下列哪种文件不是必须的(D)。

A.数据文件B.控制文件C.日志文件D.归档日志文件2.在Oracle中,当用户要执行SELECT语句时,下列哪个进程从磁盘获得用户需要的数据(B)。

A.用户进程B.服务器进程C.日志写入进程(LGWRD.检查点进程(CKPT)3.在Oracle中,一个用户拥有的所有数据库对象统称为(B)。

A.数据库B.模式C.表空间D.实例4.在Oracle中,有一个教师表teacher的结构如下:ID NUMBER(5)NAME V ARCHAR2(25)EMAIL VARCHAR2(50)下面哪个语句显示没有Email地址的教师姓名(C)。

A.SELECT name FROM teacher WHERE email = NULL;B.SELECT name FROM teacher WHERE email <> NULL;C.SELECT name FROM teacher WHERE email IS NULL;D.SELECT name FROM teacher WHERE email IS NOT NULL;5.在Oracle数据库的逻辑结构中有以下组件:A 表空间B 数据块C 区D 段这些组件从大到小依次是(B)。

A.A→B→C→DB.A→D→C→BC.A→C→B→DD.D→A→C→B6.在Windows操作系统中,Oracle的(A)服务监听并接受来自客户端应用程序的连接请求。

A.OracleHOME_NAMETNSListenerB.OracleServiceSIDC.OracleHOME_NAMEAgentD.OracleHOME_NAMEHTTPServer7.在Oracle 中创建用户时,若未提及DEFAULT TABLESPACE 关键字,则Oracle 就将(B)表空间分配给用户作为默认表空间。

《Oracle数据库应用》练习题及答案

《Oracle数据库应用》练习题及答案

《Oracle数据库应用》一、选择题1. 在Windows操作系统中,Oracle的____服务监听并接受来自客户端应用程序的连接请求。

A、OracleHOME_NAMETNSListenerB、OracleServiceSIDC、OracleHOME_NAMEAgentD、OracleHOME_NAMEHTTPServer2. ORACLE中,用来判断列值是否为空的操作符是____A、==NULLB、IS NULLC、 AS NULLD、NULLIS3. 在CUSTOMER中有一列为单价(PRICE),写一个SELECT命令显示所有单价在500以上的查询语句______。

A、SELECT * FROM CUSTOMER WHERE PRICE MORE THAN 500;B、SELECT * FROM CUSTOMER WHERE PRICE BETWEEN 500 AND *;C、SELECT * FROM CUSTOMER WHERE PRICE LIKE '%500%';D、SELECT * FROM CUSTOMER WHERE PRICE>=500;4. 在Oracle中,使用HAVING子句也可以进行条件查询,以下选项说法是正确的是___ ___.A、 HAVING子句和WHERE子句相同B、 HAVING子句用于行的条件查询C、 HAVING子句用于已分组结果的条件查询D、以上皆非5. 在安装oracle时,自动开启了的账号是()A、SystemB、SaC、ScottD、Administrator6. 下列哪一项是Oracle数据库中最小的存储分配单元()A、表空间B、段C、盘区D、数据块7. ( )是一个很小的二进制文件,它维护着数据库的全局物理结构,用以支持数据库成功地启动和运行。

创建数据库时,同时就提供了与之对应的控制文件。

A、数据文件B、控制文件C、重做日志文件D、以上都不对8. 若用户要连接数据库,则该用户必须拥有的权限是()A、create tableB、create indexC、create sessionD、create user9. 授予删除任何表的系统权限(DROP ANY TABLE)给user1,并使其能继续授该权限给其他用户,以下正确的SQL语句是()A、Grant drop any table to user1;B、Grant drop any table to user1 with admin option;C、Grant drop table to user1;D、Grant drop any table to user1 with grant potion;10. 数据库中有两个用户scott和muuser,物资表wz是属于myuser用户的,但当前用户是scott,要求查询物资表wz(wno,wname,wtype,wunit)物资单位wunit列为null的记录,取结果的前5条记录显示,以下正确的SQL语句是()A、select * from scott.wz where wunit is null and rownum<5;B、select * from myuser.wz where wunit = null and rownum<5;C、select * from myuser.wz where wunit is null and rownum<6;D、select * form scott.wz where wunit is null and rownum<6;11. 以下哪个表空间不能设置为OFFLINE。

oracle数据库的试题及答案

oracle数据库的试题及答案

oracle数据库的试题及答案### Oracle数据库试题及答案#### 一、选择题1. 在Oracle数据库中,哪个命令用于创建数据库表?- A. CREATE TABLE- B. DROP TABLE- C. ALTER TABLE- D. TRUNCATE TABLE答案:A2. 以下哪个选项不是Oracle数据库的SQL语句?- A. SELECT- B. UPDATE- C. DELETE- D. PRINT答案:D3. Oracle数据库中,用于删除表中所有数据的命令是什么? - A. DELETE FROM table_name- B. TRUNCATE TABLE table_name- C. DROP TABLE table_name- D. CLEAR table_name答案:B4. 在Oracle数据库中,哪个命令用于查看表的结构?- A. DESCRIBE table_name- B. EXPLAIN table_name- C. DESC table_name- D. SHOW table_name答案:C5. Oracle数据库中,哪个命令用于插入数据?- A. INSERT INTO- B. ADD INTO- C. PUT INTO- D. SET INTO答案:A#### 二、简答题1. 简述Oracle数据库的体系结构。

- Oracle数据库的体系结构主要包括内存结构和存储结构。

内存结构包括系统全局区(SGA)和程序全局区(PGA)。

存储结构包括数据文件、控制文件和重做日志文件。

SGA是所有数据库进程共享的内存区域,包含了数据库缓冲区、重做日志缓冲区等。

PGA是每个服务器进程或后台进程的私有内存区域。

2. 什么是PL/SQL?它在Oracle数据库中的作用是什么?- PL/SQL是Oracle数据库的过程式扩展,它允许用户定义存储过程、函数、触发器等。

PL/SQL结合了SQL语句和过程式编程的特性,使得数据库编程更加灵活和强大。

史上最全Oracle数据库基本操作练习试题[含答案解析]

史上最全Oracle数据库基本操作练习试题[含答案解析]

史上最全Oracle数据库基本操作练习试题[含答案解析] Oracle基本操作练习题使⽤表:员⼯表(emp):(empno NUMBER(4)notnull,--员⼯编号,表⽰唯⼀ename VARCHAR2(10),--员⼯姓名job VARCHAR2(9),--员⼯⼯作职位mgr NUMBER(4),--员⼯上级领导编号hiredate DATE,--员⼯⼊职⽇期sal NUMBER(7,2),--员⼯薪⽔comm NUMBER(7,2),--员⼯奖⾦deptno NUMBER(2)—员⼯部门编号)部门表(dept):(deptno NUMBER(2)notnull,--部门编号dname VARCHAR2(14),--部门名称loc VARCHAR2(13)—部门地址)说明:增删改较简单,这些练习都是针对数据查询,查询主要⽤到函数、运算符、模糊查询、排序、分组、多变关联、⼦查询、分页查询等。

建表脚本.txt建表脚本(根据需要使⽤):练习题:1.找出奖⾦⾼于薪⽔60%的员⼯信息。

SELECT * FROM emp WHERE comm>sal*0.6;2.找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料。

SELECT * FROM emp WHERE (JOB='MANAGER' AND DEPTNO=10) OR (JOB='CLERK' AND DEPTNO=20);3.统计各部门的薪⽔总和。

SELECT deptno,SUM(sal) FROM emp GROUP BY deptno;4.找出部门10中所有理(MANAGER),部门20中所有办事员(CLERK)以及既不是经理⼜不是办事员但其薪⽔⼤于或等2000的所有员⼯的详细资料。

SELECT * FROM emp WHERE (JOB='MANAGER' AND DEPTNO=10) OR (JOB='CLERK' AND DEPTNO=20) OR (JOB NOT IN('MANAGER','CLERK') AND SAL>2000);5.列出各种⼯作的最低⼯资。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle练习题+习题答案(张表+题)create table student( sno varchar2(10) primary key,sname varchar2(20),sage number(2),ssex varchar2(5));create table teacher(tno varchar2(10) primary key,tname varchar2(20));create table course(cno varchar2(10),cname varchar2(20),tno varchar2(20),constraint pk_course primary key (cno,tno));create table sc(sno varchar2(10),cno varchar2(10),score number(4,2),constraint pk_sc primary key (sno,cno));/*******初始化学生表的数据******/insert into student values (&#39;s001&#39;,&#39;张三&#39;,23,&#39;男&#39;);insert into student values (&#39;s002&#39;,&#39;李四&#39;,23,&#39;男&#39;); create table student(insert into student values (&#39;s003&#39;,&#39;吴鹏&#39;,25,&#39;男&#39;); sno varchar2(10) primary key,insert into student values (&#39;s004&#39;,&#39;琴沁&#39;,20,&#39;女&#39;); sname varchar2(20),insert into student values (&#39;s005&#39;,&#39;王丽&#39;,20,&#39;女&#39;); sage number(2),insert into student values (&#39;s006&#39;,&#39;李波&#39;,21,&#39;男&#39;); ssex varchar2(5)insert into student values (&#39;s007&#39;,&#39;刘玉&#39;,21,&#39;男&#39;); );insert into student values (&#39;s008&#39;,&#39;萧蓉&#39;,21,&#39;女&#39;);insert into student values (&#39;s009&#39;,&#39;陈萧晓&#39;,23,&#39;女&#39;);insert into student values (&#39;s010&#39;,&#39;陈美&#39;,22,&#39;女&#39;);commit;/******************初始化教师表***********************/ insert into teacher values (&#39;t001&#39;, &#39;刘阳&#39;);create table teacher(insert into teacher values (&#39;t002&#39;, &#39;谌燕&#39;);tno varchar2(10) primary key,insert into teacher values (&#39;t003&#39;, &#39;胡明星&#39;);tname varchar2(20)commit; );/***************初始化课程表****************************/ insert into course values (&#39;c001&#39;,&#39;J2SE&#39;,&#39;t002&#39;);insert into course values (&#39;c002&#39;,&#39;Java Web&#39;,&#39;t002&#39;);insert into course values (&#39;c003&#39;,&#39;SSH&#39;,&#39;t001&#39;); create table course(insert into course values (&#39;c004&#39;,&#39;Oracle&#39;,&#39;t001&#39;); cnovarchar2(10),insert into course values (&#39;c005&#39;,&#39;SQL SERVER 2005&#39;,&#39;t003&#39;); cname varchar2(20),insert into course values (&#39;c006&#39;,&#39;C#&#39;,&#39;t003&#39;); tno varchar2(20),insert into course values (&#39;c007&#39;,&#39;JavaScript&#39;,&#39;t002&#39;);constraint pk_course primary key (cno,tno)insert into course values (&#39;c008&#39;,&#39;DIV+CSS&#39;,&#39;t001&#39;); );insert into course values (&#39;c009&#39;,&#39;PHP&#39;,&#39;t003&#39;);insert into course values (&#39;c010&#39;,&#39;EJB3.0&#39;,&#39;t002&#39;);commit;/***************初始化成绩表***********************/insert into sc values (&#39;s001&#39;,&#39;c001&#39;,78.9);insert into sc values (&#39;s002&#39;,&#39;c001&#39;,80.9);create table sc(insert into sc values (&#39;s003&#39;,&#39;c001&#39;,81.9);sno varchar2(10),insert into sc values (&#39;s004&#39;,&#39;c001&#39;,60.9);cno varchar2(10),insert into sc values (&#39;s001&#39;,&#39;c002&#39;,82.9);score number(4,2),insert into sc values (&#39;s002&#39;,&#39;c002&#39;,72.9);constraint pk_sc primary key (sno,cno)insert into sc values (&#39;s003&#39;,&#39;c002&#39;,81.9); ); insert into sc values (&#39;s001&#39;,&#39;c003&#39;,&#39;59&#39;); commit;练习:注意:以下练习中的数据是根据初始化到数据库中的数据来写的SQL 语句,请大家务必注意。

1、查询“c001”课程比“c002”课程成绩高的所有学生的学号;2、查询平均成绩大于60 分的同学的学号和平均成绩;3、查询所有同学的学号、姓名、选课数、总成绩;4、查询姓“刘”的老师的个数;5、查询没学过“谌燕”老师课的同学的学号、姓名;6、查询学过“c001”并且也学过编号“c002”课程的同学的学号、姓名7、查询学过“谌燕”老师所教的课的同学的学号、姓名;8、查询课程编号“c002”的成绩比课程编号“c001”课程低的所有同学的学号、姓名;9、查询所有课程成绩小于60 分的同学的学号、姓名;10、查询没有学全所有课的同学的学号、姓名;11、查询至少有一门课与学号为“s001”的同学所学相同的同学的学号和姓名;12、查询至少学过学号为“s001”同学所有一门课的其他同学学号和姓名;13、把“SC”表中“谌燕”老师教的课的成绩都更改为此课程的平均成绩;14、查询和“s001”号的同学学习的课程完全相同的其他同学学号和姓名;15、删除学习“谌燕”老师课的SC 表记录;16、向SC 表中插入一些记录,这些记录要求符合以下条件:没有上过编号“c002”课程的同学学号、“c002”号课的平均成绩;17、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分18、按各科平均成绩从低到高和及格率的百分数从高到低顺序19、查询不同老师所教不同课程平均分从高到低显示20、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ &lt;60]21、查询各科成绩前三名的记录:(不考虑成绩并列情况)22、查询每门课程被选修的学生数23、查询出只选修了一门课程的全部学生的学号和姓名24、查询男生、女生人数25、查询姓“张”的学生名单26、查询同名同性学生名单,并统计同名人数27、1981 年出生的学生名单(注:Student 表中Sage 列的类型是number)28、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列29、查询平均成绩大于85 的所有学生的学号、姓名和平均成绩30、查询课程名称为“数据库”,且分数低于60 的学生姓名和分数31、查询所有学生的选课情况;32、查询任何一门课程成绩在70 分以上的姓名、课程名称和分数;33、查询不及格的课程,并按课程号从大到小排列34、查询课程编号为c001 且课程成绩在80 分以上的学生的学号和姓名;35、求选了课程的学生人数36、查询选修“谌燕”老师所授课程的学生中,成绩最高的学生姓名及其成绩37、查询各个课程及相应的选修人数38、查询不同课程成绩相同的学生的学号、课程号、学生成绩39、查询每门功课成绩最好的前两名40、统计每门课程的学生选修人数(超过10 人的课程才统计)。

相关文档
最新文档