北京市电力建设公司网站,服装设计师需要什么学历,辽宁人社app一直更新,羽毛球赛事视频目录
一、聚合函数
二、数值型函数
三、字符串函数
四、日期函数
五、流程控制函数 一、聚合函数
定义#xff1a;聚合函数是指对一组值进行运算#xff0c;最终返回是单个值#xff0c;也可以被称为组合函数。
COUNT() 统计目标行数量的函数
AVG() 求平均值
SU…目录
一、聚合函数
二、数值型函数
三、字符串函数
四、日期函数
五、流程控制函数 一、聚合函数
定义聚合函数是指对一组值进行运算最终返回是单个值也可以被称为组合函数。
COUNT() 统计目标行数量的函数
AVG() 求平均值
SUM() 求合
MIN() 求最小值
MAX() 求最大值
备注除COUNT函数之外其他的聚合函数都会忽略NULL值
补充知识点COUNT(*) 和 COUNT(1) 和 COUNT(字段名) 三者区别
COUNT(*) 和 COUNT(1)
当表数据量较大时对表进行检索count1 时效要比 count* 慢
当表数据量较小时对表进行检索count1 时效要比 count* 快
count1 聚索引状
count* 自动选择索引
结论这两个 通常 不予比较COUNT(1) 和 COUNT(字段)
count1会统计表中所有的记录数,包含了字段为NULL的记录
count字段会忽略当前字段中出现null的情况,如果出现null值不统计这条记录三者区别
1.count(*) 包含了所有列相当于所有行记录在统计结果时不忽略NULL
2.count(1) 包含了所有的忽略列用1表示代码行在统计结果时不忽略NULL
3.count(字段) 只会包含具有列名的那一列在统计结果时会忽略NULL在执行效率上
如果列名主键列
count(字段)count(*)count(1)
如果列名!主键列
count(*)||count(1)count(字段)
如果表多列都无主键
count(1)count(*)count(字段)执行效率最高的
SELECT COUNT(主键列) .....
二、数值型函数
函数名称作用ABS()求绝对值SQRT()求平方根POW()或POWER()返回参数的幂次方MOD()求余数CEIL()或CEILING()向上取整FLOOR()向下取整ROUND()四舍五入RAND随机生成一个数字 0-1) 之间
eg
#随机生成 0-----99999的数字
#1随机生成一个数字 0-1) 之间
SELECT RAND();
#2将生成的随机数*100000
SELECT RAND()*100000;
#3对结果进行FLOOR向下取整
SELECT FLOOR(RAND()*100000);
三、字符串函数
函数名称作用LENGTH()返回字符串长度CHAR_LENGTH()返回字符串的字节长度CONCAT()合并字符串长度,返回结果为连接后新生成的字符串参数可以是一个或多个INSERT(str,pos,len,newstr)替换字符串函数LOWER()将字符串内所有的字符转小写UPPER()将字符串中所有的字符转大写LEFT(str,len)从字符串左侧进行截取返回字符串左边若干长度的字符RIGHT(str,len)从字符串右侧进行截取返回字符串右边若干长度的字符TRIM()删除字符串两次空格REPLACE(str,l1,l2)字符串替换函数,返回替换后的新字符串SUBSTRING(str,s,len)截取字符串返回从指定位置开始指定长度的字符串REVERSE()字符串逆序函数,返回余元字符串顺序相反的字符串STRCMP(str1,str2)比较两个表达式的顺序如果str1小于str2返回 -1 0相等 1大于LOCATE(substr,str)返回第一次出现目标字符串的索引位INSTR(substr,str)返回最后一次出现目标字符串的索引位
四、日期函数
函数名称作用CURDATE() CURRENT_DATE() CURRENT_DATE返回当前系统的日期值CURTIME() CURRENT_TIME() CURRENT_TIME返回当前系统的时间NOW() SYSDATE()返回当前系统的日期及时间DATE(PAREM)返回指定对象的日期部分TIME(PAREM)返回指定对象的时间部分YEAR(PAREM)返回指定对象的年份(1970--2069)MONTH(PAREM)返回指定对象的月份DAY(PAREM)返回指定对象的日期DAYOFWEEK(PAREM)获取指定日期对应的一周的索引位置值也就是星期数注意周日是开始日为1WEEK(PAREM获取指定日期是一年中的第几周返回值的范围是否为 0〜52DATEDIFF(PAREM,PAREM)返回两个日期之间的相差天数
eg
#查询A学生和当前时间的天数差
SELECT DATEDIFF(NOW(),(SELECT BornDate FROM student WHERE StudentName 张三));#根据生日查询其年龄
SELECT FLOOR(DATEDIFF(NOW(),(SELECT BornDate FROM student WHERE StudentName 张三))/365) AS 时差;
五、流程控制函数
函数名称作用IF(条件,结果1,结果2)判断如果条件true 返回结果1 反之 返回结果2CASE搜索函数IFNULL(value1,value2)判断如果value1不为NULL 则函数返回值就是value1 反之 返回value2
eg:
#示例1
SELECT IF(12,2,3);
SELECT IF(12,YES,NO);
SELECT IF(STRCMP(TEST001,TEST001),NO,YES);
条件内 结果 true(非0的自然数) false(0)#示例2 分别显示学生信息有邮箱和没有邮箱的备注信息
SELECT StudentName 学生姓名,IF(Email IS NULL,没有邮箱,存在邮箱) 是否具有邮箱
FROM student;#示例3 使用IFNULL,函数入参两个,如果入参不为空则返回第一个值否则返回第二个值
SELECT IFNULL(1,2),IFNULL(NULL,2),IFNULL(9/3,2);
SELECT StudentName 学生姓名,IFNULL(Email,没有邮箱) 邮箱地址
FROM student;#示例4
CASE表达式WHEN值1 THEN结果1WHEN值2 THEN结果2WHEN值3 THEN结果3WHEN值4 THEN结果4
ELSE 默认结果
END
#需求 查询成绩表 限定考试科目 高等数学-1
# 要求如下 如果学号是1 显示成绩为原成绩
# 要求如下 如果学号是2 显示成绩为原成绩的1.5倍
# 要求如下 如果学号是3 显示成绩为原成绩的2倍
# 要求如下 其他学生成绩显示原成绩#1-查出高数-1的科目编号
SELECT SubjectNo FROM subject WHERE SubjectName 高等数学-1;
#2-通过科目编号找到学生的考试成绩
SELECT * FROM result WHERE SubjectNo (SELECT SubjectNo FROM subject WHERE SubjectName 高等数学-1);
#3-通过CASE语法修改并查看参数
SELECT StudentNo 学号,StudentResult 原成绩,
CASE StudentNoWHEN 1 THEN StudentResult*1WHEN 2 THEN StudentResult*1.5WHEN 3 THEN StudentResult*2ELSE StudentResultEND 修改后的成绩
FROM result
WHERE SubjectNo (SELECT SubjectNo FROM subject WHERE SubjectName 高等数学-1);