JAVA程序员笔记(第三阶段:数据库)第2篇—— 函数

3 篇文章 0 订阅
2 篇文章 0 订阅

函数

在表中查询,使用复杂条件查询时,单一的查询语句不够用,我们需要逻辑性更强的查询语句,因此
为了简化使用,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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值