当前位置:文档之家› oracle课后题答案

oracle课后题答案

oracle课后题答案
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数据库运行和维护阶段。

一、选择题

1、Oracle 11g不具备的版本是(C)

A.个人版

B.标准版

C. 扩展板

D.企业版

2、oracle 数据库的数据字典不能做的工作有(B)

A.查找oracle数据库用户信息

B.查找oracle数据库表中的信息

C.查找oracle数据库模式对象的信息

D.查找oracle数据库存储结构的信息

二、填空题

1、 Oracle体系结构由内存结构、进程结构和存储结构组成。

2、Oracle数据库中,段包括数据段、牵引段、回滚段和临时段四种。

3、 Oracle物理存储结构包含三种数据文件:控制文件、数据文件和日志文件

三.思考题

1.名词解释:

数据块:

是数据块使用的I/O最小单元,也是最基础的存储单位,又称逻辑块或oracle 块。数据块包括块头和存储区。

区:

是数据存储空间分配的逻辑单元,,在一个段中可以存在多个区间,区间是数据一次性预留的一个较大的存储空间。

段:

是对象在数据库中占用的空间。从数据库存储的角度来看,段和数据库对象时一一对应的。一个段只能属于一个表空间,一个表空间可以有多个段。

表空间。

2.Oracle的物理结构主要包括那些类型的文件?

答:控制文件、数据文件、重做日志文件等操作系统文件等。

第三章

一:选择题

1.下列操作系统中,不能运行Oracle 11g的是(C)。

A.Windows

B.Linux

C.Macintosh

D.Unix

2.以下不属于Oracle安装前的准备工作的是(C)。

A.对服务器进行正确的网络配置,并且记录IP地址、域名的网络配

置信息,如果采用动态IP,需先将Microsoft LoopBack Adapter

配置为系统的主网络适配

B.卸载其他的数据库管理系统

C.如果服务器上运行有其他Oracle服务,必须在安装前将他们全部

停止

D.关闭Windows防火墙和某些杀毒软件

二:填空题

1.卸载Oracle需要经过停止服务、卸载组件和删除遗留成分三个步骤。

2.Oracle数据库监听器的启用有3种方法:利用Enterprise Manager、

用监听器控制实用程序和利用Net Manager提供的“监听程序”。

第四章

一、选择题

1、SQL语言中不属于数据定义的命令动词是(C)。

A、CREATE

B、DROP

C、GRANT

D、ALTER

2、在同样的条件下,下面的哪个操作得到的结果集有可能最多?(D)

A、内连接

B、左外连接

C、右外连接

D、完全连接

3、下列操作权限中,在视图上不具备的是(B)。

A、SELECT

B、ALTER

C、DELETE

D、INSERT

二、填空题

1、SQL语言的功能主要包括数据定义、数据操作和数据控制三类。

2、希望删除查询结果集中重复的行,需要使用distinct 关键字。

3、常用的统计函数有count 、MIN、MAX、sum 和A VG。

三、实训题

1、登陆Oracle,进入HR方案,使用DESC和SELECT命令查看各个表的结构以及现有的数据。

代码如下:

(1)a.查看JOBS表的结构:DESC JOBS;

b.查看JOBS 表的部分数据:SELECT * FROM JOBS;

(2)a.查看EMPLOYEES表的结构:DESC EMPLOYEES;

b.查看EMPLOYEES表的部分数据:SELECT * FROM EMPLOYEES ;

(3)a.查看表的结构:DESC DEPARTMENTS;

b.查看DEPARTMENTS表的部分数据:SELECT * FROM DEPARTMENTS;

(4)a.查看REGIONS表的结构:DESC REGIONS;

b.查看REGIONS表的部分数据:SELECT * FROM REGIONS;

(5)a.查看LOCA TIONS表的结构:DESC LOCA TIONS;

b.查看LOCA TIONS表的部分数据:SELECT * FROM LOCATIONS;

(6)a.查看COUNTRIES表的结构:DESC COUNTRIES;

b.查看COUNTRIES表的部分数据:SELECT * FROM COUNTRIES;

(7)a.查看JOB_JISTORY表的结构:DESC JOB_JISTORY;

b.查看JOB_JISTORY表的部分数据:SELECT * FROM JOB_JISTORY;

2、在HR方案中进行表的创建、修改和删除(CREATE、DROP、ALTER命令)。

创建表:CREATE TABLE MANAGER(

MANAGER_ID NUMBER2(6) NOT NULL UNIQUE,

FIRST_NAME V ARCHAR2(20),

LAST_NAME V ARCHAR2(25),

DEPT_ID V ARCHAR2(10));

修改:ALTER TABLE MANAGER ADD SEX VARCHAR2(2);

ALTER TABLE MANAGER MODIFY MANAGER_ID UNMBER(8);

删除:ALTER TABLE MANAGER DROP UNIQUE(MANAGER_ID) ;

DROP TABLE MANAGER;

3.在HR方案中完成对EMPLOYEES表以及相关各表的各种查询操作(WHERE子句

GROUP BY子句以及各种连接等)。

代码如下:

查询:SELECT * FROM HR.COUNTRIES,HR.DEPARTMENTS,HR.EMPLOYEES;

GROUP BY 语句:SELECT DEPARTMENT_ID,COUNT(*),AVG(SALARY)

FROM EMPLOYEES

GROUP BY ROLLUP(DEPARTMENT_ID);

各种连接:

(1)简单连接:SELECT EMPLOYEES.*,JOBS.* FROM

EMPLOYEES,DEPARTMENTS;(连接EMPLOYEES和

DEPARTMENTS)

(2)内链接:SELECT https://www.doczj.com/doc/0f5756183.html,ST_NAME,JOBS.JOB_TITLE

FROM EMPLOYEES INNER JOIN JOBS ON

EMPLOYEES.JOB_ID=JOBS.JOB_ID

(3)自然连接:SELECT EMPLOYEES

https://www.doczj.com/doc/0f5756183.html,ST_NAME,EM.FIRST_NAME,EM.EMPLOYEE_ID,DEP.DEPA

RTMENT_NAME

FROM EMPLOYEES EM NA TURAL JOIN DEPARTMENTS DEP

WHERE DEP.DEPARTMENT_NAME=”SALES”

(4)外连接:SELECT EM.EMPLOYEE_ID,https://www.doczj.com/doc/0f5756183.html,ST_NAME,

DEP.DEPARTMENT_NAME

FROM EMPLOYEES EM LEFT OUTER JOIN DEPARTMENTS DEP

ON EM.DEPARTMENT_ID = DEP. DEPARTMENT

WHERE EM.JOB_ID=’IT_PROG’; (左连接)

(5)自身连接:SELECT EMPLOYEES_ID ,LAST_NAME,JOB_ID

FROM EMPOYEES

ORDER BY EMPLOYEE_ID

4.在HR方案中,针对EMPLOYEES表进行数据的创建、修改和删除操作(INSERT、

UPDATE、DELETE命令)。

代码如下:

INSERT: INSERT INTO EMPLOYEES V ALUES(‘2001’,’TOM’,’KING’,’SKING’,516.123.3456,1999.12.12,’IT_PR

OG’,20006,103,60)

UPDATE:UPDATE EMPLOYEES

SET SALARY=SALAY+100

WHERE JOB_ID=”IT_PROG”;(IT_PROG部门的薪水涨100$)DELETE:DELETE FROM EMPLOYEES

WHERE FIRST_NAME=’TOM’;(删除真名叫tom的人的信息)

第五章

一、选择题

1、下列属于Oracle PL/SQL的数据类型是(A.DATE)。.

2、下面不属于Oracle PL/SQL 的参数类型是(D.null)。

二、填空题

1、显示游标的处理包括声明游标、打开游标、提取游标和关闭游标4个步骤。

2、包有两个独立的部分:说明部分和包体部分。

3、触发器的类型包括DML触发器、INSTEND OF触发器和系统触发器。

三、实训题

1、实现一个游标,完成对emplouees表的遍历;

SQL> create or replace procedure show_all_employees

2 as

3 emp_row employees%rowtype;

4 cursor emp_cur is select * from employees;--声明游标

5 begin

6 OPEN emp_cur;--打开游标

7 LOOP

8 FETCH emp_cur INTO emp_row;--提取行

9 EXIT WHEN emp_cur%NOTFOUND;

10 DBMS_OUTPUT.PUT_LINE('雇员ID是:'||emp_row.employee_id||' 姓名是:'||emp_row.first_name||' '||emp_https://www.doczj.com/doc/0f5756183.html,st_name);

11 END LOOP;

12 CLOSE emp_cur;--关闭游标

13 end;

14 /

Procedure created

SQL> execute show_all_employees();

2、实现一个过程,完成对emplouees表中job_id为'IT_PROG'的员工salary的增加,增

加额度为800;

create or replace procedure salary_add(jobid in

employees.JOB_ID%type,adds in employees.SALARY%type)

2 as

3 begin

4 update employees set SALARY=SALARY+adds where JOB_ID=jobid;

5 dbms_output.put_line('emploees表中列的'||jobid||'增加的salary为

'||adds);

6 end salary_add;

7 /

Procedure created

SQL> set serverout on;

SQL> EXECUTE salary_add('IT_PROG',800);

emploees表中列的IT_PROG增加的salary为800

PL/SQL procedure successfully completed

3.实现一个函数,完成对EMPLOYEES表中JOB_ID为“IT_PROG的员工SALARY的增加”create or replace function

incr_emp_salary_func(inrement in number) return boolean

IS

begin

update employees set salary=salary+inrement where

job_id='IT_PROG';

if sql%notfound then

return false;

end if;

return true;

end;

第七章

一、选择题

1. create user 命令中的default tablespace语句用于下列哪种中设置?(A)

A、用户创建的数据库对象

B、用户创建的临时对象

C、用户创建的系统对象

D、以上都不对

2. 下列哪一种不属于系统权限(A)。

A、Select

B、Update Any

C、Create View

D、Create Session

3. 哪一种操作受表空间配额的限制?(C)

A、Update

B、Delete

C、Create

D、以上全是

二、填空题

1. 数据库中的权限包括系统权限和对象权限两类。

2. Oracle数据库安全控制机制包括用户管理、权限管理、角色管理、表空间设置和配额、概要文件管理、数据库审计6个方面。

三、实训题

1. 创建一个口令认证的数据库用户usera_exer,口令为usera,默认表空间为USERS,配额为10MB,初始账户为锁定状态。

create user usera_exer identifiled by usera default tablesspace users quota 10m on users account lock;

2. 创建一个口令认证的数据库用户userb_exer,口令userb。

create user userb_exer identifiled by userb;

3. 将用户usera_exer的账户解锁。

alter user usera_exer account unlock;

4. 为usera_exer用户授权Create Session权限、Scott.emp的select权限和update权限,同时允许该用户将获取的权限授予其他用户。

grant create session to usera_exer with option;

grant select,update on scott.emp to usera_exer with option;

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数据库习题(有答案)

--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试题(含答案)

_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习题练习

习题1安装和运行Oracle数据库 一、填空题 1.数据库管理系统采用的数据模型主要有:(网状模型)、(层次模型)和(关系模型)。 2.(交换方式)是指数据库使用者利用数据库管理系统提供的软件工具,直接对数据库进行操作,操作结果立即返回到操作界面。 3.(数据库)是存储在计算机内,按一定数据模型组织的、可共享的数据集合。 4.通常,把每一个类数据对象的个体称为(实体)。 5.对于每一个实体集,可指定一个码为(主码)。 6.Oracle是(面向对象的关系型)数据库管理系统。 7.Oracle系统主要是由(oracle database)和(oracle application)两大产品及Oracle管理程序包等其他产品组成的。 8.从Oracle DataBase 10g开始,通过设置初始化参数(SHAED_SERVERS)可以自动激活共享服务器特征。 9.(Oracle数据库10g企业版)是为关键任务的应用程序(如大业务的在线事务处理(OLTP)环境、查询密集的数据仓库和要求苛刻的因特网应用程序)提供了高效、可靠、安全的数据管理的Oracle DataBase 10g版本。 10.Oracle 10g提供了(Automatic Storage Management ),从而在不需要第三方面产品的情况下实现冗余性和数据分离。 二、选择题 1.两个实体集A和B之间的联系不可能是以下(D)种情况。 A.1:1 B.1 : n C.m : n D.以上答案都不对 2.绘制E-R图时,当一个属性或属性组合指定为主码时,在实体集与属性的连接线上标记( D)。 A.矩形框 B.带圆角矩形框 C.线段 D.斜线 3.绘制E-R图时,实体用(A )表示。 A.矩形框 B.带圆角矩形 C.线段 D.斜线 4.(C)语言是过程化SQL的缩写。

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基础练习题及答案(子查询)

子查询 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.在多进程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用户自带的四张表完成如下作业: 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数据库试题及答案

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岁的记录

Oracle数据库查询练习及答案

1 找出佣金高于薪金60%的雇员。 SELECT * FROM emp WHERE comm>sal*; 2 找出部门10中所有经理和部门20中所有办事员的详细资料。 SELECT * FROM emp WHERE deptno=10 AND JOB='MANAGER' OR deptno=20 AND job='CLERK'; 3 找出部门10中所有经理,部门20中所有办事员以及既不是经理又不是办事员但其薪金大于或等2000的所有雇员的详细资料。 SELECT * FROM emp WHERE deptno=10 AND JOB='MANAGER' OR deptno=20 AND job='CLERK' OR JOB NOT IN('MANAGER','CLERK') AND SAL>=2000; SELECT * FROM emp WHERE deptno=10 AND JOB='MANAGER' OR deptno=20 AND job='CLERK' OR (JOB<>'MANAGER' AND JOB<>'MANAGER' AND SAL>=2000); 4 找出收取佣金的雇员的不同工作。 SELECT DISTINCT JOB FROM EMP WHERE COMM IS NOT NULL; 5 找出不收取佣金或收取的佣金低于300的雇员。 SELECT * FROM EMP WHERE COMM IS NULL OR COMM<300; 6 找出各月最后一天受雇的所有雇员。 SELECT * FROM EMP WHERE HIREDATE=LAST_DAY(HIREDATE); --找出各月最后受雇的所有雇员 SELECT * FROM emp WHERE hiredate IN (SELECT maxh FROM (SELECT MAX(HIREDATE) maxh,EXTRACT(MONTH FROM hiredate)FROM EMP GROUP BY EXTRACT(MONTH FROM hiredate))); 7 找出晚于26年之前受雇的雇员。 SELECT * FROM emp WHERE months_between(SYSDATE,hiredate)<=26*12; 8 显示只有首字母大写的的所有雇员的姓名。 SELECT * FROM emp WHERE ename=initcap(ename); 9 显示正好为5个字符的雇员的姓名。 SELECT * FROM emp WHERE length(ename)=5; 10显示不带有“R”的雇员姓名。 SELECT * FROM emp WHERE instr(ename,'R')=0; SELECT * FROM emp WHERE ename NOT LIKE '%R%'; 11显示所有雇员的姓名的前三个字符。 SELECT substr(ename,1,3) AS en3 FROM emp; 12显所有雇员的姓名,用a替换所有“A”。

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简单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(select sal from emp where ename=‘SMITH’); 11. 列出所有员工的姓名及其直接上级的姓名。select a.ename 员工姓名,b.ename 直接上级from emp a,emp b where a.mgr=b.empno; 12. 列出受雇日期早于其直接上级的所有员工。select a.ename from emp a,emp b where a.hiredate< b.hiredate and a.mgr=b.empno; 13. 列出所有“CLERK”(办事员)的姓名及其部门名称。 14. 列出最低薪金大于1500的各种工作。select job from emp where sal>1500; 15. 列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。Select ename from emp where deptno=(select deptno from dept where dname=’SALES’); 16. 列出薪金高于公司平均薪金的所有员工。Select ename from emp where sal>(select avg(sal) as avg_sal from emp); 17. 列出与“SCOTT”从事相同工作的所有员工。Select ename from emp where job=(select job from emp where ename =’SCOTT’); 18. 列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。Select ename,sal from emp where deptno!= 30,sal in (select sal from emp where deptno=’30’);

相关主题
文本预览
相关文档 最新文档