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()
返回:09:01:31
(3).NOW()
作用:获取当前日期和时间
举例:SELECT NOW()
返回:2021-03-04 09:01:31
(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'
)