001、数据准备

news/2024/11/23 17:08:02/

MySQL 数据用例

CREATE TABLE dept(
deptno MEDIUMINT   UNSIGNED  NOT NULL  DEFAULT 0 comment '编号',
dname VARCHAR(20)  NOT NULL  DEFAULT "" comment '名称',
loc VARCHAR(13) NOT NULL DEFAULT "" comment '地点'
) comment '部门表' ;
CREATE TABLE emp
(empno  MEDIUMINT UNSIGNED  NOT NULL  DEFAULT 0,
ename VARCHAR(20) NOT NULL DEFAULT "" comment '名字',
job VARCHAR(9) NOT NULL DEFAULT "" comment '工作',
mgr MEDIUMINT UNSIGNED NOT NULL DEFAULT 0 comment '上级编号',
hiredate DATE NOT NULL comment '入职时间',
sal DECIMAL(7,2)  NOT NULL comment '薪水',
comm DECIMAL(7,2) NOT NULL comment '红利',
deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0 comment '部门编号'
) comment '雇员表';
CREATE TABLE salgrade(
grade MEDIUMINT UNSIGNED NOT NULL DEFAULT 0 comment '等级',
losal DECIMAL(17,2)  NOT NULL comment '最低工资',
hisal DECIMAL(17,2)  NOT NULL comment '最高工资'
) comment '工资级别表';
INSERT INTO salgrade VALUES (1,700,1200);
INSERT INTO salgrade VALUES (2,1201,1400);
INSERT INTO salgrade VALUES (3,1401,2000);
INSERT INTO salgrade VALUES (4,2001,3000);
INSERT INTO salgrade VALUES (5,3001,9999);
delimiter $
create function rand_num()
returns tinyint(6) READS SQL DATA
begindeclare return_num tinyint(6) default 0;set return_num = floor(1+rand()*30);return return_num;
end $
delimiter $
create function rand_string(n INT)
returns varchar(255) READS SQL DATA
begindeclare chars_str varchar(100) default'abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ';declare return_str varchar(255) default '';declare i int default 0;while i < n doset return_str =concat(return_str,substring(chars_str,floor(1+rand()*52),1));set i = i + 1;end while;return return_str;
end $
delimiter $
create procedure insert_emp(in start int(10),in max_num int(10))
begindeclare i int default 0;#set autocommit =0 把autocommit设置成0,关闭自动提交;set autocommit = 0;repeatset i = i + 1;insert into emp values ((start+i) ,rand_string(6),'SALESMAN',0001,curdate(),2000,400,rand_num());until i = max_numend repeat;commit;
end $
call insert_emp(1,4000000) $

ORACLE 数据用例

CREATE TABLE dept(
deptno int primary key,
dname VARCHAR(20)  NOT NULL,
loc VARCHAR(13) NOT NULL
) ;
alter table dept modify loc default '';
CREATE TABLE emp
(empno  int  NOT NULL ,
ename VARCHAR(20) NOT NULL ,
job VARCHAR(9) NOT NULL ,
mgr int NOT NULL ,
hiredate DATE NOT NULL ,
sal DECIMAL(7,2)  NOT NULL ,
comm DECIMAL(7,2) NOT NULL ,
deptno int NOT NULL 
);
CREATE TABLE salgrade(
grade int not null,
losal DECIMAL(17,2)  NOT NULL ,
hisal DECIMAL(17,2)  NOT NULL 
) 

补充一: Oracle函数

1、函数与存储过程的不同点
(1)、函数就是一个有返回值的过程,且是必须。
(2)、存储过程只能作为一个plsql语句调用,而函数不但可以作为plsql语句调用,符合约束的函数还可以作为sql表达式的一部分使用。
(3)、对于无参函数的定义和调用都没有圆括号,但无参存储过程需要。

2、函数与存储过程的相同点
(1)、都存储在数据库中,并且可在块中调用,代码都有定义部分、可执行部分、异常处理部分。
(2)、都有in,out,in out三种参数,都可以使用缺省值,都可以通过out模式返回一个或多个值。
(3)、都可以使用位置表示法和名称表示法。

二、函数参数的传递方式
1.无参函数
create or replace function fun_dtime return varchar2
as
begin
return to_char(sysdate,‘yyyy"年"mm"月"dd"日"’);
end;

调用
begin
dbms_output.put_line(fun_dtime);
end;

2.带输入输出参数的函数
create or replace function fun_info(i_eno number,o_title out varchar2,salch in out number) return varchar2
as
name emp.ename%type;
begin
select ename into name from emp where empno=i_eno;
update emp set sal=sal+salch where empno=i_eno returning job,sal into o_title,salch;
return name;
end;

调用
declare
v_eno number:=7369;
vn emp.ename%type;
vj emp.job%type;
vs emp.sal%type;
begin
vs:=100;
vn:=fun_info(v_eno,vj,vs);
dbms_output.put_line(‘姓名’ || vn || ‘岗位’ || vj || ‘新工资’ || vs);
end;

3.删除函数
drop function fun_info;

三、return语句
在函数内,是通过return语句来返回值的。函数体可以有多条return语句,但只能有一条被执行。函数结束时,还没有执行return语句会产生错误。
另外,return语句也可以使用在存储过程中,这种情况下它没有参数,当执行不带参数的return语句后,立刻结束并跳出存储过程,将out,in out形式的形参的当前值传给实参,并将控制权返回到调用环境。

四、函数在PLSQL中的使用

1、函数可在sql中的以下部分被调用:
select、where、having、connect by、start with、order by、group by、insert的values中、update的set中

2、被调用的函数满足以下限制:
1)、只能调用服务端函数,即是不能作为块的一部分。
2)、函数只能有输入参数,不能有out\in out。
3)、函数只能使用sql支持的标准数据类型,不能使用PL/SQL特有的数据类型。
4)、函数内不能包含DML语句。


http://www.ppmy.cn/news/323961.html

相关文章

获取《使命召唤》模型及动画

下载地址 WraithArchon 可以提取使命召唤 重返德军总部等游戏的模型贴图及动画

使命召唤8联机找不到服务器,使命召唤8怎么联机 使命召唤8联机方法简介

首先&#xff0c;要安装“使命召唤8最新联机补丁最新升级补丁整合包修复版”&#xff0c;将里面所有文件都放到游戏目录&#xff0c;有重 名的就替换掉&#xff0c;然后打开游戏目录的TeknoMW3.exe&#xff0c;IP Address and port(MP only 这行字后面有两个格&#xff0c;第一…

苹果ios系统使命召唤Call of Duty下载方法

超好玩手游使命召唤iOS版下载强势来袭&#xff0c;带给你前所未有的游戏体验。 《使命召唤手游》由动视和腾讯旗下天美工作室联合打造&#xff0c;是一款免费下载&#xff0c;内置付费项目的游戏&#xff0c;《使命召唤》中的诸多经典地图、武器、角色都将在游戏中登场。 今天…

使命召唤19发布时间曝光 确定将于10月28号发布

作为年货游戏的使命召唤系列&#xff0c;在今天正式官宣了新作《使命召唤19》的发布时间&#xff0c;将于10月28号发售&#xff0c;下面就一起来看看详细内容吧。 使命召唤19发布时间曝光 确定将于10月28号发布 在不久前公布了名称和logo之后&#xff0c;动视现已确认今年的《…

使命召唤服务器无响应,使命召唤ol黑屏无响应怎么办 使命召唤ol黑屏死机解决办法...

使命召唤ol黑屏无响应怎么办&#xff1f;很多玩家朋友们进入游戏会出现黑屏卡机等问题&#xff0c;遇到这些情况要怎么解决呢&#xff1f;下面我们就来看一看使命召唤ol黑屏死机解决办法一览&#xff0c;希望对大家有所帮助。 使命召唤ol黑屏死机解决办法&#xff1a; 【1】无法…

使命召唤10:幽灵中文版分享

游戏介绍 《使命召唤10&#xff1a;幽灵》是动视暴雪旗下使命召唤系列的最新作&#xff0c;由《现代战争》系列的开发商Infinity Ward制作&#xff0c;采用次世代新引擎&#xff0c;拥有全新的故事、角色和设定&#xff0c;“幽灵”将是一支新的COD系列作。《使命召唤10&#…

使命召唤 计算机配置,使命召唤16配置要求 电脑配置推荐

使命召唤这款游戏从推出到现在&#xff0c;一直深受玩家喜爱。不仅是从游戏的剧情&#xff0c;还是画面的做工&#xff0c;基本上都让玩家无可挑剔。近日使命召唤16强势上线&#xff0c;并且官方公布了PC具体配置要求&#xff0c;感兴趣的玩家就一起来看看使命召唤16详细配置吧…