《2023年Oracle知识点总结归纳全面汇总归纳1.pdf》由会员分享,可在线阅读,更多相关《2023年Oracle知识点总结归纳全面汇总归纳1.pdf(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Oracle 知识点总结 1、Oracle 数据库的安装和配置 Oracle Internet级数据库 SQLServer 中小企业级数据库 Access 桌面级数据库 Oracle 的安装 注意:来源和目标的目录不允许有中文或空格 Oracle 数据库启动时必需开启的后台服务 OracleOrahome90TNSListener 使第三方的软件或语言访问 OracleServiceETC Oracle的实例 CRUD 增删改查 注意:中的 ETC是你起的实例的名字 Oracle 的开发工具 DOS界面的开发平台 -运行-sqlplus Oracle 本身基于 DOS的平台-运行-sqlplu
2、sw Oracle Enterprise Manager Console PL/SQL Developer7.1.5 创建一个表的完整流程 创建一个数数库 例子:创建一个数据库 ETC,物理文件放在 F:,初始化 1m,自增长开启 create tablespace etc datafile f:etc.dbf size 1m autoextend on;删除表空间 drop tablespace 数据库名称;为该数据库创建一个帐号和密码 语法:create user 用户名称 identified by 密码 default tablespace 数据库名称 注意:1、在 Oracle 中账
3、号和数据库 one2one 绑定 2、Oracle 的密码不允许为纯数字或空 3、需要在 system 账号完成动作 修改 Oracle 的账号密码 语法:alter user 用户 identified by 新密码 用 grant 权限 to 用户 为该帐户授权 语法:grant 权限名称 to 用户;撤销权限 语法:revoke 权限名称 from 用户名;在该帐号下创建表 Oracle 中的事务处理 名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入
4、Transacation 事务 特点:整体提交(commit)整体回滚(rollback)事务的四个特性 原子性 不可分割 持久性-当数据整整写入到数据库物理文件中后,该数据被 持久化 隔离性-事务之间相互独立互不干扰 一致性-数据安全 Oracle 中的保留点(还原点)关键字:savepoint 使用方法:savepoint 名称;如进行保留点回滚 rollback to mark2 Oracle 备份数据表数据 create table 备份表名称 as 查询语句;Oracle 备份表结构 create table emp_bak as select*from emp where 1=2;
5、2、Oracle 的函数 function(系统预定义函数)函数和存储过程相比,在于函数必须有返回值,而存储过程只有输出参数。语法:create or replace function 函数名称 return 返回类型 名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 as PL/SQL语句块 例子:输入一个员工工号,返回该员工所在部门平均工资 create or replace function fun_demo1(eno emp.empno%type)r
6、eturn emp.sal%type as avgsal emp.sal%type;begin select avg(sal)into avgsal from emp where empno=eno;return avgsal;end;调用:select fun_demo1(7788)from dual;public int add(int num1,int num2)int res=0;res=num1+num2;return res;单行函数(单值函数):函数有且只有返回 1 个值|-字符函数 substr instr 字符串连接函数:concat 名字的开发工具界面的开发平台运行本身基于
7、的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 concat(字符串 1,字符串 2)Oracle中字符连接操作符号|字符串对齐函数:lpad-left padding 左填充 /rpad 语法:lpad(字符串,预留位置,填充字符)SQL:select lpad(ename,10,)from emp;字符串截取函数:substr-substring 语法:substr(字符串,截取的起始位置,截取个数)substr(字符串,截取的起始位置)SQL:select substr(ename,1,3
8、)frome emp;字符查找函数:instr-inner string 语法:instr(字符串,待找的字符,查找的起始位置,出现 次数)SQL:select ename,instr(ename,T,1,1)from emp;注意:当返回值为 0 时,字符不存在 函数:initcap-initial captor 语法:initcap(字符串)SQL:select initcap(ename)from emp;函数:length 语法:length(字符串)SQL:select*from emp where length(ename)=5;函数:lower/upper 语法:lower(字符
9、串)SQL:select lower(ename)from emp;名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入|-日期函数 sysdate add_months 函数:sysdate SQL:select sysdate from dual;dual-无实际意 义,函数测试或其他测试使用 月份差:months_between 语法:months_between(日期 1,日期 2)SQL:select*from emp where months_bet
10、ween(sysdate,hiredate)=144 函数:last_day 语法:last_day(日期数据)SQL:select*from emp where last_day(hiredate)-2=hiredate;函数:add_months 语法:add_months(时间,添加月份)SQL:select add_months(sysdate,3)from dual;|-转换函数 to_char to_date 转换函数 to_char 语法:to_char(时间数据,制定格式)SQL:select to_char(sysdate,yyyy-mm-dd hh24:mi:ss d dd
11、d day)from dual;yyyy-mm-dd 年月日 名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 hh24:mi:ss 时分秒(24)d 一周第几天 ddd 一年的第几天 day 星期几 to_date:将文本类型数据按照制定格式转换成时间类型数据 语法:to_date(具体的时间字符数据,时间字符串格式)to_date(2010-01-19,yyyy-mm-dd)注意:Oracle 中的 date 字段类型及其特殊|-数学函数 abs cei
12、l floor abs(n)绝对值 ceil(n)向上取值 ceilling天花板 ceil(1.1)-2 floor(n)向下取值 floor地板 floor(2.9)-2 mod(m,n)求模取余 mod(5,2)-1 power(m,n)m的 n 次方 power(2,8)-256 round(m,n)四舍五入 m 待处理数据 n 精度 round(3.1415,2)-3.14 trunc(m)整数截取 trunc(3.1415)=3 sign(m)符号 sqrt(m)平方根|-混合函数 user nvl user:返回当前登录账号 SQL select user from dual;名
13、字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 nvl:替空函数 语法:nvl(字符串,替换后的数据)注意:替换后的数据必须与该字段类型保持一致 SQL select ename,nvl(comm,0)from emp;分析函数:数据分析和挖掘功能 Data Mining rank dense_rank 作用:主要用于排名使用 函数:rank 语法:rank()over(order by 字段名称)SQL:select rank()over(order by
14、 sal desc),ename,sal from emp;若排名相同下一个将跳转 SQL:select dense_rank()over(order by sal desc),ename,sal from emp;连续 语法:rank(参数 1,参数 2)within group(order by 字段 1,字段2)SQL:select ename,rank(2850,BLAKE)within group(order by sal,ename)from emp;分组函数:类似于 SQLServer 中的聚合函数 sum avg count group by 分组关键字 having 条件 3
15、、Oracle 数据库的查询 制定区间查询 Oracle 中伪列:Oracle 为每张数据表(包括用户自定义创建的数据表)都自动创建两个位列分别是:rowid、rownum 名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 通过命令:SQL desc 表名;-查看表结构 rowid:由 18 个字符组成唯一标识每一行 rownum:行号 介绍 问题:使用 Oracle 分层查询以数据结构显示 emp表中的人员关系 语法:select lpad(ename,l
16、evel*5,)from emp connect by prior empno=mgr start with mgr is null;并集:查询部门 10 的办事员和部门 20 的经理 关键字:union all select*from emp where deptno=10 and job=CLERK union all select*from emp where deptno=20 and job=MANAGER;注意:union all不会消除查询结果中的重复数据,union会消除查询结果中的重复记录 交集:查询部门 10 和部门 20 都有的工作类型 关键字:intersect sel
17、ect job from emp where deptno=10 intersect select job from emp where deptno=20;差集:查询部门 30 中有,而部门 10 中没有的工作类型 关键字:minus select job from emp where deptno=30 名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 minus select job from emp where deptno=10;4、Oracle
18、数据库的数据对象 Oracle 的数据库对象:用户、表、约束、序列、视图、同义词和索引 定义:但凡使用 create 开头创建的对象称之为数据库对象。锁定/解除用户 语法:alter user 用户名称 account lock;注意:该指令一般在 system 账号下输入 解除用户锁定 语法:alter user 用户名称 account unlock;SQL alter user scott account unlock;注意:Oracle 11g 中 scott账号是默认锁定的,需要进行解锁处理。用户授权/撤销 grant 权限名称 to 用户名称;撤销用户权限 revoke 权限名称
19、from 用户名;表 数据字段的类型 数字类型:number 语法:number(长度,精度)number(5,2)数字长度为 3,精度为 2 范围:-999.99 999.99 名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 number(5)数字长度为 5,精度为 0 范围:-99999 99999 number 精度默认为 0 范围:-32767 32768 字符类型:varchar2 可变长度 char 字符类型 语法:varchar2(长度)日期
20、类型:date long 数据类型:该字段最大存储空间为 2GB,该字段不允许添加索引 LOB数据类型:该字段最大存储空间为 4GB,该字段不允许添加索引 CLOB:大字符类型-文章(小说,cnki)BLOB:大二进制类型-图片、音频、视频.多媒体文件 FLOB:文件定位器-内存指针 创建数据表的语法结构:create table 表名 (字段名称 1 类型 约束,字段名称 1 类型 约束,字段名称 n 类型 约束 )使用 desc 表名 查看表结构 给表添加字段 address 和 telephone 语法:alter table 表名 add(字段名称 类型);名字的开发工具界面的开发平台
21、运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 删除表字段 address 语法:alter table 表名 drop column 字段名称;修改表中已有字段的类型 语法:alter table 表名 modify(字段名称 新类型);修改表名称 语法:rename 原表名 to 新表名;约束 完整性约束=准确性+一致性 约束的四大分类:实体完整性约束(行约束)-尽量减少数据表中数据的冗余(重复的数据)技术实施:主键约束、唯一约束 语法:alter table 表名 add pr
22、imary key(字段名称);altet table 表名 add unique(字段名称);添加非空约束 语法:alter table 表名 modify(字段名称 not null);域完整性约束(列约束)-达到数据的准确性,控制数据的大小或范围或格式 技术实施:check 检查约束 alter table 表名 add constraint 约束名称 check(条件);引用完整性约束(表间约束)-达到数据的一致性 技术实施:外键约束 名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性
23、原子性不可分割持久性当数据整整写入 添加外键约束 alter table 外键表 add constraint 约束名称 foreign key(外键字段)references 主键表(主键字段);删除外键约束 语法:alter table 表名 drop constraint 约束名称;删除匿名约束 语法:alter table 表名 modify(字段名称 null);自定义完整性约束-以上三种数据库内置约束不能满足开发人 员的需求是,需要开发人员自定一些约束条件 技术实施:触发器 使用 sql 脚本批量插入数据 使用命令 SQL 路径+文件名称 SQL f:/a.sql;序列 定义:Or
24、acle 中使用 sequence 来实现字段的自增长功能,和SQLServer 中的 identity属性类型 语法:create sequence 序列名称 start with 起始数字 increment by 增长量;用法:序列对象通过两个重要的属性进行访问取值 .nextval -next value-下一个值 名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 例子:select seq_1.nextval from dual;.currval
25、-current value-当前值 例子:select seq_1.currval from dual;如何实现其自增长功能 通过语法结构将序列对象与对应的数据表进行绑定,实现其自增长功能。例子:create table users(userid number(2),username varchar2(10);create sequence seq_users start with 1 increment by 1;insert into users values(seq_users.nextval,alvin);注意:Oracle 建议一个序列对象尽与一张数据表进行绑定 技巧:create
26、 sequence 序列名称;默认从 1 每次增长 1 视图 作用:1、简化复杂的 SQL语句 2、提高数据的访问安全性 语法:create or replace view 视图名称 as 复杂的 SQL查询语句 视图是一张虚拟的数据表,在 Table 对象中不存在,只存在于内存中 注意:若视图由 1 张基表组成,修改视图将会修改基表数据,若视图 由多张表组成,则不会修改基表数据 同义词 名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 作用:Oracle
27、中的同义词提供各种数据库对象(表)的别名,目的在于提高数据表访问的安全性,尤其多用户并发访问时。语法:create synonym 表的别名 for 表名;SQL create synonym bak1 for emp;扩展:公有同义词 public 语法:create public synonym 别名 for 表名;索引 作用:提高 SQL查询语句按照制定字段查询的效率 语法:create index 索引的名称 on 数据表(字段)例子:为 hiredate字段添加索引,提高按日期查询的 SQL语句的效率 create index idx_hire on emp(hiredate)原理:
28、空间换效率 SQL 语句索引优化规则 不带 where 条件的 SQL语句一定不能使用索引 在 where 条件中有索引的字段不能使用函数 例子:假设我们查询在 1987 年参加工作的所有员工 SQL select*from emp where to_char(hiredate,yyyy)=1987;SQL select*from emp where hiredate=to_date(1987,yyyy);在 where 条件中有索引的字段不能参与运算 例子:查询在 10000 天以前参加工作的员工信息 SQL select*from emp where sysdate-hiredate100
29、00;名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 SQL select*from emp where hiredate select e.*,d.dname from emp e,dept d where e.deptno=d.deptno and d.dname=ACCOUNTING;Oracle 中常用的数据字典 Oracle是以中以表管表的模式,同时数据字典是有表或视图组成。数据字典的分类:USER_xxx:表示当前用户所拥有的数据库对象 ALL
30、_xxxx:表示当前用户与权力查看的数据库对象 DBA_xxxx:表示数据中所拥有的全部对象,只有在超级管理员级别下才可查看。xxxx:代表数据库对象的复数形式,例如:tables indexes.名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入5、Oracle 数据库的多表查询 等连接:select emp.ename,dept.dname from emp,dept where emp.deptno=dept.deptno;使用内连接模式编写:内连接:i
31、nner join.on.select emp.ename,dept.dname from emp inner join dept on emp.deptno=dept.deptno;分析:部门为主显示字段,dept 为主表 姓名为辅助显示字段,emp 为辅助表 外连接:select d.dname,e.ename from emp e,dept d where e.deptno(+)=d.deptno;6、Oracle 数据库的游标 游标 cursor 游标的分类:隐式游标:Oracle 自动应以一个隐式游标名称为 SQL,该游标不被程序员控制,自动开启、操作及结束。显式游标:可供程序员自己
32、创建及操作|-静态游标|-动态游标 静态游标 loop 循环游标/for 循环游标 名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入=loop 循环游标=步骤 1:创建一个游标 cursor 游标名称 is SQL 查询语句;步骤 2:开启游标 open 游标名称;-执行定义的SQL 查询语句并将结果集合存放到游标中 步骤 3:使用 loop 循环遍历游标中的数据并进行相应处理 loop fetch 游标名称 into 变量;exit when 游标名称%n
33、otfound;.end loop;步骤 4:关闭游标 close 游标名称;例子:显示部门编号为 10 的员工姓名 declare -步骤 1:创建一个游标 cursor mycur is select ename from emp where deptno=10;en emp.ename%type;名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入begin -步骤 2:开启游标 open mycur;-步骤 3:使用 loop 循环遍历游标中的数据并进行
34、相应处理 loop fetch mycur into en;exit when mycur%notfound;dbms_output.put_line(en);end loop;-步骤 4:关闭游标 close mycur;end;=for 循环游标=declare -步骤 1:创建一个游标 cursor mycur is select*from emp where deptno=10;erow emp%rowtype;begin -步骤 3:使用 for 循环遍历游标中的数据并进行相应处理 for erow in mycur loop dbms_output.put_line(erow.en
35、ame);名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 end loop;end;动态游标(扩展)作用:使用游标变量高度重用(只能使用 loop 循环)语法结构:步骤 1:声明一个动态游标类型 type 类型名称 is ref cursor;步骤 2:使用声明号的类型创建一个游标变量 游标名称 类型名称;步骤 3:打开游标并且绑定 SQL语句 open 游标名称 for SQL查询语句 步骤 4:使用循环遍历游标中的数据并进行处理 loop fetch
36、游标名称 into 变量;exit when 游标名称%notfound .数据处理.end loop;步骤 5:重复 34 步骤 6:关闭游标 名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 close 游标名称;例子:显示部门 30 的员工姓名及 dept 表中全部部门名称 declare -声明一个游标类型 type cur is ref cursor;-声明游标变量 mycur cur;-声明变量 erow emp%rowtype;drow dep
37、t%rowtype;begin -打开游标 open mycur for select*from emp where deptno=30;loop fetch mycur into erow;exit when mycur%notfound;dbms_output.put_line(erow.ename);end loop;dbms_output.put_line(=);-打开游标 open mycur for select*from dept;loop 名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事
38、务的四个特性原子性不可分割持久性当数据整整写入 fetch mycur into drow;exit when mycur%notfound;dbms_output.put_line(drow.dname);end loop;-关闭游标 close mycur;end;游标所有属性 游标名称%属性名称 属性名称 含义 notfound 当游标中没有遍历的数据时返回 1 found 当游标中存在有遍历的数据时返回 1 isopen 当游标开启状态时返回 1 rowcount 返回游标影响行数 7、Oracle 数据的 PL/SQL PL/SQL 块 语法格式:declare 声明 .变量声明区
39、begin 程序开始 .执行语句区 exception 异常处理部分 名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 .end;程序结束;变量的声明 标量标识符,不区分大小写,先声明再使用 变量声明的语法结构:标量名称 类型;例子:declare eno number(4);edate date;begin end;属性引用类型|-字段引用类型 例子:declare eno emp.ename%type;|-行引用类型 例子:declare erow em
40、p%rowtype;变量的赋值 四种方式:声明时赋值 名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 赋值运算符“:=”例子:声明一个变量赋值为 2 declare num1 number(2):=2;.begin.end;执行区赋值 例子:声明一个变量赋值为 2 declare num1 number(2);.begin num1:=2;.end;对话框赋值-程序与用户之间进行数据交互 例子:声明一个变量赋值为 2 declare num1 number
41、(2);.名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 begin num1:=&请输入数字;.end;注意点:当输入字符串类型数据的使用书写格式为:name:=&姓名;当输入数字类型数据的使用书写格式为:age:=&年龄;select.into.赋值模式 例子:将 emp表中 simth 的工资复制到变量 esal 中 declare esal emp.sal%type;begin select sal into esal from emp where
42、 ename=SMITH;end;Oracle 的 PL/SQL中屏幕输出语句 语法:dbms_output.put_line(xxxxxxx);将信息输出并换行 dbms_output.put(xxxxxxx);输出不换行 注意:Oracle 默认关闭屏幕输出功能,需要开发人员输入指令将其功能开启 SQL set serveroutput on;PL/SQL中的异常处理 语法:exception 名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 when
43、异常名称 then .处理方式.异常:others-任何异常都可捕获 执行语句部分 循环的使用:for while loop for语法结构:for 循环变量 in 起始数字.结束数字 loop .循环体.end loop;例子 1:显示数字 101(reverse)declare i number;begin for i in reverse 1.10 loop dbms_output.put_line(i);end loop;end;例子 1:显示乘法口诀 declare i number;名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允
44、许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 j number;begin -外层循环控制行数 for i in 1.9 loop -内层循环控制个数 for j in 1.i loop dbms_output.put(j|*|i|=|i*j|);end loop;-换行 dbms_output.put_line();end loop;end;while 循环 语法:while 进入条件 loop .循环体.end loop;loop 循环 语法:loop exit when 推出条件;名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称
45、注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 .循环体.end loop;条件判断 语法:if 条件 then elsif 条件 then else end if;例子:模拟一个登录结构,用户名为 admin 密码为 chinasoft declare username varchar2(10);password varchar2(10);begin -用户输入账号及密码 username:=&账号;password:=&密码;-逻辑判断 if username=admin and password=chinasoft
46、 then dbms_output.put_line(欢迎登录:|username);名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 else dbms_output.put_line(账号或密码错误!);end if;end;处理自定义异常 例子:若用户输入的数字不再 110 之内则抛出异常 步骤 1:创建一个异常对象 在变量声明区输入一下代码 exp exception;-声明一个异常对象,名称为 exp 步骤 2:编写条件判断结构抛出异常 在语句执行
47、区编写一下代码 if.then raise 异常对象名称;-抛出异常 end if;步骤 3:异常捕获 在语句执行区编写 exception when 异常对象名称 then .处理方式.declare 名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 n number;-用来接收用户输入的数字 exp exception;-创建一个异常对象 begin n:=&数字;-判断 if n10 then raise exp;-抛出异常 end if;dbms_o
48、utput.put_line(n);exception when exp then dbms_output.put_line(数字范围不再 110 之内);end;8、Oracle 数据库中的存储过程、函数、数据包 Oracle 中的存储过程 Oracle 中的 PL/SQL语句块,没有名字,成为匿名的 PL/SQL块,代码重用性低。需要为 PL/SQL块起名字,起名后的 PL/SQL块统称为子程序。子程序的分类:存储过程、自定义函数 存储过程 语法:create or replace procedure 存储过程名称 as 名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注
49、意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 PL/SQL块 如何调用存储过程 两种方式:1、指令方式 -exec 存储过程名称;2、使用 PL/SQL块调用 begin 存储过程名称;end;带参数的存储过程 两大类:a)带输入参数 b)带输出参数 a)带输入参数的存储过程 语法:create or replace procedure 存储过程名称(参数名称 1 in 类型,.,参数名称 n 类型)as PL/SQL块 b)带输出参数的存储过程 语法:create or replace procedure 存储过程名称
50、(参数名称 1 out 类型,.,参数名称 n out 类型)as PL/SQL块 例子:显示部门 10 的平均工资(使用输出参数)名字的开发工具界面的开发平台运行本身基于的平台运行创建一个表的名称注意在中账号和数据库绑定的密码不允许为纯数字或空需要在账号体提交整体回滚事务的四个特性原子性不可分割持久性当数据整整写入 create or replace procedure pro_demo3(avgsal out emp.sal%type)as begin select avg(sal)into avgsal from emp where deptno=10;end;调用:只能使用 PL/SQ