MySQL必知必会_第十三~十七章知识总结

第十三章、数据分组

GROUP BY子句必须出现在WHERE子句之后,ORDER BY子句之前。

MySQL必知必会_第十三~十七章知识总结_第1张图片

 过滤分组:

事实上,目前为止所学过的所有类型的WHERE子句都可以用HAVING来替代。唯一的差别是WHERE过滤行,而HAVING过滤分组

MySQL必知必会_第十三~十七章知识总结_第2张图片

 WHERE在数据分组前进行过滤,HAVING在数据分组后进行过滤。

MySQL必知必会_第十三~十七章知识总结_第3张图片

 分组和排序:

MySQL必知必会_第十三~十七章知识总结_第4张图片

 SELECT子句的顺序:

MySQL必知必会_第十三~十七章知识总结_第5张图片

 MySQL必知必会_第十三~十七章知识总结_第6张图片

 第十四章、使用子查询

员工表:

MySQL必知必会_第十三~十七章知识总结_第7张图片

工资等级表:

MySQL必知必会_第十三~十七章知识总结_第8张图片 

部门表:

MySQL必知必会_第十三~十七章知识总结_第9张图片 

利用子查询进行过滤:

现在查找职业为CLERK的员工的部门地址:

MySQL必知必会_第十三~十七章知识总结_第10张图片

 不是4行,重复的没有算进去。

可见,在WHERE子句中使用子查询能够编写出功能很强并且很灵活的SQL语句。对于能嵌套的子查询的数目没有限制,不过在实际使用时由于性能的限制,不能嵌套太多的子查询。

作为计算字段使用子查询:

MySQL必知必会_第十三~十七章知识总结_第11张图片

 第十五章、联接表

外键为某个表中的一列,它包含另一个表的主键值,定义了两个表之间的关系。

创建联结:

MySQL必知必会_第十三~十七章知识总结_第12张图片

 第十六章、创建高级联结

自联结:

MySQL必知必会_第十三~十七章知识总结_第13张图片

现在不采用子查询的方式:

 MySQL必知必会_第十三~十七章知识总结_第14张图片

自然联结:

无论何时对表进行联结,应该至少有一个列出现在不止一个表中(被联结的列)。标准的联结(前一章中介绍的内部联结)返回所有数据,甚至相同的列多次出现。自然联结排除多次出现,使每个列只返回一次

MySQL必知必会_第十三~十七章知识总结_第15张图片

外部联结: 

左外连接:

MySQL必知必会_第十三~十七章知识总结_第16张图片

 右外连接:

MySQL必知必会_第十三~十七章知识总结_第17张图片

 使用带聚集函数的联结:

MySQL必知必会_第十三~十七章知识总结_第18张图片

第十七章、组合查询 

MySQL必知必会_第十三~十七章知识总结_第19张图片

包含获取取消重复的行:

UNION从查询结果集中自动去除了重复的行。这是UNION的默认行为,但是如果需要,可以改变它。事实上,如果想返回所有匹配行,可使用UNION ALL而不是UNION。 

对组合查询结果排序:在用UNION组合查询时,只能使用一条ORDER BY子句,它必须出现在最后一条SELECT语句之后

 

你可能感兴趣的:(数据库,mysql)