SQL学习:
一、什么是聚合函数?
1、聚合函数定义
:SQL基本函数,聚合函数对
一组
值执行计算,并返回单个值
,也被称为组函数。 聚合函数经常与 SELECT 语句的 GROUP BY 子句的HAVING一同使用。
2、常见的聚合函数有哪些?
COUNT()
SELECT COUNT(*) #返回book表中总记录数
FROM book
SELECT COUNT(1) #返回book表中总记录数
FROM book
SELECT COUNT(name) # 返回name字段不为空的总条数
FROM book
AVG()
SELECT AVG(age) AS '平均值',COUNT(name) AS '总数'
FROM student
MAX()、MIN()
SELECT
MAX(age) AS '最大值',
MIN(age) AS '最小值',
AVG(age) AS '平均值',
COUNT(*) AS '总条数'
FROM student
SUM()
SELECT
MAX(age) AS '最大值',
MIN(age) AS '最小值',
AVG(age) AS '平均值',
COUNT(*) AS '总条数',
SUM(age) AS '总数'
FROM student
二、常见函数有哪些?
1、日期:
-- 返回当前系统时间
SELECT NOW()
-- 获取当前日期
SELECT curdate();
-- 获取当前时间
SELECT CURRENT_TIME();
-- 获取时间戳
SELECT CURRENT_TIMESTAMP();
2、数据:
-- 绝对值
SELECT ABS(-8);
-- 向上取整
SELECT CEILING(9.4);
-- 向下取整
SELECT FLOOR(9.4);
-- 随机数,返回一个0-1之间的随机数
SELECT RAND();
-- 符号函数: 负数返回-1,正数返回1,0返回0
SELECT SIGN(0);
SELECT CEILING(RAND()*1000);
3、字符串类:
-- 返回字符串包含的字符数
SELECT CHAR_LENGTH('坚持就能成功');
-- 合并字符串,参数可以有多个
SELECT CONCAT('我','爱','程序');
-- 替换字符串,从某个位置开始替 换某个长度
SELECT INSERT('我爱编程helloworld',1,2,'超级热爱');
-- 小写
SELECT LOWER('Lynn');
-- 大写
SELECT UPPER('Lynn');
-- 从左边截取
SELECT LEFT('hello,world',5);
-- 从右边截取
SELECT RIGHT('hello,world',6);
-- 替换字符串
SELECT REPLACE('Lynn说坚持就能成功','坚持','努力');
-- 截取字符串,开始和长度
SELECT SUBSTR('Lynn说坚持就能成功',4,6);
-- 反转
SELECT REVERSE('Lynn说坚持就能成功');
三、嵌套查询
什么是嵌套查询?
嵌套查询定义
:嵌套查询是指在一个外层查询中包含有另一个内层查询。其中外层查询称为主查询,内层查询称为子查询。SQL允许多层嵌套,由内而外地进行分析,子查询的结果作为主查询的查询条件。子查询中一般不使用order by子句,只能对最终查询结果进行排序。
练习:
SELECT
CEILING(AVG(jack_table.age)) AS '年龄',
SUM(jack_table.age) AS '总数',
MIN(jack_table.age) AS '最小年龄',
MAX(jack_table.age) AS '最大年龄',
COUNT(jack_table.age) AS '总条数'
FROM (
SELECT
id AS ID,
name AS NAME,
age AS AGE
FROM student
WHERE name = 'JACK'
) AS jack_table