本笔记为阿里云天池龙珠计划SQL训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/promotion/aicampsql”
表的运算这一部分我觉得比较简单,因为不管是集合运算还是or语句之类的运用我在别的学科都有涉猎与学习,本来就掌握了这部分知识,在数据库中只需要类比进行运用即可。值得注意的是,MySQL 8.0 还不支持 表的减法运算符 EXCEPT. 不过, 借助第六章学过的NOT IN 谓词, 我们同样可以实现表的减法.
对于连结这部分我觉得还是有一定难度的,因为连结分很多种情况,而不同的情况又需要不同的代码来实现,就比如连结之后的表需要筛选的话,先连结再筛选的标准写法的执行顺序是, 两张完整的表做了连结之后再做筛选,如果要连结多张表, 或者需要做的筛选比较复杂时, 在写 SQL 查询时会感觉比较吃力. 在结合 WHERE 子句使用内连结的时候, 我们也可以更改任务顺序, 并采用任务分解的方法,先分别在两个表使用 WHERE 进行筛选,然后把上述两个子查询连结起来.
连结还包含了自连结还有自然连结等等,掌握起来还是很有难度的。
对于连结的语法也是有需要注意的点,就比如”SELECT SP.shop_id ,SP.shop_name ,SP.product_id ,P.product_name ,P.sale_price FROMshopproduct SP,product P WHERE SP.product_id = P.product_id AND SP.shop_id = '000A';“
就属于是过时语法,是非常不推荐使用的。