Oracle精选习题25道
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练习题及答案
oracle练习题及答案1. 找出各月倒数第3 天受雇的所有员工select ename from emp where last_day(hiredate)-2=hiredate;2. 找出早于12 年前受雇的员工select ename from emp where months_between(sysdate,hiredate)>=144;3. 以首字母大写的方式显示所有员工的姓名select initcap(ename) from emp;4. 显示正好为5 个字符的员工的姓名select ename from emp where length(ename)=5;5. 显示不带有“R”的员工姓名select ename from emp where instr(ename,'R',1,1) =0;6. 显示所有员工姓名的前三个字符select substr(ename,1,3) from emp;7. 显示所有员工的姓名,用“a”替换所有的“A”select ename,replace(ename,'A','a') from emp;8. 显示满10 年服务年限的员工的姓名和受雇日期select ename,hiredate from emp where months_between(sysdate,hiredate)>=120;9. 显示员工的详细资料,按姓名排序select * from emp order by ename desc;10. 显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面select ename,hiredate from emp order by hiredate;11. 显示所有员工的姓名、工作和薪金,按照工作的降序排序,若工作相同则按薪金排序select ename,job,sal from emp order by job desc, sal;12. 显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面select ename, to_char(hiredate,'yyyy') h, to_char(hiredate,'mm') m from emp order by m,h; 13. 显示在一个月为30 天的情况所有员工的日薪金,忽略余数select trunc(sal/30) from emp;14. 找出在(任何年份的)2 月受聘的所有员工select ename from emp where to_char(hiredate,'mm')=2;15. 对于每个员工显示其加入公司的天数select ename, sysdate-hiredate from emp;16. 显示姓名字段的任何位置包含“A”的所有员工姓名select ename from emp where instr(ename,'A',1,1) <>0;select ename from emp where ename like '%A%';。
精选ORCLE认证模拟题库288题(含标准答案)
2020年ORCLE认证考试题库288题[含答案]
一、选择题
1.连接到数据库的最低系统预定义角色是(7个字)
2.当Oracle检测到死锁后,它会选择一个事务退出。
选择退出事务的原则是执行修改数目的事务。
3.如果需要在SELECT子句中包括一个表的所有列,可使用符号(1个字)。
4.如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用___。
5.如果某个数据库的LGWR进程经常会因为检查点未完成而进入等待状态,则DBA应当采取(9个字)措施来解决该问题。
6.如果定义与组有光的搜索条件,可以把_______子句添加到SELECT语句中。
7.如果定义与组有关的索条件,可以把 (7个字) 子句添加到SELECT语句中。
8.如果要获知索引的使用情况,可以通过查询(18个字)视图;而要获知索引的当前状态,可以查询(10个字)视图。
9.启用复合控制文件后,由于多个控制文件互为镜像,内容总是(6个字)。
这样在装载Oracle数据库时,系统会读取并打开(1个字)参数所对应的所有控制文件。
10.如果用户想要对对象类型的实例进行比较排序,则需要使用(5个字)。
它最重要的一个特点是:当在WHERE或ORDER BY 等比较关系子句中使用对象时会被间接地使用。
11.假设已经创建了CHAINED_ROWS表。
填写下面的语句,以便对业务员信息表进行链接记录分析:
ANAL YZE TABKE 业务员信息
(5个字)。
12.假设一个程序包,其包含了两个重载的函数max。
写出下面程序调用max函数后的运行结果。
程序包主体:。
oracle习题及答案
oracle习题及答案1. 查询工资大于12000的员工姓名和工资Select last_name||' '||first_name,salary from employees wheresalary >12000;2. 查询员工号为176的员工的姓名和部门号Select last_name||' '||first_name,department_id from employees where employee_id=176;3. 选择工资不在5000到12000的员工的姓名和工资Select last_name||' '||first_name,salary from employees where salary not between 5000 and 12000;4. 选择雇用时间在1998-02-01到1998-05-01之间的员工姓名,job_id和雇用时间Select last_name||' '||first_name,job_id,hire_date from employees where hire_date between '1-2月-98' and '1-5月-98';5. 选择在20或50号部门工作的员工姓名和部门号Select last_name||' '||first_name,department_id from employees where department_id in (20,50);6. 选择在1994年雇用的员工的姓名和雇用时间Select last_name||' '||first_name,hire_date from employees where hire_date like '?';7. 选择公司中没有管理者的员工姓名及job_idSelect last_name||' '||first_name,job_id from employees where Manger_id is null;8. 选择公司中有奖金的员工姓名,工资和奖金Select last_name||' '||first_name,salary,commission_pct from employees where commission_pct is not null;9. 选择员工姓名的第三个字母是a的员工姓名Select last_name||' '||first_name from employees where last_name||''||first_name like '___a%';10. 选择姓名中有字母a和e的员工姓名 Selectlast_name||''||first_namefromemployeeswherelast_name||first_name like '%a%e%' or last_name||first_name like '%e%a%';多表查询11. 显示所有员工的姓名,部门号和部门名称。
oracle试题
oracle试题一、选择题1. 在Oracle数据库中,用于创建表的语句是什么?A. CREATE DATABASEB. CREATE TABLEC. CREATE INDEXD. CREATE VIEW答案:B2. 下列哪个命令可以用于查询当前数据库中的所有表?A. DESCB. SHOW TABLESC. LIST TABLESD. SELECT * FROM ALL_TABLES答案:C3. 在Oracle中,如何删除一个表?A. REMOVE TABLE table_name;B. DELETE TABLE table_name;C. DROP TABLE table_name;D. ERASE TABLE table_name;答案:C4. 在Oracle SQL中,哪个关键字用于选择所有列?A. ALLB. EACHC. EVERYD. ALL COLUMNS答案:A5. 如何在Oracle SQL查询中对结果进行排序?A. ORDER BY column_name ASC/DESC;B. SORT BY column_name ASC/DESC;C. ARRANGE BY column_name ASC/DESC;D. CLASSIFY BY column_name ASC/DESC;答案:A二、填空题1. 在Oracle数据库中,用来创建视图的关键字是_______。
答案:CREATE VIEW2. 若要在Oracle中为表添加一个新的列,应使用_______语句。
答案:ALTER TABLE3. 在Oracle SQL中,用于合并两个或多个查询结果的关键字是_______。
答案:UNION4. 若要在Oracle数据库中重命名表,应使用_______语句。
答案:RENAME5. 在Oracle中,用来删除表中的行的语句是_______。
答案:DELETE三、简答题1. 请简述Oracle数据库中的事务是什么?答:事务是一组SQL语句的集合,它们作为一个单一的工作单元执行。
Oracle题库
Oracle题库⼀、选择题1、对于Oracle数据库软件的应⽤,主要分为哪两⼤块(AB )。
〖2个答案〗A.开发B.管理C.安装D.调试2、以下哪项不是Oracle数据库物理组件的类型(D)。
〖1个答案〗A. 数据⽂件B. 控制⽂件C. ⽇志⽂件D. 表空间3、以下哪项不是Oracle数据库的逻辑组件的类型(D)。
〖1个答案〗A. 表空间B. 段C. 扩展区D. ⽇志⽂件4、关于数据控制语⾔中,收回所授予的权限的语句是(B)。
〖1个答案〗A. CreateB. RevokeC. GrantD. Update5、Oracle数据库中,取余数的运算符是(B)。
〖1个答案〗A. %B. modC. /D. ||6、Oracle数据库中,连接字符串的运算符是( D)。
〖1个答案〗A. +B. &C. isD. ||7、Oracle数据库中返回字符串长度的函数是(D)。
〖1个答案〗C. InStrD. Length8、Oracle数据库中按指定的精度进⾏四舍五⼊的函数是(C)。
〖1个答案〗A. SignB. TruncC. RoundD. Mod9、转换⽇期类型为字符串的转换函数是(C)。
〖1个答案〗A. to_dateB. to_datetimeC. to_charD. to_number10、在数据库中,对象Index表⽰(D)。
〖1个答案〗A.同义词B.表C.包D.索引11、关于通配符中的“%”,以下说法正确的两项是(BD)。
〖2个答案〗A. 代表任意⼀个字符,与Like结合使⽤B. 代表任意多个字符,与Like结合使⽤C. 代表任意⼀个字符,在Like后的表达式中只能使⽤⼀次“%”D. 代表任意多个字符,在Like后的表达式中可以使⽤多次“%”12、要统计某表中记录的总个数,以下哪项是正确的SQL语句(C)。
〖1个答案〗A. select Max(*) from 表名B. select Sum(*) from 表名C. select Count(*) from 表名D. select Min(*) from 表名13、要求表中数据的最⼤值,应使⽤什么函数(A)。
oracle笔试题及答案
oracle笔试题及答案一、选择题1. Oracle数据库是一种()数据库管理系统。
A. 关系型B. 非关系型C. 层次型D. 网状型答案:A2. 下列哪个选项不属于Oracle数据库的特点?A. 完全支持SQL语言B. 支持分布式数据库C. 提供高可用性和故障恢复机制D. 仅支持单用户操作答案:D3. 在Oracle数据库中,下列关键字中哪个用于插入一行数据?A. UPDATEB. DELETEC. SELECTD. INSERT答案:D4. 在Oracle数据库中,下列关键字中哪个用于从表中删除一行数据?A. TRUNCATEB. DROPC. DELETED. REMOVE答案:C5. 在Oracle数据库中,下列关键字中哪个用于更新表中的数据?A. MODIFYB. ALTERC. UPDATED. CHANGE答案:C6. 在Oracle数据库中,下列哪个语句用于创建一个新的用户?A. CREATE ROLEB. CREATE USERC. GRANT PERMISSIOND. ALTER ACCOUNT答案:B7. 在Oracle数据库中,下列关键字中哪个用于将表中的数据按照指定的列进行排序?A. SORTB. GROUPC. ORDERD. ARRANGE答案:C8. 在Oracle数据库中,下列关键字中哪个用于查询满足特定条件的数据?A. SELECTB. SEARCHC. FINDD. FILTER答案:A9. 在Oracle数据库中,下面哪个关键字用于创建新的表?A. CREATEB. MAKEC. BUILDD. CONSTRUCT答案:A10. 下列哪个Oracle数据库对象用于避免数据冗余,提高查询速度,并提供数据的一致性和完整性?A. 视图(View)B. 函数(Function)C. 存储过程(Stored Procedure)D. 游标(Cursor)答案:A二、简答题请简要回答以下问题。
oracle期末考试题及答案
oracle期末考试题及答案一、选择题(每题2分,共20分)1. Oracle数据库中的用户和模式是什么关系?A. 完全相同B. 完全不同C. 模式是用户的集合D. 用户是模式的集合答案:C2. 在Oracle数据库中,以下哪个命令用于查看当前用户?A. SELECT USER FROM DUAL;B. SELECT CURRENT_USER FROM DUAL;C. SELECT SESSION_USER FROM DUAL;D. SELECT SYSTEM_USER FROM DUAL;答案:A3. Oracle数据库中的哪个参数用于设置数据库的字符集?A. DB_CHARSETB. NLS_CHARACTERSETC. DB_LANGUAGED. NLS_LANGUAGE答案:B4. 在Oracle数据库中,以下哪个不是SQL语句?A. SELECTB. UPDATEC. DELETED. PRINT答案:D5. Oracle数据库中的触发器可以在哪些时刻执行?A. 数据插入前B. 数据更新前C. 数据删除后D. 数据查询时答案:ABC二、填空题(每空2分,共20分)1. Oracle数据库的默认表空间名称是 _ 。
答案:SYSTEM2. 在Oracle数据库中,用来查看当前数据库版本信息的命令是 _ 。
答案:SELECT * FROM V$VERSION;3. Oracle数据库中,用来创建索引的SQL语句是 _ 。
答案:CREATE INDEX;4. 在Oracle数据库中,存储过程和函数的区别在于存储过程可以有_ ,而函数不能。
答案:OUT参数5. Oracle数据库中,用于实现数据完整性的约束包括主键约束、外键约束、 _ 和CHECK约束。
答案:UNIQUE约束三、简答题(每题10分,共30分)1. 解释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练习题
ORACL复习题一、填空题:1、ORACLE数据库默认最高管理员账号是。
sys2、ORACLE数据库系统由、组成。
逻辑结构、物理结构和实例3、ORACLE数据库具有3种主要类型的文件,它们分别是:、、。
数据文件,控制文件,日志文件4、ORACLE内存结构主要分为、。
系统全局区,程序全局区5、ORACLE逻辑存储结构包括、、、。
块,区,段,表空间6、在SQL SELECT语句查询中,要去掉查询结果中的重复记录,应该使用_________关键字。
Distinct7、使用SQL语言的SELECT语句进行分组查询时,如果希望去掉不满足条件的分组,应当使用_________子句。
Having8、连接到ORACLE数据库的方法有、。
SQL*PLUS、OEM9、SCOTT用户的默认口令是:。
tiger10、SYS用户登录SQL*PLUS时,连接字符应该为。
数据库名AS sysdba11、安装ORACLE时,(是/否)一定要进行数据库实例的安装。
否12、要登录OEM,必须启动才行。
OracleDBConsoleORCL服务13、OUI工具用来安装和ORACLE组件。
卸载14、打开ORACLE安装目录下的install中的文件可以查看OEM、ISQL*PLUS的URL和端口号。
Portlist.ini15、每个数据库至少有一个系统表空间,被称为表空间。
system16、安装过程中进行了口令的设置,但是出现了口令有错的信息,是因为原因。
口令设置不符合ORACLE的约定17、EXP命令是用来进行文件的。
导出18、数据库可以使用工具进行创建。
DBCA19、登录ISQL*PLUS页面的默认端口号为。
556020、支持客户端应用程序到ORACLE数据库服务器网络会话的组件是。
ORACLE NET21.在SQL*PLUS中使用SQL*PLUS的命令可以显示表的结构信息。
22.所谓方案,就是一系列数据库对角的集合,是数据库中存储数据的一个逻辑表示。
ORACLE数据库 查询50习题(题目+答案)
select * from emp where comm>(sal*0.6)
--5、找出部门10中所有经理和部门20中所有办事员的详细资料
select * from emp where (deptno=10 and job='MANAGER') or (deptno=20 and job='CLERK')
select ename from emp where instr(ename,'R')=0
--14、显示所有雇员的姓名的前三个字符
select substr(ename,1,3) from emp
--15、显示所有雇员的姓名,用"a"替换所有的"A"
select replace(ename,'A','a')from emp
--------------------------------------------------------------------------------------------------
--1、列出至少有一个雇员的所有部门信息
select emp.ename,dept.* from emp,dept where emp.deptno=dept.deptno
--2、列出薪金(工资)比'SMITH'多的所有雇员信息
select * from emp where sal>(select sal from emp where ename='SMITH')
--3、列出所有雇员的姓名及其上级的姓名
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练习题及答案
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数据库习题(有答案)大题
1.检索部门编号、部门名称、部门所在地及其每个部门的员工总数。
selectd.deptno,d.dname,d.loc,count(*)fromempe,deptdwheree.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.salbetween s.losal and s.hisal) where s.grade=4;4.检索工资等级高于smith的员工信息。
select*fromempejoinsalgradeson(e.salbetweens.losalands.hisal)where s.grade>(selectdistinct s.gradefromemp ejoinsalgradeson((selectsalfromempwhereename='SMITH')between s.losal and s.hisal));5.检索30部门中1980年1月份之前入职的员工信息。
显示:员工号、员工名、部门号,部门名、入职日期。
selectempno,ename,d.deptno,d.dname,hiredatefromemp,deptd whereemp.deptno=d.deptnoandd.deptno=30andhiredate<to_date('1980-01-01','yy-mm-dd');6.检索雇员的雇佣日期早于其经理雇佣日期的员工及其经理姓名。
select e.ename雇员,m.ename经理,e.HIREDATE雇员的雇佣日期,m.hiredate经理雇佣日期fromempe,empmwheree.mgr=m.empno and e.hiredate<m.hiredate;7.按部门号(deptno)及工资(sal)排序检索公司的员工信息(要求部门号从大到小,部门号相同的按工资由低到高),显示的字段为:员工号、员工名、工资、部门号。
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相关练习题1.在多进程Oracle实例系统中,进程分为用户进程、后台进程与服务进程。
2.标准的SQL语言语句类型能够分为:数据定义语句(DDL)、数据操纵语句(DML)与数据操纵语句(DCL)。
3.在需要滤除查询结果中重复的行时,务必使用关键字Distinct; 在需要返回查询结果中的所有行时,能够使用关键字ALL。
4.当进行模糊查询时,应使用关键字like与通配符问号(?)或者百分号"%"。
5.Where子句能够接收From子句输出的数据,而HA VING子句则能够接收来自WHERE、FROM或者GROUP BY子句的输入。
6.在SQL语句中,用于向表中插入数据的语句是Insert。
7.假如需要向表中插入一批已经存在的数据,能够在INSERT语句中使用Select语句。
8.使用Describe命令能够显示表的结构信息。
9.使用SQL*Plus的Get命令能够将文件检索到缓冲区,同时不执行。
10.使用Save命令能够将缓冲区中的SQL命令储存到一个文件中,同时能够使用Run命令运行该文件。
11.一个模式只能够被一个数据库对象所拥有,其创建的所有模式对象都储存在自己的模式中。
12.根据约束的作用域,约束能够分为表级约束与列级约束两种。
列级约束是字段定义的一部分,只能够应用在一个列上;而表级约束的定义独立于列的定义,它能够应用于一个表中的多个列。
13.填写下面的语句,使其能够为Class表的ID列添加一个名为PK_CLASS_ID的主键约束。
ALTER TABLE ClassAdd ____________ PK_LASS_ID (Constraint)PRIMARY KEY ________ (ID)14. 每个Oracle 10g数据库在创建后都有4个默认的数据库用户:system、sys、sysman与DBcnmp15. Oracle提供了两种类型的权限:系统权限与对象权限。
Oracle基础(习题卷25)
Oracle基础(习题卷25)第1部分:单项选择题,共60题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]程序块中无法直接执行下面哪些语句A)create语句B)select语句C)update语句D)insert语句答案:A解析:2.[单选题]创建数据库时命令格式的关健字是( )A)Create databaseB)Alter databaseC)Create tablespaceD)Alter tablespace答案:A解析:3.[单选题]哪中类型的约束只能定义在列级A)CHECKB)UNIQUEC)NOT NULLD)PRIMART KEY答案:C解析:4.[单选题]下面()系统中不属于关系数据库管理系统的是A)OracleB)SQL SERVERC)IMSD)DB2答案:C解析:5.[单选题]数据文件的扩展名为什么A)sqlB)dbfC)ctlD)log答案:B解析:6.[单选题]下列四条信息中,哪一项不存储在控制文件中什么D)数据库文件的大小答案:B解析:7.[单选题]查看表CUSTOMER 的CUST_NAME 字段的值:CUST_NAME------------------------Renske LadwigJason MallinSamuel McCainAllan MCEwenIrene MikkilineniJulia Nayer你需要显示的客户,其中第二名称以“Mc”或“MC ”。
哪个查询能得到正确的结果?( )A)SELECT SUBSTR(cust_name, INSTR(cust_name,' ')+1)FROM customersWHERE INITCAP(SUBSTR(cust_name, INSTR(cust_name,' ')+1))='Mc';B)SELECT SUBSTR(cust_name, INSTR(cust_name,' ')+1)FROM customersWHERE INITCAP(SUBSTR(cust_name, INSTR(cust_name,' ')+1)) LIKE 'Mc%';C)SELECT SUBSTR(cust_name, INSTR(cust_name,' ')+1)FROM customersWHERE SUBSTR(cust_name, INSTR(cust_name,' ')+1) LIKE INITCAP('MC%');D)SELECT SUBSTR(cust_name, INSTR(cust_name,' ')+1)FROM customersWHERE INITCAP(SUBSTR(cust_name, INSTR(cust_name,' ')+1)) = INITCAP('MC%');答案:B解析:8.[单选题]SQL语言中,下列不是逻辑运算符号的是()A)XORB)NOTC)ANDD)OR答案:A解析:9.[单选题]如果发出了 SQL 语句“SELECT * FROM DICTIONARY;”请问这一语句将提供以下的哪个结果?( )A)可以访问这个数据字典的所有用户的名称B)将显示可以访问的所有表的名称C)将显示所有数据字典视图的名称D)将显示可以访问的所有视图的名称答案:C解析:10.[单选题]用于终止失败用户,释放该用户所占资源的进程是什么D)SMON答案:C解析:11.[单选题]当(),Oracle才提交事务A)DBRW进程将数据写回磁盘后B)LGWR进程将日志写入在线重做日志文件后C)PMON进程提交进程变化后D)SMON进程写入数据后答案:B解析:12.[单选题]在创建序列的过程中,下列( )选项指定序列在达到最大值或最小值后,将继续从头开始生成值。
Oracle经典练习题(很全面)
Oracle 经典练习题一.创建一个简单的PL/SQL程序块1.编写一个程序块,从emp表中显示名为“SMITH”的雇员的薪水和职位。
declarev_emp emp%rowtype;beginselect * into v_emp from emp where ename='SMITH';dbms_output.put_line('员工的工作是:'||v_emp.job||' ;他的薪水是:'||v_emp.sal);end;2.编写一个程序块,接受用户输入一个部门号,从dept表中显示该部门的名称与所在位置。
方法一:(传统方法)declarepname dept.dname%type;ploc dept.loc%type;pdeptno dept.deptno%type;beginpdeptno:=&请输入部门编号;select dname,loc into pname,ploc from dept where deptno=pdeptno; dbms_output.put_line('部门名称: '||pname||'所在位置:'||ploc); exception –异常处理when no_data_foundthen dbms_output.put_line('你输入的部门编号有误!!');when othersthen dbms_output.put_line('其他异常');end;方法二:(使用%rowtype)declareerow dept%rowtype;beginselect * into erow from dept where deptno=&请输入部门编号;dbms_output.put_line(erow.dname||'--'||erow.loc);exceptionwhen no_data_foundthen dbms_output.put_line('你输入的部门号有误');when othersthen dbms_output.put_line('其他异常');end;3.编写一个程序块,利用%type属性,接受一个雇员号,从emp表中显示该雇员的整体薪水(即,薪水加佣金)。
ORACLE数据库习题(有答案)
--1.列出至少有一个雇员的所有部门。
SELECT * FROM DEPTWHERE DEPTNO IN (SELECT DISTINCT DEPTNO FROM EMP);--2.列出薪金比“SMITH”多的所有雇员。
SELECT * FROM EMP WHERE SAL>(SELECT SAL FROM EMP WHERE ENAME='SMITH');--3.列出所有雇员的姓名及其上级的姓名。
SELECT AS empName, AS mgrNameFROM emp ygb,emp sjbWHERE =;--4.列出入职日期早于其直接上级的所有雇员。
【SELECT * FROM emp ygbWHERE hiredate<(SELECT hiredate FROM emp sjb WHERE =;--5.列出所有部门的名称和这些部门的雇员编号及姓名(没有雇员的部门包含在内)SELECT dname,enameFROM dept a LEFT JOIN emp b ON =; --6.列出所有JOB为“CLERK”(办事员)的员工姓名及其部门名称SELECT ename,dnameFROM dept a,emp bWHERE = AND job='CLERK';--7.列出各种类型的最低薪金,并使最低薪金大于。
SELECT job,MIN(sal)—FROM empGROUP BY jobHAVING MIN(sal)>1500;--8.列出从事“SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号。
SELECT ename FROM empWHERE deptno=(SELECT deptno FROM dept WHERE dname='SALES'); --9.列出薪金高于公司平均水平的所有雇员。
SELECT * FROM EMP WHERE SAL>(SELECT AVG(SAL) FROM EMP);--10.列出与“SCOTT”从事相同工作的所有雇员。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9.找出各月倒数第三天受雇的所有员工
SQL> select * from emp where hiredate=last_day(hiredate)-2;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
DEPTNO
----------
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0
---------- ---------- --------- ---------- -------------- ---------- ----------
DEPTNO
----------
7698 BLAKE MANAGER 7839 01-5月 -81 2850
---------- ---------- --------- ---------- -------------- ---------- ----------
DEPTNO
----------
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400
ENAME
----------
SMITH
ALLEN
JONES
BLAKE
SCOTT
KING
ADAMS
JAMES
14.显示所有员工姓名的前三个字符
SQL> select substr(ename,1,3) from emp;
SUBSTR
------
SMI
ALL
WAR
SMITH 7369 20
ADAMS 7876 20
JAMES 7900 30
MILLER 7934 10
3.找出佣金高于薪金的员工
select * from emp where comm>sal;
------ ---------- --------- ---------- -------------- ---------- ----------
DEPTNO
------
7369 SMITH CLERK 7902 17-12月-80 800
SALESMAN
SALESMAN
SALESMAN
8.找出不收取佣金或收取的佣金低于100的员工
SQL> select * from emp where (comm=0 or comm<100);
EMPNO ENAME JOB MGR HIREDATE SAL COMM
ALLEN SALESMAN
WARD SALESMAN
JONES MANAGER
MARTIN SALESMAN
BLAKE MANAGER
CLARK MANAGER
SCOTT ANALYST
KING PRESIDENT
DEPTNO
----------
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400
30
4.找出佣金高于薪金60%的员工
SQL> select * from emp where comm>0.6*sal;
DEPTNO
----------
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300
30
7521 WARD SALESMAN 7698 22-2月 -81 1250 500
30
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0
30
7900 JAMES CLERK 7698 03-12月-81 950
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
select * from emp where(deptno='10' and job='MANAGER' ) or (deptno='20' and job='CLERK');
EMPNO ENAME JOB MGR HIREDATE SAL COMM
30
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400
30
EMPNO ENAME JOB MGR HIREDATE SAL COMM
1.选择部门30中的员工
select empno from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
6.找出部门10,部门20中,既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料
select * from emp where (deptno='10' or deptno='20') and (job!='MANAGER' and job!='CLERK') and (sal>2000 or sal=2000);
DEPTNO
----------
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400
30
5.找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料
30
2.列出所有办事员(CLERK)的姓名,编号和部门编号
select ename,empno,deptno from emp where job='CLERK';
ENAME EMPNO DEPTNO
---------- ---------- ----------
SQL> select ename from emp where length(ename)=5;
ENAME
----------
SMITH
ALLEN
JONES
BLAKE
CLARK
SCOTT
ADAMS
JAMES
13.显示不带有“R”的员工的姓名
SQL> select ename from emp where ename not like '%R%';
TURNER SALESMAN
ADAMS CLERK
ENAME JOB
---------- ---------
JAMES CLERK
FORD ANALYST
MILLER CLERK
11.以首字母大写的方式显示所有员工的姓名
SQL> SELECT INITCAP(ENAME) FROM EMP;
DEPTNO
------
7788 SCOTT ANALYST 7566 19-4月 -87 3000
20
7839 KING PRESIDENT 17-11月-81 5000
SMITH
aLLEN
WaRD
JONES
MaRTIN
BLaKE
CLaRK
SCOTT
KING
TURNER
aDaMS
NAME
----------
JaMES
FORD
MILLER
16.显示满10年服务年限的员工的姓名和受雇日期
20
7782 CLARK MANAGER 7839 09-6月 -81 2450
10
7876 ADAMS CLERK 7788 23-5月 -87 1100
20
INITCAP(EN
----------
Smith
Allen
Ward
Jones
Martin
Blake
Clark
Scott
King
Turner
Adams
INITCAP(EN
----------
James
Ford
Miller
12.显示正好为5个字符的员工的姓名
EMPNO ENAME JOB MGR HIREDATE SAL COMM
------ ---------- --------- ---------- -------------- ---------- ----------
10
7902 FORD ANALYST 7566 03-12月-81 3000
20
7.找出收取佣金的员工的不同工作
SQL> select job from emp where comm>0;
JOB
---------
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- -------- Nhomakorabea- --------- ---------- -------------- ---------- ----------