随笔分类 -  oracle初级系列教程

1 2 下一页
二十九、oracle 触发器
摘要:一、触发器简介 触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。然后,触发器的触发条件其实在你定义的时候就已经设定好了。这里面需要说明一下,触发器可以分为语句级触发器和行级触发器。详细的介绍可以参考网上的资料,简单的说就是语句级的触发器可以在某些语句执行前或执行后被触发。而行级触发器则是在定义的了触发的表中的行数据改变时就会被触发一次。具体举例:1、 在一个表中定义的语句级的触发器,当这个表被删除时,程序就会自动执行触发器里面定义的操作过程。这个就是删除表的操作就是触发器执行的条件了。2、 在一个表中定义了行级的触发器,那 阅读全文
posted @ 2012-04-01 17:43 Ruthless 阅读(14681) 评论(2) 推荐(3) 编辑
二十八、oracle 视图
摘要:一、介绍视图是一张虚拟表,其内容由查询定义,同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。(视图不是真实存在磁盘上的)二、视图与表的区别1、表需要占用磁盘空间,视图不需要2、视图不能添加索引(所以查询速度略微慢点)3、使用视图可以简化,复杂查询4、视图的使用利于提高安全性比如:不同用户查看不同视图三、创建/修改视图1、创建视图create view 视图名 as select 语句 [with read only]2、创建或修改视图create or replace vi 阅读全文
posted @ 2012-03-01 15:30 Ruthless 阅读(5956) 评论(0) 推荐(1) 编辑
二十七、oracle 例外
摘要:一、例外分类oracle将例外分为预定义例外、非预定义例外和自定义例外三种。1)、预定义例外用于处理常见的oracle错误。2)、非预定义例外用于处理预定义例外不能处理的例外。3)、自定义例外用于处理与oracle错误无关的其它情况。下面通过一个小案例演示如果不处理例外看会出现什么情况?编写一个存储过程,可接收雇员的编号,并显示该雇员的姓名。sql代码如下:SET SERVEROUTPUT ON;DECLARE V_ENAME EMP.ENAME%TYPE;BEGIN SELECT ENAME INTO V_ENAME FROM EMP WHERE EMPNO = &GNO; DBMS 阅读全文
posted @ 2012-02-29 18:59 Ruthless 阅读(4183) 评论(0) 推荐(1) 编辑
二十六、oracle pl/sql 分页
摘要:一、无返回值的存储过程 古人云:欲速则不达,为了让大家伙比较容易接受分页过程编写,我还是从简单到复杂,循序渐进的给大家讲解。首先是掌握最简单的存储过程,无返回值的存储过程。 案例:现有一张表book,表结构如下:书号、书名、出版社。CREATE TABLE book( ID NUMBER(4), book_name VARCHAR2(30), publishing VARCHAR2(30));请写一个过程,可以向book表添加书,要求通过java程序调用该过程。--注意:in->表示这是一个输入参数,默认为in --out->表示一个输出参数CREATE OR REPLACE PR 阅读全文
posted @ 2012-02-28 19:20 Ruthless 阅读(6387) 评论(0) 推荐(5) 编辑
二十五、oracle pl/sql进阶--控制结构(分支,循环,控制)
摘要:一、pl/sql的进阶--控制结构在任何计算机语言(c,java,pascal)都有各种控制语句(条件语句,循环结构,顺序控制结构...),在pl/sql中也存在这样的控制结构。在本部分学习完成后,希望大家达到:1.使用各种if语句2.使用循环语句3.使用控制语句——goto和null(goto语句不推荐使用);二、条件分支语句pl/sql中提供了三种条件分支语句if—then,if–then–else,if–then–else if–then。这里我们可以和java语句进行一个比较。1)、简单的条件判断if–then问题:编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该 阅读全文
posted @ 2012-02-28 10:53 Ruthless 阅读(4847) 评论(1) 推荐(1) 编辑
二十四、oracle pl/sql 变量
摘要:一、变量介绍在编写pl/sql程序时,可以定义变量和常量;在pl/sql程序中包括有:1)、标量类型(scalar)2)、复合类型(composite) --用于操作单条记录3)、参照类型(reference) --用于操作多条记录4)、lob(large object)二、标量(scalar)——常用类型1)、在编写pl/sql块时,如果要使用变量,需在定义部分定义变量。pl/sql中定义变量和常量的语法如下:identifier [constant] datatype [not null] [:=| default expr]identifier: 名称constant:指定常量。需要指定 阅读全文
posted @ 2012-02-27 16:26 Ruthless 阅读(6186) 评论(0) 推荐(2) 编辑
二十三、oracle pl/sql分类三 包
摘要:包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成。1)、我们可以使用create package命令来创建包,如:i、创建一个包sp_packageii、声明该包有一个过程update_saliii、声明该包有一个函数annual_income--声明该包有一个存储过程和一个函数create package sp_package is procedure update_sal(name varchar2, newsal number); function annual_income(name varchar2) return number;end;2)、建立包体可以使用crea... 阅读全文
posted @ 2012-02-24 20:32 Ruthless 阅读(3908) 评论(0) 推荐(2) 编辑
二十二、oracle pl/sql分类二 函数
摘要:函数用于返回特定的数据,当建立函数时,在函数头部必须包含return子句。而在函数体内必须包含return语句返回的数据。我们可以使用create function来建立函数。1)、接下来通过一个案例来模拟函数的用法--输入雇员的姓名,返回该雇员的年薪CREATE FUNCTION annual_incomec(uname VARCHAR2)RETURN NUMBER IS annual_salazy NUMBER(7,2);BEGIN SELECT a.sal*13 INTO annual_salazy FROM emp a WHERE a.ename=uname; RETURN ... 阅读全文
posted @ 2012-02-24 20:05 Ruthless 阅读(4868) 评论(0) 推荐(2) 编辑
二十一、oracle pl/sql分类一 存储过程
摘要:存储过程用于执行特定的操作,当建立存储过程时,既可以指定输入参数(in),也可以指定输出参数(out),通过在过程中使用输入参数,可以将数据传递到执行部分;通过使用输出参数,可以将执行部分的数据传递到应用环境。在sqlplus中可以使用create procedure命令来建立过程。实例如下:1.请考虑编写一个存储过程,可以输入雇员名,新工资,用来修改雇员的工资--根据雇员名去修改工资CREATE PROCEDURE sp_update(uname VARCHAR2, newsal NUMBER) ISBEGIN update emp set sal=newsal where ename=.. 阅读全文
posted @ 2012-02-23 20:24 Ruthless 阅读(6366) 评论(0) 推荐(2) 编辑
二十、oracle pl/sql基础
摘要:一、pl/sql developer开发工具pl/sql developer是用于开发pl/sql块的集成开发环境(ide),它是一个独立的产品,而不是oracle的一个附带品。二、pl/sql介绍开发人员使用pl/sql编写应用模块时,不仅需要掌握sql语句的编写方法,还要掌握pl/sql语句及语法规则。pl/sql编程可以使用变量和逻辑控制语句,从而可以编写非常有用的功能模块。比如:分页存储过程模块、订单处理存储过程模块、转账存储过程模块。而且如果使用pl/sql编程,我们可以轻松地完成非常复杂的查询要求。三、pl/sql可以做什么可以用来编写存储过程、函数、触发器、包等四、编写规范五、p 阅读全文
posted @ 2012-02-22 21:48 Ruthless 阅读(6352) 评论(0) 推荐(3) 编辑
十九、oracle pl/sql简介
摘要:一、pl/sql 是什么pl/sql(procedural language/sql)是oracle在标准的sql语言上的扩展。pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变得更加强大。二、为什么要学pl/sql1.提高应用程序的运行性能2.模块化的设计思想(分页的过程,订单的过程,转账的过程。。)3.减少网络传输量4.提高安全性(sql会包括表名,有时还可能有密码,传输的时候会泄露。PL/SQL就不会)三、Oracle为什么在PL/SQL developer执行很快,用c# oracleclient执行就慢因 阅读全文
posted @ 2012-02-22 20:38 Ruthless 阅读(4753) 评论(0) 推荐(2) 编辑
十八、oracle 角色
摘要:一、介绍角色就是相关权限的命令集合,使用角色的主要目的就是为了简化权限的管理。假定有用户a,b,c为了让他们都拥有如下权限1. 连接数据库2. 在scott.emp表上select,insert,update。如果采用直接授权操作,则需要进行12次授权。因为要进行12次授权操作,所以比较麻烦喔!怎么办?如果我们采用角色就可以简化:首先将creat session,select on scott.emp, insert on scott.emp, update on scott.emp 授予角色,然后将该角色授予a,b,c 用户,这样就可以三次授权搞定。二、角色分为预定义和自定义角色两类三、预定 阅读全文
posted @ 2012-02-20 18:17 Ruthless 阅读(3994) 评论(0) 推荐(2) 编辑
十七、oracle 权限
摘要:一、介绍这一部分我们主要看看oracle中如何管理权限和角色,权限和角色的区别在哪里。当刚刚建立用户时,用户没有任何权限,也不能执行任何操作。如果要执行某种特定的数据库操作,则必须为其授予系统的权限;如果用户要访问其它方案的对象,则必须为其授予对象的权限。为了简化权限的管理,可以使用角色。这里我们会详细的介绍。二、权限权限是指执行特定类型sql命令或是访问其它方案对象的权利,包括系统权限和对象权限两种。三、系统权限1)、系统权限是指执行特定类型sql命令的权利。它用于控制用户可以执行的一个或是一组数据库操作。比如当用户具有create table权限时,可以在其方案中建表,当用户具有creat 阅读全文
posted @ 2012-02-18 11:07 Ruthless 阅读(4122) 评论(0) 推荐(1) 编辑
十六、oracle 索引
摘要:一、管理索引-原理介绍索引是用于加速数据存取的数据对象。合理的使用索引可以大大降低i/o次数,从而提高数据访问性能。索引有很多种我们主要介绍常用的几种:为什么添加了索引后,会加快查询速度呢?二、创建索引1)、单列索引单列索引是基于单个列所建立的索引语法:create index 索引名 on 表名(列名);eg、create index nameIndex on custor(name);2)、复合索引复合索引是基于两列或是多列的索引。在同一张表上可以有多个索引,但是要求列的组合必须不同,比如:create index emp_idx1 on emp(ename, job);create in 阅读全文
posted @ 2012-02-17 21:14 Ruthless 阅读(5000) 评论(0) 推荐(1) 编辑
十五、oracle 约束
摘要:一、维护数据的完整性数据的完整性用于确保数据库数据遵从一定的商业和逻辑规则,在oracle中,数据完整性可以使用约束、触发器、应用程序(过程、函数)三种方法来实现,在这三种方法中,因为约束易于维护,并且具有最好的性能,所以作为维护数据完整性的首选。二、约束约束用于确保数据库数据满足特定的商业规则。在oracle中,约束包括:not null、 unique, primary key, foreign key和check 五种。1)、not null(非空)如果在列上定义了not null,那么当插入数据时,必须为列提供数据。2)、unique(唯一)当定义了唯一约束后,该列值是不能重复的,但是 阅读全文
posted @ 2012-02-16 15:27 Ruthless 阅读(4730) 评论(3) 推荐(1) 编辑
十四、oracle 数据库管理--管理表空间和数据文件
摘要:一、概念表空间是数据库的逻辑组成部分。从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库数据则是存放在表空间中,表空间由一个或多个数据文件组成。二、数据库的逻辑结构oracle中逻辑结构包括表空间、段、区和块。说明一下数据库由表空间构成,而表空间又是由段构成,而段又是由区构成,而区又是由oracle块构成的这样的一种结构,可以提高数据库的效率。三、表空间1、概念表空间用于从逻辑上组织数据库的数据。数据库逻辑上是由一个或是多个表空间组成的。通过表空间可以达到以下作用:1)、控制数据库占用的磁盘空间2)、dba可以将不同数据类型部署到不同的位置,这样有利于提高i/o性能,同时利于备份和恢复 阅读全文
posted @ 2012-02-16 15:02 Ruthless 阅读(5210) 评论(0) 推荐(2) 编辑
十三、oracle 数据字典和动态性能视图
摘要:一、概念数据字典是oracle数据库中最重要的组成部分,它提供了数据库的一些系统信息。动态性能视图记载了例程启动后的相关信息。二、数据字典1)、数据字典记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有者为sys用户。2)、用户只能在数据字典上执行查询操作(select语句),而其维护和修改是由系统自动完成的。3)、这里我们谈谈数据字典的组成:数据字典包括数据字典基表和数据字典视图,其中基表存储数据库的基本信息,普通用户不能直接访问数据字典的基表。数据字典视图是基于数据字典基表所建立的视图,普通用户可以通过查询数据字典视图取得系统信息。数据字典视图主要包括user_xxx,all_ 阅读全文
posted @ 2012-02-14 15:39 Ruthless 阅读(6870) 评论(0) 推荐(2) 编辑
十二、oracle 数据库(表)的逻辑备份与恢复
摘要:一、介绍逻辑备份是指使用工具export将数据对象的结构和数据导出到文件的过程。逻辑恢复是指当数据库对象被误操作而损坏后使用工具import利用备份的文件把数据对象导入到数据库的过程。物理备份即可在数据库open的状态下进行也可在关闭数据库后进行,但是逻辑备份和恢复只能在open的状态下进行。二、备份(导出)导出分为导出表、导出方案、导出数据库三种方式。导出使用exp命令来完成的,该命令常用的选项有:userid:用于指定执行导出操作的用户名,口令,连接字符串tables:用于指定执行导出操作的表owner:用于指定执行导出操作的方案full=y:用于指定执行导出操作的数据库inctype:用 阅读全文
posted @ 2012-02-13 20:21 Ruthless 阅读(7608) 评论(0) 推荐(3) 编辑
十一、oracle 数据库管理员
摘要:一、数据库管理员每个oracle数据库应该至少有一个数据库管理员(dba),对于一个小的数据库,一个dba就够了,但是对于一个大的数据库可能需要多个dba分担不同的管理职责。那么一个数据库管理员的主要工作是什么呢:1.安装和升级oracle 数据库2.建库,表空间,表,视图,索引…3.制定并实施备份和恢复计划4.数据库权限管理,调优,故障排除5.对于高级dba,要求能参与项目开发,会编写sql 语句、存储过程、触发器、规则、约束、包二、管理数据库的用户主要是sys和system(sys好像是董事长,system好像是总经理,董事长比总经理大,但是通常是总经理干事)在前面我们已经提到这两个用户, 阅读全文
posted @ 2012-02-12 21:47 Ruthless 阅读(6525) 评论(0) 推荐(3) 编辑
十、oracle 常用函数
摘要:一、字符函数字符函数是oracle中最常用的函数,我们来看看有哪些字符函数:lower(char):将字符串转化为小写的格式。upper(char):将字符串转化为大写的格式。length(char):返回字符串的长度。substr(char, m, n):截取字符串的子串,n代表取n个字符的意思,不是代表取到第n个replace(char1, search_string, replace_string)instr(C1,C2,I,J) -->判断某字符或字符串是否存在,存在返回出现的位置的索引,否则返回小于1;在一个字符串中搜索指定的字符,返回发现指定的字符的位置;C1 被搜索的字符串 阅读全文
posted @ 2012-02-07 20:56 Ruthless 阅读(22973) 评论(1) 推荐(2) 编辑

1 2 下一页