什么是数据库中的函数(库函数与自定义函数)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

目录

数据库的库函数

一、聚合函数

1、count

二、日期时间函数

1now:

2data

3time

4:date_format

三、常用的库函数

1:upper

2:lower

3:substring

4:round

5:length

6concat

7:database

8:user

9:power

四、其他函数

自定义函数的创建

自定义函数function

1、 函数创建

2、函数调用

3、自定义函数的删除

五、函数的调用与删除


数据库的库函数


高级语言一般都有自己的库函数数据库也不例外在数据库中也提供了一些用于实现特定功能的函数

一、聚合函数


在数据库函数中聚合函数是我们最常用的一类所谓的聚合就是对一组值进行组合计算返回单个值

1、count


计数函数对元祖或者属性计数
一般格式count(属性名

select count(*)from 表名 # '*'是对整个表的元祖进行计数
select count(属性名 from 表名 where 条件表达式
# count 支持条件计数只计算有效值不计算null值

-- 聚合函数就是对一组值进行计算结果返回单个值
-- 统计函数count
    -- 统计学生人数
select count(s_id)学生人数 from student;
-- 数据表中的属性可以作为函数参数

-- 求最大值函数max
    -- 求学生的最大年龄
select max(s_age) from student;
-- 求最大值min 求平均值avg ,求和sum

二、日期时间函数

1now:

求当前的日期和时间
一般格式now()
如select now();

2data


求日期函数
一般格式data (日期时间类型的属性名。
如select data(birthday) from student;


-- 获取当前日期时间now
select now();

-- 获取日期函数date
    -- 获取指定日期时间类型数据中的日期
select date("2020-09-15 08:30:23");


    -- 获取当前时间
select time(now());


-- 将日期时间类型装换为字符串类型date_format
    -- 将当前日期时间转换成特定格式的字符串

select date_format(now(),"%Y-%m-%d %h:%i:%s");


-- 自定义分隔符
    -

3time


求时间函数
一般格式time (日期时间类型的属性名。
如select time(birthday) from student;

4:date_format


时间日期类型转字符串类型函数
一般格式date_format(日期时间类型格式字符串
如select date_format(now(),"%Y%M%D:%H%i%s");
#格式字符串可用变量来代替


三、常用的库函数


1:upper


小写字母转大写字母函数
一般格式upper(字符型属性名
如select upper('abc');
#也可用ucase函数代替如select ucase ('abc');


2:lower


大写字母转小写字母函数
一般格式lower (字符型属性名
如select upper('ABC');
#也可用lcase函数代替如select lcase("ABC");


3:substring


提取字符串函数以给定的参数求字符串中的一个子串。
一般格式substrinig(字符串,start ,lenth);
#从字符串中第一个start个字符开始取出长度为length的字符串。
如select substring('abc123@#$',4,3)#结果为123
#也可以用Mid 函数代替如select mid('abc123@#$',4,3);

4:round


四舍五入函数。可代替floor函数用于取整
一般格式round(数值类型[,精确位数]);
如select round(1234.56);#不加精准位数默认精通到整数位
select round(123,456,2);#加上精准位数就保留多少位小数

-- 获取当前操作的数据库名database
select database();
-- 获取当前操作的用户名user
select user();


5:length


返回字符串的长度
一般格式length字符串


6concat


字符串连接函数连接多个字符串
一般格式concat(字符串1字符串2....,字符串n)


7:database


返回当前数据库名
一般格式:database()


8:user


获取当前用户名
基本格式user()


9:power


求次方函数
一般格式power(底数指数
如select power(2,3); #求2的3次方的值
#可以用pow 函数代替power函数如select pow(2,3);

#举一反三
#既然有求次方函数是不是也有求次方根开方函数呢
答没有求次方根函数
# 那用什么求次方根开方
答还是用pow函数。
如pow(9,1/2);pow(4,0.5) # 只需要把指数改成小数或分数

四、其他函数


除了之前讲的函数之外库函数中还有其他函数如求余mod ,随机数rand,三角函数sin,cos,tan,arc tan圆周率pi等。
数据库的库函数相当于C语言的库函数差不多C语言库函数里有的数据处理函数数据库中基本都会有但是Mysql中的函数不同于c语言中的函数mysql中的函数只用于数据处理不会进行其他命令行操作
除此之外数据库还可以像C语言一样自定义函数

自定义函数的创建

创建自定义函数的基本格式
create function 函数名 函数参数 数据类型
returns 返回值类型
begin
    # 函数体
    return 函数返回值
end;

#8.0版本的数据库增加了一个数据库安全选项
需要执行以下代码才能创建函数
set global log_bin_trust_function_creators = true;

-- 数据库中的函数只能用于数据处理不可以用于实现其他功能

自定义函数function


 


1、 函数创建

-- 求两个数的和
create function sum1(n int,m int)
    returns int -- 给定函数的返回值类型
    return n+m; -- 函数体

-- error code:1418.this function has none of determinstic,no sql,or ...........

-- 如果出现上面的报错就是安全检查问题
-- 打开安全检查如果自定义函数创建不了
set global log_bin_trust_function_creators = true; -- 输入这条语句可以解决报错


2、函数调用


 

select sum1(10,20);

3、自定义函数的删除

drop function sum1;

-- 数据库中自定义函数使用的特别少不用详细了解

create function sum1(n int,m int)
    returns int -- 给定函数的返回值类型
    begin -- 相当于c/c++中的{
    set n = n+m ; -- 复合语句
    return n+m; -- 函数体
    end; --相当于c/c++中的}

-- begin end 相当于c/c++中的括号


-- 数据库中自定义函数使用的特别少不用详细了解
-- 如果在数据中进行数据处理时需要有用到函数的一般使用数据库的库函数就基本能够完成了
-- 数据库中的函数只能用于数据处理不可以用于实现其他功能
-- 数据库函数中无法执行sql语句


五、函数的调用与删除


1、函数调用
函数调用的基本格式
select 函数名 函数参数
2、用表格数据作为函数参数
select 函数名表格属性 from 表名
3、删除函数
drop function 函数名


 

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: 数据库