2010.08.09.韩顺平.玩转oralce.plsql

合集下载

韩顺平玩转oracle课件

韩顺平玩转oracle课件
revoke select on emp from xiaoming
//对权限的维护。 * 希望 xiaoming 用户可以去查询 scott 的 emp 表/还希望 xiaoming 可以把这个 权限继续给别人。 --如果是对象权限,就加入 with grant option
grant select on emp to xiaoming with grant option 我的操作过程: SQL> conn scott/tiger; 已连接。 SQL> grant select on scott.emp to xiaoming with grant option;
2.给账户(用户)解锁
SQL> alter user tea account unlock;
3.终止口令
为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要 dba 的身份来操作。 例子:给前面创建的用户 tea 创建一个 profile 文件,要求该用户每隔 10 天要 修改自己的登陆密码,宽限期为 2 天。看看怎么做。 SQL> create profile myprofile limit password_life_time 10 password_grace_time 2; SQL> alter user tea profile myprofile;
oracle 的表的管理 表名和列的命名规则
必须以字母开头 长度不能超过 30 个字符 不能使用 oracle 的保留字 只能使用如下字符 A-Z,a-z,0-9,$,#等
概述:profile 是口令限制,资源限制的命令集合,当建立数据库的,oracle 会自动建立名称为 default 的 profile。当建立用户没有指定 profile 选项,那 么 oracle 就会将 default 分配给用户。

韩顺平2011玩转oracle10g视频教学课堂笔记(完整版)

韩顺平2011玩转oracle10g视频教学课堂笔记(完整版)

顺平j2ee系列教程--玩转oracle10g学习笔记引言:数据保存问题?可使用文件保存和数据库保存。

使用文件保存数据存在几个缺点:1、文本的安全性问题;2、文件不利于查询和对数据的管理;3、文件不利于存放海量数据;4、文件在程序中控制不方便。

为解决数据保存问题,专家们设计出更加利于管理数据的东东--数据库(本质就是一个软件),它能更有效的管理数据。

数据库是衡量一个程序员水平的重要指标。

数据库1、数据库的本质就是一款软件,这个软件专门用于管理和维护数据;2、数据存放在数据库中。

数据库服务器、数据库和表的关系所谓安装数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每个应用创建一个数据库。

为了保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。

数据库服务器、数据库和表的关系如图所示:为什么选择oracle--性能优越概述:目前主流数据库包括微软: sql server和access瑞典MySql: AB公司mysqlibm公司: db2(处理海量)美国Sybase公司: Sybaseibm公司: informix美国oracle公司: oracle做项目时应当如何选择数据库?1、标的(项目预算);2、功能的要求;3、并发数(多少人用);4、安全、稳定性。

5、操作系统(unix[solaris,freeBSD,aix,hp unix]/linux/window)oracle数据库的认证oca(oracle certified associate)初级认证ocp(oracle certified professional)中级认证ocm(oracle certified master)高级认证oracle10g安装步骤:1、安装文件2、把10201_database_win32.zip文件copy到没有中文的路径下3、检查服务选项,确定本机没有安装过oracle数据库,如果有则卸载4、将压缩包解压后,双击setup.exe文件进行安装。

韩顺平oracle学习笔记

韩顺平oracle学习笔记

韩顺平oracle学习笔记第0讲:如何学习oracle一、如何学习oracleOracle目前最流行的数据库之一,功能强大,性能卓越。

学习oracle需要具备一定基础:1.学习过一门编程语言(如:java ,c)2.最好学习过一门别的数据库(sql server,mysql , access)教程推荐:oracle使用教程,深入浅出oracle记住:欲速则不达,做任何事情要遵循他的规律,循序渐进,信心很重要成为一个oracle高手过程:理解小知识点->做小练习->把小的只是点连成线->做oracle项目->形成只是面->深刻理解Oracle基础部分:oracle基础使用; oracle用户管理; oracle表管理Oracle高级部分:oracle表的查询; oracle的函数; oracle数据库管理;oracle 的权角色; pl/sql 编程;索引,约束和事物。

期望目标:1 学会安装、启动、卸载oracle2 使用sql *plus工具3 掌握oracle用户管理4 学会在oracle中编写简单的select语句第1讲:基础语法内容介绍:1.为什么学习oracle2.介绍oracle及其公司的背景3.学会安装、启动、卸载oracle4.oracle开发工具5.Sql*plus的常用命令6.oracle用户管理一、主流数据库包括:●微软:sql server 和 access●瑞典:mysql AB公司●IBM公司:DB2●美国sybase公司:sybase●IBM公司:infromix●美国oracle公司:oracle(目前最流行的之一)二、oracle安装,启动及卸载1.系统要求:操作系统最好为windows2000内存最好在256M以上硬盘空间需要2G以上2.oracle安装会自动的生成sys和system两个用户说明:○1Sys用户是超级用户,具有最高权限,具有sysdba角色,create database 的权限,默认密码是manager○2System 用户是管理操作员,权限也很大,具有sysoper角色,没有create database权限,默认密码是 change_on_install○3一般讲,对数据库维护,使用system用户登录就可以了3.启动oracle右键单击我的电脑->服务和应用程序:服务->启动OracleServiceMYORA1(MYORA1是安装oracle时起的名字各有不同)和OracleOracleHome90TNSLlistener4.卸载oracle1、先关掉oralce,net stop OracleServiceORCL(ORCL是我的实例名字,换成你的),或者去我的电脑服务中关闭2、开始->程序->Oracle - oracle的版本号,我的是10ghome->Oracle Installation Products->Universal Installer 卸载oracle3、进注册表,regedit,删除选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下所有的key。

Oracle PLSQL语言初级教程

Oracle PLSQL语言初级教程

Oracle PLSQL语言初级教程Oracle PL/SQL语言初级教程Oracle PL/SQL语言基础 ..................................................................... ...................................................... 3 PL/SQL的复合数据类型...................................................................... ..................................................... 16 使用集合 ..................................................................... ........................................................................ . (23)PL/SQL单行函数和组函数详解...................................................................... .......................................... 27 Oracle数据库数据对象分析 ..................................................................... .............................................. 41 Oracle完整性约束 ..................................................................... . (47)索引(INDEXES) .............................................................. ........................................................................ .. 53Oracle过程和函数 ..................................................................... . (54)触发器(Triggers) ............................................................. . (57)数据字典 ..................................................................... ........................................................................ . (58)Oracle操作和控制语言...................................................................... ..................................................... 61 建立和修改用户 ..................................................................... .. (67)ORACLE游标 ..................................................................... ........................................................................73ORACLE异常处理 ..................................................................... . (83)PL/SQL是Oracle对标准数据库语言的扩展,Oracle公司已经将PL/SQL整合到Oracle 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本教程将以循速渐进的方式讲述PL/SQL基础语法,结构和组件、以及如何设计并执行一个PL/SQL程序,通过本教程的学习,您将初步掌握PL/SQL语言,能够利用PL/SQL语言完成建表、查询、添加、删除数据以及事务处理语句的基本用法。

plsql使用教程

plsql使用教程

plsql使用教程PL/SQL是Oracle数据库的过程式编程语言,它结合了SQL的强大查询能力和程序设计语言的灵活性。

以下是一个简单的PL/SQL使用教程:1. 定义变量在PL/SQL中,可以使用DECLARE语句来定义变量。

例如:DECLAREnum INTEGER;name VARCHAR2(50);2. 使用SELECT查询数据可以使用SELECT语句从表中检索数据。

例如:SELECT * INTO num, name FROM employees WHERE employee_id = 100;3. 使用IF-THEN-ELSE进行条件判断PL/SQL提供了IF-THEN-ELSE语句来进行条件判断。

例如:IF num > 0 THENDBMS_OUTPUT.PUT_LINE('Number is positive');ELSEDBMS_OUTPUT.PUT_LINE('Number is negative');END IF;4. 使用FOR循环可以使用FOR循环来对一个集合进行迭代。

例如:FOR i IN 1..10 LOOPDBMS_OUTPUT.PUT_LINE('The value of i is: ' || i);END LOOP;5. 创建存储过程可以使用CREATE PROCEDURE语句来创建存储过程。

例如:CREATE PROCEDURE get_employee_details (p_employee_idIN NUMBER) ISv_employee_name VARCHAR2(50);BEGINSELECT employee_name INTO v_employee_name FROM employees WHERE employee_id = p_employee_id;DBMS_OUTPUT.PUT_LINE('Employee name is: ' ||v_employee_name);END;6. 调用存储过程可以使用EXECUTE语句来调用存储过程。

plsql 安装教程

plsql 安装教程

plsql 安装教程PL/SQL是Oracle数据库的编程语言,它基于SQL语言,用于开发和管理存储过程、触发器、函数等数据库对象。

下面是PL/SQL的安装教程:1. 首先,确保你已经安装了Oracle数据库。

PL/SQL是Oracle的一部分,所以你需要先安装Oracle数据库。

2. 下载Oracle SQL Developer。

Oracle SQL Developer是一个免费的集成开发环境,用于编写和调试PL/SQL代码。

你可以从Oracle官方网站下载最新版本的Oracle SQL Developer。

3. 打开Oracle SQL Developer,如果是第一次打开,会要求你设置JDK的路径。

选择你已经安装的JDK的路径,并点击确认。

4. 在Oracle SQL Developer的菜单中,选择“工具”>“首选项”>“数据库”>“PL/SQL编译器”。

5. 在“PL/SQL编译器”选项卡中,将“编译器类型”设置为“本地”。

6. 在同一个选项卡中,将“日志级别”设置为“带有错误”的选项。

7. 点击“应用”按钮,然后点击“确定”按钮。

8. 现在,你可以编写和执行PL/SQL代码了。

在SQLDeveloper的编辑器中,输入你的PL/SQL代码,然后点击绿色的运行按钮或按下Ctrl+Enter来执行代码。

注意:在执行PL/SQL代码之前,你需要连接到一个Oracle数据库实例。

在SQL Developer的连接向导中,输入你要连接的数据库实例的详细信息,然后点击测试连接按钮来测试连接是否成功。

这就是PL/SQL的安装教程。

安装完成后,你就可以开始使用PL/SQL开发和管理Oracle数据库对象了。

韩顺平玩转ORACLE

韩顺平玩转ORACLE

目录1.Oracle 认证,与其它数据库比较,安装 (4)2.Oracle 的基本使用--基本命令 (7)2.1 连接命令 (7)2.1.1 conn[ect] (7)2.1.2 disc[onnect] (7)2.1.3 psssw[ord] (7)2.1.4 show user (7)2.1.5 exit (7)2.2文件操作命令 (7)2.2.1 start 和@ (7)2.2.2 edit (7)2.2.3 spool (8)2.3交互式命令 (8)2.3.1 & (8)2.3.2 edit (8)2.3.3 spool (8)2.4显示和设置环境变量 (9)2.4.1 linesize (9)2.4.2 pagesize (9)3.oracle 用户管理 (10)3.1 oracle 用户的管理 (10)3.1.1创建用户 (10)3.1.2 给用户修改密码 (10)3.1.3 删除用户 (10)3.1.4用户管理的综合案例 (10)3.2 使用profile 管理用户口令 (12)3.2.1.账户锁定 (12)3.2.2.给账户(用户)解锁 (13)3.2.3.终止口令 (13)3.3口令历史 (13)3.4 删除profile (13)4.oracle 表的管理(数据类型,表创建删除,数据CRUD 操作) (14)4.1 oracle 的表的管理 (14)4.1.1表名和列的命名规则 (14)4.1.2 oracle 支持的数据类型 (14)4.2怎样创建表 (15)4.3添加数据 (15)4.4修改数据 (16)4.5删除数据 (16)5.oracle 表查询 (16)5.1 oracle 表基本查询 (16)5.2简单的查询语句 (17)5.3 oracle 表复杂查询 (18)5.3多表查询 (19)5.4子查询 (20)5.5 分页查询 (21)5.5.1.根据rowid 来分 (22)5.5.2.按分析函数来分 (22)5.5.3按rownum 来分 (22)5.6用查询结果创建新表 (23)5.7合并查询 (23)6 创建数据库 (23)7. java 操作oracle (24)7.1 java 连接oracle (24)7.2在oracle 中操作数据 (28)8.oracle 中事务处理 (29)8.1什么是事务 (29)8.2提交事务 (29)8.3回退事务 (29)8.4 java 程序中如何使用事务 (29)9.oracle 的函数 (32)9.1 sql 函数的使用 (32)9.1.1字符函数 (32)9.1.2数学函数 (33)9.1.3日期函数 (34)9.1.4转换函数 (35)9.1.5系统函数 (36)10.数据库管理,表的逻辑备份与恢复 (37)10.1数据库管理员 (37)10.2数据库(表)的逻辑备份与恢复 (39)10.3导出 (39)10.3.1导出表 (39)10.3.2导出方案 (39)10.3.3导出数据库 (40)10.4导入 (40)10.4.1导入表 (40)10.4.2导入方案 (40)10.4.3导入数据库 (41)11.数据字典和动态性能视图 (41)11.1数据字典 (41)11.2 用户名,权限,角色 (41)11.3动态性能视图 (44)12.数据库管理-- 管理表空间和数据文件 (45)12.1数据库的逻辑结构 (45)12.2表空间 (45)12.2.1建立表空间 (45)12.2.2 改变表空间的状态 (46)12.2.3删除表空间 (46)12.2.4扩展表空间 (46)12.2.5移动数据文件 (47)12.2.6 显示表空间信息 (47)12.2.7表空间小结 (47)12.2.8其它表空间 (48)13.约束 (48)13.1维护数据的完整性 (48)13.2约束 (48)13.2.1使用 (48)13.2.2维护 (49)13.2.3删除约束 (50)13.2.4显示约束信息 (50)14.Oracle 索引、权限 (51)14.1创建索引 (51)14.2 显示索引信息 (52)14.3 管理权限和角色 (52)14.3.1 系统权限 (52)14.3.2 对象权限 (53)15.角色 (55)15.1预定义角色 (56)15.2自定义角色 (56)15.3角色授权 (56)15.4删除角色 (57)15.5显示角色信息 (58)16.PL/SQL 块的结构和实例 (59)17.pl/sql 分类-- 过程,函数,包,触发器 (64)17.1 过程 (64)17.2 函数 (65)17.3包 (66)17.3触发器 (67)18.定义并使用变量,复合类型 (68)18.1定义并使用变量 (68)18.2复合变量(composite) (69)19.pl/sql 的进阶--控制结构(分支,循环,控制) (71)19.1 pl/sql 的进阶--控制结构 (72)19.1.1条件分支语句 (72)20.PL/SQL 分页 (75)21.例外处理 (85)21.1处理预定义例外 (86)21.2非预定义例外 (89)22.oracle 的视图 (92)1.Oracle 认证,与其它数据库比较,安装Oracle 安装会自动的生成sys 用户和system 用户:(1)sys 用户是超级用户,具有最高权限,具有sysdba 角色,有create database的权限,该用户默认的密码是change_on_install(2)system 用户是管理操作员,权限也很大。

韩顺平玩转oracle课件

韩顺平玩转oracle课件

Generated by Foxit PDF Creator © Foxit Software For evaluation only.
现在说下对象权限,现在要做这么件事情: * 希望 xiaoming 用户可以去查询 emp 表 * 希望 xiaoming 用户可以去查询 scott 的 emp 表
Generated by Foxit PDF Creator © Foxit Software For evaluation only.
显示和设置环境变量
概述:可以用来控制输出的各种格式,set show 如果希望永久的保存相关的设 置,可以去修改 glogin.sql 脚本 1.linesize 说明:设置显示行的宽度,默认是 80 个字符 show linesize set linesize 90 2.pagesize 说明:设置每页显示的行数目,默认是 14 用法和 linesize 一样 至于其它环境参数的使用也是大同小异
2.给账户(用户)解锁
SQL> alter user tea account unlock;
3.终止口令
为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要 dba 的身份来操作。 例子:给前面创建的用户 tea 创建一个 profile 文件,要求该用户每隔 10 天要 修改自己的登陆密码,宽限期为 2 天。看看怎么做。 SQL> create profile myprofile limit password_life_time 10 password_grace_time 2; SQL> alter user tea profile myprofile;
用户已创建。
SQL> grant connect to xiaohong;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一部分pl/sql初步介绍1、期望目标1)掌握oracle的pl/sql概念2)掌握pl/sql编程技术(包括编写过程、函数、触发器…)2、pl/sql的介绍-pl/sql是什么?1)pl/sql(procedural language/sql)是oracle在标准的sql语言上的扩展。

pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变得更加强大。

2)了解过程,函数,触发器-过程、函数、触发器是pl/sql编写,相当于存储在oracle数据库中的对象-过程、函数、触发器是在oracle中-pl/sql是非常强大的数据库过程语言,使用pl/sql能够写变量,做判断;可以简化复杂度;减少网络的传销,增加程序的模块化编程,提高运行性能,使速度更加的快捷-过程、函数可以在Java程序中调用3、pl/sql的介绍-为什么学?1)学习必要性-提高应用程序的运行性能-模块化的设计思想【分页的过程、订单的过程、转账的过程】-减少网络传输量-提高安全性2)弊端-移植性不好,例如从oracle数据库移植到DB2,则全部要重写3)pl/sql的介绍-用什么编写pl/sql-sqlplus开发工具-pl/sql developer开发工具4)案例-编写一个存储过程,该过程可以向某表中添加记录-- 1.创建一个简单的表create table gdsc (id int,name varchar2(20),passwd varchar(20));-- 2.创建过程create or replace procedure sp_gdsc_01 isbegin--执行部分insert into gdsc values(1,'陈学敏','mendychen');end;-- replace:表示如果有sp_gdsc_01,就替换-- 3.如何查看错误信息show error;-- 如何调用该过程-- 1.exec 过程名(参数值1,参数值2...);-- 2.call 过程名(参数值1,参数值2...);第二部分基础1、介绍开发人员使用pl/sql编写应用模块时,不仅需要掌握sql语句的编写方法,还要掌握pl/sql 语句及语法规则。

pl/sql编程可以使用变量和逻辑控制语句,从而可以编写非常有用的功能模块。

比如:分页存储过程模块、订单处理存储过程模块、转账存储过程模块等。

而且如果使用pl/sql编程,我们可以轻松的完成非常复杂的查询要求。

2、简单分类|----------过程(存储过程)||----------函数块(编程)--------- ||----------触发器||----------包3、编写规范1)注释-单行注释:---多行注释:/* ……*/2)标识符号的命名规范-当定义变量时,建议用v_作为前缀,如v_sal-当定义常量时,将以用c_作为前缀,如c_rate-当定义游标时,建议用_cursor作为后缀,如emp_cursor-当定义例外时,建议用e_作为前缀,如e_error4、pl/sql块介绍1)介绍块(block)是pl/sql的基本程序单元,编写pl/sql程序实际上就是编写pl/sql块。

要完成相对简单的应用功能,可能只需要编写一个pl/sql块;但是,如果要想实现复杂的功能,可能需要在一个pl/sql块中嵌套其他的pl/sql块。

2)块结构示意图-pl/sql块由三个部分构成:定义部分、执行部分、例外处理部分。

如下所示:declare/* 定义部分:定义常量、变量、游标、例外、复杂数据类型,该部分是可选的*/begin/* 执行部分:要执行的pl/sql语句和sql语句,该部分是必须的*/exception/* 例外处理部分:处理运行的各种错误,该部分是可选的*/end/* 和java程序进行比较*/3)pl/sql块的实例:实例1 - 只包含执行部分的pl/sql块set serveroutput on--打开输出选项begindbms_output.put_line('hello,world');end;相关说明:dbms_output是oracle所提供(类似java的开发包),该包包含一些过程,put_line就是dbms_output包的一个过程。

运行结果:4)pl/sql块的实例:实例2 –包含定义部分和执行部分的pl/sql块declarev_ename varchar2(5); --定义字符串变量beginselect ename into v_ename from emp where empno=&no;dbms_output.put_line('雇员名:'||v_ename);end;相关说明:&,取地址符表示要接收从控制台输入的变量5)pl/sql块的实例:实例3 –包含定义部分、执行部分和例外处理部分的pl/sql块为了避免pl/sql程序的运行错误,提高pl/sql的健壮性,应该对可能的错误进行处理,这个很有必要:-比如在实例2中,如果输入了不存在的雇员号,应当做例外处理-有时出现异常,希望用另外的逻辑处理declare--定义字符串变量v_ename varchar2(5);v_sal number(7,2);begin--执行部分select ename,sal into v_ename,v_sal from emp where empno=&no;dbms_output.put_line('雇员名:'||v_ename||' 工资:'||v_sal);--异常处理exceptionwhen no_data_found thendbms_output.put_line('You enter the error employee number!');end;相关说明:Oracle事先预定了一些例外,no_data_found就是找不到数据的例外5、过程过程用于执行特定的操作。

当建立过程时,既可以指定输入参数(in),也可以指定输出参数(out)。

通过在过程中使用输入参数,可以将数据传递到执行部分;通过使用输出参数,可以将执行部分的数据传递到应用环境。

在sqlplus中可以使用create procedure命令来建立过程。

实例如下:1)请考虑编写一个过程,可以输入雇员名,新工资,然后可以根据修改雇员的工资create procedure sp_pro3(spName varchar2,newSal number) isbegin--执行部分,根据用户名去修改工资update emp set sal=newSal where ename=spName;end;2)如何调用过程有两种方法:exec…call…exec sp_pro3('SCOTT',4678);3)如何在java程序中调用一个存储过程import java.sql.*;public class TestOraclePro {public static void main(String[] args) {try {// 1.加载驱动Class.forName("oracle.jdbc.driver.OracleDriver");// 2.得到连接Connection ct = DriverManager.getConnection( "jdbc:oracle:thin:@192.168.68.130:1521:orcl", "scott","tiger");// 3.创建CallableStatementCallableStatement cs = ct.prepareCall("{call sp_pro3(?,?)}");// 4.给?赋值cs.setString(1, "SMITH");cs.setInt(2, 10);// 5.执行cs.execute();// 6.关闭资源cs.close();ct.close();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}}5、函数1)函数用于返回特定的数据,当建立函数时,在函数头部必须包含return字句,而在函数体内必须包含return语句返回的数据。

我们可以使用create function来建立函数,实际案例:--函数案例--输入雇员的姓名,返回该雇员的年薪create function sp_fun2(spName varchar2) return number is yearSalnumber(7,2);begin--执行部分select sal*12+nvl(comm,0)*12into yearSal from emp where ename=spName;return yearSal;end;2)在sqlplus中调用该函数3)同样我们可以在java程序中调用该函数select sp_fun2(‘SCOTT’) from emp;6、包包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成。

1)我们可以使用create package命令来创建包,实例如下:--创建包--创建一个包sp_package--声明该包有一个过程update_sal--声明该包有一个函数annual_incomecreate package sp_package isprocedure update_sal(name varchar2,newSal number);function annual_income(name varchar2) return number;end;2)包的规范只包含了过程和函数的说明,但是没有过程和函数的实现代码。

包体用于实现包规范中的过程和函数。

建立包体可以使用create package body命令:--给包sp_package实现包体create package body sp_package isprocedure update_sal(name varchar2,newSal number)isbeginupdate emp set sal=newSal where ename=name;end;function annual_income(name varchar2) return number is annual_salary number;beginselect sal*12+nvl(comm,0) into annual_salary from empwhere ename=name;return annual_salary;end;end;3)如何调用包的过程或是函数?当调用包的过程或是函数时,在过程和函数前需要带有包名,如果要访问其它方案的包,还需要在包名前加方案名。

相关文档
最新文档