官方文档 : https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.htmlhtml
SELECT ABS(-8); /*绝对值*/ SELECT CEILING(9.4); /*向上取整*/ SELECT FLOOR(9.4); /*向下取整*/ SELECT RAND(); /*随机数,返回一个0-1之间的随机数*/ SELECT SIGN(0); /*符号函数: 负数返回-1,正数返回1,0返回0*/
SELECT CHAR_LENGTH('今每天气真好'); /*返回字符串包含的字符数*/ SELECT CONCAT('我','爱','程序'); /*合并字符串,参数能够有多个*/ SELECT INSERT('我爱编程helloworld',1,2,'超级热爱'); /*替换字符串,从某个位置开始替 换某个长度*/ SELECT LOWER('dgDSssssa'); /*小写*/ SELECT UPPER('aassfdf'); /*大写*/ SELECT LEFT('hello,world',5); /*从左边截取*/ SELECT RIGHT('hello,world',5); /*从右边截取*/ SELECT REPLACE('坚持就能成功','坚持','努力'); /*替换字符串*/ SELECT SUBSTR('坚持就能成功',4,6); /*截取字符串,开始和长度*/ SELECT REVERSE('坚持就能成功'); /*反转
SELECT CURRENT_DATE(); /*获取当前日期*/ SELECT CURDATE(); /*获取当前日期*/ SELECT NOW(); /*获取当前日期和时间*/ SELECT LOCALTIME(); /*获取当前日期和时间*/ SELECT SYSDATE(); /*获取当前日期和时间*/ -- 获取年月日,时分秒 SELECT YEAR(NOW()); SELECT MONTH(NOW()); SELECT DAY(NOW()); SELECT HOUR(NOW()); SELECT MINUTE(NOW()); SELECT SECOND(NOW());
SELECT VERSION(); /*版本*/ SELECT USER(); /*用户*/
函数名称 | 描述 |
---|---|
COUNT() | 返回知足Select条件的记录总和数,如 select count(*) 【不建议使用 *,效率低】 |
SUM() | 返回数字字段或表达式列做统计,返回一列的总和。 |
AVG() | 一般为数值字段或表达列做统计,返回一列的平均值 |
MAX() | 能够为数值字段,字符字段或表达式列做统计,返回最大的值。 |
MIN() | 能够为数值字段,字符字段或表达式列做统计,返回最小的值。 |
/*COUNT:非空的*/ SELECT COUNT(studentname) FROM student; SELECT COUNT(*) FROM student; SELECT COUNT(1) FROM student; /*推荐*/
从含义上讲,count(1)
与 count(*)
都表示对所有数据行的查询。前端
count(字段)
会统计该字段在表中出现的次数,忽略字段为null 的状况。即不统计字段为null的记录。count(*)
包括了全部的列,至关于行数,在统计结果的时候,包含字段为null 的记录count(1)
用1表明代码行,在统计结果的时候,包含字段为null 的记录 。不少人认为count(1)执行的效率会比count(*)高,缘由是count(*)会存在全表扫描,而count(1)能够针对一个字段进行查询。其实否则,count(1)和count(*)都会对全表进行扫描,统计全部记录的条数,包括那些为null的记录,所以,它们的效率能够说是相差无几。而count(字段)则与前二者不一样,它会统计该字段不为null的记录条数。mysql
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机普遍使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言广泛已有MD5实现。将数据(如汉字)运算为另外一固定长度值,是杂凑算法的基础原理,MD5的前身有MD二、MD3和MD4。算法
实现数据加密sql
CREATE TABLE `testmd5` ( `id` INT(4) NOT NULL, `name` VARCHAR(20) NOT NULL, `pwd` VARCHAR(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8 INSERT INTO testmd5 VALUES(1,'xiao','123456'),(2,'ming','456789')
有如上数据,如今咱们对其全部密码加密编程
update testmd5 set pwd = md5(pwd);
若是单独对某个用户的密码进行加密后端
INSERT INTO testmd5 VALUES(3,'hong','123456') update testmd5 set pwd = md5(pwd) where name = 'hong';
也能够在插入数据的时候直接加密编程语言
INSERT INTO testmd5 VALUES(4,'gang',md5('123456'));
若是要作登陆判断,能够直接对加密后的密码进行比对便可。函数
SELECT * FROM testmd5 WHERE `name`='gang' AND pwd=MD5('123456');
-- 数值函数 abs(x) -- 绝对值 abs(-10.9) = 10 format(x, d) -- 格式化千分位数值 format(1234567.456, 2) = 1,234,567.46 ceil(x) -- 向上取整 ceil(10.1) = 11 floor(x) -- 向下取整 floor (10.1) = 10 round(x) -- 四舍五入去整 mod(m, n) -- m%n m mod n 求余 10%3=1 pi() -- 得到圆周率 pow(m, n) -- m^n sqrt(x) -- 算术平方根 rand() -- 随机数 truncate(x, d) -- 截取d位小数 -- 时间日期函数 now(), current_timestamp(); -- 当前日期时间 current_date(); -- 当前日期 current_time(); -- 当前时间 date('yyyy-mm-dd hh:ii:ss'); -- 获取日期部分 time('yyyy-mm-dd hh:ii:ss'); -- 获取时间部分 date_format('yyyy-mm-dd hh:ii:ss', '%d %y %a %d %m %b %j'); -- 格式化时间 unix_timestamp(); -- 得到unix时间戳 from_unixtime(); -- 从时间戳得到时间 -- 字符串函数 length(string) -- string长度,字节 char_length(string) -- string的字符个数 substring(str, position [,length]) -- 从str的position开始,取length个字符 replace(str ,search_str ,replace_str) -- 在str中用replace_str替换search_str instr(string ,substring) -- 返回substring首次在string中出现的位置 concat(string [,...]) -- 链接字串 charset(str) -- 返回字串字符集 lcase(string) -- 转换成小写 left(string, length) -- 从string2中的左边起取length个字符 load_file(file_name) -- 从文件读取内容 locate(substring, string [,start_position]) -- 同instr,但可指定开始位置 lpad(string, length, pad) -- 重复用pad加在string开头,直到字串长度为length ltrim(string) -- 去除前端空格 repeat(string, count) -- 重复count次 rpad(string, length, pad) --在str后用pad补充,直到长度为length rtrim(string) -- 去除后端空格 strcmp(string1 ,string2) -- 逐字符比较两字串大小 -- 聚合函数 count() sum(); max(); min(); avg(); group_concat() -- 其余经常使用函数 md5(); default();