- 主要内容
一. 表的合并:
![8b90fd5024587ecccf5006daa5c36712.png](https://i-blog.csdnimg.cn/blog_migrate/584b2c5ce25da9511b48172f529bad5a.jpeg)
- union: 去除重复行
![6c21b04fcb65d4b174e10d8e9733528e.png](https://i-blog.csdnimg.cn/blog_migrate/bbd75e28623721a6a246fc8f46eefcb8.jpeg)
2. union all: 保留重复行
![ac33f16ffbe193affdc14845f7ac1d8a.png](https://i-blog.csdnimg.cn/blog_migrate/a498f716d938eed17003e88941460706.jpeg)
二. 表的联结:
1.通过列产生关系
![92d2965f3dd625589727fe8733343bb4.png](https://i-blog.csdnimg.cn/blog_migrate/8c466b925f04a502c29fbb003f5fd580.jpeg)
1)交叉联结cross join: 例如扑克牌花色
![b2ed4f4f6360942085eb9409463e96ce.png](https://i-blog.csdnimg.cn/blog_migrate/2b8ee4006d7ee14fd9e7bbee71f5ffaa.jpeg)
2) 内联结inner join: 查找出同时存在于两张中的数据
![932f60e72d0dd38d7c03da7b14c76209.png](https://i-blog.csdnimg.cn/blog_migrate/9175fb874b73ae5e38f8e88852a5b6fb.jpeg)
例:
![1e4a2e7c2ea8b00f3d890430de72b54a.png](https://i-blog.csdnimg.cn/blog_migrate/55df38073fa9939a1afcb733488d60dc.jpeg)
sql语句:
![9784e607cccd950ca7894e7b02c1ed1c.png](https://i-blog.csdnimg.cn/blog_migrate/789c6826087a3d474b0502d937f2dfb1.jpeg)
3)左联结left join: 将左侧表的数据全部取出
![700ed32e02bcb8a7738b39cf705cf5ab.png](https://i-blog.csdnimg.cn/blog_migrate/7b560c8bc27b4ec2bc39feb10792fe90.jpeg)
sql语句:
![c252964a761e0e785781a06e7d24cca4.png](https://i-blog.csdnimg.cn/blog_migrate/3a59586186350962cd64ddbf8273ab22.jpeg)
4)右联结right join:将右侧表的数据全部取出
![8aff57479395bb6afbbe441945f0cc9d.png](https://i-blog.csdnimg.cn/blog_migrate/62b92d2be20ca1ff906b12d9731c9bcc.jpeg)
sql语句:
![23383a3c0590168bed79ca74d4039655.png](https://i-blog.csdnimg.cn/blog_migrate/69842e003aeb27f16d545f9a6cd1db9c.jpeg)
5)全联结full join: 取出两表中的全部数据(Mysql不支持)
【汇总】
![eb338503c8b921090a840bef4fb5e06c.png](https://i-blog.csdnimg.cn/blog_migrate/b917d7429a02698e7a54bde091e98e20.jpeg)
三. 联结应用案例
1.
![b1cb3942ea7810f65b58600988d42a3f.png](https://i-blog.csdnimg.cn/blog_migrate/6f9cd2d940f4e61dfdee5ec37b9d0c5f.jpeg)
![0473934de2b19c23eaace36f3427d802.png](https://i-blog.csdnimg.cn/blog_migrate/c128beb68c0154513d450c642c4b397e.jpeg)
![60c52713beaac4e8f66d4a4d3a053811.png](https://i-blog.csdnimg.cn/blog_migrate/588da586d2348a4d6267ceb84765207f.jpeg)
2.
![d4a6e6f0e029df4dc2b83eabf1e3b13e.png](https://i-blog.csdnimg.cn/blog_migrate/1ed803bc3d67ff922d6cbda2a1fcce0d.jpeg)
![91a5ec0f08c2a25857dff415f55ca848.png](https://i-blog.csdnimg.cn/blog_migrate/53c8c1f94cbdbf1cd3607887c02feabe.jpeg)
![db1d24b4bd42f4b9cab8357e0eb26c0c.png](https://i-blog.csdnimg.cn/blog_migrate/2bd8cac0341c5143213a27dc38b96afe.jpeg)
3. 三张表的联结
![24fc03d4733ebd41c55ddb74bf6bc07a.png](https://i-blog.csdnimg.cn/blog_migrate/090b6e9ceb3fd07561d58b530d23766e.jpeg)
![556fb2fd886a612b0b5865f0d1c88fc2.png](https://i-blog.csdnimg.cn/blog_migrate/69989c5e2017ba7cf0da9e3a4a8977f1.jpeg)
四. case表达式:当有多种情况需要条件判断时
1.
case when <判断表达式> then <表达式>
when <判断表达式> then <表达式>
when <判断表达式> then <表达式>
……
else <表达式>
end
例:
![828f6498e18aa4deae092be946a98ace.png](https://i-blog.csdnimg.cn/blog_migrate/2e84eff0a23a254dc3413b3095e218cb.jpeg)
2.
1)查找每门课程及格人数和不及格人数
![a9191e92d2af334823bd2ea9a377c061.png](https://i-blog.csdnimg.cn/blog_migrate/557ed26df1bdc56d73bbf54d0899b76a.jpeg)
【注】1)else可省略; 2)end不能省略; 3)case可以出现在sql任意子句中
2) 使用分段[100-85], [85-70], [70-60], [<60] 来统计各科成绩,分别统计:各分数段人数,课程号和课程名称
![a3b112e85a05372b2b82cb8748556920.png](https://i-blog.csdnimg.cn/blog_migrate/055e978eccd6a4d95efe32c3ec9327fc.jpeg)
- sqlzoo
![cd44174429f943772b21bad1b3cba9ee.png](https://i-blog.csdnimg.cn/blog_migrate/0ebe8b382d35109247eb9e4a2aea5cc0.png)