(一)关键知识点
1.1 纵向拼接(union,union all)
![43cf733d5878e82a1c3c8ec9f5567970.png](https://i-blog.csdnimg.cn/blog_migrate/16f4bc2026f5cbc1ce1e2bb4e403e9fa.jpeg)
![c111acaadb9bc3b0cbb8ae7d7b29cde5.png](https://i-blog.csdnimg.cn/blog_migrate/d1e4d466336563c2a99573eb0a36bcea.jpeg)
![e4b6bda512f18a57a7db16cc75a3643b.png](https://i-blog.csdnimg.cn/blog_migrate/1271c060f7318fb9094cf6bd905706b7.jpeg)
1.2 横向拼接(关系拼接,不使用select过滤字段,则临时表关键字段在左表及右表中均显示)
![3a367661d9303fb4043f62ad5724ee2a.png](https://i-blog.csdnimg.cn/blog_migrate/bbef1fbb0e098d42505a3ec3471ac0fe.jpeg)
![a423a8139e789d5e71f6751e68dfa0ca.png](https://i-blog.csdnimg.cn/blog_migrate/58882da36966e5aa1ce063ca042d85c5.jpeg)
1.2.1 交叉联结(cross join)
- 案例
![73a34ec24aa76d9ed0fa07155600a394.png](https://i-blog.csdnimg.cn/blog_migrate/8c66f1463e9a3bca99aa9306555c7e28.jpeg)
- 注意事项
(1) 数据未筛选,总数量等于两表数量的乘积;
(2) 交叉联结实际使用较少,其余各联结的基础(对应第二步) ;
1.2.2 内联结(inner join,默认联结,等价于join)
- 案例
![577b13ae6eb28866a43c3bff39291ade.png](https://i-blog.csdnimg.cn/blog_migrate/b88c991f8ea870c5970c0b57e3f43c33.jpeg)
![c231aaa011aa7451d151a59c4b975844.png](https://i-blog.csdnimg.cn/blog_migrate/6371eba1d314ed56e1684409a83635f5.jpeg)
![160147d1951099ec65f94b608aab79a5.png](https://i-blog.csdnimg.cn/blog_migrate/08485b02f9d8f493f2e34fae85059668.jpeg)
- 注意事项
(1) 第一步 选择,选中与右表中关键字相同的左表记录,与左表中关键字相同的右表记录;
(2) 第二步 基于关键字段完成交叉连接
1.2.3 左联结(left join)
- 案例
![620fe39758a43ce3610eac1e6cbbdca1.png](https://i-blog.csdnimg.cn/blog_migrate/378e44f5a93fb78e939f73cd7453622d.jpeg)
![ea2c826e8ac8128a78c7d8548e3171ea.png](https://i-blog.csdnimg.cn/blog_migrate/e27d4b88c581b312fce5d42026bdc7fe.jpeg)
![eea1ccb8c64399e3c5cefddff67e58be.png](https://i-blog.csdnimg.cn/blog_migrate/849ac95b4a74076d057d42c24ca5f1c4.jpeg)
- 注意事项
(1) 第一步选择,选中与左表全部记录,与左表中关键字相同的右表记录;
(2) 第二步 基于关键字段完成交叉连接;
(3) 注意,关键字不匹配时,会用Null行填充;
1.2.4 右联结(right join)
- 案例
![f964050742260114b2be8f5df1e449bc.png](https://i-blog.csdnimg.cn/blog_migrate/f455d5aff08fc74a5d84dabee5c5c760.jpeg)
![31c1c3e396fabc8ddb979a494e8771ed.png](https://i-blog.csdnimg.cn/blog_migrate/c0d389c2574aed9718a2285149eab088.jpeg)
![89cc0a4c755b2eee322a47abce71aedc.png](https://i-blog.csdnimg.cn/blog_migrate/0e5c35dedbcc99507b74b87bf470db0b.jpeg)
- 注意事项
(1) 第一步选择,选中与右表全部记录,与右表中关键字相同的左表记录;
(2) 第二步 基于关键字段完成交叉连接
(3) 注意,关键字不匹配时,会用Null行填充;
1.2.5 全联结(full join)
- 案例
![defaffdf5f920c8dce34623001c926a2.png](https://i-blog.csdnimg.cn/blog_migrate/6933b9f103a3211fdf98b09350db4090.jpeg)
![803120ba5f3ff9514264e0e109189d11.png](https://i-blog.csdnimg.cn/blog_migrate/b937d9c8fdf659a32c1877152250419b.jpeg)
- 注意事项
(1) 第一步选择,选中与左表全部记录,选中右表中全部记录;
(2) 第二步 基于关键字段同时完成inner联结,left 联结,right 联结;
(3) mysql 不支持full join;
1.3 case 语句(多条件判断)
![47d436d41736b80a13542236657995cf.png](https://i-blog.csdnimg.cn/blog_migrate/162cf1990dfffe1f787b70663fe572a8.jpeg)
- 运行顺序
![7fe59b1441440d97d3c621048ff81a7e.png](https://i-blog.csdnimg.cn/blog_migrate/33bf59ccb4777ed63ae24158a80f1787.jpeg)
![d74159296b4847552eb4440473a1e65d.png](https://i-blog.csdnimg.cn/blog_migrate/382445fbb42553a9298c56164240f06b.jpeg)
- 案例
![1d2ab3a0a70025167e0f8544baa39496.png](https://i-blog.csdnimg.cn/blog_migrate/4b4ce27f7445aa3e41b7e5c09d821eae.jpeg)
- 注意事项
(1) 多条件,依次判断,第一条满足,直接退出后续判断,第一条不满足,继续第二条判断;
(2) case 语句可以位于多个子句,形如:select等等
(二)联结分析演示
![1164a152dd246a37d9b09e5ad62f47c0.png](https://i-blog.csdnimg.cn/blog_migrate/1896f5b27e3cc4ae9039dcc0a1412467.jpeg)
![eaae4e1ea9817936d2b858c953ec54fa.png](https://i-blog.csdnimg.cn/blog_migrate/97aa1066010693b0c24c3fd391b1a5dd.jpeg)
![d350c93205d5eeb89a4cdf2280cdc4e1.png](https://i-blog.csdnimg.cn/blog_migrate/2f1aa05857e7391a928380ee761330c9.jpeg)
![8f561ab4260efb939f7defd5a8f6ba98.png](https://i-blog.csdnimg.cn/blog_migrate/b085176c16269e6c4bbb9ae52bf8a677.jpeg)
(三)联结实操
use
(四)SQL ZOO实操
![1ced89623ae754447e41e2255ec6e6e3.png](https://i-blog.csdnimg.cn/blog_migrate/8dbe685b0fe78e087b759be7f91f46eb.jpeg)
![ef94ac27f9e796e901090936376d94f9.png](https://i-blog.csdnimg.cn/blog_migrate/74b895dbb4671ae246178544fac6fc63.jpeg)
![3474ce8d446bd3168955b0c664f3c815.png](https://i-blog.csdnimg.cn/blog_migrate/94123a7206f3a3f8cda8a7efe733adfe.jpeg)
![b5b9e4c333580bf20b207deb66b3a04a.png](https://i-blog.csdnimg.cn/blog_migrate/640b6996b3c2f996c47d8dee0de7a4b3.jpeg)
![96c36dac5b68b692f9beab622c21ceba.png](https://i-blog.csdnimg.cn/blog_migrate/ee70e5cfc54eab10d921e97ef3b40581.jpeg)
![a42bcf3b884dce81d7034daa76557255.png](https://i-blog.csdnimg.cn/blog_migrate/32009eccde0759d5f0d0fab9e8d54733.jpeg)
注意事项:
- 多表left join是会生成一张临时表,并返回给用户
- on条件是对left join的右表追加条件过滤,目的缩小右表选择出来的有效数据,比原右表的默认选择行数要少
- on条件中如果有对左表的限制条件,无论条件真假,依然返回左表的所有行,但是会影响右表的匹配值。也就是说on中左表的限制条件只影响右表的匹配内容,不影响返回行数。
- where条件是针对宽临时表进行过滤
- 在where子句,或者联结方式时,仔细考虑临时表中Null记录行的取舍情况
![8d08f65a09ff6eecd7e9b3cfc4d311d7.png](https://i-blog.csdnimg.cn/blog_migrate/14884a1254ed5d2abbb261f419f03774.jpeg)
![70fc5a3b8d85ea3ea46500eb212c59ce.png](https://i-blog.csdnimg.cn/blog_migrate/2684a3f671fd2b4e077dcbb1242e0870.jpeg)
![35cfcfc985a3de07fcb168c9e037c869.png](https://i-blog.csdnimg.cn/blog_migrate/dbc22b519aaa2f912bfa822f970664a3.jpeg)
![8b9fe995c12d275a3352d956a57cb6e8.png](https://i-blog.csdnimg.cn/blog_migrate/ca9f33df38df0891df4038eb36e14344.jpeg)
![1bddaba054d1d2fb4cba67ace675ddfb.png](https://i-blog.csdnimg.cn/blog_migrate/a0944a38a9fb29ce7a0ac6d9b2d1def0.jpeg)
![880f190e5d3ac094888cb9e05b6698a2.png](https://i-blog.csdnimg.cn/blog_migrate/057df0c9f9b24010e0c6f8cd9a9e8a9e.jpeg)
![147cc400052a7a5b5518a9b57812579b.png](https://i-blog.csdnimg.cn/blog_migrate/c7ecb7a48fe884307ff7e5d4ea9b9741.jpeg)
![ba871fe1d595fd4e83af4249114073e1.png](https://i-blog.csdnimg.cn/blog_migrate/101689d30584277200ab1bf4ff5ebbf9.jpeg)
![f5d4acd3ad47e5906ace0e9ea87d7dbd.png](https://i-blog.csdnimg.cn/blog_migrate/4a82578e75ee36778fc8911fabb3bf8e.jpeg)