一.基本查询
1.全表查询和特定列查询
1.1 全表查询
1.2 选择特定列查询
2.列别名
3.算术运算符
4.常用函数
二.WHERE语句
1.比较运算符
如:
2.逻辑运算符
三.分组
1.group by语句
GROUP BY语句用来与聚合函数(aggregate functions such as COUNT, SUM, AVG, MIN, or MAX.)联合使用来得到一个或多个列的结果集。
语法如下:
SELECT column1, column2, ... column_n, aggregate_function (expression)
FROM tables
WHERE predicates
GROUP BY column1, column2, ... column_n;
因为聚合函数通过作用于一组数据而只返回一个单个值,因此,在SELECT语句中出现的元素要么为一个聚合函数的输入值,要么为GROUP BY语句的参数,否则会出错。
我这里有这样一张比表:
我们用age来分组计算行数:
2.having语句
HAVING语句通常与GROUP BY语句联合使用,用来过滤由GROUP BY语句返回的记录集。
HAVING语句的存在弥补了WHERE关键字不能与聚合函数联合使用的不足。
语法:
SELECT column1, column2, ... column_n, aggregate_function (expression)
FROM tables
WHERE predicates
GROUP BY column1, column2, ... column_n
HAVING condition1 ... condition_n;
我们用age分组计算平均分数:
四.Join语句
这里有两张表:
1.inner join
只有进行连接的两个表中都存在与连接条件相匹配的数据才会被保留下来。
select stu.name, stu.id, course.coursename from stu join course on stu.id=course.id;
2.left outer join
JOIN操作符左边表的所有记录会被返回
select stu.name, stu.id, course.coursename from stu left outer join course on stu.id=course.id;
3.right outer join
JOIN操作符右边表的所有记录会被返回。
select stu.name, course.id, course.coursename from stu right outer join course on stu.id=course.id;
4.full outer join
将会返回所有表的所有记录。如果任一表的指定字段没有符合条件的值的话,那么就使用NULL值替代。
select stu.name, stu.id, course.id, course.coursename from stu full outer join course on stu.id=course.id;