教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 资格考试 >

Oracle数据库学习总结

来源:网络收集 时间:2026-08-23
导读: Oracle数据库编程学习心得 Oracle数据库学习总结 时间过的还真快,不知不觉中就在这里呆了半个月了。这段时间里都在学习oracle数据库的编程,毕竟这是家软件外包公司。像我们这样的新员工也就只能接触到些CURD的操作。废话不多说,赶紧来梳理下这半月来学习

Oracle数据库编程学习心得

Oracle数据库学习总结

时间过的还真快,不知不觉中就在这里呆了半个月了。这段时间里都在学习oracle数据库的编程,毕竟这是家软件外包公司。像我们这样的新员工也就只能接触到些CURD的操作。废话不多说,赶紧来梳理下这半月来学习的知识点. 在来公司之前一直都是使用Sql Server数据库,用Sql Server也开发了3个小型项目。所以对Sql语句以及在数据库中扮演重要作用的存储过程,触发器,视图,主键/外键约束都很熟。但Oracle是一个全新的环境,记得刚装上Oracle的时候,我都不知道在哪查看自己已经建立好的表格。还好有师傅的帮忙,要不然我还真没这么快就能入门Oracle。

学习东西就要学习些能改变自己思维的东西,只有这样才能让自己的眼光比别人更独到,思维比别人更深邃,Oracle就是这样的东西。当然做这样的事是要很大的驱动力的呀,如果公司不是都采用Oracle来写程序的话,我估计也就懒得学啦。

对于一位程序员来说并不需要完全掌握Oracle的所有知识,毕竟自己不是DBA。在日常开发中也用不到那些命令和工具,但是有些知识点我们还是必须得熟练的掌握它们。比如:一些基本的DDL和DML语句,存储过程,函数,视图,触发器,序列,游标,自定义类型和包。

下面我就把这段时间里学习Oracle获得的知识点罗列出来,一是为了方便以后查阅,二是为了和搭档交流学习经验。

要适应的一些细节

从Sql Server转到Oracle进行数据库编程,第一道门槛就是语法问题。很多很多的问题都是因为语法而产生的,现将它们统统集合起来并将它们一网打尽之。

PL结构。在Sql Server中,采用的是批处理执行任务的方式,所以可以将多条sql语句选中批量执行,而不用顾忌要在专门的地方声明变量,在专门的地方进行逻辑编码。在Oracle中采用的是PL编程方式,

必须在专门的地方声明变

Oracle数据库编程学习心得

循环结构,要达到循环在Oracle中有3种方式,各有各的好处,你懂的。它们分别如下:

PL结构中的错误处理

就像C#中的Try{} Catch{}语句块 能捕获错误。写几个例子:

HelloWorld级别的错误抛出例子

Oracle数据库编程学习心得

Record类型

Oracle中的Record类型类似于c语言中的结构体,主要用来接收Select

Oracle数据库编程学习心得

语句或游标中返回的数据,下面写个例子:

DDL语句

这里的DDL语言主要是指能完成如下工作的DDL语言:创建表,创建表的主/外 键及级联效果,

Oracle数据库编程学习心得

DML语句

Select语句。Oracle中的Select语句的使用方法与

Sql Server差不多,但还是有些不同之处。

Oracle数据库编程学习心得

Insert语句。Oracle中的Insert语句比Sql Server中的强大很多,废话不多说,看例子:

视图。视图有虚拟视图和物理视图两种,这里不说后者。创建视图的语法如下:

增/删/改 操作而复杂的视图却不能,但如果你实在是要对复杂的视图进行 增/删/改 操作,你可以使用Instead of 类型的Trigger来做。

Oracle数据库编程学习心得

存储过程

废话不多说,看代码:

函数,和存储过程查不多,唯一的区别就是有返回值,而且还能嵌套在DML语句中使用。下面写几个简单的函数:

Oracle数据库编程学习心得

游标

在Sql中使用的比较少,一直觉得它挺神秘的。最近学习了下,但对它有啥好处还是相知甚少。游标分为以下几类:显示游标,隐式游标。显示游标里面又有匿名游标和非匿名游标,隐式游标是Oracle中提供的某些API接口,通过调用它们能获取某些重要的系统信息,在Sql Server中也有类似的功能如‘@@error‘。

Oracle中的隐式游标:

%notfound 游标专用的隐式游标呀,判断游标中是否还有可返回的数据 %isopen 判断游标是否打开

%rowtype 定义行类型的mycontent student%rowtype 表示开辟一个能包含student表中一条元组的变量空间,并将该地址赋予变量mycontent.

%type 定义列类型的 mycolumns %type 概念同上,开辟一个列。 %rowcount 当前返回的数据行数

Oracle数据库编程学习心得

update student set name='new_bank' where current of stu_info; end if; if stu_record.id=10 then delete from class where studentid=stu_record.id; delete from student where current of stu_info; end if; end loop; close stu_info; end; 带参数的游标的定义及使用 declare cursor classInfo(id number) is select * from class where teacherid=id; class_record class%rowtype; begin open classInfo(1); loop fetch classInfo into class_record; exit when classInfo%notfound; dbms_output.put_line('studentid:'||class_record.studentid||' classname:'||class_record.classname); end loop; close classInfo; end; 简写的游标定义及使用 declare cursor info is select name from student; begin for stuName in info loop dbms_output.put_line(' 第 '||info%rowcount||' '||); end loop; end; 匿名游标的定义及使用 declare begin for stuName in (select * from student) loop dbms_output.put_line(); end loop;

Oracle数据库编程学习心得

游标变量

游标变量与C语言中的指针函数类似。游标变量又分为指明返回类型的游标变量和不指明返回类型的游标变量。

声明返回类型的游标变量

还有几种比较高级的游标写法,不知道工作用会不会用到。它们分别是:

嵌套游标:

Oracle数据库编程学习心得

declare cursor info(n number) is select c.classname,cursor(select from student s where s.id=c.studentid ) from class c where c.studentid=&n; type cursor_type is ref cursor; class_cursor cursor_type; classname class.classname%type; tmp varchar2(100); begin open info(1); loop fetch info into classname,class_cursor; exit when info%notfound; dbms_output.put_line(classname||':'); loop fetch class_cursor into tmp; exit when class_cursor%notfound; dbms_output.put_line(tmp); end loop; end loop; close info; end; 批量返回数据的游标: declare cursor student_cursor is select name from student; type name_table_type is table of varchar(20); name_table name_table_type; begin open student_cursor; fetch student_cursor bulk collect into name_table; for i in _table.count loop dbms_output.put_line(name_table(i)); end loop; close student_cursor; end; 批量返回数据的游标但可以限制每次返回数据的行数的游标 declare cursor student_cursor is select name from student; type name_table_type is table of varchar(20); name_table name_table_type;

Oracle数据库编程学习心得

触发器

触发器好东西呀。很多通过常规方法很难解决的问题通过使用它都能简单

的解决,但它们就是难管理。在Oracle中的触发器分两类:在表级别上的触发器和在数据行上的触发器。

DML After触发器

…… 此处隐藏:4648字,全部文档内容请下载后查看。喜欢就下载吧 ……
Oracle数据库学习总结.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/105330.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)