深入理解MySQL进阶漂流记(三)
函数
数学函数
需求:
1)-123的绝对值;
2)100,88,33,156取出最大值;
聚合函数
MySQL有一组函数是特意为求和或者对表中的数据进行集中概括而设计的,这些函数经常用在包含group by从句的select查询中,当然,它们也可以用于无group的查询
1)这一组函数中,最常用到的是COUNT()函数,计算出结果集中至少包含一个非null的值的行数
select count(*) from students;
2)MIN()和MAX()函数返回数字集的最小或最大值
select min(score) from data;//返回最小值
select max(age) from data;返回最大值
需求:
新建data表,字段为score,添加两条数据,分别为29和34,计算平均值和最小值
字符串函数
MySQL数据库不仅包含数字数据,还包含字符串,下面列举一些常用的:
通过length()函数可以获得一个字符串的长度
select length(‘abcdefg’);//结果为7
通过trim()函数可以让我们在剪切值时指定去除格式,还可以决定是从字符串的首部,尾部,两边剪切。
select trim(’ red hair’);//去掉两边空格
select trim(leading ‘!’ from ‘!!!heihei!!!’);//去掉首部“!”符号
concat()函数将提供的参数连接成一个字符串
select concat(‘woyao’,’yaosini’);//结果为woyaoyaosini
日期时间函数
1)使用now()函数获取当前的日期和时间,将以YYYY-MM-DD HH:MM:SS的格式返回当前的日期和时间
select now();//返回当前时间
2)单独获取日期和时间,可以使用curdate()和curtime()函数
select curtime();//当前时间,格式为 HH:MM:SS
select curdate();//当前日期,格式为 YYYY-MM-DD
3)week()函数返回指定的日期是一年的第几个星期,而yearweek()函数返回指定的日期是哪一年的哪一个星期
select week(‘2017-02-24’);//结果为8
select yearweek(20170224);//结果为200408
加密函数(了解一下)
password()函数用来创建一个经过加密的密码字符串,它适合于插入到MySQL的安全系统。这个加密过程是不可以逆转的, 和UNIX密码加密使用不同的算法。
还可以通过ENCRYPT()函数使用UNIX crypt()系统加密字符串,ENCRYPT()函数接收要加密的字符串 和(可选的)用于加密过程的salt(一个可以唯一确定口令的字符串,就像钥匙一样)。
也可以使用ENCODE()函数和DECODE()函数来加密和解密字符串,ENCODE()有两个参数:被加密的字符串和作为加密基础的密钥;
控制流函数
MySQL提供了4个函数是用来进行条件操作的。这些函数实现了sql的条件逻辑,允许开发者将一些应用程序业务逻辑转换到 数据库后台。
这些函数的第一个是ifnull()函数,它有两个参数,并且对第一个参数进行判断。如果第一个参数不是null, 函数就会向调用者返回第一个参数,如果是null,返回第二个参数。
nullif()函数将会检验提供的两个参数是否相等,如果相等,则返回null,不相等,返回第一个参数。
if()函数有三个参数,第一个是要被判断的表达式,如果表达式为真,if()函数会返回第二个参数,为假,返回第三个参数。 if()函数在只有两种结果时才适合使用;
格式化函数
MySQL还有一些函数是特意为格式化数据设计的
比较常用是format()函数,它可以把大的数值格式化为以逗号间隔的易读的序列。format()的第一个参数是被 格式化的数据,第二个参数是结果的小数位数
数据转换函数
为了进行数据类型转换,MySQL提供了cast()函数,它可以把一个值转化为指定的数据类型
通常情况下,当使用数值操作时,字符串会自动的转化为数字;
select 1+’99’;//结果为100
select 1+cast(‘99’ as signed);//结果为100
我们可以强制许多日期和时间函数[包括now(),curtime()和curdate()函数],把它们返回的值作为一个数而不是字符串输出 ,只需要在数字的环境中使用这些函数或者把它们转化为数字
系统信息函数
database(),user()和version()函数分别可以返回当前所选数据库,当前用户和MySQL版本的信息:
以上就是深入理解MySQL进阶漂流记(三)的详细内容,更多请关注其它相关文章!