美文网首页
数据库知识杂点

数据库知识杂点

作者: 放开那个BUG | 来源:发表于2018-09-26 16:53 被阅读2次

    1.如何求最大的或者最小的

    • select * from A order by id(从小到大排序) desc(逆序)limit 1(只取第一个)

    或者

    • select * from A where id = (select max(id) from A) //使用max()函数

    2.limit的用法、distinct的用法

    • 求倒数第3个人的信息
    • select * from A where id = (select id from A order by id limit 2, 1)
    • distinct是去掉重复值的

    3.group by

    • group by从字面理解就是根据by指定的规则对数据进行分组,所谓的分组就是将数据划分成若干个小区域,然后对若干个小区域进行数据处理。

    4.not in的用法

    5.sql运算符

    • sql除了可以使用比较操作符之外,还可以使用加减乘除取模等算术运算符

    6.不使用order by求第二大的信息

    • 如果使用order by: select id from A where id = (select distinct id from A order by id desc limit 1,1)
    • 不使用order by的思路是在id小于max(id)中找到max(id):
      select max(id) from A where id < (select max(id) from A)

    7.inner join、left join已经right join的含义

    • 简而言之就是:inner join只有条件符合的时候才返回结果,left join是以左表为基准,可能会出现右边不匹配然后右边的值有空值的情况;right join同理。

    8.select ... from (select ...)

    //比如这种写法就是当作生成了sCurrent和sStart两张表
    select sCurrent.emp_no, (sCurrent.salary - sStart.salary) as growth from 
    (select s.emp_no, s.salary from employees e, salaries s where e.emp_no = s.emp_no 
    and s.to_date = '9999-01-01') as sCurrent
    inner join
    (select s.emp_no, s.salary from employees e, salaries s where e.emp_no = s.emp_no 
    and e.hire_date = s.from_date) as sStart
    on sCurrent.emp_no = sStart.emp_no
    order by growth
    

    9.看图不解释

    10.

    相关文章

      网友评论

          本文标题:数据库知识杂点

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