
常用的函数有
1、MySQL 提供几个处理null的函数
1)、ifnull(expr1,expr2):如果expr1不为null,则返回expr1,否则返回expr2;
2)、nullif(expr1,expr2):expr1与expr2相等,则返回null,否则返回expr1;
3)、if(expr1,expr2,expr3):类似于三目运算符,expr1为true,返回expr2,否则返回expr3;
4)、isnull(expr1):判断expr1是否为null,expr1为null,返回true,否则返回false。
2、MySQL case函数
CASE 函数是一个流程控制函数,作用同c++中switch语句。有如下两种使用方法:
1)、用值比较
case value
when compareValue1 then result1
when compareValue2 then result2
……
else result
end
用value依次与各compareValue比较,相等则返回对应的result,并退出case函数。
2)、用条件判断
case
when condition1 then result1
when condition2 then result2
……
else result
end
各condition都为布尔表达式,从上到下判断,为true则返回对应的result,并退出case函数。
使用示例:
SELECT student_name,CASE
WHEN student_id<3 THEN ‘初级班’
WHEN student_id<=6 THEN '中级班'
ELSE ‘高级版'
END
FROM student_table
说明:上面语句选择student_name与student_id两列,只是student_id用CASE 函数替换为对应的文字说明。
3、部分时间日期函数
1)、CURTIME():返回完整的时间类型值,如:’2016-08-10 22:13:30‘;
2)、CURDATE():返回当前日期,时间部分为0,如:’2013-08-10 00:00:00‘;
3)、ADDTIME(time1,time2):time1为time或datetime表达式,time2为time表达式,如:
addtime(’2016-08-10 22:20:00‘,’10:10:10')返回2016-08-11 08:30:10
addtime(’2016-08-10 22:20:00‘,’1 10:10:10')返回2016-08-12 08:30:10
addtime(’22:20:00‘,’10:10:10')返回32:30:10,所以只有时分秒时应注意相加后的值是否大于23:59:59!
注:上面的参数值都可带微秒[.xxxxxx]。
4、部分字符串函数
1)、LEFT(param,length):返回包含param左边的length 个字符的字符串。length 大于param 长度时返回整个param。
2)、RIGHT(param,length):返回包含param右边length 个字符的字符串。同理。
最大用处在于param 可以是选出的某个列的数据,如最基础的用法:
select LEFT(e.name,5) from table1 e;
三、常用分组和组函数
常用组函数:
注:distinct:区别的。指定计算是否包含所有重复值。
1、avg([distinct|all]expr):计算多行expr的平均值,其中expr可以是变量、常量或数据列,但其类型必须是数值型;
2、count(*|[distinct|all]expr):计算多行的记录数。expr同上,但数据类型可以是任意类型;
3、max(expr):计算多行expr的最大值,expr同count中;
4、min(expr);
5、sum([distinct|all]expr):计算多行expr的总和,expr可以是变量、常量或数据列,但数据类型必须是数值型。
group by 分组与having过滤:
语法:
#查询结果按分组列不重复的显示。
select * from tableName group by columnName1[,columnName2,……];
说明:对于MySQL 如果被分组的列对应的其它列有多个对应值,则只显示第一条记录的值。
a) 函数 AES_ENCRYPT(str ,key_str ) , AES_DECRYPT(crypt_str ,key_str )
函数使用说明:这些函数允许使用官方 AES 进行加密和数据加密 ( 高级加密标准 ) 算法 , 即以前人们所熟知的 “Rijndael” 。 保密关键字的长度为 128 比特,不过你可以通过改变源而将其延长到 256 比特。我们选择了 128 比特的原因是它的速度要快得多,且对于大多数用途而言这个保密程度已经够用。
b) 函数DECODE(crypt_str ,pass_str )
函数使用说明:使用 pass_str 作为密码,解密加密字符串 crypt_str , crypt_str 应该是由 ENCODE() 返回的字符串。
c) 函数 ENCODE(str ,pass_str )
函数使用说明:使用 pass_str 作为密码,解密 str 。 使用 DECODE() 解密结果。
d) 函数 DES_DECRYPT(crypt_str [,key_str ])
函数使用说明:使用 DES_ENCRYPT() 加密一个字符串。若出现错误,这个函数会返回 NULL 。
e) 函数 DES_ENCRYPT(str [,(key_num |key_str )])
函数使用说明:用 Triple-DES 算法给出的关键字加密字符串。若出现错误,这个函数会返回 NULL 。
f) 函数 ENCRYPT(str [,salt ])
函数使用说明:使用 Unix crypt() 系统调用加密 str 。 salt 参数应为一个至少包含 2 个字符的字符串。若没有给出 salt 参数,则使用任意值。
g) 函数 MD5(str )
函数使用说明:为字符串算出一个 MD5 128 比特检查和。该值以 32 位十六进制数字的二进制字符串的形式返回 , 若参数为 NULL 则会返回 NULL 。例如,返回值可被用作散列关键字
h) 函数 OLD_PASSWORD(str )
函数使用说明:当 PASSWORD() 的执行变为改善安全性时, OLD_PASSWORD() 会被添加到 MySQL 。 OLD_PASSWORD() 返回从前的 PASSWORD() 执行值 ( 4.1 之前 ) ,同时允许你为任何 4.1 之前的需要连接到你的 5.1 版本 MySQL 服务器前客户端设置密码,从而不至于将它们切断
i) 函数PASSWORD(str )
函数使用说明:从原文密码str 计算并返回密码字符串,当参数为 NULL 时返回 NULL 。这个函数用于用户授权表的Password 列中的加密MySQL 密码存储
mysql数据库中提供了很丰富的函数。mysql函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的 *** 作。简单介绍几类函数的使用范围:
数学函数:这类函数只要用于处理数字。这类函数包括绝对值函数、正弦函数、余弦函数、获取随机数函数等。
字符串函数:这类函数主要用于处理字符串。其中包括字符串连接函数、字符串比较函数、将字符串的字母变成小写或大写字母的函数、获取子串的函数等。
日期和时间函数:这类函数主要用于处理日期和时间。其中包括取当前时间的函数、获取当前日期的函数、返回年份的函数、返回日期的函数等。
流程函数:这类函数主要用于在SQL语句中控制条件选择。其中包括IF语句、CASE语句、WHEN语句等。
系统信息函数:这类函数主要用于获取mysql数据库的系统信息。其中包括获取数据库名的函数、获取当前用户的函数、获取数据库版本的函数等。
加密函数:这类函数主要用于对字符串进行加密解密。其中包括字符串加密函数、字符串解密函数等。
其他函数:包括格式化函数、锁函数等。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)