sql 让每行显示两次_SQL基础-复杂查询
通过这几天sql练习,sql还是要多练习,熟悉相关思路,特别sqlzoo练习第九题和第十题,比较时,数据可以在左边,习惯是右边。第十题,必须要过滤掉自己本身,才能得出结果。
1.视图
创建视图:create view 视图名称(视图列名...) < as select 查询语句>
2.子查询
子查询就是指的在一个完整的查询语句之中,嵌套若干个不同功能的小查询,从而一起完成复杂查询的一种编写形式。
子查询返回结果子查询可以返回的数据类型一共分为四种:
-
- 单行单列:返回的是一个具体列的内容,可以理解为一个单值数据;--标量子查询
- 单行多列:返回一行数据中多个列的内容;
- 多行单列:返回多行记录之中同一列的内容,相当于给出了一个操作范围;
- 多行多列:查询返回的结果是一张临时表;
3. 标量子查询
标量子查询是指子查询返回的是单一值的标量,如一个数字或一个字符串,也是子查询中最简单的返回形式。
4. 关联子查询
对于外部查询返回的每一行数据,内部查询都要执行一次。在关联子查询中是信息流是双向的。外部查询的每行数据传递一个值给子查询,然后子查询为每一行数据执行一次并返回它的记录。然后,外部查询根据返回的记录做出决策。
正常情况下SELECT的书写顺序和执行顺序:
书写顺序:
SELECT》FROM 》WHERE》GROUP BY》HAVE》ORDER BY
执行顺序:
FROM 》WHERE》GROUP BY》HAVE》SELECT》ORDER BY
5.sqlzoo练习--SELECT_within_SELECT_Tutorial
world(name, continent, area, population, gdp)
7,关联子查询
问题9(baidu)--2500000放在比较左侧
问题10:同一洲国家人口超过其他任意一个国家的三倍,前提是同一洲,显示name和continent(baidu)