首页 > 数据库 >SQL自定义函数

SQL自定义函数

时间:2022-11-07 23:45:08浏览次数:49  
标签:typeid 存储 函数 自定义 int SQL 过程 select

 

存储函数和存储过程统称为存储例程(store routine),存储函数的限制比较多,
例如不能用临时表,只能用表变量,而存储过程的限制较少,存储过程的实现功能要复杂些,
而函数的实现功能针对性比较强

存储过程和函数的区别:

一、 存储函数有且只有一个返回值,而存储过程不能有返回值,但可以利用输出参数带回值

二、 函数只能有输入参数,而且不能带in, 而存储过程可以有多个in,out,inout参数。

三、存储过程中的语句功能更强大,存储过程可以实现很复杂的业务逻辑,
而函数有很多限制,如不能在函数中使用insert,update,delete,create等语句;
存储函数只完成查询的工作,可接受输入参数并返回一个结果,
也就是函数实现的功能针对性比较强。

四、 存储过程可以调用存储函数。但函数不能调用存储过程。

五、 存储过程一般是作为一个独立的部分来执行(call调用)。而函数可以作为查询语句的一个部分来调用。


create procedure sp_pro3(typeid int ,out mycount int )
BEGIN

if typeid=1 THEN
select count(*) into mycount from score where cid='01' and mark>90;
elseif typeid=2 THEN
select count(*) into mycount from score where cid='02' and mark>90;
end if;
end;

create function fun(typeid int)
returns INT
BEGIN
declare x int;
if typeid=1 THEN
select count(*) into x from score where cid='01' and mark>90;
elseif typeid=2 THEN
select count(*) into x from score where cid='02' and mark>90;
end if;
return x;
end;

select fun(2)

 

标签:typeid,存储,函数,自定义,int,SQL,过程,select
From: https://www.cnblogs.com/daimenglaoshi/p/16867918.html

相关文章

  • mysql单实例部署
    mysql安装分三步走一、数据文件的目录放在/data/mysql二、软件放在/usr/local/三、配置文件/etc/--mysql的配置文件必须是‘.cnf’结尾单实例安装用my.cnf这个配置......
  • MySql -基础学习2- 创建数据库表
    CREATETABLEIFNOTEXISTS`stdent`(`id`INT(4)NOTNULLAUTO_INCREMENTCOMMENT'学员id',`name`VARCHAR(30)NOTNULLDEFAULT'匿名'COMMENT'姓名',`paw`VA......
  • Linux-安装MySQL
    一、卸载系统自带的mariadb1、查看系统自带的mariadbrpm-qa|grepmariadb   2、卸载rpm-e--nodeps mariadb-libs-5.5.68-1.el7.x86_64二、mysql安装1、从官网下载M......
  • Mysql-DML操作数据
    写插入语句--给指定列添加数据INSERTINTOstu(id,username)values(1,"张三")Mysql中关于错误1366-Incorrectstringvalue:####'\xE5\xBC\xA0\xE4\xB8\x89'for......
  • wdf框架之WdfVersionBind函数分析(2)
    接​​前篇​​,这篇一起来看下WdfVersionBind函数的第4个参数:WdfDriverGlobals。经过前面一番波折,WdfVersionBind总算找到了Wdf01000.sys!_WDF_LIBRARY_INFO结构。接下去,它......
  • Wdf框架:FxDriverEntry----驱动程序的入口函数
      在前面的文章<Wdf框架中WdfDriverGlobals对象的创建>中简单的提到过WdfVersionBind函数的作用,但是没有来得及分析这个函数的调用处。今天得空,借这篇文章写下WdfVersio......
  • MATLAB:quiver()函数
    quiver()用来画矢量图,这里仅介绍常使用的quiver(x,y,u,v)语句x,y表示起始点;u,v表示向量的相关信息:向量的长度为sqrt(u^2+v^2);向量的夹角为arctan(v/u),注意是v/ux,y......
  • MySQL聚合函数
    AVG()                   平均值COUNT()            计数MAX()                  最大值MIN()          ......
  • MySQL信息函数
    CONNECTION_ID()              连接ID,返回ID号,也是线程的IDDATEBASE()                          当前数据库LAST_INSERT_ID()......
  • MySQL比较运算符和函数
    本文重点是三个比较运算符1,[NOT[BETWEEN...AND...2 , [NOT]IN()3 , IS[NOT]NULL例1:BETWEEN...AND..如果数字A在设定范围之内,返回TRUE,否则返回FAUSEmysql>SE......