第二周sql
2018-12-30 本文已影响2人
巍期
这周比起上一周还忙(依旧没有元旦假期的我们= =),按照目录的进度学得比上周少,但看得比上周更认真,总结如下:
1.子查询:
子查询即嵌套在其他查询中的查询
如何理解子查询,书中给了例子
如果要利用子查询:
这个就跟excel中的if 一样,从内到外。可以把where中的语句换为嵌套
书中说嵌套会因为性能上的限制不能太多,我觉得,嵌套太多也并不高效,理解也复杂。
2.连接表:主键
外键:另外张表的某一列,包含另外一个表的主键值,定义了两个表的关系
创造连接:
在这个例子中,用where连接 。其中
为完全限定列名。
内部联结:inner join语法
3.创造高级联结:
将表创建别名
(应该注意的是,别名只在查询中使用,表别名不返回客户机)
自联结:
第二个是使用自联结的语句,第二个要比第一个要简洁,更好理解
自然联结:排除多次出现,使每个列只返回一次。
外部联结;
使用带函数的联结。
4.组合查询:多条select 语句查询,结果作为单个查询结果集返回。这些组合查询就称之为并或复合查询
使用union
union的规则:
必须由两条或者两条以上的select语句组成,语句之间用union分隔
union中的每个查询必须包含相同的列,表达式或聚集函数
列数据类型必须兼容,类型不一定要相同。
Union已经自动在查询结果中去除了重复的行,可以用union all 返回所有行
在union中只能使用一条order by,而且必须出现在最后select语句后。
Union优势在简化复杂的where。
总结:加油忙过月末月初,虽然学的进度少,但感觉比上周追进度理解的要好。看来宁可慢一点。