美文网首页Python爬虫作业
SQLZOO的练习(1-3)

SQLZOO的练习(1-3)

作者: 只是不在意 | 来源:发表于2017-06-10 16:48 被阅读0次

    网址是:sqlzoo.net。做了前三章,简单的题还是遇坑了,记录总结一下。

    1. SELECT basics 略
      2. SELECT IN SELECT
      a. ROUND函数

      ROUND函数有2个参数:ROUND(你需要修改的数字,保留的小数点位数)
      默认是不显示小数点,正数是保留的小数点的位数,负数是向左进行保留

    ROUND (10/3,2) = 3.33
    ROUND (10/3) = 3
    ROUND (12345,-2) = 12300

    b. 同时选择
    只选一个可以用“|”来分隔,但同时选择就要每个条件写一个语句了,再用and连在一起。

    SELECT name FROM world
    WHERE name like '%a%' 
    AND name like '%e%'
    AND name NOT LIKE '% %'
    

    3. SELECT from Nobel
    a. 输入单引号,可以用两个单引号'',也可以用反斜杠。

    SELECT * FROM nobel WHERE winner='EUGENE O\'NEILL'
    SELECT * FROM nobel WHERE winner='EUGENE O''NEILL'
    

    b. 排序


    a.png

    这两道题都讲到了排序,sql中默认是升序,所以asc不用写,降序desc要写。
    另外一个是用IF和IN来排序特定分类。单个条件用IF,范围用IN
    例:将snake放在前面

    if (species='snake',1,0),DESC,species;
    

    这句话的意思是,对species进行排序的同时,附加一个隐藏属性,可以是1或者0。
    因此,在对species排序的时候,优先级是判断species是否为snake,如果是,返回1,如果不是,返回0。
    如果想把snake的这一行放在查询结果尾部,那就是

    SELECT * FROM pet ORDER BY if(species='snake',1,0) species;
    

    第一步是查询species的隐藏属性,因为species=snake的返回值是1,所以进行升序排列时,就被排在了最后

    上面是满足单个条件,如果需要用到一个范围,则可以使用IN语句,就是上面例图这样。

    相关文章

      网友评论

        本文标题:SQLZOO的练习(1-3)

        本文链接:https://www.haomeiwen.com/subject/fpjfqxtx.html