通知
此博客运行在jpress系统上,如果你喜欢此博客模板,请加QQ群:1061691290(whimurmur模板/jpress插件),免费下载使用

leetcode数据库 写在前面

896人浏览 / 0人评论 | 作者:whisper  | 分类: 数据库  | 标签: 数据库  /  leetcode  | 

作者:whisper

链接:http://proprogrammar.com:443/article/629

声明:请尊重原作者的劳动,如需转载请注明出处


    花了几天时间用mysql把leetcode数据库的题都做了一遍,想的是熟悉一下常见的数据处理情形,一开始没有信心,想着先做简单中等的题,发现绝大部分是可以自己解决的,做完了简单中等的题,然后开始做难题,发现大部分也是可以自己解决的,数据库sql不像java等高级语言,比较死板,不灵活,发挥的地方少(能发挥我也不知道),因为我不懂方法,没有技巧,所以解决问题的方式就是无限连接无限嵌套,inner join啊,left join啊,cross join啊,union啊这种,还有各种子查询,其实只要思路有了就成功一大半了,剩下的只是用sql表达一下。下面说一下做题中常用到的一些知识。

    1、对数字的处理

    round ceil floor abs这种

    2、对字符串的处理

    最多的就是转日期 str_to_date这种

    3、对日期的处理

    date_sub date_add date_format curdate curtime这种

    4、逻辑判断

    if ifnull case ... when ... then ... else ... end

    5、聚合函数

    sum count max min avg 还有就是与distinct case...when...then...else....end联合使用的情况

    6、行转列与列转行

    行转列用case...when...then...else...end

    列转行用union

    7、变量的使用

    @var:=xxxx

    对于一些常规难以解决的问题,可以用变量试试,如给行加个连续序号

    8、还有就是最基本的sql用法

    如distinct的使用,group by....having的使用,order by,limit的使用

    9、连接的一个作用是可以使一行关联相关的若干行,从而处理该行与相关的行,如果没有连接,那只能处理一行了

    10、子查询更像是一种分步,对一个问题,分若干步,一个子查询完成一步,另一个子查询通过嵌套在上一个子查询的基础上进行一下步

    11、总之就是在连接的基础上通过子查询,函数,判断,各个关键字,变量等来完成数据库操作

    我做题的过程中大致就用到这么多知识,而且这些知识就足以应对leetcode上的数据库的题目了


亲爱的读者:有时间可以点赞评论一下

点赞(0) 打赏

全部评论

还没有评论!