MySQL 数据库:高级查询(二)

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

1.常用的函数

1.聚合函数

(1)AVG()   返回某字段的平均值
(2)COUNT() 返回某字段的行数 
(3)MAX()   返回某字段的最大值
(4)MIN()   返回某字段的最小值 
(5)SUM()   返回某字段的和

2.字符串函数

(1).CONCAT(str1,str1...strn)  
作用:字符串连接
举例:SELECT  CONCAT('My','S','QL'); 
返回:My'SQLySQL
(2).INSERT(str,pos,len,newstr)
作用:字符串替换
举例:SELECT INSERT('这是SQL Sever数据库',3,10,'MySQL')
返回:这是MySQL数据库
(3).LOWER(str) 
作用:将字符串转换成小写
举例:SELECT LOWER('MySQL')
返回:mysql
(4).UPPER(str)
作用:将字符串转换成大写
举例:SELECT UPPER('MySQL')
返回:MYSQL
(5).SUBSTRING(str,num,len)
作用:字符串截取
举例:SELECT SUBSTRING('JavaMySQLOracle",5,5)
返回:MySQL

3.时间日期函数

(1).CURDATE()
作用:获取当前日期
举例:SELECT CURDATE()
返回:2021-03-04
(2).CURTIME()
作用:获取当前时间
举例:SELECT CURTIME()
返回:090131
(3).NOW()
作用:获取当前日期和时间
举例:SELECT NOW()
返回:2021-03-04 090131
(4).WEEK(date)
作用:返回日期date为一年中的第几周
举例:SELECT WEEK(NOW())
返回:9
(5).YEAR(date)
作用:返回日期date的年份
举例:SELECT YEAR(NOW())
返回:2021
(6).HOUR(time)
作用:返回时间time的小时值
举例:SELECT HOUR(NOW())
返回:9
(7).MINUTE(time)
作用:返回时间time的分钟值
举例:SELECT MINUTE(NOW())
返回:7
(8).DATEDIFF(date1,date2)
作用:返回日期参数date1和date2之间相隔的天数
举例:SELECT DATEDIFF(NOW(),'2011-03-04')
返回:3653
(9).ADDDATE(date,n)
作用:计算日期参数date加上n天后的日期
举例:SELECT ADDDATE(NOW(),5)
返回:2021-03-09 09:11:51

2.使用LIMIT限制展示结果集

查询结果排序 查询 年级编号gradeId为1的所有学生信息,结果按学号升序排列

需求1 :限制展示前3条记录 limit 3 默认从第一行记录开始 全称limit 0,3 0表示起始行记录(下标从0开始) 3表示显示记录数

SELECT * FROM student
WHERE gradeid=1
ORDER BY studentno ASC
LIMIT 3;

需求2:限制展示 从第N条记录开始,展示3条记录 LIMIT N-1,3

SELECT * FROM student
WHERE gradeid=1
ORDER BY studentno ASC
LIMIT 2,3;

3.使用表连接查询

实例:
查询”Logic Java“课程至少一次考试刚好等于60分的学生

SELECT s.studentname FROM student AS s
INNER JOIN result AS r  ON s.studentno = r.studentno
INNER JOIN SUBJECT AS su ON su.subjectno = r.subjectno
WHERE su.subjectname = 'Logic Java' AND r.studentresult=60

4.子查询

注意子查询的时候条件限定 最好用in替换

 SELECT studentName FROM student AS stu WHERE stu.studentno IN(
	SELECT r.studentno  FROM result AS r
	INNER JOIN SUBJECT AS s ON s.subjectno = r.subjectno
	WHERE r.studentresult>60 AND s.subjectname='Logic Java'
)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值