oracle 上机考试试题与答案

合集下载

Oracle 考试试题(带答案)

Oracle 考试试题(带答案)

a) b) c) d) 参考答案
OracleHOME_NAMETNSListener OracleServiceSID OracleHOME_NAMEAgent OracleHOME_NAMEHTTPServer
B
9) 在 Oracle 中创建用户时,若未提及 DEFAULT TABLESPACE 关键字,则 Oracle 就将()表空间分配 给用户作为默认表空间。。
DATEPART EXTRACT TO_CHAR TRUNC
bc
5) 在Oracle中,有一个教师表teacher的结构如下: ID NUMBER(5) NAME VARCHAR2(25) EMAIL VARCHAR2(50) 下面哪个语句显示没有Email地址的教师姓名()。
a) b) c) d) 参考答案
a) b) c) d) 参考答案
OracleHOME_NAMETNSListener OracleServiceSID OracleHOME_NAMEAgent OracleHOME_NAMEHTTPServer
a
8) 在Windows操作系统中,Oracle的()服务是使用 iSQL*Plus必须的。
A
12) 在Oracle中,下面用于限制分组函数的返回值的子句是 ()。
a) WHERE b) HAVING c) ORDER BY d) 无法限定分组函数的返回值
参考答案 b
13) 在Oracle中,有一个名为seq的序列对象,以下语句能返 回序列值但不会引起序列值增加的是()。
a) b) c) d) 参考答案
%NOTFOUND %FOUND %ROWTYPE %ISOPEN %ROWCOUNT
c
15) 在Oracle中,当控制一个显式游标时,下面哪种命令包 含INTO子句()。

oracle考试试题及答案

oracle考试试题及答案

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

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

oracle试题答案解释版

oracle试题答案解释版

要求20道判断、20道单选选择10道多选7道问答3道编程,再加20道填空一、单项选择题(每题1分,共20分)1、在Oracle中,一个用户拥有的所有数据库对象统称为(B )A)数据库B)模式C)表空间D)实例2、在Oracle 中创建用户时,若未提及DEFAULT TABLESPACE 关键字,则Oracle 就将(D )表空间分配给用户作为默认表空间。

A) USER B) SYS C)DEFAULT D) SYSTEM3、在oracle中获取前10条的关键字是(D)A) top B)Limit C)first D) rownum解释:top 是sql server数据库的关键字,limit 是mysql数据库的关键字,first是informix 数据库的关键字4、在Oracle中,( B)操作符返回并集操作并不包括重复行A) Intersect B)Union C)Union all D) Minus解释:Intersect返回交集,union返回并集,不包括重复行,union all 返回并集,包括重复行,minus返回差集5、下面那个语句是错误的(D)A) create synonym dept_synon for scott。

deptB) create sequence dept_seque increment by 1C)alter sequence dept_seque increment by 2D)drop dept_synon6、oracle数据库中,通过( C)可以以最快的方式访问表中的一行.A) 主键B) 唯一索引C)rowid D) 全表扫描7、下面那个不是oracle程序设计中的循环语句(A)A)for… end for B) loop…end loopC)while…end loop D) for… end loop8、oracle存储结构正确的是(B)A) tablespace--segment--osblock——blockB) tablespace-—segment——extent——blockC)tablespace-—extent——segment--blockD) tablespace-—extent-—block –segment9、若tnsnames.ora文件中部分配置如下:xfhtdb =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = hello)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = scce)))则表明:(C)A) Oracle服务器所在的主机名为DEDICATEDB) Oracle服务器所在的主机名为scceC) 对应数据库的SID为scceD)对应数据库的SID为xfhtdb10、现在要启动数据库,那么下面哪一个启动语句是错误的(A)A) STRATUP NORMAL B) STRATUP FORCEC)STRATUP NOMOUNT D)STARTUP MOUNT11、授予sa用户在SCOTT.EMP表中SAL列的更新权限的语句是:( C )A) GRANT CHANGE ON SCOTT.EMP TO SAB) GRANT UPDATE ON SCOTT.EMP(SAL) TO SAC)GRANT UPDATE(SAL) ON SCOTT。

Oracle-100道选择题(附答案)

Oracle-100道选择题(附答案)

1.下列不属于ORACLE的逻辑结构的是(C)A.区B.段C.数据文件D.表空间2. 下面哪个用户不是ORACLE缺省安装后就存在的用户(A)A . SYSDBAB. SYSTEMC. SCOTTD. SYS3.下面哪个操作会导致用户连接到ORACLE数据库,但不能创建表(A)A.授予了CONNECT的角色,但没有授予RESOURCE的角色B.没有授予用户系统管理员的角色C.数据库实例没有启动D.数据库监听没有启动4.函数通常用来计算累计排名,移动平均数和报表聚合。

(B)A . 汇总B. 分析C 分组D 单行5.带有(B)字句的SELECT语句可以在表的一行或多行放置排他锁。

A . FOR INSERTB. FOR UPDATEC. FOR DELETED. FOR REFRESH6.在Oracle中,你以SYSDBA登录,CUSTOMER表位于Mary用户方案中,下面哪条语句为数据库中的所有用户创建CUSTOMER表的同义词(B)。

CREATE PUBLIC SYNONYM cust ON mary.customer;CREATE PUBLIC SYNONYM cust FOR mary.customer;CREATE SYNONYM cust ON mary.customer FOR PUBLIC;不能创建CUSTOMER的公用同义词。

7. 在Oracle中,当FETCH语句从游标获得数据时,下面叙述正确的是(C)。

A.游标打开B.游标关闭C.当前记录的数据加载到变量中D.创建变量保存当前记录的数据8. 在Oracle中,下面关于函数描述正确的是(AD)。

A.SYSDATE函数返回Oracle服务器的日期和时间B.ROUND数字函数按四舍五入原则返回指定十进制数最靠近的整数C.ADD_MONTHS日期函数返回指定两个月份天数的和D.SUBSTR函数从字符串指定的位置返回指定长度的子串9. 阅读下面的PL/SQL程序块:BEGININSERT INTO employee(salary,last_name,first_name) VALUES(35000,’Wang’,'Fred’);SAVEPOINT save_a;INSERT INTO employee(salary,last_name,first_name) VALUES(40000,’Woo’,'David’);SAVEPOINT save_b;DELETE FROM employee WHERE dept_no=10; SAVEPOINT save_c;INSERT INTO employee(salary,last_name,first_name) VALUES(25000,’Lee’,'Bert’);ROLLBACK TO SAVEPOINT save_c;INSERT INTO employee(salary,last_name,first_name) VALUES(32000,’Chung’,'Mike’);ROLLBACK TO SAVEPOINT save_b;COMMIT;END;运行上面的程序,哪两个更改永久保存到数据库(CD)。

Oracle 笔试题目带答案

Oracle 笔试题目带答案

1.( )程序包用于读写操作系统文本文件。

(选一项)A、Dbms_outputB、Dbms_lobC、Dbms_randomD、Utl_file2.( )触发器允许触发操作的语句访问行的列值。

(选一项)A、行级B、语句级C、模式D、数据库级3.( )是oracle在启动期间用来标识物理文件和数据文件的二进制文件。

(选一项)A、控制文件B、参数文件C、数据文件D、可执行文件4.CREATE TABLE 语句用来创建(选一项)A、表B、视图C、用户D、函数5.imp命令的哪个参数用于确定是否要倒入整个导出文件。

(选一项)A、constranintsB、tablesC、fullD、file6.ORACLE表达式NVL(phone,'0000-0000')的含义是(选一项)A、当phone为字符串0000-0000时显示空值B、当phone为空值时显示0000-0000C、判断phone和字符串0000-0000是否相等D、将phone的全部内容替换为0000-00007.ORACLE交集运算符是(选一项)A、intersectB、unionC、setD、minus8.ORACLE使用哪个系统参数设置日期的格式(选一项)A、nls_languageB、nls_dateC、nls_time_zoneD、nls_date_format9.Oracle数据库中,通过()访问能够以最快的方式访问表中的一行(选一项)A、主键B、RowidC、唯一索引D、整表扫描10.Oracle数据库中,下面()可以作为有效的列名。

(选一项)A、ColumnB、123_NUMC、NUM_#123D、#NUM12311.Oracle数据库中,以下()命令可以删除整个表中的数据,并且无法回滚(选一项)A、dropB、deleteC、truncateD、cascade12.Oracle中, ( )函数将char或varchar数据类型转换为date数据类型。

oracle上机试题及答案

oracle上机试题及答案

oracle上机试题及答案Oracle上机试题及答案1. 查询当前数据库版本- 请写出SQL语句来查询当前数据库的版本。

答案:```sqlSELECT * FROM V$INSTANCE;```2. 创建表- 编写SQL语句创建一个名为`employees`的表,包含字段`id`(主键,自动增长),`name`(姓名),`department`(部门),`salary`(薪资)。

答案:```sqlCREATE TABLE employees (id NUMBER GENERATED ALWAYS AS IDENTITY,name VARCHAR2(100),department VARCHAR2(50),salary NUMBER(10, 2),PRIMARY KEY (id));```3. 插入数据- 向`employees`表中插入一行数据,姓名为"John Doe",部门为"IT",薪资为5000。

答案:```sqlINSERT INTO employees (name, department, salary) VALUES('John Doe', 'IT', 5000);```4. 更新数据- 更新`employees`表中姓名为"John Doe"的员工的薪资为6000。

答案:```sqlUPDATE employees SET salary = 6000 WHERE name = 'John Doe'; ```5. 删除数据- 删除`employees`表中所有薪资低于3000的员工记录。

答案:```sqlDELETE FROM employees WHERE salary < 3000;```6. 查询数据- 查询`employees`表中所有员工的姓名和薪资,并按薪资从高到低排序。

oracle上机考试试卷B附答案

oracle上机考试试卷B附答案

ORACLE期末考试机试试卷请填写:班级__________姓名___________学号_______注意:1、请将文件名改为:班级名_姓名,例如:软021_张三;2、请将答案写在每个题目的后面,字体颜色为红色;数据库名:学生成绩数据库学生信息表(学号 char(6),姓名,性别,民族,身份证号)课程信息表(课号 char(6),名称)成绩信息表(ID,学号,课号,分数)一、用SQL语言实现下列功能的sql语句代码。

1. 创建数据库[学生成绩数据库] 的方法有哪几种,分别是什么?(9分)。

<1>企业控制台<2>sql语句<3>装oracle软件时2. 创建数据表[课程信息表]代码;(8分)课程信息表(课号 char(6),名称)要求使用:主键(课号)、非空(名称)CREATE TABLE 课程信息表("课号" CHAR(6) NOT NULL, "名称"VARCHAR2(10) NOT NULL, PRIMARY KEY("课号"))3. 创建数据表[学生信息表]代码;(8分)学生信息表(学号 char(6),姓名,性别,民族,身份证号)要求使用:主键(学号)、默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性别)CREATE TABLE 学生信息表 ("学号" CHAR(6) NOT NULL, "姓名"VARCHAR2(10) NOT NULL, "性别" VARCHAR2(10) NOT NULL,"民族" VARCHAR2(10) NOT NULL, "身份证号" VARCHAR2(10) NOT NULL)4. 创建数据表[成绩信息表];(8分)成绩信息表(ID,学号,课号,分数)要求使用:外键(学号,课号)、检查(分数),自动编号(ID) CREATE TABLE ("ID" VARCHAR2(10) NOT NULL, "学号"VARCHAR2(10) NOT NULL, "课号" CHAR(6) NOT NULL, "分数"VARCHAR2(10) NOT NULL,CONSTRAINT "SYS_C002722_1" FOREIGN KEY("课号")REFERENCES "SYSTEM"."课程信息表"("课号"))5. 将下列课程信息添加到课程信息表的代码(8分)课号名称100101 西班牙语insert into 课程信息表 values('100101','西班牙语');commit;100102 大学英语insert into 课程信息表 values('100102','大学英语');commit;修改课号为100102的课程名称:专业英语update 课程信息表 set 名称 = '专业英语' where 课号 = '100102'; commit;删除课号为100101的课程信息delete from 课程信息表 where 课号 = ‘100101‘;commit;6. 创建视图[成绩信息表视图]的代码;(8分)成绩信息表视图(学号,姓名,课号,课程名称,分数)create or replace view 成绩信息表视图 asselect a.学号,姓名,b.课号,课程名称,分数 from 学生信息表 a,课程信息表b,成绩信息表 c where a.学号 = c.学号 and b.课号 = c.课号;7. 从学生信息表中查询姓刘的女同学的情况:姓名、性别、民族。

Oracle笔试题库附参考答案

Oracle笔试题库附参考答案

Oracle笔试题库附参考答案1.下列不属于ORACLE的逻辑结构的是(C)1. 区2. 段3. 数据⽂件4. 表空间2. 下⾯哪个⽤户不是ORACLE缺省安装后就存在的⽤户(A)A . SYSDBAB. SYSTEMC. SCOTTD. SYS3 下⾯哪个操作会导致⽤户连接到ORACLE数据库,但不能创建表(A)1. 授予了CONNECT的⾓⾊,但没有授予RESOURCE的⾓⾊2. 没有授予⽤户系统管理员的⾓⾊3. 数据库实例没有启动4. 数据库监听没有启动1. ( )函数通常⽤来计算累计排名,移动平均数和报表聚合。

A . 汇总B. 分析C 分组、D 单⾏1. 带有(B)字句的SELECT语句可以在表的⼀⾏或多⾏放置排他锁。

A . FOR INSERTB. FOR UPDATEC. FOR DELETED. FOR REFRESH1. 在Oracle中,你以SYSDBA登录,CUSTOMER表位于Mary⽤户⽅案中,下⾯哪条语句为数据库中的所有⽤户创建CUSTOMER表的同义词(B)。

1. CREATE PUBLIC SYNONYM cust ON mary.customer;2. CREATE PUBLIC SYNONYM cust FOR mary.customer;3. CREATE SYNONYM cust ON mary.customer FOR PUBLIC;4. 不能创建CUSTOMER的公⽤同义词。

5.7. 在Oracle中,当FETCH语句从游标获得数据时,下⾯叙述正确的是(C)。

1. 游标打开2. 游标关闭3. 当前记录的数据加载到变量中4. 创建变量保存当前记录的数据8. 在Oracle中,下⾯关于函数描述正确的是(AD)。

1. SYSDATE函数返回Oracle服务器的⽇期和时间2. ROUND数字函数按四舍五⼊原则返回指定⼗进制数最靠近的整数3. ADD_MONTHS⽇期函数返回指定两个⽉份天数的和4. SUBSTR函数从字符串指定的位置返回指定长度的⼦串9. 阅读下⾯的PL/SQL程序块:BEGININSERT INTO employee(salary,last_name,first_name)VALUES(35000,’Wang’,'Fred’);SAVEPOINT save_a;INSERT INTO employee(salary,last_name,first_name)VALUES(40000,’Woo’,'David’);SAVEPOINT save_b;DELETE FROM employee WHERE dept_no=10;SAVEPOINT save_c;INSERT INTO employee(salary,last_name,first_name)VALUES(25000,’Lee’,'Bert’);ROLLBACK TO SAVEPOINT save_c;VALUES(32000,’Chung’,'Mike’);ROLLBACK TO SAVEPOINT save_b;COMMIT;END;运⾏上⾯的程序,哪两个更改永久保存到数据库(CD)。

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

1、写一个pl/sql程序块:直接使用数据类型定义两个变量v_empno 和v_ename,从scott模式下的emp表中检索某个员工的编号empno 和姓名ename,存储到v_empno和v_ename,并输出此员工的编号和姓名。

set serveroutput on
declare
type merchandise is record(
v_empno number(30),
v_ename varchar2(30));
record_merchandise merchandise;
begin
select empno,ename
into record_merchandise
from emp
where empno='7369';
dbms_output.put_line(record_merchandise.v_empno);
dbms_output.put_line(record_merchandise.v_ename);
end;
2、写一个pl/sql程序块:根据scott模式下的emp表中的部门编号deptno字段的值,为姓名为SCOTT的雇员修改工资;若他所在部门号为10,则工资加100;若部门号为20,则工资加300;否则工资加400。

set serveroutput on
declare
v_deptno emp.deptno%type;
addsal emp.sal%type;
sal number;
begin
select deptno into v_deptno from emp where ename='SCOTT';
if v_deptno='10' then
addsal:=100;
elsif v_deptno='20' then
addsal:=300;
else
addsal:=400;
end if;
update emp set sal=sal+addsal where ename='SCOTT';
dbms_output.put_line(sal);
end;
3、写一个pl/sql程序块:定义一个游标类型type_cursor,然后使用type_cursor定义变量ref_cur;根据scott模式下的emp表和dept表,使用游标变量ref_cur检索员工姓名和工作信息,并输出员工姓名和工作信息;使用游标变量ref_cur检索部门编号和部门名称信息,并输出部门编号和部门名称信息。

set serveroutput on
declare
type type_cursor is ref cursor;
ref_cur type_cursor;
mer_rec emp%rowtype;
ner_rec dept%rowtype;
begin
open ref_cur for select ename,job from emp; loop
fetch ref_cur into mer_rec;
exit when ref_cur%notfound;
dbms_output.put(mer_rec.ename ||' '); dbms_output.put(mer_rec.job );
end loop;
open ref_cur for select deptno,dname from dept;
loop
fetch ref_cur into ner_rec;
exit when ref_cur%notfound;
dbms_output.put(ner_rec.deptno||' ');
dbms_output.put(ner_rec.dname );
end loop;
close ref_cur;
end;
4、写一个pl/sql存储过程:根据scott模式下的emp表,写一个带参数的存储过程proc(deptno in number,sun_sal out number),输入部门编号,输出该部门的总工资信息。

并写一个pl/sql程序块,测试该存储过程。

create or replace procedure searchmerch
( v_deptno in number,
sun_sal out number) is
begin
select 12*(sal+nvl(comm,0))
into sun_sal
from emp
where deptno=v_deptno;
exception
when no_data_found then
sun_sal:='0';
end;
5、写一个pl/sql程序块:根据scott模式下的emp表和dept表,输出每个部门的编号和部门名称,以及该部门下所有的雇员和雇员工资,及其该部门的总人数。

输出效果如下:
部门编号:-- 部门名称:--
雇员姓名:-- 雇员工资:--
该部门总人数:--
declare
CURSOR c_dept IS SELECT deptno,dname FROM dept ORDER BY
deptno;
CURSOR c_emp (p_dept VarCHAR2) IS
SELECT ename,sal FROM emp WHERE deptno=p_dept ORDER BY ename;
n number;
BEGIN
FOR r_dept IN c_dept LOOP
DBMS_OUTPUT.PUT_LINE('部门编号:'|| r_dept.deptno||'--部门名称:'||r_dept.dname);
n:=0;
FOR r_emp IN c_emp(r_dept.deptno) LOOP
DBMS_OUTPUT.PUT_LINE('雇员姓名: '||r_emp.ename || ' 雇员工资:'||r_emp.sal);
n:=n+1;
END LOOP;
DBMS_OUTPUT.PUT_LINE(r_dept.dname||'部门的总人数:'|| n); END LOOP;
END;
6.创建一个语句级触发器CHECK_TIME,限定对表EMP的修改时间为周一至周五的早8点至晚5点。

create or replace trigger CHECK_TIME
before update or insert or delete
on emp
begin
if (to_char(sysdate,'DY') in ('sat','sun'))
or to_char(sysdate,'HH24')<'08'
or to_char(sysdate,'HH24')>='17' then
raise_application_error(-20500,'只能在工作时间对表操作!'); end if;
end;。

相关文档
最新文档