oracle测试试题及答案

oracle测试试题及答案
oracle测试试题及答案

【例1】创建一个名为IT_EMPLOYEES的表,它由编号EMPLOYEE_ID、名

FIRST_NAME、姓LAST_NAME、邮箱EMAIL、电话号码PHONE_NUMBER、部门编号JOB_ID、薪资SALARY和部门经理编号MANAGER_ID八个属性组成。

create table IT_EMPLOYEES

(

EMPLOYEE_ID NUMBER(6) not null unique,

FIRST_NAME VARCHAR2(20),

LAST_NAME VARCHAR2(25) not null,

EMAIL VARCHAR2(25),

PHONE_NUMBER VARCHAR(20),

JOB_ID VARCHAR2(10),

SALARY NUMBER(8,2),

MANAGER_ID NUMBER(6)

);

【例2】建立程序员的视图PROG_EMPLOYEES(JOB_ID=’IT_PROG’),其中隐含了视图的列名.

create view prog_employees

as

select employee_id,first_name,last_name,email,phone_number,salary,manager_id from it_employees

where job_id = 'IT_PROG';

【例3】执行下面的CREATE INDEX语句,创建索引:

CREATE INDEX IT_LASTNAME ON IT_EMPLOYEES(LAST_NAME);

【例4】将前文创建的视图PROG_EMPLOYEES删除.

DROP VIEW PROG_EMPLOYEES;

【例5】向IT_EMPLOYEES表中增加“雇员生日”列,其数据类型为日期型:ALTER TABLE IT_EMPLOYEES ADD BIRTHDATE DATE;

【例6】将IT_EMPLOYEES表的MANAGER_ID字段改为8位:

ALTER TABLE IT_EMPLOYEES MODIFY MANAGER_ID NUMBER(8);

【例7】删除IT_EMPLOYEES表EMPLOYEE_ID字段的UNIQUE约束:

ALTER TABLE IT_EMPLOYEES DROP UNIQUE(EMPLOYEE_ID);

【例8】创建表COUNTRIES时的列顺序为:COUNTRY_ID、COUNTRY_NAME、REGION_ID。

通过SELECT指定列,可以改变列的顺序。

SELECT REGION_ID,COUNTRY_NAME FROM COUNTRIES;

【例9】对employees表中薪金的调整,所有人员的薪金增加10%:

select employee_id,first_name,last_name,salary*(1+0.1) from employees;

【例10】在EMPLOYEES表中包含一个DEPARTMENT_ID列。假设,现在要检索该表中出现的所有部门,这时我们不希望有重复的部门出现,这时需要在DEPART MENT_ID列前面加上关键字DISTINCT。

select distinct department_id from employees;

【例11】编写一个查询,判断所FIRST_NAME列以"B"开头的雇员:

select employee_id,first name,last_name from employees

Where first_name like'B%';

【例12】查询出所有属于IT部门(DEPARTMENT_ID=60),并且薪金值大于2000的雇员。

select employee_id,first_name,last_name,salary from employees

where department_id=60 and salary>2000;

【例13】在下面的查询中,将选择具有不同部门的雇员信息:

select employee_id,ftrst name,last_name,department_id from employees

where department_id=60 or department_id=30;

【例14】使用EMPLOYEES进行NULL值的插入和查询:

insert into departments(department_id,department_name,manager_id)

values(300,'数据库',NULL);

【例15】下面的查询语句中,将使用ORDER BY子句对检索到的数据进行排序,该排列顺序是按照薪金从低到高的升序进行的:

select employee_id,first_name,last_name,salary

from employees

where salary>2000

order by salary;

【例16】以下的查询中,从EMPLOYEES表中选择相应的列,分析JOB_ID的SALARY 信息。

select job_id,salary from employees order by job_id;

【例17】使用GROUP BY子句对薪金记录进行分组,对于使用一些SQL函数计算每个JOB_ID的平均薪金(AVG)、所有薪金的总和(SUM),以及最高薪金(MAX)和各组的行数,如图3.16所示。

select job_id,avg(salary),sum(salary),max(salary),count(job_id) from employees group by job_id;

【例18】下面是一个错误的查询,由于在SELECT子句后面出现了SALARY列,而该列并没有出现在GROUP BY子句中,所以该语句是一个错误的查询。

select job_id,salary,avg(salary),sum(salary),max(salary),count(*)

from employees group by job_id;

【例19】下面的查询对各个部门中的各个工种类型进行分组:

select department_id,job_id,avg(salary),sum(salary),max(salary),count(*)

from employees group by department_id,job_id;

【例20】在下面的示例中,GROUP BY子句将使用ROLLUP运算符汇总JOB_ID列。

select job_id,avg(salary),sum(salary),max(salary),count(*)

from employees group by rollup(job_id);

【例21】列出平均薪金值大于10000的统计信息:

select job_id,avg(salary),sum(salary),max(salary),count(*)

from employees group by job_id having avg(salary)>10000;

【例22】以下的查询将EMPLOYEES表和DEPARTMENT表相连接,而生成一个笛卡儿积:

select employee_id,last_name,department_name from employees,departments;

【例23】下面的语句通过在WHERE子句中使用连接条件,实现了查询雇员信息,以及雇员所对应的部门信息:

select employee_id,last_name,department_name from employees,departments wherc employees.department_id=departments.department_id;

【例24】增加新的限定条件,只显示工作部门为Shipping的雇员信息:

select employee_id,last_name,department_name

from employees,departments

where employees.department_id=departments.department_id

and departments.department_name='Shipping';

【例25】以下的查询使用内连接查询雇员信息和雇员所有的部门名称:

select em.employee_id,https://www.360docs.net/doc/8117612386.html,st_name,dep.department_name

from employees em inner join departments dep

on em.department_id=dep.department_id

where em.job_id='AD_ASST';

【例26】使用内连接查询雇员的信息、名称以及工作名称:

select em employee_id,https://www.360docs.net/doc/8117612386.html,st_name,dep.department_name,j.job_title

from employees em inner join jobs

on em.job_id=jobs.job_id

inner join departments dep

on em.department_id=dep.department_id

where em.job_id='IT_PROG';

【例27】演示内连接和外连接的区别:

insert into employees(employee_id,last_name,email,hire_date,job_id,department_id) values(1000,'blaine','blaine@https://www.360docs.net/doc/8117612386.html,',to_date('2009-05-01', yyyy-mm-dd'),

'IT_PROG',null);

select em.employee_id,https://www.360docs.net/doc/8117612386.html,st_name,dep.department_name

from employees em inner join departments dep

on em.department_id=dep.department_id

where em.job_id='IT_PROG';

【例28】用户通过自连接,在同一行中看到雇员和部门经理的信息。

select https://www.360docs.net/doc/8117612386.html,st_name "manager",https://www.360docs.net/doc/8117612386.html,st_name "employee"

from employees eml left join employees em2

on em1.employee_id=em2.manager_id

order by em1.employee_id;

【例29】下面的示例中,第一个查询将选择所有LAST NAME列以C或者S开头的雇员信息,第二个查询将会选择所有LAST_NAME列以S或者T开头的雇员信息。其结果是所有LAST_NAME列以C或者S或者T开头的雇员信息均会被列出。

select employee_id,last_name

from employees

where last_name like 'C%'or last_name like 'S%'

union

select employee_id,last_name

from employees

whefe last_name like 'S%' or last_name like 'T%';

【例30】修改例29的查询语句,使用INTERSECT集合操作,将在查询结果集中保留LAST_NAME以S开头的雇员:

select employee_id,last_name

from employees

where last_name like 'C%'or last_name like 'S%'

intersect

select employee_id,last_name

from employees

whefe last_name like 'S%' or last_name like 'T%';

【例31】以下面的查询语句为例,使用运算符MINUS求两个要查询的差集。第一个查询会返回所有LAST_NAME以C或S开头的雇员,而第二个查询会返回所有

LAST_NAME以S和T开头的雇员。因此,两个查询结果集的MINUS操作将返回LAST_NAME以C开头的那些雇员。

select employee_id,last_name

from employees

where last_name like 'C%'or last_name like 'S%'

minus

select employee_id,last_name

from employees

whefe last_name like 'S%' or last_name like 'T%';

【例32】使用子查询查看所有部门在某一地区(1700)的雇员信息:

select employee_id,last_name,department_id

from employees

where department_id in (

select department_id

from departments

where location_id=1700);

【例33】查询EMPLOYEES表,将薪金大于本职位平均薪金的雇员信息显示出来:

select employee_id,last_name,job_id,salary

from employees

where job_id='PU_MAN'and

salary>=(select avg(salary) from employees

where job_id=' PU_MAN ');

【例34】用INSERT语句向JOBS表添加一条记录。

insert into jobs(job_id,job_title,min_salary,max_salary)

values('IT_TEST',测试员',3000.00,8000.00);

【例35】使用DESC命令查看JOBS表中各列的定义次序,然后省略列表清单向表中添加一行记录。

desc jobs

insert into jobs values('IT_DBA','数据库管理员',5000.00,15000.00);

【例36】建立没有MAX_SALARY值的记录。

insert into jobs(job_id,job_title,min_salary) values('PP_MAN','产品经理',5000.00);

【例37】例1中我们建立了一个名为IT_EMPLOYEES的表,下面的示例将从EMPLOYEES表提取department_id等于”IT”的雇员信息,并保存到IT_EMPLOYEES 中。

insert into IT_EMPLOYEES(

employee_id,first_name,last_name,email,

phone_number,job_id,salary,manager_id)

select em.employee_id,em.first_name,em.1ast_name,em.email,

em.phone_number,em.job_id,em.salary,em.manager_id

from employees em,departments dep

where em.department_id=dep.department_id

and dep.department_name='IT’;

【例38】使用UPDATE语句为所有程序员提高15%的薪金,其运行结果如图3.37所示。

update employees

set salary = salary * 1.15

where job_id=’IT_PROG’;

【例39】使用UPDATE语句将更新编号为104的雇员薪金,调整后的薪金为IT程序员的平均薪金:

update employees

set salary=

(select avg(salary)

from employees

where job_id='IT_PROG')

where employee_id=104;

【例40】一个简单的示例,从IT_EMPLOYEES表中删除一条记录:

delete from it_employees where employee_id=107;

【例41】使用TRUNCATE语句删除IT_EMPLOYEES表中所有的记录:

truncate table it_employees;

select employee_id,last_name from it_employees;

【例42】把查询IT_EMPLOYEES表的权限授给用户User1。

GRANT SELECT

ON TABLE IT_EMPLOYEES

TO User1;

【例43】把对IT_EMPLOYEES表和JOBS表的全部操作权限授予用户User2和User3。GRANT ALL PRIVILEGES

ON TABLE IT_EMPLOYEES,JOBS

TO User2,User3;

【例44】把对表DEPARTMENT的查询权限授予所有用户。

GRANT SELECT

ON TABLE DEPARTMENT

TO PUBLIC;

【例45】把查询IT_EMPLOYEES表和修改雇员编号的权限授给用户User4。GRANT UPDATE(EMPLOYEE_ID),SELECT

ON TABLE IT_EMPLOYEES TO User4;

【例46】把对表DEPARTMENT的INSERT权限授予User5用户,并允许将此权限再授予其他用户。

GRANT INSERT

ON TABLE DEPARTMENT

TO User5 WITH GRANT OPTION;

【例47】User5将此权限授予User6:

GRANT INSERT

ON TABLE DEPARTMENT

TO User6 WITH GRANT OPTION;

【例48】User6将此权限授予User7:

GRANT INSERT

ON TABLE DEPARTMENT

TO User7;

【例49】DBA把在数据库DB_EMPLOYEES 中建立表的权限授予用户User8。

GRANT CREATETAB

ON DATABASE DB_EMPLOYEES

TO User8;

【例50】把用户User4修改雇员编号的权限收回:

REVOKE UPDATE(EMPLOYEE_ID)

ON TABLE IT_EMPLOYEES

FROM User4;

【例51】收回所有用户对表DEPARTMENT的查询权限:REVOKE SELECT

ON TABLE DEPARTMENT

FROM PUBLIC;

【例52】把用户User5对DEPARTMENT表的INSERT权限收回:REVOKE INSERT

ON TABLE DEPARTMENT

FROM User5;

【例53】ASCII函数示例:

select ASCII('A') BIG_A, ASCII('a') SMALL_A FROM dual;

【例54】CHR函数示例:

select CHR(65),CHR(97) FROM dual;

【例55】CONCAT函数示例:

select concat('oracle ','11g') name from dual;

【例56】INITCAP函数示例:

select INITCAP('oracle universal installer') name from dual;

【例57】INSTR函数示例1:

select INSTR('Moisossoppo','o',3,3) from dual;

【例58】INSTR函数示例2:

select INSTR('Moisossoppo','o',-2,3)from dual;

【例59】LENGTH函数示例:

select LENGTH(‘Oracle 11g’) name from dual;

【例60】LOWER函数示例:

select LOWER(job_id) from JOBS WHERE LOWER(job_id) LIKE 'it%';

【例61】LTRIM函数示例:

select LTRIM( 'Moisossoppo','Mois’)from dual;

【例62】REPLACE函数示例:

select REPLACE(‘feelblue’,’blue’,’yellow’) from dual;

【例63】SUBSTR函数示例:

select SUBSTR(‘Message’,1,4)from duaI;

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%'; 专业资料整理

2019年oracle期末考试试题及答案

A.PGA B.日志缓冲区C.数据缓冲区D.共享池 2、()模式存储数据库中数据字典的表和视图。 A.DBA B.SCOTT C.SYSTEM D.SYS 3、在Oracle中创建用户时,若未提及DEFAULT TABLESPACE关键字,则Oracle就将() 表空间分配给用户作为默认表空间。 A.HR B.SCOTT C.SYSTEM D.SYS 4、()服务监听并按受来自客户端应用程序的连接请求。 A.OracleHOME_NAMETNSListener B.OracleServiceSID C.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer 5、()函数通常用来计算累计排名、移动平均数和报表聚合等。 A.汇总B.分析C.分组D.单行 6、()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、锁用于提供( )。 A.改进的性能 B.数据的完整性和一致性 C.可用性和易于维护 D.用户安全 8、( )锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删除 行。 A.行共享B.行排他C.共享D.排他 9、带有( )子句的SELECT语句可以在表的一行或多行上放置排他锁。 A.FOR INSERT B.FOR UPDATE C.FOR DELETE D.FOR REFRESH 10、使用( )命令可以在已分区表的第一个分区之前添加新分区。 A.添加分区B.截断分区 C.拆分分区D.不能在第一个分区前添加分区 11、( )分区允许用户明确地控制无序行到分区的映射。 A.散列B.范围C.列表D.复合 12、可以使用()伪列来访问序列。 A.CURRVAL和NEXTVAL B.NEXTVAL和PREVAL C.CACHE和NOCACHE D.MAXVALUE和MINVALUE 13、带有错误的视图可使用()选项来创建。 A.FORCE B.WITH CHECK OPTION C.CREATE VIEW WITH ERROR D.CREATE ERROR VIEW

最新Oracle期末考试复习题2资料

复习题 一、填空题: 1. Oracle EnterpriseManager是一个基于 B/S的框架系统。 2.Oracle数据库的存储结构分为物理结构和逻辑结构。 3.在游标或者游标变量打开后还没有进行第一次提取时,%found属性为null。 4. 在oracle中已commit或rollback作为上一个事务的结束标志及下一个新事物开始的标志。 5. DML表示数据操作语言,主要的DML有SELECT,INSERT,UPDATE,DELETE. 6.索引的主要目标是提高访问的速度。 7.在Oracle database 10g 系统中,可以使用DBCA工具和CREATE DATEBASE命令两种方式创建数据库。 8. 命令Startup nomount只能启动数据库实例,但不能装载和打开数据库。 9.在输入URL进入Oracle Enterprice Manager Database Control 的时候,必须指出ip地址和端口 号。 10.在登录Oracle Enterprice Manager Database Control时,连接身份有两种选择,分别为normal 和sysdba。 二、选择题: 1.当Oracle服务器启动时,下列哪种文件不是必须装入内存的()。D A. 数据文件 B. 控制文件 C. 日志文件 D. 归档日志文件 2.在Oracle中,当用户要执行SELECT语句时,下列哪个进程从磁盘获得用户需要的数据()。B A.用户进程 B. 服务器进程 C. 日志写入进程(LGWR) D. 检查点进程(CKPT)3. 在Oracle数据库的逻辑结构中有以下组件:A 表空间;B 数据块;C 区;D段;这些组件从大到小依次是()。B A. A→B→C→D B. A→D→C→B C. A→C→B→D D. D→A→C→B 4. (B )可以从过程返回多个值。 A. 使用IN参数 B. 使用OUT参数 C. 使用指针 D. 不能 5.PL/SQL为内存耗尽时,预定义了(C )异常。 A. NO_DA TA_FOUND B. MEMORY_ERROR C. STORAGE_ERROR D. NO_MEMEORY_FOUND 6. 一下是同义词不具有的用途是(D )。 A. 简化SQL语句 B. 隐藏对象的名称和所有者 C. 提供对对象的公共访问 D. 显示对象的名称和所有者 7. 在Windows操作系统中,Oracle的( A )服务监听并接受来自客户端应用程序的连接请求。 A. OracleHOME_NAMETNSListener B. OracleServiceSID C. OracleHOME_NAMEAgent D. OracleHOME_NAMEHTTPServer 8. 在Oracle 中创建用户时,若未提及DEFAULT TABLESPACE 关键字,则Oracle 就将(B )表 空间分配给用户作为默认表空间。

Oracle面试题笔试题及参考答案

一套Oracle面试题笔试题及参考答案 Oracle, 笔试, 面试 完成下列操作,写出相应的SQL语句 1.创建表空间neuspace,数据文件命名为neudata.dbf,存放在d:\data 目录下,文件大小为200MB,设为自动增长,增量5MB,文件最大为 500MB。(8分) 答:create tablespace neuspace datafile ‘d:\data\neudata.dbf’ size 200m auto extend on next 5m maxsize 500m; 2. 假设表空间neuspace已用尽500MB空间,现要求增加一个数据文件,存放在e:\appdata目录下,文件名为appneudata,大小为500MB,不自动增长。(5 分) 答:alter tablespace neuspace add datafile ‘e:\appdata\appneudata.dbf’ size 500m; 3. 以系统管理员身份登录,创建账号tom,设置tom的默认表空间为neuspace。为tom分配connect和resource系统角色,获取基本的系统权限。然后为tom 分配对用户scott的表emp的select权限和对SALARY, MGR属性的update权限。 (8分) 答:create user tom identified by jack default tablespace neuspace; Grant connect, resource to tom; Grant select, update(salary, mgr) on scott.emp to tom;

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

_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考试试题及答案

试题一 一、填空题(每小题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测试题及答案.doc

Oracle 式 学号_____________________________________ 姓名________________ 分数_ (一)按照题意写出SQL语句(45分每题3分) 本题用到下而三个关系表: 借书卡card (eno卡号,name姓名,class班级) 图书books (bno书号,bname书名,author作者,price单价,quantity库存册数) 借书记录borrow (eno借书卡号,bno书号,rdate还书曰期) 注:限定每人每种书只能借一本;库存册数随借书、还书而改变。 1.写出建立borrow表的SQL语句,要求定义主码完整性约束和引用完整性约束 create table card (eno char (6) primary key, name varchar2(10), class varchar2(12) ); create table books (bno char (8) primary key, bname varchar2(50), author varchar2(10), price number(5,3), quantity number(4) ); create table borrow (eno char (6) references card(eno) on delete cascade, bno char (8) references books (bno) on delete cascade, rdate date, primary key (eno, bno) ); 2.找出借书超过5本的读者,输出借书卡号及所借图书册数。 select eno, count (*)册数 from borrow group by eno having count(*)>5; 3.查询借阅了“水浒’’一书的读者,输出姓名及班级。 select name, class from card where eno in ( select eno from borrow where bno=( select bno from books where bname=’ 水游, ) ) 1.杏询过期未还图书,输出借阅者(卡号)、书号及还书曰期。

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数据库基础题库【含答案】

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 )

oracle数据库期末考试试题及答案剖析

oracle数据库期末考试试题及答案 A1、以下()内存区不属于SGA。 A.PGA B.日志缓冲区C.数据缓冲区D.共享池 D2、()模式存储数据库中数据字典的表和视图。 A.DBA B.SCOTT C.SYSTEM D.SYS C3、在Oracle中创建用户时,若未提及DEFAULT TABLESPACE 关键字,则Oracle就将()表空间分配给用户作为默认表空间。A.HR B.SCOTT C.SYSTEM D.SYS A4、()服务监听并按受来自客户端应用程序的连接请求。A.OracleHOME_NAMETNSListener B.OracleServiceSID C.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer B5、()函数通常用来计算累计排名、移动平均数和报表聚合等。A.汇总B.分析C.分组D.单行 B6、()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; ) FROM

”Annual Salary“SELECT ename,sal*12 AS INITCAP(.D. emp; B7、锁用于提供( )。 A.改进的性能 B.数据的完整性和一致性 C.可用性和易于维护 D.用户安全 C8、( )锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删除行。 A.行共享B.行排他C.共享D.排他 B9、带有( )子句的SELECT语句可以在表的一行或多行上放置排他锁。 A.FOR INSERT B.FOR UPDATE C.FOR DELETE D.FOR REFRESH C10、使用( )命令可以在已分区表的第一个分区之前添加新分区。A.添加分区B.截断分区 C.拆分分区D.不能在第一个分区前添加分区 C11、( )分区允许用户明确地控制无序行到分区的映射。 A.散列B.范围C.列表D.复合 C12、可以使用()伪列来访问序列。 A.CURRVAL和NEXTVAL B.NEXTVAL和PREVAL

Oracle期末考试试题及答案

Oracle期末考试试题及答案

考 生 信 息 栏 装 订 线 一、选择题:(本题共20个小题,每小题2分,共40分) 1当Oracle 服务器启动时,下列哪种文件不是必须的 ( ) 。 A. 数据文件 B. 控制文件 C. 日志文件 D. 归档日志文件 2. 在Oracle 中,一个用户拥有的所有数据库对象统称为 ( )。 A. 数据库 B. 模式 C. 表空间 D. 实例 3.在 Oracle 数据库的逻辑结构中有以下组件: 1. 表空间 2. 数据块 3. 区 4. 段 这些组件从大到小依次是( )。 A. 1→2→3→4 B.1→4→3→2 C.1→3→2→4 D. 4→1→3→2 4.下列哪个子句实现对一个结果集进行分组和汇总( )。 A.HAVING B.ORDER BY C.WHERE D.GROUP BY 5. 在Oracle 数据库中,( )用户模式存储数据字典表和视图对象。 A. SYS B. SYSTEM C. SCOTT D. SYSDBA 6.以下不属于命名的PL/SQL 块的是( )。 A .程序包 B .过程 C .游标 D .函数 7.在Oracle 中创建用户时,若未提及DEFAULT TABLESPACE 关键字,则Oracle 就将( )表空间分配给用户作为默认表空间。 A .HR B .SCOTT C .SYSTEM D .SYS

8.在Windows操作系统中,Oracle的( )服务是使用iSQL*Plus必须的。 A.OracleHOME_NAMETNSListener B. OracleServiceSID C. OracleHOME_NAMEAgent D. OracleHOME_NAMEHTTPServer 9.下列哪个语句可以在SQL*Plus 中直接调用一个过程( )。 A. RETURN B. CALL C. SET D. EXEC 10.如果服务器进程无法在数据缓冲区中找到空闲块,为添加从数据文件中读出的数据块,则系统会启动如下哪一个进程( ) A.CKPT B. DBWR C.LGWR D. SMON 11.下列哪一个锁模式不属于Oracle( )。 A.死锁 B.排他锁 C.行级共享锁 D.共享锁 12.有字符串数据”test”分别存放到char(10)和varchar2(10)类型的字段中,其实际存储长度为( ) A. 10 4 B. 4 4 C. 10 10 D. 4 10 13.在Oracle中,当控制一个显式游标时,下面哪种命令包含INTO子句( )。 A. FETCH B. CLOSE C. OPEN D. CURSOR 14. ORACLE中,用来判断列值是否为空的操作符是( )。 A. ==NULL B. NULLIS C. AS NULL D. IS NULL 15.查询一个表的总记录数,可以采用( )统计函数。 A. AVG(*) B. SUM(*) C. COUNT(*) D. MAX(*) 16.以下的哪个命令可以将SQL 命令的运行结果保存到文件中( )。 A.SAVE B.SPOOL C.GET D.INPUT 17.为了去除结果集中重复的行,可在SELECT 语句中使用下列哪个关键字( ) 。 A.ALL B.DISTINCT C.SPOOL D.HAVING 18.关于模式的描述下列哪一项不正确( )。 A.表或索引等模式对象一定属于某一个模式 B.在Oracle 数据库中,模式与数据库用户是一一对应的 C.一个表可以属于多个模式 D.一个模式可以拥有多个表 19.下列SELECT 语句中,哪些子句可以包含子查询( )。 A.SELECT B.GROUP BY C.WHERE D.ORDER BY 20.在下列模式对象中,哪个对象不会占用实际的存储空间( )。

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模拟试题答案汇总

备注:题号相同的题目或者增加的一些题目是11级网络的模拟试题 第 1 题,选择题(2分): ORACLE中,游标可以分为三类,下面不是Oracle游标的是( 1 )。 (1) 系统游标 (2) 显式游标 (3)隐式游标 (4) REF游标 第 2 题,选择题(2分):PL/SQL块中定义了一个带参数的游标:CURSOR emp_cursor(dnum NUMBER) IS SELECT sal,comm FROM emp WHERE deptno=dnum; 那么正确打开此游标的语句是(1) (1) OPEN emp_cursor(20); (2) OPEN emp_cursor FOR 20; (3) OPEN emp_cursor USING 20; (4) FOR rmp_rec IN emp_cursor[20] LOOP ... END LOOP; 第 3 题,选择题(2分): 有关ORACLE索引说法正确的是(A ) (1) 索引的数据和表的数据分开存储,但索引组织表除外 (2) 所有索引中的数据是顺序排序 (3) 分区表的索引必须统一存储 (4) 只能对分区表的索引进行分区 第 4 题,选择题(2分): 下列有关包的使用说法错误的是( A) (1) 必须先创建包头,然后创建包体 (2) 在不同的包内模块可以重名 (3) 包的私有过程不能被外部程序调用 (4) 包体中的全局过程和函数必须在包 第 5 题,选择题(2分): 以下定义的哪个变量是非法的?( A) (1) var_ab number default:=1; var_ab number default 1; (2) var_ab number not null :='0'; (3) var_ab number; (4) var_ab number:=3; 第 6 题,选择题(2分): PL/SQL块中不能直接使用的SQL命令是(A) (1) drop (2) insert (3) update

oracle期末考试题及答案

1、以下()内存区不属于SGA。 A.PGA B.日志缓冲区 C.数据缓冲区 D.共享池 2、()模式存储数据库中数据字典的表和视图。 A.DBA B.SCOTT C.SYSTEM D.SYS 3、在Oracle中创建用户时,若未提及DEFAULT TABLESPACE关键字, 则Oracle就将()表空间分配给用户作为默认表空间。 A.HR B.SCOTT C.SYSTEM D.SYS 4、()服务监听并按受来自客户端应用程序的连接请求。 A.OracleHOME_NAMETNSListener B.OracleServiceSID C.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer 5、()函数通常用来计算累计排名、移动平均数和报表聚合等。 A.汇总 B.分析 C.分组 D.单行 6、()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、锁用于提供( )。

A.改进的性能 B.数据的完整性和一致性 C.可用性和易于维护 D.用户安全 8、( )锁用于锁定表,允许其他用户查询表中的行和锁定表,但不 允许插入、更新和删除行。 A.行共享 B.行排他 C.共享 D.排他 9、带有( )子句的SELECT语句可以在表的一行或多行上放置排他锁。 A.FOR INSERT B.FOR UPDATE C.FOR DELETE D.FOR REFRESH 10、使用( )命令可以在已分区表的第一个分区之前添加新分区。 A.添加分区 B.截断分区 C.拆分分区 D.不能在第一个分区前添加分区 11、( )分区允许用户明确地控制无序行到分区的映射。 A.散列 B.范围 C.列表 D.复合 12、可以使用()伪列来访问序列。 A.CURRVAL和NEXTVAL B.NEXTVAL和PREVAL C.CACHE和NOCACHE D.MAXVALUE和MINVALUE 13、带有错误的视图可使用()选项来创建。 A.FORCE B.WITH CHECK OPTION

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;

相关文档
最新文档