单表查询掌握之后,有些问题一张表数据不够,需要同时从多张表查数据,就用到联表语句了。
join联表,其实就是丰富FROM后面的内容,原始是FROMtabl一张表现在是FROMtabl1jointabl2两张表合成一张表看待!(这个思维很重要,其实联表完了看成新表就可以)学习时间:0.5天添加图片注释,不超过字(可选)坑1:内联,左连,右连傻傻搞不清,这几乎是每一个人都会出现的问题。我到底用哪个联表方法。关键就是记住一点,你要留下哪些数据tabl1联tabl2留下两个表都有的ID,tabl1innrjointabl2留下tabl1的所有数据tabl1lftjointabl2留下tabl2的所有数据tabl1rightjointabl2¥第4关,复杂查询IfollowU简单查询会了之后,有一种情况是查询条件用到的数据正好是第二张表里的数据,这时候就需要用到子查询了,也就是查询嵌套着查询。学习时间:0.5天添加图片注释,不超过字(可选)坑1:子查询一开始不好理解,其实可以这么理解,比如:slct*fromtablwhra=(slctcolfromtabl2whrcol1=xx)可以把这个sql拆成2步,先理解(slctcolfromtabl2whrcol1=xx),我们手动的去执行这个查询,假设得到的结果是那么:slct*fromtablwhra=是不是就是我们要的条件?思考一下:为什么不直接用两步,第一步查出,第二步直接用a=来查,而要用子查询呢?其实思考清楚这个问题,你对子查询就完全理解了。slct*fromtablwhra=slct*fromtablwhra=(slct)slct*fromtablwhra=(slctcolfromtabl2whrcol1=xx)上面三句,在现在这个时刻效果是一样的,都能查出要的数据。但是第三句的子查询有一个好处,就是当tabl2的col数据变更的时候(数据总是不断更新的),这种情况下第句任然可以查出正确的结果,但是1,2句就不行了。¥第5关,新增,更新和删除数据有时候需要自己去新增数据库的数据,所有要学习一下增,删,改的语法。也就是INSERT,UPDATE和DELETE学习时间:0.5天坑1:UPDATE和DELETE有一定的危险性,一定要注意先SELECT出来看一下是不是你要更新的数据。特别是对公司的数据库做操作的时候坑2:INSERT新增一定要注意ID重复问题,大多数表的ID都是不可以重复的,你重复写入相同的ID不会成功¥第6关,新建表和表的关系有时候会用到新建数据库和表的操作。库-表的关系是库大于表,不同名字的库下面可以建立相同的表。db1包含tabl1,tabl2db2包含tabl1,tabl这是允许的,可以用db1.tabl1,db2.tabl1这样来表示学习时间:0.5天添加图片注释,不超过字(可选)坑1:DROP操作极其危险,也就是平时我们听到的删库跑路操作,一般情况不要用。¥第7关,函数使用帮我解决难题在SQL运用的高级阶段,往往用到各种函数,查询条件里可以用函数,数据结果的计算也可以用函数。你可以把函数理解为数据库提供给我们的一些算法,这样我们就可以在SQL里直接计算了。这些算法组合到一起就能发挥给常大的能力。学习时间:1天添加图片注释,不超过字(可选)坑1:substr字符串截图函数,substr(a,b)老是有人纠结这个a和b的含义,其实真的记不住,实际用的时候去调一下a,b大小就可以了坑2:lik模糊匹配,简单点理解就是用一个字符串表示一个系列的字符串。把%符号理解成一张万能牌。坑:cas语法无法理解。这个是真的不好理解。你可以把cas心里想成if,如果的意思。作用就是把1堆数据按规则分类。¥第8关,汇总各种奇奇怪怪的SQL符号这一关复习一下,其实我发现SQL就是跟各种符号打交道,出错也大部分因为这些符号,所以做了一个整理汇总,尽量把这些符号搞清楚吧。学习时间:0.5天添加图片注释,不超过字(可选)总结SQL的语法,说多也不多,说少也不少,想要灵活运用,千万不能死记硬背。我还是忍不住把这个公式贴出来:SELECTcol,col,col找什么?FROMtabl从哪找?WHEREcol条件条件是啥?这个SQL法则告诉我们SELECT才是最重要的语法,INSERT,UPDATE等变更数据平时不怎么用,你记它干啥,需要的时候翻书就可以找到。第二点,写查询语句其实就是三板斧,先思考FROM这一段,再思考WHERE这一段,最后再优化SELECT后面的。要是你每一个SQL都能这么思考,我保证你可以学的贼快说说一个改变我思维你的SQL出过错吗?其实一开始我看到SQL出错是很烦的,谁不烦,谁不想一次性写对。无数次教训加上大牛的指导,我才明白SQL不是一次性写出来,真的是一步步调出来的(很多次看着大牛调试我的SQL)。遇到出错了,可以简化一下,换一换条件,甚至一个字一个字比对,一点点的调试+分析,要真有这个耐心。不知道你学习过程是不是也觉得SQL要一次性写出来,是的话真的可以换一个思维了。最后,练习真的很重要看遍,不如练习1遍(谁练谁知道)。重点:除了SQL练习,我还重点整理了多个大厂的面试真题
其他更多资料领取jingdata2