版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Oracle 学问点总结 1, Oracle 数据库的安装和配置 Oracle Internet 级数据库 SQLServer 中小企业级数据库 Access 桌面级数据库 Oracle 的安装 留意: 来源和目标的目录不答应有中文或空格 Oracle 数据库启动时必需开启的后台服务 OracleOrahome90TNSListener 使第三方的软件或语言拜望 OracleServiceETC Oracle 的实例 CRUD 增删改查 留意:中的 ETC 是你起的实例的名字 Oracle 的开发工具 DOS 界面的开发平- 运行 -sqlplus 台 Oracle 本身基于 DOS 的平台
2、- 运行 - sqlplusw Oracle Enterprise Manager Console PL/SQL 创建一个表的完整流程 创建一个数数库 例子:创建一个数据库 ETC , 物理文件放在 F: ,初始化 1m , 自增 长开启 create tablespace etc datafile f:etc.dbf 第 1 页,共 40 页size 1m autoextend on; 删除表空间 drop tablespace 数据库名称 ; 为该数据库创建一个帐号和密码 语法: create user 用户名称 identified by 密码 default tablespace 数据
3、库名称 留意: 1,在 Oracle 中账号和数据库 one2one 绑 定 2, Oracle 的密码不答应为纯数字或空 3,需要在 system 账号完成动作 修改 Oracle 的账号密码 语法: alter user 用户 identified by 新密码 用 grant 权限 to 用户 为该帐户授权 语法: grant 权限名称 to 用户 ; 撤销权限 语法: revoke 权限名称 from 用户名 ; 在该帐号下创建表 Oracle 中的事务处理 第 2 页,共 40 页Transacation 事务 特点:整体提交 commit 整体回滚 rollback 事务的四个特性
4、 原子性 不行分割 长期性 - 当数据整整写入到数据库物理文件中后, 该数据被 长期 化 隔离性 - 事务之间相互独立互不干扰 一样性 - 数据安全 Oracle 中的保留点 仍原点 关键字: savepoint 使用方法: savepoint 名称 ; 如进行保留点回滚 rollback to mark2 Oracle 备份数据表数据 create table 备份表名称 as 查询语句 ; Oracle 备份表结构 create table emp_bak as select * from emp where 1=2; 2, Oracle 的函数 function (系统预定义函数) 函数
5、和储备过程相比,在于函数必需有返回值,而储备过程只有输出参数; 语法: create or replace function 函数名称 return 返回类型 第 3 页,共 40 页as PL/SQL 语句块 例子:输入一个员工工号,返回该员工所在部门平均工资 create or replace function fun_demo1eno emp.empno%type return emp.sal%type as avgsal emp.sal%type; begin select avgsal into avgsal from empwhere empno=eno; return avgsa
6、l; end; 调用: select fun_demo17788 from dual; public int addint num1,int num2 int res = 0; res = num1+num2; return res; 单行函数 单值函数 :函数有且只有返回 1 个值 |- 字符函数 substr instr 字符串连接函数: concat 第 4 页,共 40 页concat 字符串 1, 字符串 2 左填充 /rpad Oracle 中字符连接操作符号 | 字符串对齐函数: lpad - left padding 语法: lpad 字符串 , 预留位置 , 填充字符 SQL
7、: select lpadename,10, from emp; 字符串截取函数: substr - substring 语法: substr 字符串 , 截取的起始位置 , 截取个数 substr 字符串 , 截取的起始位置 SQL: select substrename,1,3 frome emp; 字符查找函数: instr - inner string 语法: instr 字符串 , 待找的字符 , 查找的起始位置 , 显现 次数 SQL: select ename,instrename,T,1,1 from emp; 留意:当返回值为 0 时,字符不存在 函数: initcap -
8、initial captor 语法: initcap 字符串 SQL: select initcapename from emp; 函数: length 语法: length 字符串 SQL: select * from emp where lengthename=5; 函数: lower / upper 语法: lower 字符串 SQL: select lowerename from emp; 第 5 页,共 40 页|- 日期函数 sysdate add_months 函数: sysdate SQL: select sysdate from dual; dual- 无实际意 义,函 数测
9、试或其他测试使用 月份差: months_between 语法: months_between日期 1, 日期 2 SQL: select * from emp where months_betweensysdate,hiredate=144 函数: last_day 语法: last_day 日期数据 SQL: select * from emp where last_dayhiredate-2=hiredate; 函数: add_months 语法: add_months时间 , 添加月份 SQL :select add_monthssysdate,3 from dual; |- 转换函数
10、 to_char to_date 转换函数 to_char 语法: to_char 时间数据 , 制定格式 SQL: select to_charsysdate,yyyy-mm-dd hh24:mi:ss dddd day from dual; yyyy-mm-dd 年月日 第 6 页,共 40 页hh24:mi:ss 时分秒 24 d 一周第几天 ddd 一年的第几天 day 星期几 to_date: 将文本类型数据依据制定格式转换成时间类型数据 语法: to_date 具体的时间字符数据 , 时间字符串格式 to_date2022-01-19,yyyy-mm-dd 留意: Oracle 中
11、的 date 字段类型及其特殊 |- 数学函数 abs ceil floor absn 确定值 ceiln 向上取值 ceilling 天花板 ceil1.1 - 2 floorn 向下取值 floor 地板 floor2.9 - 2 modm,n 求模取余 mod5,2 - 1 powerm,n m 的 n 次方 power2,8 -256 roundm,n 四舍五入 m 待处理数据 n 精度 round3.1415,2 - truncm 整数截取 trunc3.1415 = 3 signm 符号 sqrtm 平方根 |- 混合函数 user nvl user : 返回当前登录账号 SQL
12、select user from dual; 第 7 页,共 40 页nvl : 替空函数 语法: nvl 字符串 , 替换后的数据 留意:替换后的数据必需与该字段类型保持一样 SQL select ename,nvlcomm,0 from emp; 分析函数:数据分析和挖掘功能 作用:主要用于排名使用 函数: rank Data Mining rank dense_rank 语法: rank over order by 字段名称 SQL: select rank overorder by sal desc,ename,sal from emp; 如排名相同下一个将跳转 SQL: select
13、 dense_rank overorder by sal desc,ename,sal from emp; 连续 语法: rank 参数 1,参数 2 within grouporder by 字段 1,字段 2 SQL: select ename,rank2850,BLAKE within grouporder by sal,ename from emp; 分组函数:类似于 SQLServer 中的聚合函数 sum avg count group by 分组关键字 having 条件 3, Oracle 数据库的查询 制定区间查询 Oracle 中伪列: Oracle 为每张数据表 包括用户
14、自定义创建的数据表 都 自动创建两个位列分别是: rowid, rownum 第 8 页,共 40 页通过命令: SQL desc 表名 ; -查看表结构 rowid: 由 18 个字符组成唯独标识每一行 rownum: 行号 介绍 问题:使用 Oracle 分层查询以数据结构显示 emp 表中的人员关 系 语法: select lpadename,level*5, from emp connect by prior empno=mgr start with mgr is null; 并集:查询部门 10 的办事员和部门 20 的经理 关键字: union all select * from
15、emp where deptno=10 and job=CLERK union all select * from emp where deptno=20 and job=MANAGER; 留意: union all 不会排除查询结果中的重复数据 , union 会排除查询结 果中的重复记录 交集:查询部门 10 和部门 20 都有的工作类型 关键字: intersect select job from emp where deptno=10 intersect select job from emp where deptno=20; 差集:查询部门 30 中有,而部门 10 中没有的工作类型
16、 关键字: minus select job from emp where deptno=30 第 9 页,共 40 页minus select job from emp where deptno=10; 4, Oracle 数据库的数据对象 Oracle 的数据库对象:用户,表,约束,序列,视图,同义词和索引 定义:但凡使用 create 开头创建的对象称之为数据库对象; 锁定 / 解除用户 语法: alter user 用户名称 account lock; 留意:该指令一般在 system 账号下输入 解除用户锁定 语法: alter user 用户名称 account unlock; S
17、QL alter user scott account unlock; 留意: Oracle 11g 中 scott 用户授权 / 撤销 账号是默认锁定的,需要进行解锁处理; grant 权限名称 to 用户名称 ; 撤销用户权限 revoke 权限名称 from 用户名 ; 表 数据字段的类型 数字类型: number 语法: number 长度 , 精度 number5,2 数字长度为 3,精度为 2范畴: 第 10 页,共 40 页number5 数字长度为 5,精度为 0 范畴: -99999 99999 number 精度默认为 0 范畴: -32767 32768 字符类型: va
18、rchar2 可变长度 char 字符类型 语法: varchar2 长度 日期类型: date long 数据类型: 该字段最大储备空间为 2GB,该字段不答应添加索 引 LOB 数据类型:该字段最大储备空间为 4GB,该字段不答应添加索引 CLOB :大字符类型 - 文章 小说, cnki BLOB :大二进制类型 - 图片,音频,视频 . 多媒体文件 FLOB :文件定位器 - 内存指针 创建数据表的语法结构: create table 表名 字段名称 1类型 约束 , 字段名称 1类型 约束 , 字段名称 n类型 约束 使用 desc 表名 查看表结构 给表添加字段 address 和
19、 telephone 语法: alter table 表名 add 字段名称 类型 ; 删除表字段 address 语法: alter table 表名 drop column 字段名称 ; 修改表中已有字段的类型 语法: alter table 修改表名称 表名 modify 字段名称 新类型 ; 语法: rename 原表名 to 新表名 ; 约束 完整性约束 = 精确性 + 一样性 约束的四大分类: 实体完整性约束 行约束 - 尽量削减数据表中数据的冗余 重复的数 据 技术实施:主键约束,唯独约束 语法: alter table 表名 add primary key 字段名称 ; alt
20、et table 表名 add unique 字段名称 ; 添加非空约束 语法: alter table 表名 modify 字段名称 not null; 域完整性约束 列约束 - 达到数据的精确性,把握数据的大小或范 围或格式 技术实施: check 检查约束 alter table 表名 add constraint 约束名称 check 条件 ; 引用完整性约束 表间约束 - 技术实施:外键约束 达到数据的一样性 添加外键约束 alter table 外键表 add constraint 约束名称 foreign key 外键字 段 references 主键表 主键字段 ; 删除外键约
21、束 语法: alter table 表名 drop constraint 约束名称 ; 删除匿名约束 语法: alter table 表名 modify 字段名称 null; 自定义完整性约束 - 以上三种数据库内置约束不能中意开发人 员的 需求是,需要开发人员自定一些约束条件 技术实施:触发器 使用 sql 脚本批量插入数据 使用命令 SQL 路径 +文件名称 SQL f:/a.sql; 序列 定义: Oracle 中使用 sequence 来实现字段的自增长功能,和 SQLServer 中的 identity 属性类型 语法: create sequence 序列名称 start with
22、 起始数字 increment by 增长量 ; 用法:序列对象通过两个重要的属性进行拜望取值 .nextval - next value - 下一个值 第 13 页,共 40 页例子: select from dual; .currval - current value - 当前值 例子: select from dual; 如何实现其自增长功能 通过语法结构将序列对象与对应的数据表进行绑定,实现其自增 长功能; 例子: create table usersuserid number2,username varchar210; create sequence seq_users start
23、with 1 increment by 1; insert into users valuesseq_users.nextval,alvin; 留意: Oracle 建议一个序列对象尽与一张数据表进行绑定 技巧: create sequence 序列名称 ; 默认从 1 每次增长 1视图 作用: 1,简化复杂的 SQL 语 句 2,提高数据的拜望安全性 语法: create or replace view 视图名称 as 复杂的 SQL 查询语 句 视图是一张虚拟的数据表,在 Table 对象中不存在,只存在于内存中 留意:如视图由 1 张基表组成,修改视图将会修改基表数据,如视图 由多 张表
24、组成,就不会修改基表数据 同义词 第 14 页,共 40 页作用:Oracle 中的同义词供应各种数据库对象 表 的别名, 目的在于 提高数据表拜望的安全性,特殊多用户并发拜望时; 语法: create synonym 表的别名 for 表名 ; SQL create synonym bak1 for emp; 扩展:公有同义词 public 语法: create public synonym 别名 for 表名 ; 索引 作用:提高 SQL 查询语句依据制定字段查询的效 率 语法: create index 索引的名称 on 数据表 字段 例子:为 hiredate 字段添加索引,提高按日期
25、查询的 SQL 语句的 效 率 create index idx_hire on emphiredate 原理:空间换效率 SQL 语句索引优化规章 不带 where 条件的 SQL 语句确定不能使用索 引 在 where 条件中有索引的字段不能使用函数 例子:假设我们查询在 1987 年参加工作的全部员工 SQL select * from emp where to_charhiredate,yyyy=1987; SQL select * from emp where hiredate=to_date1987,yyyy; 在 where 条件中有索引的字段不能参加运算 例子:查询在 1000
26、0 天以前参加工作的员工信息 SQL select * from emp where sysdate-hiredate10000; 第 15 页,共 40 页SQL select * from emp where hiredate select from empe,dept d where and d.dname=ACCOUNTING; Oracle 中常用的数据字典 Oracle 是以中以表管表的模式,同时数据字典是有表或视图组成; 数据字典的分类: USER_xxx : 表示当前用户所拥有的数据库对象 ALL_xxxx : 表示当前用户与权力查看的数据库对象 DBA_xxxx : 表示数据
27、中所拥有的全部对象,只有在超级治理员级别下 才可查看; xxxx :代表数据库对象的复数形式,例如: tables indexes . 第 16 页,共 40 页5, Oracle 数据库的多表查询 等连接: select emp.ename,dept.dname from emp,dept where emp.deptno=dept.deptno; 使用内连接模式编写: 内连接: inner join .on. select emp.ename,dept.dname from emp inner join dept on emp.deptno=dept.deptno; 分析:部门为主显示字段
28、, dept 为主表 姓名为帮忙显示字段, emp 为帮忙表 外连接: select d.dname,e.ename from emp e,dept d where e.deptno+=d.deptno; 6, Oracle 数据库的游标 游标 cursor 游标的分类: 隐式游标 : Oracle 自动应以一个隐式游标名称为 SQL ,该 游标不被程序员把握,自动开启,操作及终止; 显式游标 : 可供程序员自己创建及操作 |- 静态游标 |- 动态游标 静态游标 loop 循周游标 / for 循周游标 第 17 页,共 40 页=loop 循周游标 = 步骤 1:创建一个游标 cursor
29、 游标名称 is SQL 查询语句 ; 步骤 2:开启游标 open 游标名称 ; 到游标中 - 执行定义的 SQL 查询语句并将结果集合存放 步骤 3:使用 loop 循环遍历游标中的数据并进行相应处理 loop fetch 游标名称 into 变量 ; exit when 游标名称 %notfound; . end loop; 步骤 4:关闭游标 close 游标名称 ; 例子:显示部门编号为 10 的员工姓名 declare -步骤 1:创建一个游标 cursor mycur is select ename from emp where deptno=10; en emp.ename%t
30、ype; 第 18 页,共 40 页begin -步骤 2:开启游标 open mycur; -步骤 3:使用 loop 循环遍历游标中的数据并进行相应处理 loop fetch mycur into en; exit when mycur%notfound; dbms_output.put_lineen; end loop; -步骤 4:关闭游标 close mycur; end; =for 循周游标 = declare -步骤 1:创建一个游标 cursor mycur is select * from emp where deptno=10; erow emp%rowtype; begi
31、n -步骤 3:使用 for 循环遍历游标中的数据并进行相应处理 for erow in mycur loop dbms_output.put_lineerow.ename; 第 19 页,共 40 页end loop; end; 动态游标 扩展 作用:使用游标变量高度重用 只能使用 loop 循环 语法结构: 步骤 1:声明一个动态游标类型 type 类型名称 is ref cursor; 步骤 2:使用声明号的类型创建一个游标变量 游标名称 类型名称 ; 步骤 3:打开游标并且绑定 SQL 语句 open 游标名称 for SQL 查询语句 步骤 4:使用循环遍历游标中的数据并进行处理 l
32、oop fetch 游标名称 into 变量 ; exit when 游标名称 %notfound . 数据处理 . end loop; 步骤 5:重复 34 步骤 6:关闭游标 第 20 页,共 40 页close 游标名称 ; 例子:显示部门 30 的员工姓名及 dept 表中全部部门名称 declare - 声明一个游标类型 type cur is ref cursor; - 声明游标变量 mycur cur; - 声明变量 erow emp%rowtype; drow dept%rowtype; begin - 打开游标 open mycur for select * from emp
33、 where deptno=30; loop fetch mycur into erow; exit when mycur%notfound; dbms_output.put_lineerow.ename; end loop; dbms_output.put_line=; - 打开游标 open mycur for select * from dept; loop 第 21 页,共 40 页fetch mycur into drow; exit when mycur%notfound; dbms_output.put_linedrow.dname; end loop; - 关闭游标 close
34、 mycur; end; 游标全部属性 游标名称 %属性名称 属性名称 含义 1notfound 当游标中没有遍历的数据时返回 1found 当游标中存在有遍历的数据时返回 isopen 当游标开启状态时返回 1rowcount 返回游标影响行数 7, Oracle 数据的 PL/SQL PL/SQL 块 语法格式: declare 声明 . 变量声明区 begin 程序开头 . 执行语句区 exception 反常处理部分 第 22 页,共 40 页. end; 程序终止 ; 变量的声明 标量标识符,不区分大小写,先声明再使用 变量声明的语法结构:标量名称 类型 ; 例子: declare
35、eno number4; edate date; begin end; 属性引用类型 |- 字段引用类型 例子: declare eno emp.ename%type; |- 行引用类型 例子: declare erow emp%rowtype; 变量的赋值 四种方式: 声明时赋值 第 23 页,共 40 页赋值运算符 “:= ” 例子:声明一个变量赋值为 2 declare num1 number2:=2; . begin . end; 执行区赋值 例子:声明一个变量赋值为 2 declare num1 number2; . begin num1:=2; . end; 对话框赋值 - 程序与
36、用户之间进行数据交互 例子:声明一个变量赋值为 2 declare num1 number2; . 第 24 页,共 40 页begin num1:=& 请输入数字 ; . end; 留意点:当输入字符串类型数据的使用书写格式为: name:=&姓名 ; 当输入数字类型数据的使用书写格式为: age:=&年龄 ; o. 赋值模式 例子:将 emp 表 中 declare simth 的工资复制到变量 esal 中 esal emp.sal%type; begin select sal into esal from emp where ename=SMITH; end; Oracle 的 PL/
37、SQL 中屏幕输出语 句 语法: dbms_output.put_linexxxxxxx; 将信息输出并换行 dbms_output.putxxxxxxx; 输出不换行 留意: Oracle 默认关闭屏幕输出功能,需要开发人员输入指令将其功能 开启 SQL set serveroutput on; PL/SQL 中的反常处理 语法: exception 第 25 页,共 40 页when 反常名称 then . 处理方式 . 反常: others - 任何反常都可捕获 执行语句部分 循环的使用: for while loop for 语法结构: for 循环变量 in 起始数字 . 终止数字
38、loop . 循环体 . end loop; 例子 1:显示数字 101 reverse declare i number; begin for i in reverse 1.10 loop dbms_output.put_linei; end loop; end; 例子 1:显示乘法口诀 declare i number; 第 26 页,共 40 页j number; begin - 外层循环把握行数 for i in 1.9 loop - 内层循环把握个数 for j in 1.i loop dbms_output.putj|*|i|=|i*j| ; end loop; - 换行 dbms
39、_output.put_line ; end loop; end; while 循环 语法: while 进入条件 loop . 循环体 . end loop; loop 循环 语法: loop exit when 推出条件 ; 第 27 页,共 40 页. 循环体 . end loop; 条件判定 语法: if 条件 then elsif 条件 then else end if; 例子:模拟一个登录结构,用户名为 declare username varchar210; password varchar210; begin - 用户输入账号及密码 username:=& 账号 ; passw
40、ord:=& 密码 ; - 规律判定 admin 密码为 chinasoft if username=admin and password=chinasoft then dbms_output.put_line 欢迎登录: |username; else dbms_output.put_line end if; end; 处理自定义反常 账号或密码错误! ; 例子:如用户输入的数字不再 110 之内就抛出反常 步骤 1:创建一个反常对象 在变量声明区输入一下代码 exp exception; - 声明一个反常对象,名称为 exp 步骤 2:编写条件判定结构抛出反常 在语句执行区编写一下代码 i
41、f . then raise 反常对象名称 ; - 抛出反常 end if; 步骤 3:反常捕获 在语句执行区编写 exception when 反常对象名称 then . 处理方式 . declare 第 29 页,共 40 页n number; - 用来接收用户输入的数字 exp exception; - begin n:=& 数字 ; - 判定 创建一个反常对象 if n10 then raise exp; - 抛出反常 end if; dbms_output.put_linen; exception when exp then end; dbms_output.put_line 数字范
42、畴不再 110 之内 ; 8, Oracle 数据库中的储备过程,函数,数据包 Oracle 中的储备过程 Oracle 中的 PL/SQL 语句块,没出名字,成为匿名 的 PL/SQL 块,代码重 用 性低;需要为 PL/SQL 块起名字,起名后 的 子程序的分类:储备过程,自定义函数 储备过程 语法: create or replace procedure as PL/SQL 块统称为子程 序; 储备过程名称 第 30 页,共 40 页PL/SQL 块 如何调用储备过程 两种方式: 1,指令方式 - exec 储备过程名称 ; 2,使用 PL/SQL 块调用 begin 储备过程名称 ;
43、end; 带参数的储备过程 两大类: a 带输入参数 b 带输出参数 a 带输入参数的储备过程 语法: create or replace procedure 储备过程名称 参数名称 1 in 类型 , . , 参数名称 n 类型 as PL/SQL 块 b 带输出参数的储备过程 语法: create or replace procedure 类型 , . , 参数名称 n out 类型 as PL/SQL 块 储备过程名称 参数名称 1 out 例子:显示部门 10 的平均工资 使用输出参数 第 31 页,共 40 页create or replace procedure pro_demo3
44、avgsal out emp.sal%type as begin select avgsal into avgsal from emp where deptno=10; end; 调用: 只能使用 PL/SQL 块 declare getsal emp.sal%type; begin pro_demo3getsal; dbms_output.put_linegetsal; end; /1 ,输入指定员工的员工编号,输出其所在部门的其他姓名 储备过 程,带参数的游标,输入参数 思路: *1 ,使用 SQL 语句查询 7788 员工所在部门的其他员工信 息 select * from emp wh
45、ere deptno=select deptno from emp where empno=7788 and empno7788; *2 ,修改成 PL/SQL 块 declare cursor mycureno emp.empno%type is select * from emp where deptno=select deptno from emp where empno=eno and empnoeno; 第 32 页,共 40 页erow emp%rowtype; tmp emp.empno%type; begin tmp:=& 工号 ; for erow in mycurtmp l
46、oop dbms_output.put_lineerow.ename; end loop; end; * 3 ,修改成为储备过程 create or replace procedure pro_demo4tmp emp.empno%type as cursor mycureno emp.empno%type is select * from emp where deptno=select deptno from emp where empno=eno and empnoeno; erow emp%rowtype; begin for erow in mycurtmp loop dbms_out
47、put.put_lineerow.ename; end loop; end; *4 ,调用 第 33 页,共 40 页exec pro_demo47788; /2 ,输出制定员工所在部门的平均工资 储备过程, 输入参数, 输出参数 思路: *1 ,编写 SQL 语 句 select avgsal from empwhere deptno=select deptno from empwhere empno=7788 * 2 , PL/SQL 语 句 declare eno emp.empno%type; esal emp.sal%type; begin eno:=& 编号 ; select av
48、gsal into esal from emp where deptno=select deptno from emp where empno=eno; dbms_output.put_lineesal; end; * 3 ,修改为储备过程 create or replace procedure pro_demo5eno in emp.empno%type,esal out emp.sal%type as begin select avgsal into esal from emp where deptno=select 第 34 页,共 40 页deptno from emp where e
49、mpno=eno; end; * 4 ,调用 declare tmp emp.sal%type; begin pro_demo57788,tmp; dbms_output.put_linetmp; end; 程序包 程序包是一个函数或储备过程的集合; 程序包的结构:第一部分:程序包的声明 create or replace package 包名称 as 储备过程的声明 ; 自定义函数的声明 ; end; 其次部分:程序包主体 create or replace package body 包名称 as 储备过程的实现 ; 第 35 页,共 40 页自定义函数的实现 ; 例子:完成对 EMP 表进
50、行增删改的操 作 part1: create or replace package emp_pack procedure add_empenoemp.empno%type,enmemp.ename%type,dno emp.deptno%type; procedure update_empeno emp.empno%type,esal emp.sal%type; procedure delete_empeno emp.empno%type; end; part2: create or replace package body emp_pack as - 添加 procedure add_empenoemp.empno%type,enmemp.ename%type,dno emp.deptno%type as
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子产品代理经销合同
- 智能语音语义平台开发合同
- 房屋中介销售合同范本模板
- 房屋地基买卖合同格式文本
- 房屋买卖合同修改方法
- 企业与个人借款合同范本
- 热处理设备购买协议范本
- 优惠旅游服务合同
- 挖掘机租赁合同格式
- 食品调料供货合同协议
- 商场用电安全培训
- 《中小学教育惩戒规则(试行)》宣讲培训
- 结清货款合同范例
- 开题报告:职普融通与职业教育高质量发展:从国际经验到中国路径创新
- 变、配电站防火制度范文(2篇)
- 九年级上册人教版数学期末综合知识模拟试卷(含答案)
- 重大版小英小学六年级上期期末测试
- 微积分知到智慧树章节测试课后答案2024年秋铜陵学院
- 金融科技UI设计
- 《头脑风暴》课件
- 安全生产知识考试题库(有答案)-安全考试题库
评论
0/150
提交评论