Oracle数据库综合试题

表结构说明:

create table employee

(

id number(10) not null, -- 员工工号

salary number(10,2) default 0 not null, --薪水

name varchar2(24) not null --姓名

);

--开启控制台输出

set serverout on;

1.创建序列seq_employee,该序列每次取的时候它会自动增加,从1开始计数,不设最大值,并且一直累加,不循环。

-- Create sequence

create sequence SEQ_EMPLOYEE

minvalue 1

maxvalue 9999999999999999999999999999

start with 1

increment by 1

cache 20;

1. 写一个PL/SQL块,插入表user.employee中100条数据。插入该表中字段id用序列seq_employee实现,薪水和姓名字段可以任意填写。

declare

i number;

begin

for i in 1 .. 100

loop

insert into employee values(seq_employee.nextval,1950+i,‘匿名‘||to_char(i));

commit;

end loop;

end;

/

3.写一个语句块,在语句块中定义一个显式游标,按id升序排列,打印表employee中前十条数据。

declare

--定义一个显式游标,按id升序排列

cursor c is select id,salary,name from(select * from employee order by id) where rownum<11;

v_record c%rowtype;

begin

open c;

loop

fetch c into v_record;

exit when c%notfound;

dbms_output.put_line(to_char(v_record.id)||‘,‘||to_char(v_record.salary)||‘,‘||v_record.name);

end loop;

close c;

end;

/

4.创建存储过程p_employee,输入员工薪水范围,返回员工工号、姓名、薪水结果集,结果集按员工薪水升序排列。

create or replace procedure p_employee(iminsalary in number,imaxsalary in number)

is

begin

for x in(select id,salary,name from(select * from employee where salary between iminsalary and imaxsalary) order by salary)

loop

dbms_output.put_line(to_char(x.id)||to_char(x.salary)||x.name);

end loop;

end;

/

--调用存储过程

call p_employee(1951,1956);

exec p_employee(1951,1952);

5.创建函数f_employee实现更新员工薪水的功能,将薪水低于2000且姓王的员工薪水加5%,其他不变,更新成功则返回0,否则返回1。

create or replace function f_employee return number

is

begin

update employee set salary=salary+salary*0.05 where salary<2000 and name like ‘王%‘;

commit;

if sql%rowcount=0 then

return 1;

else

return 0;

end if;

end;

/

6.写一个匿名语句块,用于执行函数f_employee,并打印执行该函数的结果。

declare a number;

begin

a:=f_employee();

dbms_output.put_line(to_char(a));

end;

/

7.创建存储过程p_create_emp,用于判断表employee是否存在,如果存在则删除该表。

create or replace procedure p_create_emp

is

v_count number;

begin

select count(*) into v_count from user_tables where table_name=‘EMPLOYEE‘;

if v_count=0 then

return;

else

execute immediate ‘drop table employee‘;

end if;

end;

/

8.写一个匿名语句块,用于执行存储过程p_create_emp。

exec p_create_emp;

时间: 2024-11-01 06:04:35

Oracle数据库综合试题的相关文章

oracle 数据库开发面试题

最近参加了4.5场面试,总结一下竞聘oracle 开发岗位最常问到哪些问题: 1.delete 与 truncate 区别? 1)truncate 是DDL语句,delete 是DML语句: 2)truncate 速度远快于 delete: 原因是:当我们执行delete操作时所有表数据先被copy到回滚表空间,数据量不同花费时间长短不一.而truncate是直接删除数据不进回滚表空间. 3)接(2)这也就导致了delete数据后我们可以运行rollback进行数据回滚,而truncate则是永

面试题: 数据库 oracle数据库 未看6

Oracle数据库面试题总结 2017年04月27日 22:41:44 阅读数:9271 1.SQL语句分类 DQL(数据查询语言)select DML(数据操作语言)insert.delete.update DDL(数据定义语言)create.drop.alter DCL(数据控制语言)grant:把权限授予用户.revoke:把权限从用户收回 TPL(TCL,事务控制语言):commit.rollback 2.Oracle是怎样分页的 Oracle用rownum进行分页 分页语句的步骤: a

本机未装Oracle数据库时Navicat for Oracle 报错:Cannot create oci environment 原因分析及解决方案

因为要更新数据库加个表,远程桌面又无法连接...所以就远程到另外一台电脑,然后用navicat通过内网修改目标数据库. 一直用着navicat操作数据库,所以很速度的弄好然后新建连接进入数据库. 然而意外就发生了,Cannot create oci environment !!!什么鬼??? 用了这么久第一次碰到这个问题,各种百度发现是oci.dll文件版本不对,然后就是更换oci文件 因为远程的是Oracle 11g所以选择下面那个文件夹内的oci.dll文件,更新后成功. 在百度上也是翻了好

ORACLE数据库编程

第一章 Oracle数据库基本概念 一.介绍 Oracle数据库系统是美国Oracle(甲骨文)公司提供的以分布式数据库为 核心的一组软件产品,是目前最流行的客户/服务器(Client/Server,C/S)或 浏览器/服务器(Browser/Server,B/S)体系结构的数据库之一.二.特点1.完整的数据管理功能:数据的大量性数据的保存的持久性数据的共享性数据的可靠性Oracle优点:可用性强可扩展性强数据安全性强稳定性强三.Oracle数据库的辑逻结构1.表空间一个数据库被分割为数个被称作

Oracle数据库几种启动和关闭方式

一.Oracle数据库几种启动方式 1.startup nomount 非安装启动,这种方式下启动可执行:重建控制文件.重建数据库,读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件. 2.startup mount (dbname) 安装启动,这种方式启动下可执行:数据库日志归档.数据库介质恢复.使数据文件联机或脱机.重新定位数据文件.重做日志文件. 执行"nomount",然后打开控制文件,确认数据文件和联机日志文件的位置,但

Oracle 数据库的组成(instance+database)

Oracle服务器是一种对象关系数据库管理系统,它为信息管理提供开放.综合.集成的方法. Oracle服务器中有多种进进程.内存结构和文件: Oracle服务器由一个Oracle实例和一个Oracle数据库组成. Oracle服务器:Oracle实例+Oracle数据库 Oracle实例:后台进程+内存结构 (必须启动实例才能访问数据库中的数据,每次启动实例,都会分配系统全局去SGA并启动Oracle后台进程) SGA是用于村粗数据库信息的内存区,该信息为数据库进程所共享. 后台进程代表调用进程

Oracle数据库专家实战培训课程

推荐一套零基础开始学习Oracle数据库专家实战培训的视频教程 课程里涵盖了oracle9i/10g/11g/12c四个版本的内容 课程是零基础开始讲解,从最基础的Linux环境搭建,oracle安装配置,基础sql语句讲起 oracle开发所设计的重难点部分全部涉及,备份.恢复.集群.性能优化.安全配置等应有尽有 咨询QQ:779591710 内容大纲: 第一部分: 课程一.Oracle开发系列之SQL从入门到精通(全面把控数据库基础) 课程二.Oracle开发系列之PL/SQL高级编程(附综

Oracle数据库SQL注入浅析与防护建议

作者:安华金和 思成 SQL注入是在信息安全领域一种常见的攻击手段.但是大部分人理解的SQL注入就是通过把SQL命令插入到Web表单提交或在输入域名.页面请求时加入的查询字符串,最终达到欺骗服务器执行偏离预期的SQL命令.这种情况下的SQL注入,引发原因基本是网页对用户输入的信息缺乏校验而导致. 很多人认为只有网页才可以进行 SQL 注入,才有注入点.这是一个普遍对SQL 注入的错误认识.SQL注入严格来讲应该叫做数据库SQL注入.SQL注入的最终目的是获取数据库中存储的敏感信息.事实上,任何可

重庆专业oracle数据库集群安装服务-重庆思庄科技

核心词:重庆思庄,Oracle技术支持电话:023-68429836,Oracle数据库集群安装服务,性能调整,oracle数据库升级服务,Oracle不能启动,Oracle慢,Oracle数据库挂起,节点异常重启,不能连接Oracle,DG不能同步,...国内知名Oracle专家团队!为您解决各种Oracle疑难问题! Oracle数据库的RAC架构全面实施了数据库网格计算,Oracle RAC充分利用硬件,操作系统和公共存储的综合能力来提供强大的可靠性和可扩展性.Oracle RAC的优越性