mysql存储过程触发器_【MySQL笔记】触发器,存储过程和函数

2)case语句

mysql > DELIMITER //

mysql >CREATEPROCEDUREproc3 (inparameterint)

->begin

->declarevarint;

->setvar=parameter+1;

->casevar

->when0then

->insertintotvalues(17);

->when1then

->insertintotvalues(18);

->else

->insertintotvalues(19);

->endcase;

->end;

-> //

mysql > DELIMITER ;

4.6.2循环语句

1)while ···· end whilemysql > DELIMITER //

mysql >CREATEPROCEDUREproc4()

->begin

->declarevarint;

->setvar=0;

-> while var<6 do

->insertintotvalues(var);

->setvar=var+1;

->endwhile;

->end;

-> //

mysql > DELIMITER ;

2)repeat···· end repeat:它在执行操作后检查结果,而while则是执行前进行检查。mysql > DELIMITER //

mysql >CREATEPROCEDUREproc5 ()

->begin

->declarevint;

->setv=0;

-> repeat

->insertintotvalues(v);

->setv=v+1;

-> until v>=5

->endrepeat;

->end;

-> //

mysql > DELIMITER ;

3)loop ·····end loop:loop循环不需要初始条件,这点和while循环相似,同时和repeat循环一样不需要结束条件, leave语句的意义是离开循环。

[begin_label:]LOOP

statement_list

END LOOP [end_label]

mysql > DELIMITER //

mysql >CREATEPROCEDUREproc6 ()

->begin

->declarevint;

->setv=0;

-> LOOP_LABLE:loop

->insertintotvalues(v);

->setv=v+1;

-> if v >=5then

-> leave LOOP_LABLE;

->endif;

->endloop;

->end;

-> //

mysql > DELIMITER ;

4.6.3LEAVE语句:跳出循环控制

LEAVE label

注:label标号可以用在begin repeat while 或者loop 语句前,语句标号只能在合法的语句前面使用。可以跳出循环,使运行指令达到复合语句的最后一步。

4.6.4ITERATE迭代:通过引用复合语句的标号,跳出本次循环,执行下一轮。mysql > DELIMITER //

mysql >CREATEPROCEDUREproc10 ()

->begin

->declarevint;

->setv=0;

-> LOOP_LABLE:loop

-> if v=3then

->setv=v+1;

-> ITERATELOOP_LABLE;

->endif;

->insertintotvalues(v);

->setv=v+1;

-> if v>=5then

-> leave LOOP_LABLE;

->endif;

->endloop;

->end;

-> //

mysql > DELIMITER ;

4.7MySQL存储过程的基本函数

(1).字符串类

CHARSET(str) //返回字串字符集CONCAT (string2 [,... ]) //连接字串INSTR (string ,substring ) //返回substring首次在string中出现的位置,不存在返回0

LCASE (string2 ) //LCASE (string2 ) //转换成小写LEFT (string2 ,length ) //从string2中的左边起取length个字符LENGTH (string ) //string长度LOAD_FILE (file_name ) //从文件读取内容LOCATE (substring , string [,start_position ] )同INSTR,但可指定开始位置LPAD (string2 ,length ,pad ) //重复用pad加在string开头,直到字串长度为length

LTRIM (string2 ) //LTRIM (string2 ) //去除前端空格REPEAT (string2 ,count ) //重复count次REPLACE (str ,search_str ,replace_str ) //在str中用replace_str替换search_str

RPAD (string2 ,length ,pad) //RPAD (string2 ,length ,pad) //在str后用pad补充,直到长度为length

RTRIM (string2 ) //RTRIM (string2 ) //去除后端空格STRCMP (string1 ,string2 ) //逐字符比较两字串大小,SUBSTRING (str , position [,length ]) //从str的position开始,取length个字符,注:mysql中处理字符串时,默认第一个字符下标为1,即参数position必须大于等于1例:

mysql>selectsubstring('abcd',0,2);

+-----------------------+

|substring('abcd',0,2) |

+-----------------------+

| |

+-----------------------+

1 rowinset(0.00 sec)

mysql>selectsubstring('abcd',1,2);

+-----------------------+

|substring('abcd',1,2) |

+-----------------------+

| ab |

+-----------------------+

1 rowinset(0.02 sec)

TRIM([[BOTH|LEADING|TRAILING] [padding] FROM]string2) //去除指定位置的指定字符UCASE (string2 ) //转换成大写RIGHT(string2,length) //取string2最后length个字符SPACE(count) //生成count个空格

(2).数学类

ABS (number2 ) //绝对值BIN (decimal_number ) //十进制转二进制CEILING (number2 ) //向上取整CONV(number2,from_base,to_base) //进制转换FLOOR (number2 ) //向下取整FORMAT (number,decimal_places ) //保留小数位数HEX (DecimalNumber ) //转十六进制注:HEX()中可传入字符串,则返回其ASC-11码,如HEX('DEF')返回4142143也可以传入十进制整数,返回其十六进制编码,如HEX(25)返回19

LEAST (number , number2 [,..]) //LEAST (number , number2 [,..]) //求最小值MOD (numerator ,denominator ) //求余POWER (number ,power ) //求指数RAND([seed]) //随机数

ROUND (number [,decimals ]) //四舍五入,decimals为小数位数]

注:返回类型并非均为整数,如:

(1)默认变为整形值mysql>selectround(1.23);

+-------------+

| round(1.23) |

+-------------+

| 1 |

+-------------+

1 rowinset(0.00 sec)

mysql>selectround(1.56);

+-------------+

| round(1.56) |

+-------------+

| 2 |

+-------------+

1 rowinset(0.00 sec)

(2)可以设定小数位数,返回浮点型数据mysql>selectround(1.567,2);

+----------------+

| round(1.567,2) |

+----------------+

| 1.57 |

+----------------+

1 rowinset(0.00 sec)

(3).日期时间类ADDTIME (date2 ,time_interval ) //将time_interval加到date2

CONVERT_TZ (datetime2 ,fromTZ ,toTZ ) //转换时区CURRENT_DATE ( ) //当前日期CURRENT_TIME ( ) //当前时间CURRENT_TIMESTAMP ( ) //当前时间戳DATE (datetime ) //返回datetime的日期部分DATE_ADD (date2 , INTERVAL d_value d_type ) //在date2中加上日期或时间DATE_FORMAT (datetime ,FormatCodes ) //使用formatcodes格式显示datetime

DATE_SUB (date2 , INTERVAL d_value d_type ) //在date2上减去一个时间DATEDIFF (date1 ,date2 ) //两个日期差DAY (date ) //返回日期的天DAYNAME (date ) //英文星期DAYOFWEEK (date ) //星期(1-7) ,1为星期天DAYOFYEAR (date ) //一年中的第几天EXTRACT (interval_name FROM date ) //从date中提取日期的指定部分MAKEDATE (year ,day ) //给出年及年中的第几天,生成日期串MAKETIME (hour ,minute ,second ) //生成时间串MONTHNAME (date ) //英文月份名NOW ( ) //当前时间SEC_TO_TIME (seconds ) //秒数转成时间STR_TO_DATE (string ,format ) //字串转成时间,以format格式显示TIMEDIFF (datetime1 ,datetime2 ) //两个时间差TIME_TO_SEC (time ) //时间转秒数]

WEEK (date_time [,start_of_week ]) //第几周YEAR (datetime ) //年份DAYOFMONTH(datetime) //月的第几天HOUR(datetime) //小时LAST_DAY(date) //date的月的最后日期MICROSECOND(datetime) //微秒MONTH(datetime) //月MINUTE(datetime) //分返回符号,正负或0

SQRT(number2) //开平方

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

count返回0_MySQL实战 | 14 为什么count(*)越来越慢?

select count(*) 应该是一个比较常用的语句&#xff0c;用来统计记录行数。但是&#xff0c;慢慢地你会发现&#xff0c;这个语句越来越慢了&#xff0c;为什么呢&#xff1f;count(*) 的实现方式首先&#xff0c;我们来看下它的实现方式。MySQL 中&#xff0c;不同的存储引擎&…

mysql info commit_mysql show processlist 发现大量的commit

今天执行show processlist 发现大量的commit&#xff1b;查看锁信息&#xff0c;发现基本上都是-----------------------------------------------------------------------------------------------------------------------------------------------------------------------…

sql管理:索引超出范围必须为非负值并小于集合大小_java面试基础知识-数据库基础知识(数据库索引部分)...

1.1数据库架构&#xff1a;如何设计一个关系型数据库?存储模块&#xff08;文件系统&#xff09;用块或者页作为存储单位 程序实例&#xff1a;存储管理缓存机制 不宜过大&#xff0c;要有淘汰机制SQL解析日志管理权限划分容灾机制索引管理锁管理1.2 索引为什么要使用索引&…

今日头条 mysql_今日头条的核心架构解析

一、产品背景今日头条是为用户提供个性化资讯客户端。下面就和大家分享一下当前今日头条的数据(据内部与公开数据综合)&#xff1a;5亿注册用户2014年5月1.5亿&#xff0c;2015年5月3亿&#xff0c;2016年5月份为5亿。几乎为成倍增长。日活4800万用户2014年为1000万日活&#x…

编译原理语法分析_斯坦福大学《编译原理》学习记录 - 第二章:语法分析器

05-01: Introduction to Parsing 语法分析parser的作用&#xff1a;05-02: Context Free Grammars 上下文无关文法CFG&#xff08;上下文无关文法&#xff09;回答了一个字符串是否属于某语言&#xff1a;CFG的组成&#xff1a;终止符非终止符开始符生成式生成式production &am…

mysql中 视图的优缺点_数据库视图优缺点分析

视图作用是什么所谓视图(View)其实是执行查询语句后得到的结果&#xff0c;但这个查询结果可以仿真成数据表来使用&#xff0c;所以有人也称它为“虚拟数据表”&#xff0c;视图在操作上和数据表没有什么区别&#xff0c;但两者的差异是其本质是不同的&#xff1a;数据表是实际…

mysql永远不用utf8_永远不要在 MySQL 中使用「utf8」

题图&#xff1a;by apple from Instagram本文出自极客邦「聊聊架构」公众号的编译。我自己当年也被这个问题坑过&#xff0c;当时并没有如此详细的分析文章。我觉得有责任再次分享一下&#xff0c;让更多人知道这个事情。程序员不帮助程序员&#xff0c;还能指望谁呢&#xff…

sqoop mysql parquet_Sqoop抽取Hive Parquet表数据到MySQL异常分析

温馨提示&#xff1a;要看高清无码套图&#xff0c;请使用手机打开并单击图片放大查看。Fayson的github&#xff1a;https://github.com/fayson/cdhproject1.问题描述在CDH集群中我们需要将Hive表的数据导入到RDBMS数据库中&#xff0c;使用Sqoop工具可以方便的将Hive表数据抽取…

mysql按select导出_mysql 导出select结果到文本的几种方式

mysql -hxx -uxx -pxx -e "query statement" db > file例如&#xff1a;mysql -h127.0.0.1 -uroot -p000000 -e"select * from a" test > 1.txthost ip user password query statement database filename这样会输出列名信息&#xff0c;如…

mysql架设_主从mysql架设

主从mysql架设二进制安装mysqltar xvf mysql-5.1.46-linux-i686-glibc23.tar -C /usr/localcd /usr/localln -sv mysql-5.1.46-linux-i686-glibc23.tar mysqlcd mysqlgroupadd mysqluseradd -g mysql -s /sbin/nologin -M -r mysqlmkdir /mysql/datachown -R mysql.mysql /mysq…

日志文件和mysql同步到kafka_logstash_output_kafka:Mysql 同步 Kafka 深入详解

0、题记实际业务场景中&#xff0c;会遇到基础数据存在 Mysql 中&#xff0c;实时写入数据量比较大的情景。迁移至kafka是一种比较好的业务选型方案。而mysql写入kafka的选型方案有&#xff1a;方案一&#xff1a;logstash_output_kafka 插件。方案二&#xff1a;kafka_connect…

mysql max嵌套select_使用嵌套select子式 解决mysql不能叠加使用如max(sum())的问题

网上也有解决方案 有的有瑕疵 有的较复杂(mysql没有分析函数&#xff0c;可以使用变量实现) select sumScoreValue,studentid,studentName from sc_studentb, ( select sum (scoreValue) as sumScoreValue,studentid from sc_score group by studentid order by sumSc网上也有解…

mysql 检查记录存在_Mysql 插入记录时检查记录是否已经存在,存在则更新,不存在则插入记录SQL...

我们在开发数据库相关的逻辑过程中&#xff0c; 经常检查表中是否已经存在这样的一条记录&#xff0c; 如果存在则更新或者不做操作&#xff0c; 如果没有存在记录&#xff0c;则需要插入一条新的记录。这样的逻辑固然可以通过两条sql语句完成。SELECT COUNT(*) FROM xxx WHERE…

python linux调试_python调试

以下是我做调试或分析时用过的工具的一个概览。如果你知道有更好的工具&#xff0c;请在评论中留言&#xff0c;可以不用很完整的介绍。日志没错&#xff0c;就是日志。再多强调在你的应用里保留足量的日志的重要性也不为过。你应当对重要的内容打日志。如果你的日志打的足够好…

猜数字游戏python程序用函数guesssecret_Python-三、函数

3.1 def语句和参数def ...(...)语句用于定义一个函数&#xff0c;以便后面调用函数&#xff0c;如&#xff1a;def hello(name): #定义函数hello&#xff0c;变元nameprint(hello name) #打印hello变元namenamein input() #定义namein变量&#xff0c;从键盘取值并赋给namein…

java 命令行参数 _java命令行参数

原标题&#xff1a;java命令行参数命令行参数就是main方法里面的参数String[] args他就是一个数组&#xff0c;args只是数据类型的一个名称&#xff0c;就是一个数组的变量&#xff0c;名称无所谓&#xff0c;类型没变就行了。这个就是程序的入口点。如图7.4所示&#xff1a;图…

java 最小生成树_图的最小生成树(java实现)

1.图的最小生成树(贪心算法)我两个算法的输出都是数组表示的&#xff0c;当前的索引值和当前索引对应的数据就是通路&#xff0c;比如parent[2] 5;即2和5之间有一个通路&#xff0c;第二个可能比较好理解&#xff0c;第一个有点混乱是什么&#xff1f;将一个有权图中的 所有顶…

中文分词工具 java_java读取中文分词工具(一)

import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.RandomAccessFile;import java.util.StringTokenizer;/** 文本格式&#xff1a;已分词的中文文本&#xff0…

java中的成员变量和局部变量的区别_java中成员变量与局部变量区别分析

本文实例分析了java中成员变量与局部变量区别。分享给大家供大家参考。具体分析如下&#xff1a;成员变量&#xff1a;在这个类里定义的私有变量&#xff0c;属于这个类。创建以及使用成员变量public class Person {String name;String Sex;int age;double Height;public stati…

java 自定义注解 生成json_用自定义注解实现fastjson序列化的扩展

这篇文章起源于项目中一个特殊的需求。由于目前的开发方式是前后端分离的&#xff0c;基本上是通过接口提供各个服务。而前两天前端fe在开发中遇到了一些问题&#xff1a;他们在处理字符串类型的时间时会出现精度丢失的情况&#xff0c;所以希望后台是以时间戳的形式返回给前端…