![30808bae99782199e1ebf37bd92df72d.png](https://i-blog.csdnimg.cn/blog_migrate/edac36a42a09f3487c3a4befd35a3cb8.jpeg)
拖延症害死人,还有两周开学,必须必须完成暑假定下的任务!加油~
主要内容:
![fc095675d553104698243e04283a40b9.png](https://i-blog.csdnimg.cn/blog_migrate/f8e6a5c535c7f0bda70b385cde8ba843.png)
一.表的加法union
![dfbb85844129fd995e1984ed1c52a3e6.png](https://i-blog.csdnimg.cn/blog_migrate/757a6a359b2bea8d539e70b3f7c029e0.jpeg)
![d95c7960cebf7711f2990cbfe1979a7a.png](https://i-blog.csdnimg.cn/blog_migrate/331477ee380cf0b2d786e025baf90d0c.jpeg)
![d0e79150b3fb591a3eb475d44d4b495b.png](https://i-blog.csdnimg.cn/blog_migrate/69d4b8988497b3434fea8ca0edbe39aa.jpeg)
代码示例:
1.1
![d0401234adb78678147d59bbce58bc1b.png](https://i-blog.csdnimg.cn/blog_migrate/3372588f92ede027e5bb28c8e45a2337.png)
1.2
![eb6daa8c84ed449e1e4690933dfcad2a.png](https://i-blog.csdnimg.cn/blog_migrate/a287da4ae3388e27a634767c4e487e7b.png)
二 . 表的联结---结合多表以获取需要的数据
表的关系:
![29c69c02e03482c5f8b6c9c9ffb8fbb8.png](https://i-blog.csdnimg.cn/blog_migrate/af32c2ea00461b1f776528624e1423f2.jpeg)
- Cross join
- Inner join
- Left join
- Right join
- Full join
2.1交叉联结(笛卡尔积)---其他联结的基础,类似扑克牌大小与花色的组合
![ecd2c09243f60847cc4f11a5d58bb5bb.png](https://i-blog.csdnimg.cn/blog_migrate/f085b683d6384832a2870de47bf56a8b.jpeg)
![336673a43be8fb1b91bb5726dbd1a778.png](https://i-blog.csdnimg.cn/blog_migrate/642620eb1328f5b557d115af2b475541.jpeg)
2.2内联结---取各表的公共部分的数据
![2f42c2ad580f1e636f4093cd5824eec3.png](https://i-blog.csdnimg.cn/blog_migrate/c6facc82c318caebcc68b15b37cada39.jpeg)
![7476bfe992998fe5b17c2474efaa8575.png](https://i-blog.csdnimg.cn/blog_migrate/5a9d005315f09254835f43a43dd1d915.jpeg)
代码示例:
![939f08a9dfcc0c7ec1aa2934dfe18417.png](https://i-blog.csdnimg.cn/blog_migrate/4467869811ca88e451df9ef351d371f1.png)
2.3 左联结---以左边表所有数据为基础取出右边中相同的部分进行交叉联结
![f83a4be0d00ed44c9412b2bad941df64.png](https://i-blog.csdnimg.cn/blog_migrate/ae7e5ba30afb459d51d5f856852fbb52.jpeg)
![4dadf2a51328eb0489aa8deeb63eea00.png](https://i-blog.csdnimg.cn/blog_migrate/84d250a761f1ae8ec46821ae92ec8181.jpeg)
代码示例:
![b1d7ac3a205e3b53b0bb0d07940f72bb.png](https://i-blog.csdnimg.cn/blog_migrate/ff4f0f1c9a2b0c4166f9edea15eeba05.png)
Ps: where 语句可以取出除 inner join 外的部分数据,代码示例:
![f22b257dcba16552ea19668fdd29a89b.png](https://i-blog.csdnimg.cn/blog_migrate/2909fbe4f80e8e329330c72454b260f0.png)
2.4右联结---以右边表所有数据为基础取出左边中相同的部分进行交叉联结;
![5c386aaa5e515e0595664e2adda36db0.png](https://i-blog.csdnimg.cn/blog_migrate/15cdf28f841ffee63026e2f2d32f6081.jpeg)
![9f512dceac8e96afe5e8c2b4cb627221.png](https://i-blog.csdnimg.cn/blog_migrate/8d4802e2c589b30c5b90173892654d82.jpeg)
Ps: where 语句可以取出除 inner join 外的部分数据(纠正:is null 不是 = null)
![6ef7254a2e008ca918b9f128d395fb86.png](https://i-blog.csdnimg.cn/blog_migrate/24a64ff558878aaa114770c93cb916a8.jpeg)
2.5 全联接---MySQL不支持
![bbd2a5b3887b1b406f2cfed862e8ebd3.png](https://i-blog.csdnimg.cn/blog_migrate/9d98c0370c2c42c50b7620fc2044af96.jpeg)
Attention: SQL 运行顺序牢记在心~
![39b5b525783de60a64ff1b519bab239d.png](https://i-blog.csdnimg.cn/blog_migrate/614e3d0c5babd9a987b4595ae0da51a4.jpeg)
三 . 应用案例
三部曲:
- 理解问题要求;
- 写出分析思路;
- 写出对应SQL 语句;
3.1 Case study 1: 查询所有学生的学号,姓名,选课数,总成绩
![60f56e046f0d44801d05e37a87ebdeae.png](https://i-blog.csdnimg.cn/blog_migrate/f6b0409f22c321c6ddab3a3c5435e592.jpeg)
![da5017370e437048ac9faf0ac6976c4b.png](https://i-blog.csdnimg.cn/blog_migrate/8a14c671ce13f432bd1ca7c0abf4aa70.png)
3.2 Case study 2:查询平均成绩大于85的所有学生的学号,姓名和平均成绩
![fe6f557588239b32a5e6fc251e619ead.png](https://i-blog.csdnimg.cn/blog_migrate/9c549424c70739023320d1335eae3aba.jpeg)
![16dc3082823447e6a7795adefbec2d70.png](https://i-blog.csdnimg.cn/blog_migrate/f0204ba8a81c70ed3f681acf1d720957.png)
3.3 Case study 2:查询学生的选课情况包括学号,姓名,课程号,课程名称
![7949491cd04ec224e5c5af2d3c6158f9.png](https://i-blog.csdnimg.cn/blog_migrate/863cdc140352a84798dccf35bf1a0393.jpeg)
![35ef706bee14364debaf06c76a9ae72c.png](https://i-blog.csdnimg.cn/blog_migrate/6eb0c2436796dbd0f46e8bbb2c6eed47.png)
来一个贴心的总结~
![d47ea9f7706e74269bbcad0a8564e3a9.png](https://i-blog.csdnimg.cn/blog_migrate/4ccf83ec08fe3fa7044cf2f0d3690014.jpeg)
四 .case表达式
形如:
![52a49654168747d3d8fe1d0bb6bcfcae.png](https://i-blog.csdnimg.cn/blog_migrate/4652bee622a76782079cdf3a098c2ba6.jpeg)
学以致用~
4.1判断学生成绩是否合格
![090331d0919ec0864efb8eb65a5ca636.png](https://i-blog.csdnimg.cn/blog_migrate/219895b67c53784d023c9bec064f87cf.png)
4.2查询每门课程的及格人数和不及格人数
![6993b82a1257d1f505ef1eae230a3521.png](https://i-blog.csdnimg.cn/blog_migrate/dbaf4c0e09b30212b28fd65f613125bf.png)
4.3分段统计各科成绩,以及各分数段人数,课程号,课程名称
![708dd0baadf26c700b33def2c6307354.png](https://i-blog.csdnimg.cn/blog_migrate/ff800cb5a5b6c5cc2d14bdc2241cbc34.jpeg)
Ps:当用多个列分组时,这几个列的值全部相同才算一组
最后,记得多去sqlzoo逛逛~勤能补拙~加油~
最后的最后,以后打死我也不拖延了,太难受 !!!