Mysql常用函数 -- 其他函数

# 其他函数
CONV(N,from_base,to_base) 
不同数基间转换数字。返回值为数字的N字符串表示,
由from_base基转化为 to_base 基。如有任意一个参数为NULL,则返回值为 NULL。
自变量 N 被理解为一个整数,但是可以被指定为一个整数或字符串。最小基数为 2 ,
而最大基数则为 36。 IF to_base 是一个负数,则 N 被看作一个带符号数。
否则, N 被看作无符号数。 CONV() 的运行精确度为 64比特。 

-- 位函数
 SELECT CONV('2',10,2); -- 10
 SELECT CONV('3',10,2); -- 11
 SELECT CONV('11',10,2); -- 1011
 SELECT 2 | 3; -- 3
 SELECT 2 & 3; -- 2
 SELECT 1 ^ 1; -- 0
 SELECT 1 ^ 0; -- 1
 SELECT 11 ^ 3; -- 8
 /*
 | 只要有一个为1  就为 1 
 & 两个都为1   才为 1 
 
 ^ 在程序中不是幂运算,而是位运算  只有不相同才为1 相同为0
  1011
  0011
  1000 -- 8
 */
 
 -- 左移  右移
SELECT 1 << 2; -- 4

SELECT 1 >> 2; -- 0
SELECT 10 >> 2; -- 2  
-- 1010  --> 0010
SELECT 11 >> 2; -- 2 
-- 1011  --> 0010

-- 反转 ~ 优先级最高
SELECT ~1; -- 18446744073709551614
SELECT 5 & ~1;
-- 101
-- 110
-- 100 -- 4

-- 判断是否优先级高
SELECT ~5 & 1; -- 0
-- 先~后&
010
001  -- 000

-- 先&后~
101
001  -- 001  ~ 100



-- 加密函数
SELECT PASSWORD('abc'); -- 加密是单向的 (不可逆 )。

SELECT MD5('abc');

SELECT SHA1('abc'); -- SHA1()可以被视为一个密码更加安全的函数

SELECT SHA('abc');


DECODE(crypt_str,pass_str) 
使用 pass_str 作为秘钥,解密 加密后的字符串 crypt_str, crypt_str 应该是由ENCODE()返回的字符串。 

ENCODE(str,pass_str) 
使用pass_str 作为秘钥,加密 str 。 使用DECODE()解密结果。 

SELECT ENCODE('a','abc'); -- 2

SELECT DECODE('2','abc'); -- a

SELECT DECODE('a','abc'); -- d


-- 信息函数
SELECT CHARSET('as'); -- utf8
SELECT CHARSET(CONVERT('abc' USING gbk)); -- gbk

SELECT USER(); -- root@localhost

SELECT CURRENT_USER(); -- root@localhost

SELECT DATABASE(); -- 当前数据库

 
SELECT VERSION(); -- 查看当前版本 5.5.28

-- 其他函数
DEFAULT(col_name) 
返回一个表列的默认值。若该列没有默认值则会产生错误。 
  UPDATE t SET i = DEFAULT(i)+1 WHERE id < 100;
  
FORMAT(X,D) 
将数字X 的格式写为'#,###,###.##',以四舍五入的方式保留小数点后 D 位, 
并将结果以字符串的形式返回。若  D 为 0, 则返回结果不带有小数点,或不含小数部分。 

 SELECT FORMAT(12442.123456, 2); -- '12,442.12'

 SELECT FORMAT(12442.1,4); -- '12,442.1000'

 SELECT FORMAT(12552.2,0); --  '12,552'


NAME_CONST(NAME,VALUE) 
返回给定值。 当用来产生一个结果集合列时, NAME_CONST()促使该列使用给定名称。  

 SELECT NAME_CONST('col_name', 'tomcat'); -- tomcat

-- 产生随机值
SELECT UUID();

SELECT SPACE(6); -- 添加6个空格
SELECT REPEAT('' ,6);  
SELECT LENGTH(SPACE(6)); -- 6
SELECT LENGTH( REPEAT('' ,6)); -- 0
SELECT LENGTH( REPEAT('a' ,6)); -- 6

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值