【数据库】SQL函数|变量

SQL--变量 SQL-变量 变量 1.系统变量: 全局变量:作用域:服务器每次启动将为所有的全局变量赋初始值, 针对于所有的的会话(连接)有效,但不垮重启。 会话变量:仅仅针对当前的会话(连接)有效 2.自定义变量: 用户变量 局部变量 一. 系统变量 即该变量由系统提供,不是用户定义,属于服务层面... 阅读详情

 🔥博客主页: 我要成为C++领域大神

🎥系列专栏:【C++核心编程】 【计算机网络】 【Linux编程】 【操作系统】

❤️感谢大家点赞👍收藏⭐评论✍️

本博客致力于分享知识,欢迎大家共同学习和交流。

SQL函数

格式

create function 函数名(参数名 数据类型,参数名 数据类型,......)
returns 返回值类型
begin
函数语句1
函数语句2
.........
end

注意事项

SQL函数 函数体语句以;结尾,但是编译器会误认为这是函数的结尾,所以我们需要修改结束标记。
修改方式:delimiter 新的结束标记。
函数创建完成后,需要将结束标记修改回来。

#创建函数
drop function if exists myadd;
delimiter //
create function myadd(a int ,b int)
returns int
begin
declare c int default 0;
set c=a+b;
return c;
end //
delimiter ;   

调用函数

select myadd(3,5);

删除函数

drop function if exists 函数名;

函数如果存在则删除函数。若是没有if exists,函数不存在会执行失败。

变量

局部变量

函数内的变量,生命周期是函数开始到函数结束

会话变量

语法:@变量名;

set @a=10;
select @a;

生命周期:开始一次会话后,到会话结束。

不仅可以在设置会话变量的sql文件内查看变量的值,在其他sql文件内也可以查看。


结束会话后再次查看试试:
 


可以发现,变量的值是空。说明其生命周期在会话开始到结束。

系统变量

系统变量也叫做全局变量,包含数据库提前配置的系统参数。
查看系统变量的方式:show global variables;
 


不要轻易修改系统变量,否则可能会引起程序崩溃。

判断语句

if判断

语法:
if(表达式) then 执行语句1;执行语句2;执行语句3;
elseif (表达式) then 执行语句1;执行语句2;执行语句3;
else 执行语句;
end if;

例如:使用if判断创建一个函数,判断输入的值是正数、负数还是零。

drop function if exists myfun;
delimiter //
create function myfun(n int)
returns varchar(45)
begin
declare res varchar(45) default '';
if(n>0) then set res ='正数';
elseif(n=0) then set res='零';
else set res='负数';
end if;
return res;
end //
delimiter ;

case选择判断

语法:
1、

case 变量 when 值1 then 执行语句1;执行语句2;

when 值2 then 执行语句1;执行语句2;

when 值3 then 执行语句1;执行语句2:

end case;

2、

case when 表达式1 theni执行语句;

when 表达式2 then 执行语句;

when 表达式i then 执行语句;

同样的,用case选择创建一个函数,判断一个数是否是负数

drop function if exists myfun;
delimiter //
create function myfun(n int)
returns varchar(45)
begin
declare res varchar(45) default '';

case   when (n>0) then set res ='正数';
	   when (n=0) then set res='零';
	   when (n<0) then set res='负数';
end case;
return res;
end //
delimiter ;

循环

循环:while循环

语法:

while 条件

do

end while;

例:编写一个循环函数,计算1+2+3+...+n

drop function if exists mysum;
delimiter //
create function mysum(n int)
returns int
begin
declare nSum int default 0;
declare i int default 1;
while i<=10
do
set nSum=nSum+i;
set i=i+1;
end while;
return nSum;
end //
delimiter ;

select mysum(10);

其他循环:没有for循环,有loop和repeat循环

【数据库系统】数据库系统概论——第八章 数据库编程 【数据库系统】数据库系统概论====第八章 数据库编程 SQL编程语言技术可以有效克服SQL语言实现复杂应用方面的不足,提高应用系统和数据库管理系统间的互操作性。 SQL编程访问和管理数据库的方式:嵌入式SQL、过程化SQL、存储过程和定义函数、开放数据库互连、OLE DB、Java数据库连接等编程方式。 8.1嵌入式SQL SQL语言的特点之一是交互式和嵌入式两种不同的使用方式下,SQL的语法结构基本一致。在程序设计的环境下,SQL语句要做某些必要的扩充。 8.1.1嵌入式SQL的处理过程 主语言: 阅读详情

相关推荐

Web自动化神操作:如何用OpenCV 破解滑块验证码?

验证码作为一种安全机制,可以有效防止暴力破解密码、发帖、灌水、刷票等,大家在做 Web 自动化的时候应该有碰到验证码这个难题,一般我们可以和开发沟通请求他们的帮助:去掉验证码或者设置一个万能验证码,而如果开发不帮忙我们该如何去解决呢? 本篇文章以 Java 语言为例教你怎么破解验证码。 现在大多数网址会采用滑块验证码的方式,下面以腾讯的滑块验证码为例,先来看看破解的效果: 要破解滑块验证码,我们一般采取的思路如下: 获取滑块到背景缺口图的距离 通过 selenium 的 Actio

不喝枸杞的程序员 2036

动态游标怎么fetch到一个行类型变量_SQL高级知识——变量的具体用法

变量的定义SQL Server中的变量就是一个参数,可以对这个参数进行赋值。变量的分类变量分为局部变量和全局变量,局部变量用@来标识,全局变量用@@来标识(常用的全局变量一般都是已经定义好的)声明变量变量在使用前必须先声明才能够使用。申明局部变量语法DECLARE @变量名 数据类型;例如:DECLARE @A INT;这样就声明了一个整数型的变量@A局部变量赋值声明完了变量就可以给变量赋值了,变...

weixin_39540744的博客 509

Pure Persuit算法基础

Pure Persuit算法本身的原理不难理解,它主要基于几何原理进行的设备控制,本身不考虑太多的运动学约束。同时机器人的路径跟踪效果应该会比较依赖于预瞄点。对于曲线部分而言,如果曲率很小而预瞄点很远的话,对于曲线的跟随性应该会很差。对于直线而言,如果设备在开始时与轨迹有横向偏差,则在运动过程中机器人会逐渐收敛到曲线,但是收敛速度取决于预瞄点距离。

YiYeZhiNian的博客 1522

SQL变量的使用(自定义变量)

文章目录一、系统变量1.1 全局变量1.2 会话变量二、自定义变量(重点)2.1 用户变量①声明并初始化②赋值(更新变量的值)③使用(查看变量的值)★2.2 局部变量三、案例3.1 案例13.2 案例2四、用户变量和局部变量的对比 一、系统变量 说明:变量由系统定义,不是用户定义,属于服务器层面 注意: 全局变量需要添加GLOBAL关键字, 会话变量需要添加SESSION关键字,如果不写,默认会话级别 使用步骤 查看所有系统变量 SHOW GLOBAL VARIABLES;#全局变量 SHOW SES.

积一时之步,臻千里之遥程 3万+

Windows: 深入剖析pip install SSLError与SSL模块缺失的根源及系统级修复

本文深入分析Windows系统下pip install SSLError与SSL模块缺失的根本原因,提供系统级修复方案。从Python安装包缺失SSL支持、OpenSSL库冲突到环境变量配置问题,详细讲解四大成因及对应的解决方案,包括重新安装Python、手动修复OpenSSL依赖等实用技巧,帮助开发者彻底解决HTTPS连接问题。

weixin_28595749的博客 459

从零开始:IBM V3700控制器更换与机器代码升级全流程指南

本文详细介绍了IBM V3700存储系统控制器更换与机器代码升级的全流程指南。从前期准备、硬件更换到版本同步,逐步解析如何应对503错误等常见问题,确保系统稳定运行。通过实战案例和优化建议,帮助工程师高效完成维护任务,提升存储系统可用性。

weixin_28365523的博客 312

SQL 基础知识

4、全部变量: 全部变量以@@开头,SQL Server 系统内部事先定义好的变量,不需用户参与定义,作用范围任何程序均可随时调用。@@FETCH_STATUS:返回上一次使用游标FETCH操作所返回的状态值,且返回值为整型(0,成功,-1,失败或此行不在结果集中,-2,被提取的行不存在)4、PRINT:向客户端返回一个用户自定义的信息,即下是一个字符串,局部变量,或全部变量的内容 PRINT @TEST|@@ERROE|‘FDJAKD’@@ERROR:返回执行上一条SQL语句所返回的错误代码。

chenglin016的博客 2075

TPS5430/54302调试血泪史:从‘烫手山芋’到冒烟烧板,我的5V电源到底怎么了?

本文深入剖析了TPS5430/TPS54302 DCDC电源芯片调试中的常见问题,包括异常发热、电压漂移等,并提供了从热设计到PCB布局的全面解决方案。通过实战案例,揭示了数据手册中未明确的‘潜规则’,帮助工程师避免烧板风险,提升电源系统稳定性。

weixin_28744423的博客 503

Mysql变量

一、系统变量 说明:系统变量是由系统提供,不是用户定义,属于服务器层面 使用语法: 查看所有的系统变量 show global | 【session】 variables; 查看满足部分条件的系统变量 show global | 【session】 variables like "%char%"; 查看指定某个系统变量的值 select @@global | 【session】.系统变量名; 为某个系统变量赋值 //方式一 set global | 【session】 系统变量名 =

芒种、的博客 2643

【AUTOSAR-COM】Transmission Mode 和 Transfer Property

1.COM模块的基本概念 首先在描述Transmission Mode 和 Transfer Property之前,有必要对COM模块的基本处理有一个直观的理解,我所描述的和对概念理解的也不一定完全正确。 Signal:指的是通信协议中的,一条报文中所保存的若干信号。 I-PDU:至少在COM模块中,可以理解为一条报文。 上图是在CANdb软件中编辑一个报文的Layout的界面,可以很形象的将I-PDU对等为这里的一条Message,而Signal就是需要在Message中需要摆放的Signal

tim_hoven的博客 4635

最优控制 (Optimal Control) 算法详解及案例分析

最优控制是一种通过优化控制输入,使系统在满足约束条件的情况下达到最优性能的控制方法。其目标是最小化或最大化一个性能指标。

闲人编程的博客 2092

【数据库SQL】变量和函数_小白入门

1、要求 理解批处理和注释的作用 理解常量、变量和表达式的概念 掌握变量的定义、赋值和输出方法 理解系统函数的使用方法 掌握用户自定义函数的创建方法 掌握流程控制语句的使用方法 2、批处理和注释 批处理语句是从程序的开始到go语句结束,或者是在两个go语句中间的一条或多条T-SQL语句。 每遇到一个go语句,系统即将这个批处理中的所有语句一同发送给服务器处理。系统允许一次发送多个批处理同时处理,但如果其中一个批处理出现错误,整个被发送的所有程序将不被执...

JJL的博客 1289

自建 HTML获取腾讯六宫格点选图片验证码素材,实现刷新批量获取图片方便训练

通过自建 HTML 页面,可以方便地获取腾讯六宫格二维码素材,不仅过程简单,而且可以灵活配置各种参数。希望这篇文章能帮助到需要相关素材的小伙伴。如果你有其他问题或者更好的方法,欢迎留言交流!

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 489

系统函数和系统变量

系统函数  HOST_ID  返回服务器端计算机的ID  HOST_NAME 返回服务器端计算机的名称 DB_ID 返回数据库标识ID号 DB_NAME 返回数据库名称 APP_NAME 返回当前会话的应用程序名称 USER_NAME 基于指定的标识号返回数据库用户名 CURRENT_USER 返回当前用户的名称。此函数等价于USER_NAME() 系统变量 @@language 返回当前所用

亮子的专栏 558

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

DB-library 常用函数

DB-library 常用函数 1. Dbcmd和dbfcmd 函数原形: Dbcmd(DBPROCESS *proc,char * sql); Dbcmd(DBPROCESS *proc, char * format,char *args); 实例 Dbcmd(proc,“select * from users where user=‘xingxing’”); Char *user=“xingxing”; Dbfcmd(proc,“select * from users where user=’%s’”,

qq_38616559的博客 894

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

GBase 8a数据库函数中是否支持使用查询SQL给变量赋值

不支持DML,DDL,创建临时表。 不支持函数里面涉及SQL查询语句,及使用查询SQL给变量赋值 不支持的原因如下: 自定义函数是在各节点的gnode层执行,由于集群分为复制表和分布表,而在单一gnode上无法得到分布表在所有gnode上的数据,故查询SQL给变量赋值会有问题,所以不支持。 ...

kevindaddy的博客 543

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

直接通过 ODBC API 访问 SQL 数据库

*********************************ODBC - Open DataBase Connectivity*********************************Basic StepsConnecting to the SQL Server DataBase for retrieving information from tables**************

joo的专栏 1087

SQL Server 2008的Transact-SQL语言增强(一)

本文在Microsoft SQL Server 2008中 对 Transact-SQL 语言进行增强介绍,主要包括:ALTER DATABASE 兼容级别设置、复合运算符、CONVERT 函数、日期和时间功能等内容。 SQL Server 2008的Transact-SQL语言增强(二)  Microsoft SQL Server 20...

weixin_33847182的博客 175

c++builder6.0 数据库查询函数select * into 功能的实现

powerbuilder 中的可以直接使用 select a,b,c into :a,:b,:c from table where id = :id ;这样的脚本直接获取数据库的数据。 在C++builder中的如何实现呢? 1.C++builder 中的函数设计 int a,b,c int id = 100 ; String sql = "select a,b,c into ......

自学C++,会写HelloWorld 825

Go连接Mysql数据库

本文介绍了Go语言连接MySQL数据库的基本方法

2301_80077399的博客 255

关于mysql数据库方面

mysqli_select_db($this->con,"my_db");$sql = "insert into message(username,content,lasttime)VALUES ('$username','$content','$time')";$username 等变量一定要有单引号。 转载于:https://www.cnblogs.com/John-/p/6...

dike1074的博客 95

信息查询相关系统函数和系统变量(SQL Server)

函数名称 函数功能 HOST_ID 返回服务器端计算机的ID HOST_NAME 返回服务器端计算机的名称 ...

weixin_30322405的博客 123

SQL-变量&存储过程&函数应用

#变量 #系统变量:系统、会话 自定义变量:用户、局部 #1.show global 【session会话级别】 variables;#后面还可以加模糊查询是可以的 #2.select @@global.系统变量名#查看某个特定的系统变量的值 #3.赋值:set global 【session】系统变量名=值; SHOW GLOBAL VARIABLES;#查看全局变量 SHOW GLOBAL VARIABLES LIKE 'char%'; SELECT @@global.autocommit; .

Chloris_的博客 421

如何查看未使用绑定变量的SQL(TOM的函数remove_constants)

如何查看未使用绑定变量的SQL(TOM的函数remove_constants) create table t1 as select sql_text fromv$sqlarea; alter table t1 add sql_text_wo_constantsvarchar2(1000); createor replace function  remove_constants(

772

Sql Server数据库基础教学

SQL2005教案 (40课时) 第一节课  sql2005的安装,数据库和表的创建以及基本概念 1.图示说明               2.基本概念   数据库(DB,Database):数据库是长期储存在计算机内,有组织,可共享的大量数据的集合.   数据(Data):数据是数据库中存储的基本对象,它是描述事物的符号记录.

没有你的城市 5427

oracle 执行带参数的sql语句_直接运行sql语句,要怎么在oracle内置函数中替换参数...

使用db.Ado.SqlQueryDynamic()这个方法,sql字符串中用 @变量名 来替换 变量。但是,变量如果是oracle函数的参数,就有一些不同。如:to_date(HAPPEN_TIME,'yyyy-mm-dd hh24:mi:ss')=>to_date(@startDate,'yyyy-mm-dd')这样写,@startDate不会被替换to_date(@startDate...

weixin_34338129的博客 550
上一篇: 【操作系统】五分钟读懂内存管理
下一篇: 【力扣】合并k个升序链表
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值