资讯详情

MySQL常用函数

1.统计函数

SELECT COUNT(*) FROM 表名///记录总数,不排除空 SELECT COUNT(列名) FROM 表名//排除空 

2.分组函数

如果slect语句中顺序 group by …having ---->order by------->limit

 SELECT 列名 FROM 表名 GROUP BY 列名//可以有多个排名组(逗号分割) //having分组后起作用,筛选符合条件的组,用别名效率会更高 //where在分组前工作,筛选符合条件的行 SELECT 列名 FROM 表名 GROUP BY 列名 HAVING 过滤条件  //列转行 GROUP_CONCAT() 需要与group by只有一起使用句子,才能得到所需的效果 //合并多个字段  SELECT 分组字段,GROUP_CONCAT(列名1, ":", 列名2 ORDER BY 列名1) AS 别名 FROM 表名 GROUP BY  分组字段 //合并一个字段 (结尾没有 : ) SELECT 分组字段,GROUP_CONCAT(列名1 SEPARATOR ':')  AS 别名 FROM 表名 GROUP BY  分组字段 //合并一个字段 (结尾有 : ) SELECT 分组字段,GROUP_CONCAT(列名1,':')  AS 别名 FROM 表名 GROUP BY  分组字段  

3.字符串函数

///拼接字符串 SELECT * FROM 表名 WHERE `name` LIKE CONCAT('%','金','%')  //转换大小写 SELECT UCASE(列名) FROM 表名//转换成大写 SELECT LCASE(列名) FROM 表名///转换成小写  //截取字符串 SELECT LEFT(字符串列,2) FROM 表名//从左边取两个
SELECT RIGHT(字符串列,2) FROM 表名//从右边取两个
SELECT SUBSTRING(列名,1,2) FROM 表名//从第一个位子,取出两个字符

//去空格
SELECT LTRIM(列名) FROM 表名//去左面空格
SELECT RTRIM(列名) FROM 表名//去右面空格
SELECT TRIM(列名) FROM 表名//去两端空格

//字符串替换
SELECT REPLACE(列名,被替换字段,替换字段) FROM 表名
//包含子字符串的字段
SELECT * FROM sys_role  WHERE FIND_IN_SET('15', building_ids)
//返回列字符串长度数(按字节返回)
SELECT LENGTH(字符串列) FROM 表名
//比较字符串大小,等于0是相等
SELECT STRCMP(字符串列,字符串列) FROM 表名

4.数学函数

SELECT SUM(列名) FROM 表名//求和
SELECT MIN(列名) FROM 表名//最小值
SELECT MAX(列名) FROM 表名//最大值
SELECT AVG(列名) FROM 表名//平均值

//四舍五入保留两位小数
SELECT FORMAT(1.9378567567,2) from 表名//有的版本可能提示 ‘format不是可识别的函数名’

//取整
SELECT CEILING(列名) FROM 表名//向上取整
SELECT FLOOR(列名) FROM 表名//向下取整

//随机数
SELECT RAND() FROM 表名//(0到1闭区间随机数)每次返回不同的谁技术
SELECT RAND(3) FROM 表名//(0到1闭区间随机数)已3为种子的固定随机数
 
SELECT LEAST(value1,value2,...)FROM 表名//求这些列的最小值
SELECT MOD(value1,value2,...)FROM 表名//取余
SELECT CONV(列,16,2)FROM 表名//从十六进制转二进制
SELECT BIN(列名) FROM 表名//十进制转二进制
SELECT ASB(列名) FROM 表名//绝对值

6.流程控制函数

//三目运算 表达式为真,返回值1;表达式为假,返回值2
IF(表达式,值1,值2)

IFNULL(表达式,值1)//表达式为空返回值1,表达式不为空,返回本身

//多重分支(只能返回一个值) 表达式1为真,返回表达式2 ...... 否则返回表达式5
SELECT CASE WHEN 表达式1 THEN 表达式2 WHEN 表达式3 THEN 表达式4 ELSE 表达式5 END CASE;

7.all 和 any 操作符

//大于所有(就是大于子表的最大值)
SELECT `name` from classes where chinese > ALL(SELECT chinese FROM sutdent)

//大于其中一个(就是大于子表的最小值)
SELECT `name` from classes where chinese > ANY(SELECT chinese FROM sutdent)

8.其他

//加密
MD5(列名)//32位 MD5加密

LIMIT(开始行,结束行)

SELECT CHARSET(列名) FROM 表名//返回列的字符集

9.多列子查询

//和 张三 语文英语成绩完全形同的信息
SELECT *  from classes where (chinese,ehglish) = (SELECT chinese,ehglish FROM classes WHERE `name` = '张三')

10.表复制(蠕虫复制)

复制其他表(数据迁移)

INSERT INTO 表名1(字段1,字段2) SELECT 字段,字段  FROM 表名2

自我复制(蠕虫复制)

INSERT INTO 表名1(字段1,字段2) SELECT 字段1,字段1  FROM 表名1

11.合并查询

UNION ALL(不会去重)

SELECT * FROM 表1  UNION ALL  SELECT * FROM 表2

UNION(去重)

SELECT * FROM 表1  UNION  SELECT * FROM 表2

12.MySQL五种约束

NOT NULL 非空
UNIQUE 唯一
PRIMARY KEY  主键
FOREIGN KEY 外键
CHECK 检查(5.7及以下仅支持语法,不生效)

标签: 二极管ppm3fd201e0

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台