文档库 最新最全的文档下载
当前位置:文档库 › oracle练习及答案

oracle练习及答案

oracle练习及答案
oracle练习及答案

测试一

1.SQL*PLUS命令可以控制数据库(no)

2.下面的语句是否可以执行成功(yes)

select last_name , job_id , salary as sal

from employees;

3.下面的语句是否可以执行成功(yes)

select * from employees;

4.找出下面语句中的错误

select employee_id , last_name

sal * 12 ANNUAL SALARY

from employees;

列于列之间未用逗号分隔

别名应用引号括起来

5.显示表departments的结构,并查询其中的全部数据

desc departments

select * from departments;

6.显示出表employees中的全部job_id(不能重复)

select distinct job_id

from employees;

7.显示出表employees的全部列,各个列之间用逗号连接,列头显示成

OUT_PUT

select EMPLOYEE_ID||','|| FIRST_NAME||','||LAST_NAME||','||EMAIL||','||PHONE_NUMBER||','||HIRE_D ATE||','||JOB_ID||','||SALARY||','||COMMISSION_PCT||','||MANAGER_ID||','|| DEPARTMENT_ID as "OUT_PUT"

from employees;

测试二

1.查询工资大于12000的员工姓名和工资

SELECT FIRST_NAME, salary

FROM employees

WHERE salary > 12000;

2.查询员工号为176的员工的姓名和部门号

SELECT FIRST_NAME, department_id

FROM employees

WHERE employee_id = 176;

3.选择工资不在5000到12000的员工的姓名和工资

SELECT FIRST_NAME, salary

FROM employees

WHERE salary NOT BETWEEN 5000 AND 12000;

4.选择雇用时间在1998-02-01到1998-05-01之间的员工姓名,job_id和雇用时

SELECT FIRST_NAME, job_id, hire_date

FROM employees

WHERE hire_date BETWEEN '01-2月-98' AND '01-5月-98';

5.选择在20和50号部门工作的员工姓名和部门号

SELECT FIRST_NAME, department_id

FROM employees

WHERE department_id IN (20, 50);

6.选择在1994年雇用的员工的姓名和雇用时间

SELECT FIRST_NAME, hire_date

FROM employees

WHERE hire_date LIKE '%94';

7.选择公司中没有管理者的员工姓名及job_id

SELECT FIRST_NAME, job_id

FROM employees

WHERE manager_id IS NULL;

8.选择公司中有奖金的员工姓名,工资和奖金

SELECT FIRST_NAME, salary, commission_pct

FROM employees

WHERE commission_pct IS NOT NULL;

9.选择员工姓名的第三个字母是a的员工姓名

SELECT FIRST_NAME

FROM employees

WHERE FIRST_NAME LIKE '__a%';

10.选择姓名中有字母a和e的员工姓名

SELECT FIRST_NAME

FROM employees

WHERE (FIRST_NAME LIKE '%e%a%' OR FIRST_NAME LIKE '%a%e%')

测试三

1.显示系统时间

Select sysdate "Date" from dual

2.查询员工号,姓名,工资,以及工资提高百分之20%后的结果(new salary)select empno,ename,sal, round(sal*1.20,0) as“new salary” from emp;

3.将员工的姓名按首字母排序,并写出姓名的长度(length)

select ename "Name" ,length(ename) "Length" from emp order by substr(ename,1,1);

4.查询各员工的姓名,并显示出各员工在公司工作的月份数(worked_month)。select ename,

round(months_between(sysdate,hiredate)) as worked_month from emp;

select lower(ename)ename,lpad(sal,15,'$') sal from emp;

6.查询员工的姓名,以及在公司工作的月份数(worked_month),并按月份数

降序排列

WHEN 'ANALYST' THEN 'C'

WHEN 'MANAGER' THEN 'B'

WHEN 'PRESIDENT' THEN 'A'

ELSE '0' END GRADE

FROM emp;

测试四

1.组函数处理多行返回一行(yes)

2.组函数不计算空值(no)

3.where子句在分组之前对检索进行过滤( yes )

4.查询公司员工工资的最大值,最小值,平均值,总和

select max(sal) , min(sal) , avg(sal) , sum(sal)

from emp;

5.查询各job_id的员工工资的最大值,最小值,平均值,总和

select max(sal) , min(sal) , avg(sal) , sum(sal)

from emp group by job;

6.选择具有各个job的员工人数

select job , count(*)

from emp group by job;

7.查询员工最高工资和最低工资的差距(DIFFERENCE)

select max(sal) – min(sal) DIFFERENCE

from emp

8.查询各个管理者手下员工的最低工资,其中最低工资不能低于800,没有管

理者的员工不计算在内

select mgr , min(sal)

from emp

where mgr is not null group by mgr

having min(sal) >= 800;

9.查询所有部门的名字,loc,员工数量和工资平均值

select d.dname,d.loc ,count(e.empno),avg(sal)

from emp e,dept d

where e.deptno = d.deptno

group by d.dname,d.loc

10.查询公司的人数,以及在1995-1998年之间,每年雇用的人数,结果类似下

测试五

1.显示所有员工的姓名,部门号和部门名称。

SELECT e.ename, e.deptno, d.dname

FROM emp e, dept d

WHERE e.deptno = d.deptno (+);

2.查询20号部门员工的job和20号部门的loc

SELECT DISTINCT e.job, d.loc

FROM emp e, dept d

WHERE d.deptno = d.deptno

AND e.deptno = 20;

3.选择所有有奖金的员工的ename , dname , loc

SELECT e.ename, d.dname, d.loc

FROM emp e, dept d

WHERE e.deptno = d.deptno

AND

https://www.wendangku.net/doc/a115334913.html,m IS NOT NULL

4.选择在NEW YORK工作的员工的ename , job , deptno , dname

Select e.ename , e.job , d.deptno , d.dname

From emp e , dept d

Where e.deptno = d.deptno

And d.loc =‘NEW YORK'

测试六

1.查询和FORD相同部门的员工姓名和雇用日期

select ename,hiredate,deptno from emp

where deptno=(select deptno from emp where ename='FORD' ) and ename<>'FORD'

2.查询工资比公司平均工资高的员工的员工号,姓名和工资。

select empno,ename,sal from emp where sal > (select

avg(sal)from emp )

3.查询和姓名中包含字母u的员工在相同部门的员工的员工号和姓名

select empno, ename from emp

where deptno IN (select deptno

from emp

where ename like '%u%');

4.查询在部门的loc为CHICAGO的部门工作的员工的员工号,deptno和job

select empno,emp.deptno,job from emp,dept where

emp.deptno=dept.deptno

and dept.loc ='CHICAGO'

5.查询管理者是king的员工姓名和工资

select ename,sal from emp

where mgr=(select empno from emp where lower(ename)='king')

测试七(答案无)

1.创建一张表,表名为student,属性有id 主键,stuno varchar2(20)学号唯一,

name varchar2(20),sex 只能是男或女,password 长度为6-20,sal number(7,2)。

2.显示表student的结构

3.向表中插入数据

4.提交

5.将3号员工的name修改为king

6.将所有工资少于1000的修改成2000.

7.检查所作的修正

8.提交

9.删除所有数据

10.检查所作的修正

11.回滚

12.清空表student表

测试八

CREATE TABLE departments

(id NUMBER(7),

name VARCHAR2(25));

2.将表dept中的数据插入表departments中INSERT INTO departments

SELECT deptno, dname

FROM dept;

CREATE TABLE employees

(id NUMBER(7),

last_name VARCHAR2(25),

first_name VARCHAR2(25),

dept_id NUMBER(7));

4.将列Last_name的长度增加到50

ALTER TABLE employees

MODIFY (last_name VARCHAR2(50));

5.查询数据字典视图user_tables检查刚才的操作

SELECT *

FROM user_tables

WHERE table_name IN ('DEPARTMENTS', 'EMPLOYEES');

6.将表employees重命名为employees1

RENAME employees TO employees1;

7.在表departments和employees中添加新列test_column,并检查所作的操作

alter table employees add(test_column varchar2(50));

alter table departments add(test_column varchar2(50));

8.在表departments和employees中将列test_column设置成不可用,之后删除

alter table employees set unused(test_column);

alter table departments set unused(test_column);

9.直接删除表employees中的列dept_id

alter table employees drop column dept_id;

10.给表employees加注释“employees information”

Comment on table employees is ' employees information ';

测试九

1.使用表employees创建视图employee_vu,其中包括姓名(EMPLOYEE),员

工号(EMPLOYEE_ID),部门号(DEPARTMENT_ID).

CREATE OR REPLACE VIEW employees_vu AS

SELECT employee_id, last_name employee, department_id

FROM employees;

2.显示视图的结构

desc employees_vu

3.查询数据字典视图user_views,检查视图的定义

SELECT view_name, text

FROM user_views;

4.查询视图中的全部内容

SELECT * FROM employees_vu;

5.将视图中的数据限定在部门号是80的范围内

CREATE VIEW dept80 AS

SELECT id empno, last_name employee,

Dept_id deptno

FROM employees

WHERE id = 80

WITH CHECK OPTION CONSTRAINT emp_dept_80;

6.将视图改变成只读视图

CREATE OR REPLACE VIEW dept80 AS

SELECT employee_id empno, last_name employee,

department_id deptno

FROM employees

WHERE department_id = 80

WITH READ ONLY;

测试十

7.如果用户能过登陆到数据库,至少需要哪种权限?是系统权限还是对象权限

CREATE SESSION 系统权限

8.创建表需要哪种权限

CREATE TABLE

9.将表departments的查询权限分配给用户system

GRANT select

ON departments

TO system;

10.从system处收回刚才赋予的权限。

Revoke select

ON departments

from system;

11.创建角色dvp,并将权限赋予该角色

CREATE PROCEDURE

CREATE SESSION

CREATE TABLE

CREATE SEQUENCE CREATE VIEW

CREATE ROLE dvp;

Grant CREATE PROCEDURE, CREATE SESSION, CREATE TABLE,

CREATE SEQUENCE, CREATE VIEW

To dvp;

oracle课后题答案

一、选择题 1. 若关系的某一属性组的值能唯一地标识一个元组,我们称之为(B)。 A、主码 B、候选码 C、外码 D、联系 2. 以下不属于数据库模式的三要素的是(C)。 A、数据结构 B、数据操作 C、数据控制 D、完整性约束 3. 以下对关系性质的描述中,哪个是错误的?(B) A、关系中每个属性值都是不可分解的 B、关系中允许出现相同的元组 C、定义关系模式时可随意指定属性的排列次序 D、关系中元组的排列次序可以任意交换 二、填空题 1.数据管理发展的三个阶段是人工管理、文件管理和数据库系统管理。 2.数据库系统的三级模式包括逻辑模式、用户模式、物理模式。 三、思考题 1. 数据库管理系统的主要功能有哪些? 1)数据定义功能。DBMS提供相应数据语言来定义(DDL)数据库结构,它们是刻画数据库框架,并被保存在数据字典中。 2)数据存取功能。DBMS提供数据操纵语言(DML),实现对数据库数据的基本存取操作:检索,插入,修改和删除。 3)数据库运行管理功能。DBMS提供数据控制功能,即是数据的安全性、完整性和并发控制等对数据库运行进行有效地控制和管理,以确保数据正确有效。 4)数据库的建立和维护功能。包括数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。 5)数据库的传输;DBMS提供处理数据的传输,实现用户程序与DBMS之间的通信,通常与操作系统协调完成。 2.思考关系规范化的过程。 答:对于存在数据冗余、插入异常、删除异常问题的关系模式,应采取将一个关系模式分解为多个关系模式的方法进行处理。一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式,这就是所谓的规范化过程。 3.思考数据库设计的步骤。 答:1需求分析、2概念设计阶段、3逻辑结构设计阶段、4数据库物理结构设计阶段、5数据库实施阶段、6数据库运行和维护阶段。

oracle练习题及答案

WORD格式 1.找出各月倒数第3天受雇的所有员工 selectenamefromempwherelast_day(hiredate)-2=hiredate; 2.找出早于12年前受雇的员工 selectenamefromempwheremonths_between(sysdate,hiredate)>=144; 3.以首字母大写的方式显示所有员工的姓名 selectinitcap(ename)fromemp; 4.显示正好为5个字符的员工的姓名 selectenamefromempwherelength(ename)=5; 5.显示不带有“R”的员工姓名 selectenamefromempwhereinstr(ename,'R',1,1)=0; 6.显示所有员工姓名的前三个字符 selectsubstr(ename,1,3)fromemp; 7.显示所有员工的姓名,用“a”替换所有的“A” selectename,replace(ename,'A','a')fromemp; 8.显示满10年服务年限的员工的姓名和受雇日期 selectename,hiredatefromempwheremonths_between(sysdate,hiredate)>=120; 9.显示员工的详细资料,按姓名排序 select*fromemporderbyenamedesc; 10.显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面selectename,hiredatefromemporderbyhiredate; 11.显示所有员工的姓名、工作和薪金,按照工作的降序排序,若工作相同则按薪金排序selectename,job,salfromemporderbyjobdesc,sal; 12.显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份 相同则将最早年份的员工排在最前面 selectename,to_char(hiredate,'yyyy')h,to_char(hiredate,'mm')m fromemporderbym,h; 13.显示在一个月为30天的情况所有员工的日薪金,忽略余数 selecttrunc(sal/30)fromemp; 14.找出在(任何年份的)2月受聘的所有员工 selectenamefromempwhereto_char(hiredate,'mm')=2; 15.对于每个员工显示其加入公司的天数 selectename,sysdate-hiredatefromemp; 16.显示姓名字段的任何位置包含“A”的所有员工姓名 selectenamefromempwhereinstr(ename,'A',1,1)<>0; selectenamefromempwhereenamelike'%A%'; 专业资料整理

oracle课后题答案总教学内容

o r a c l e课后题答案总

第一章 一、选择题 1. 若关系的某一属性组的值能唯一地标识一个元组,我们称之为(B)。 A、主码 B、候选码 C、外码 D、联系 2. 以下不属于数据库模式的三要素的是(C)。 A、数据结构 B、数据操作 C、数据控制 D、完整性约束 3. 以下对关系性质的描述中,哪个是错误的?(B) A、关系中每个属性值都是不可分解的 B、关系中允许出现相同的元组 C、定义关系模式时可随意指定属性的排列次序 D、关系中元组的排列次序可以任意交换 二、填空题 1.数据管理发展的三个阶段是人工管理、文件管理和数据库系统管理。 2.数据库系统的三级模式包括逻辑模式、用户模式、物理模式。 三、思考题 1. 数据库管理系统的主要功能有哪些? 1)数据定义功能。DBMS提供相应数据语言来定义(DDL)数据库结构,它们是刻画数据库框架,并被保存在数据字典中。 2)数据存取功能。DBMS提供数据操纵语言(DML),实现对数据库数据的基本存取操作:检索,插入,修改和删除。

3)数据库运行管理功能。DBMS提供数据控制功能,即是数据的安全性、完整性和并发控制等对数据库运行进行有效地控制和管理,以确保数据正确有效。 4)数据库的建立和维护功能。包括数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。 5)数据库的传输;DBMS提供处理数据的传输,实现用户程序与DBMS之间的通信,通常与操作系统协调完成。 2.思考关系规范化的过程。 答:对于存在数据冗余、插入异常、删除异常问题的关系模式,应采取将一个关系模式分解为多个关系模式的方法进行处理。一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式,这就是所谓的规范化过程。 3.思考数据库设计的步骤。 答:1需求分析、2概念设计阶段、3逻辑结构设计阶段、4数据库物理结构设计阶段、5数据库实施阶段、6数据库运行和维护阶段。 第二章 一、选择题 1、Oracle 11g不具备的版本是(C) A.个人版 B.标准版 C. 扩展板 D.企业版 2、oracle 数据库的数据字典不能做的工作有(B) A.查找oracle数据库用户信息

Oracle试题(含答案)

_C++_CSD/ESD1405 1. 把工资大于1000的first_name,salary 显示出来,按工资排序,工资相同按first_name降序的SQL语句是? A. select first_name,salary from s_emp order by salary,first_name B. select first_name,salary from s_emp order by salary,first_name asc C. select first_name,salary from s_emp order by salary desc,first_name D. select first_name,salary from s_emp order by salary,first_name desc 正确答案:D 2. 已知数据库中有员工表s_emp和部门表s_dept,具体字段如下: 员工表字段介绍: ID 员工编号 LAST_NAME 员工姓 FIRST_NAME 员工名 USERID 用户编号 START_DATE 入职日期 COMMENTS 员工备注信息 MANAGER_ID 员工的领导ID TITLE 员工的职位 DEPT_ID 部门的编号 SALARY 员工的月薪 COMMISSION_PCT 提成 部门表的字段介绍: ID 部门编号 NAME 部门名 REGION_ID 地区编号 注:以下所有数据库相关题目,均使用这两个表 把s_emp表中的每个人的全名和工资列出来的SQL语句是? A. select first_name|last_name ,salary from s_emp

Oracle数据库试题及答案

Oracle数据库试题 一、选择题 1、段是表空间中一种逻辑存储结构,以下( D )不是ORACLE数据库使用的段类型。(A)索引段(B)临时段(C)回滚段(D)代码段 2、 ORACLE数据库物理结构包括以下三种文件,以下不属于的是( A )。 ?(A)系统文件(B)日志文件(C)数据文件(D)控制文件 3、数据库中有两个用户scott和muuser,物资表wz是属于myuser用户的,但当前用户是scott,要求查询物资表wz(wno,wname,wtype,wunit)物资单位wunit列为null的记录,取结果的前5条记录显示,以下正确的SQL语句是( C ) (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; ?4、若当前日期为’25-5月-06’,以下( D? )表达式能计算出5个月后那一天所在月份的最后一天的日期。 (A)NEXT_DAY(ADD_MONTHS(28-5月-06,5)) (B)NEXT_DAY(MONTHS_BETWEEN(28-5月-06,5)) (C)NEXT_DAY(MONTHS_BETWEEN(’28-5月-06’,5)) (D)NEXT_DAY(ADD_MONTHS(’28-5月-06’,5)) 5、下列叙述中正确的是_C_。 A、数据库是一个独立的系统,不需要操作系统的支持 B、数据库设计是指设计数据库管理系统 C、数据库技术的根本目标是要解决数据共享的问题 D、数据库系统中,数据的物理结构必须与逻辑结构一致 6、SQL语句中修改表结构的命令是 ???C?? ?。 A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE D、ALTER STRUCTURE 7、数据库DB、数据库系统DBS、数据库管理系统DBMS三者之间的关系是__ A___。 A、DBS包括DB和DBMS B、DBMS包括DB和DBS C、DB包括DBS和DBMS D、DBS就是DB,也就是DBMS 8、要控制两个表中数据的完整性和一致性可以设置"参照完整性",要求这两个表_A___。 A、是同一个数据库中的两个表 B、不同数据库中的两个表 C、两个自由表 D、一个是数据库表另一个是自由表 9、在关系模型中,实现"关系中不允许出现相同的元组"的约束是通过__B_ __。 A、候选键 B、主键 C、外键 D、超键 10、索引字段值不唯一,应该选择的索引类型为___ B__。 A、主索引 B、普通索引 C、候选索引 D、唯一索引 11、从数据库中删除表的命令是___C __。 A、DROP TABLE B、ALTER TABLE C、DELETE TABLE D、USE 12、 DELETE FROM S WHERE 年龄>60语句的功能是___B___。 A、从S表中彻底删除年龄大于60岁的记录 B、S表中年龄大于60岁的记录被加上删除标记

oracle考试试题及答案

试题一 一、填空题(每小题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、数据库概念模型主要用于数据库概念结构设计() 三、简答题(每小题7分,共35分) 1、何谓数据与程序的逻辑独立性和物理独立性? 2、试述关系代数中等值连接与自然连接的区别与联系? 3、何谓数据库,数据库设计一般分为哪些阶段? 4、简述Oracle逻辑数据库的组成?

5、试任举一例说明游标的使用方法? 五、设有雇员表emp(empno,ename,age,sal,tel,deptno), 其中:empno-----编号,name------姓名,age -------年齡,sal-----工资,tel-----电话 deptno-----部门号。 请按下列要求分别晨SQL*PLUS下编程。(每小题3分,共15分)?1、查询家有电话的职工信息。 ?2、查询工资在500至800元之间的雇员信息 ?3、按年龄递增顺序显示雇员编号、姓名、年龄、工资 ?4、求部门号为D_01的平均工资 ?5、查找部门号为D_01的40岁以上而工资在400元以下的雇员名单。 1、SQL>SELECT * FROM emp WHERE tel NOT NULL; 2、SQL>SELECT * FROM emp WHERE BETWEEN 500 AND 800; 3、SQL>SELECT empno,ename,age,sal FROM emp ORDER BY age ASC; 4、SQL>SELECT AVG(sal) FROM emp WHERE deptno='D_01'; 5、SQL>SELECT ename FROM emp WHERE deptno='D_01' AND age>40 AND Sal<400; ? 试题一答案 一、填空题 1、人工管理、文件系统、数据库系统 2、外模式、模式、内模式 3、数据库缓冲区,重做日志缓冲区,共享池 4、Primay key约束。Foreign key约束,Unique约束,check约束,not need 约束 5、声明游标,打开游标,提取游标,关闭游标 二、正误判断题 1、T 2、T 3、T 4、F 5、F 6、T 7、T 8、T 9、F 三、(略) 五、 1、SQL>SELECT * FROM emp WHERE tel NOT NULL; 2、SQL>SELECT * FROM emp WHERE BETWEEN 500 AND 800; 3、SQL>SELECT empno,ename,age,sal FROM emp ORDER BY age ASC; 4、SQL>SELECT AVG(sal) FROM emp WHERE deptno='D_01'; 5、SQL>SELECT ename FROM emp WHERE deptno='D_01' AND age>40 AND Sal<400; 试题二

ORACLE数据库期末考试题目及答案

期末考试卷(卷) 课程名称:数据库考试方式:开卷()闭卷(√) 、本试卷共4 页,请查看试卷中是否有缺页。 2、考试结束后,考生不得将试卷、答题纸带出考场。 1、以下(a )内存区不属于SGA。 A.PGA B.日志缓冲区 C.数据缓冲区 D.共享池 2、d )模式存储数据库中数据字典的表和视图。 (A.DBA B.SCOTT C.SYSTEM D.SYS 3、Oracle 中创建用户时,在若未提及DEFAULT TABLESPACE 关键字,Oracle 就将 c )则(表空间分配给用户作为默认表空间。A.HR B.SCOTT C.SYSTEM D.SYS

4、a )服务监听并按受来自客户端应用程序的连接请求。(A.OracleHOME_NAMETNSListener B.OracleServiceSID C.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer 5、b )函数通常用来计算累计排名、移动平均数和报表聚合等。(A.汇总B.分析C.分组D.单行 6、b)SQL 语句将为计算列SAL*12 生成别名Annual Salary (A.SELECT ename,sal*12 …Annual Salary? FROM emp; B.SELECT ename,sal*12 “Annual Salary” FROM emp; C.SELECT ename,sal*12 AS Annual Salary FROM emp; D.SELECT ename,sal*12 AS INITCAP(“Annual Salary”) FROM emp; 7、锁用于提供(b )。 A.改进的性能 B.数据的完整性和一致性 C.可用性和易于维护 D.用户安全 8、( c )锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删除行。 A.行共享B.行排他C.共享D.排他 9、带有( b )子句的SELECT 语句可以在表的一行或多行上放置排他锁。 A.FOR INSERT B.FOR UPDATE C.FOR DELETE D.FOR REFRESH

ORACLE数据库习题(有答案)

--1.列出至少有一个雇员的所有部门。 SELECT * FROM DEPT WHERE 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 mgrName FROM emp ygb,emp sjb WHERE =; --4.列出入职日期早于其直接上级的所有雇员。 SELECT * FROM emp ygb WHERE hiredate<(SELECT hiredate FROM emp sjb WHERE =; --5.列出所有部门的名称和这些部门的雇员编号及姓名(没有雇员的部门包含在内) SELECT dname,ename FROM dept a LEFT JOIN emp b ON =; --6.列出所有JOB 为“CLERK”(办事员)的员工姓名及其部门名称 SELECT ename,dname FROM dept a,emp b WHERE = AND job='CLERK'; --7.列出各种类型的最低薪金,并使最低薪金大于。 SELECT job,MIN(sal) FROM emp GROUP BY job HAVING MIN(sal)>1500; --8.列出从事“SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号。 SELECT ename FROM emp WHERE deptno=(SELECT deptno FROM dept WHERE dname='SALES'); --9.列出薪金高于公司平均水平的所有雇员。 SELECT * FROM EMP WHERE SAL>(SELECT AVG(SAL) FROM EMP); --10.列出与“SCOTT”从事相同工作的所有雇员。 SELECT * FROM EMP WHERE JOB=(SELECT JOB FROM EMP WHERE ENAME='SCOTT') AND ENAME<>'SCOTT'; --11.列出薪金等于部门中任何一个雇员薪金的员工姓名和 薪金 SELECT ENAME,SAL FROM EMP WHERE SAL IN(SELECT SAL FROM EMP WHERE DEPTNO=30); SELECT ENAME,SAL FROM EMP WHERE SAL =ANY(SELECT SAL FROM EMP WHERE DEPTNO=30); --12.列出薪金高于部门中所有雇员薪金的员工姓名和薪金SELECT * FROM EMP WHERE SAL >ALL(SELECT SAL FROM EMP WHERE DEPTNO=30); --13.列出所有部门的部门名称、地点以及该部门中雇员的数量 SELECT DNAME,DEPTNO,LOC, (SELECT COUNT(*) FROM EMP E WHERE = AS TOTAL FROM DEPT; --14.列出各种类别工作的最低工资 SELECT job,MIN(sal) FROM emp GROUP BY job; --15.列出各个部门的MANAGER(经理)的最低薪金。 SELECT MIN(sal) FROM emp WHERE job='MANAGER' GROUP BY DEPTNO; --1. 查询所有部门员工的编号、姓名、月薪及奖金。 select empno,ename,sal,comm from emp where deptno=10; --2. 查询员工WHITE的员工编号。 select empno from emp where ename='WHITE'; --3. 查询所有员工的编号及收入。(提示:收入=月薪+奖金)select empno 编号,sal+nvl(comm,0) as 收入from emp; --4. 查询所有员工的编号、姓名、工种及其工龄,按工龄降序排序,工龄相同时按编号升序排序。 Select empno,ename,job,trunc(months_between(sysdate,hiredate)/12) 工龄from emp order by 工龄desc,empno asc; --5. 统计各部门的员工人数及工种类型数。 select deptno,count(*) 人数,count(distinct job) 工种类型数from emp group by deptno; --6. 查询部门人数多于人的部门编号。 select deptno,count(*) from emp group by deptno having count(*) > 3; --7. 统计各部门各种工作类别的最低月薪,显示最低薪金大于的记录。 select deptno,job,min(sal) from emp group by deptno,job having min(sal)>1500; --8. 统计、及部门员工平均工资。 select deptno,coung(*) from emp where deptno in (10,20,30) group by deptno; --9. 查询工资水平在至间的各部门员工人数。 select deptno,count(*) from emp where sal between 2000 and 5000 group by deptno; --10. 查询公司最高领导人的员工编号及姓名。 select empno,ename from emp where mgr is null; --1、编写一查询,显示与Blake在同一部门工作的雇员的姓名和受雇日期,但是Blake不包含在结果内。 select ename,hiredate from emp where deptno in (select deptno from emp where lower(ename)='black') and lower(ename)!='black'; --2、创建一查询,显示工资大于平均工资水平的雇员的编号及姓名,输出结果按工资降序排列。 select empno,ename,sal from emp where sal>(select avg(sal) from emp) order by sal desc; --3、显示位置在Dallas的部门内的雇员的姓名、编号及工作。 select ename,empno,job from emp inner join dept on = where lower(loc)='dallas'; --4、显示被King直接管理的雇员的姓名及其工资。 select , from emp e1 inner join emp e2 on = where lower='king'; --5、显示在Sales部门工作的雇员的部门编号、姓名及工作。 select empno,ename,job from emp inner join dept on = where lower(dname)='sales'; --6、编写一查询,显示与能获得奖金的雇员的奖金和工资同时匹配的雇员的编号和工资。 select ,, from emp e1 inner join emp e2 on = and = where !=; --7、显示与工作在Dallas的雇员的工资及奖金同时匹配的雇员的姓名、部门名称及工资。 select ,, from emp e inner join dept d on = where (sal,nvl(comm,0)) in (select sal,nvl(comm,0) from emp where deptno in (select deptno from dept where lower(loc)='dallas') ); --8、创建一查询,显示能获得与Scott一样工资和奖金的其他雇员的姓名、受雇日期及工资。 select ename,hiredate,sal from emp where (sal,nvl(comm,0)) in

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 Class Add ____________ PK_LASS_ID (Constraint) PRIMARY KEY ________ (ID) 14. 每个Oracle 10g数据库在创建后都有4个默认的数据库用户:system、sys、sysman和DBcnmp

Oracle基础练习题及答案(子查询)

子查询 1.查询和scott相同部门的员工姓名ename和雇用日期hiredate select ename,hiredate from emp where deptno=(select b.deptno from emp a,dept b where a.deptno=b.deptno and ename='SCOTT'); 2.查询工资比公司平均工资高的所有员工的员工号empno,姓名 ename和工资sal。 select empno,ename,sal from emp where sal>(select avg(sal) from emp ); 3.查询和姓名中包含字母u的员工在相同部门的员工的员工号 empno和姓名ename select empno,ename from emp a,dept b where a.deptno(+)=b.deptno and a.deptno=(select deptno from emp where ename like'%U%'); 4.查询在部门的loc为newYork的部门工作的员工的员工姓名 ename,部门名称dname和岗位名称job select ename,dname,job from emp a,dept b where a.deptno=b.deptno and loc='NEW YORK'; 5.查询管理者是king的员工姓名ename和工资sal select a.ename,a.sal from emp a,emp b where a.mgr=b.empno and b.ename='KING';

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

利用scott用户自带的四张表完成如下作业: 1.列出至少有一个员工的所有部门 selectb.deptno,b.dnamefromemp a,dept bwherea.deptno=b.deptnogroupbyb.deptno,b.dnamehavingcount(*)>=1; 2.列出薪金比SMITH高的所有员工 select*fromempwheresal>(selectsalfromempwhereename='SMITH'); 3.列出所有员工的姓名及其直接上级领导的姓名 selecta.ename,b.ename "leader"fromemp a,emp bwherea.mgr=b.empno; 4.列出受雇日期早于其直接上级的所有员工的编号,姓名,部门名称 selecta.empno,a.ename,a.hiredate,c.dnamefromempa,empb,deptcwherea.mgr= b.empnoanda.deptno=c.deptnoanda.hiredate

Oracle笔试题及答案

一、选择题(每题1分) 1.Oracle发出下列select语句: SQL> select e.empno, e.ename, d.loc 2 from emp e, dept d 3 where e.deptno = d.deptno 4 and substr(e.ename, 1, 1) = ‘S’; 下列哪个语句是Oracle数据库中可用的ANSI兼容等价语句? A.select empno, ename, loc from emp join dept on emp.deptno = dept.deptno where substr(emp.ename, 1, 1) = ‘S’; B.select empno, ename, loc from emp, dept on emp.deptno = dept.deptno where substr(emp.ename, 1, 1) = ‘S’; C.select empno, ename, loc from emp join dept where emp.deptno = dept.deptno and substr(emp.ename, 1, 1) = ‘S’; D.select empno, ename, loc from emp left join dept on emp.deptno = dept.deptno and substr(emp.ename, 1, 1) = ‘S’; 2.你要对操纵Oracle数据库中的数据。下列哪个选项表示Oracle中select语句的功能, 并且不需要使用子查询? A.可以用select语句改变Oracle中的数据 B.可以用select语句删除Oracle 中的数据 C.可以用select语句和另一个表的内容生成一个表 D.可以用select语句对表截断 3.Oracle数据库中发出一个查询。下列哪个选项不能查询对用户定义静态表达式执行数学 运算时的查询组件? A.列子句 B.表子句 C.DUAL表 D.where子句 4.你要操纵Oracle数据,下列哪个不是SQL命令? A.select * from dual; B.set define C.update emp set ename = 6543 where ename = ‘SMITHERS’; D.create table employees(empid varchar2(10) primary key); 5.你要在Oracle中定义SQL查询。下列哪个数据库对象不能直接从select语句中引用?A.表 B.序列 C.索引 D.视图 6.你要根据PRODUCT_NAME列从PROFITS表查询中过滤返回的数据。下列哪个子句包含相 应过滤条件的引用? A.select B.from C.where D.having 7.下列代码显示了PROFITS表输出的局部: PRODUCT_NAME PRODUCT_TYPE QTR_END_DATE PROFIT ------------ ------------ ------------ ------------- BARNEY DOLL TOY 31-MAR-2001 6575430.30 GAS GRILL APP 31-MAR-2001 1234023.88

Oracle试题(含答案)

正确答案:D 2.已知数据库中有员工表 员工表字段介绍: ID LAST_NAME FIRST_NAME USERID START_DATE COMMENTS MANAGER_ID TITLE DEPT_ID SALARY COMMISSION_PCT 部门表的字段介绍: ID 部门编号 NAME 部门名 REGION_ID 地区编号 注:以下所有数据库相关题目,均使用这两个表 把s_emp 表中的每个人的全名和工资列出来的 A. select first_ name|last_ name ,salary from s_emp C++CSD/ESD1405 1.把工资大于 1000 的 first_name,salary SQL 语句是? select A. first_ name,salary from s_emp tdJ B. select first_ name,salary from s_emp L C. select first_ name,salary from s_emp order by salary,first_ name order by salary,first_ name asc order by salary desc,first_ name 显示出来,按工资排序,工资相同按 first 」ame 降序的 D. select first_ name,salary from s_emp order by salary,first_ name desc s_emp 和部门表s_dept ,具体字段如下 员工编号 员工姓 员工名 用户编号 入职日期 员工备注信息 员工的领导ID 员工的职位 部门的编号 员工的月薪 提成 SQL 语句是?

oracle习题及答案

1.查询工资大于12000的员工姓名和工资 Select last_name||' '||first_name,salary from employees where salary >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 '%94'; 7.选择公司中没有管理者的员工姓名及job_id Select last_name||' '||first_name,job_id from employees where Manger_id is null;

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

《Oracle数据库应用》 一、选择题 1.在Windows操作系统中,Oracle的____服务监听并接受来自客户端应用程序的连接请求。 A、OracleHOME_NAMETNSListener B、OracleServiceSID C、OracleHOME_NAMEAgent D、OracleHOME_NAMEHTTPServer 2.ORACLE中,用来判断列值是否为空的操作符是____ A、==NULL B、IS NULL C、 AS NULL D、 NULLIS 3.在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、System B、Sa C、Scott D、Administrator 6.下列哪一项是Oracle数据库中最小的存储分配单元() A、表空间 B、段 C、盘区 D、数据块 7.( )是一个很小的二进制文件,它维护着数据库的全局物理结构,用以支持数据库成功地启动和运行。创建数据库时,同时就提供了与之对应的控制文件。 A、数据文件 B、控制文件 C、重做日志文件 D、以上都不对 8.若用户要连接数据库,则该用户必须拥有的权限是() A、create table B、create index C、create session D、create user

Oracle数据库基础题库【含答案】

1、判断题,正确请写写"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、在连接操作中,如果左表和右表中不满足连接条件的数据都出现在 结果中,那么这种连接是全外连接。( T ) 21、自然连接是根据两个表中同名的列而进行连接的,当列不同名时, 自然连接将失去意义。( T ) 23、PL/SQL代码块声明区可有可无。( T ) 24、隐式游标与显式游标的不同在于显式游标仅仅访问一行,隐式的可 以访问多行。( F )

相关文档