函数
在表中查询,使用复杂条件查询时,单一的查询语句不够用,我们需要逻辑性更强的查询语句,因此
为了简化使用,MySQL提供了大量的函数,类似于java中API,学会使用函数,能够简化操作。
数学函数
SELECT ABS(-1);
SELECT RAND()*10;
SELECT FLOOR(1.9);
SELECT CEIL(1.1);
取正负
SELECT SIGN(10);
在这里插入代码片
字符串函数 返回的是字符个数
SELECT CHAR_LENGTH('java');
SELECT CONCAT('12306','鸭儿呦');
SELECT LOWER('AAAAb');
SELECT UPPER('aaaaB');
SELECT REVERSE('123');
#2指 第几个字符(包括本身),3指代表截取的字符个数
SELECT SUBSTR('郑州欢迎你',2,3);
#从右截取
SELECT RIGHT('郑州欢迎你',2);
#从左截取
SELECT LEFT('郑州欢迎你',2);
日期函数
SELECT CURDATE();
SELECT NOW();
SELECT YEAR(NOW());
SELECT MONTH('2021-10-12');
SELECT DAY('2021-10-12');
#两个日期的时间间隔(间隔天数)
SELECT DATEDIFF('2021-9-28','2021-10-12');
#返回加上 xx天数之后的结果
SELECT ADDDATE('2021-10-12',14);
统计所有的学生人数,count非空计数
SELECT COUNT(*) FROM student;
SELECT COUNT(studentName)FROM student;
用了GROUP BY,只能查询group by后o的分组字段和其它函数值
SELECT subjectNo,SUM(StudentResult)总分,
AVG(StudentResult)平均分,
MAX(StudentResult)最高分,
MIN(StudentResult)最低分
FROM result
分组函数
GROUP BY subjectNo
HAVING 总分>180
排序,默认升序asc,desc降序
ORDER BY 平均分 DESC
limit 下标 ,条数 分页 ,page页码 ,pageSize每页显示的条数
#limit (page -1)*pageSize , pagsSize
SELECT * FROM student LIMIT 0,2第一页
SELECT * FROM student LIMIT 2,2第二页
SELECT * FROM student LIMIT 4,2第三页
顺序不能改变
SELECT DISTINCT 字段 FROM tb
WHERE 条件
GROUP BY 字段
HAVING 条件
ORDER BY 字段 ASC/DESC
LIMIT 下标,条数
样例:
检查 '高等数学-1’最近一次考试,如果成绩达到80分以上
显示分数排在前5名学员学号和成绩:
SELECT StudentNo, StudentResult
FROM result
WHERE ExamDate= (SELECT MAX(ExamDate) FROM result
WHERE SubjectNo=
(SELECT SubjectNo FROM `subject`
WHERE SubjectName= '高等数学-1')
)
AND StudentResult>80
ORDER BY studentResult DESC
LIMIT 5