函数.function

Posted jacky912

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数.function相关的知识,希望对你有一定的参考价值。

mysql中有许多内置函数,也可以自定义函数。函数可以传参数,也可以接收返回值。但是函数没有办法得到执行语句得到结果,储存过程可以。

1.内置函数:

char_length(str)            返回值为字符串str的长度,长度的单位为字符,一个多字节字符算一个单字符。对于一个包含5个二字节的字符集,length返回值为10,而char_length()的返回值为5.

concat(str1,str2...)              字符串拼接,如有任何一个参数为null,则返回null

concat_ws(separator,str1,str2...)   字符串拼接(自定义连接符)

  concat_ws 不会忽略所有的空字符串(然而会忽略所有的null)

conv(n,from_base,to_base)     进制转换 (a,16,2)  将a从16进制转换为2进制

format(x,d)              将数字X的格式写为“#,###,###.###”,以四舍五入的方式保留小数点后d位,并将结果以字符串的形式返回。若d为0,则返回结果不带有小数点,或不含小数部分。

insert(str,pos,len,newstr)       在str指定的位置插入字符串(pos要替换的位置 ,len要替换的长度, newstr新字符串)

    注意:如果pos超过原字符串的长度,则返回原字符串

      如果len 超过原字符串的长度,则由新字符串完全替换

inser(str,substr)           返回字符串str中子字符串的第一个出现的位置。

left(str,len)             返回字符串str从开始的len位置的子序列字符

lower(str)   变小写       upper(str)  变大写

ltrim(str)               返回字符串str起引导空格字符串被删除

rtrim(str)               返回字符串str结尾空字符串被删除

substring(str,pos,len)         获取子序列索引位置

repeat(str,count)           返回一个由重复的字符串str组成的字符串,字符串str的数目等于count,若count<=0,则返回一个空字符串;若str或count为null,则返回null

replace(str,from_str,to_str)     返回字符串str以及所有被字符串to_str代替的字符串from_str。

reverse(str)              返回字符串str,顺序和字符顺序相反

right(str,len)             从字符串str开始,返回从后边开始len个字符组成的子序列

space(n)                返回一个由n个空格组成的字符串

substring(str,pos),substring(str from pos)  substring(str,pos,len),substring(str from pos for len)

不带有len参数的格式从字符串str返回一个子字符串,起始于位置pos。带有len参数的格式从字符串str返回一个长度同len字符相同的子字符串,起始于位置pos。使用from的格式为标准的SQL语法。

也可能对pos使用一个负值,若这样。则子字符串的位置起始于字符串结尾的pos字符,而不是字符串的开始位置。

2.自定义函数

3.删除函数:

 drop function f1;

4.执行函数:

  获取返回值   declare @i varchar(31);

       selecet upper (‘李’) into @i;

       select  @i;

在查询中使用

       select  f1(11,nid),name from tb2;

事务:事务用于将某些操作的多个SQL语句作为原子性操作,一旦有某个出现失误,则返回原来的状态,从而保证数据库中数据的完整性。

 

触发器:简单来说就是在执行这条语句之前或之后触发一次增删改查,触发器用于定制用户对表的行进行【增,删,改】前后的行为。

  nwe表示即将插入的数据行,old表示即将删除的数据行

删除触发器

  drop trigger sri_after_insert_tb1;

使用触发器

  触发器无法由用户直接调用,而由对于表的【增,删、改】操作被动引发的

  insert into tb1(name) values(‘李’)

 

以上是关于函数.function的主要内容,如果未能解决你的问题,请参考以下文章

生成函数数组?

函数的语法(标准模版)

oracle自定义函数

MySQL Split 函数

过程与函数

oracle 自定义函数