• mysql 笔记五


    聚集函数

    • count() 统计记录的条数
    • sum() 计算字段的值得总和
    • avg() 计算字段的值得平均数
    • max() 最大值
    • min() 最小值

    group by 子句

    group by 关键字可以将查询结果按某个字段或多个字段进行分组。

    group by 还可以进行多个字段分组,字段间使用逗号隔开。

    group by col_name1[,col_name2] [having条件表达式][with rollup]
    
    select name,count(*) from data group by number;
    # with rollup 统计最终人数
    select c_name,count(*) from score group by grade with rollup;
    
    select c_name,grade from score group by grade having grade>80;
    
    # having 与 where 类似,限制显示,但是两者起作用的地方不一样。
    # where 作用于表或视图,having作用于分组后的记录,用于选择满足条件的组。
    
    

    order by 子句

    order by 子句按一个或多个(最多16个)字段排序查询查询结果,可以是升序(ASC)/降序(DESC)。默认为升序。该子句通常放SQL语句的最后

    Limit 子句

     select_statement limit {[offset,] row_count | row_count OFFSET offset}
     Select_statement :查询语句
     offset:    偏移量
     row_count: 取得记录的条数
     
     // 返回 2~3行记录
     select * from data limit 1,2;
    

    union 合并结果集

    select name from student
    union
    select c_name from score;
    
    查询需要满足相容性
    

    子查询

    可以组合使用两个查询,即将一个查询放置到另一个查询的内部,内部的查询称为子查询。

    where型子查询

    where型子查询即把内部查询结果当作外层查询的比较条件

    查询比 张三 年龄大的同学的信息
    '' select * from student where brith < (select brith from student where name='张三')''

    from 型子查询

    • 带 IN 关键字
    • 带 ANY 关键字
    • 带 ALL 关键字

    exists 型子查询

    exists 关键字表示存在, 使用exists 关键字时, 查询语句不返回查询的记录
    注意点:

    • 内查询语句

      当查询到满足条件的记录,返回 True ; 否则 false

    • 外查询语句

      当查询为真时,使用外查询进行查询;否则外查询不进行查询

    连接查询

    连接查询即从笛卡尔积中找出满足条件的行

    select 字段表 from 表1 left | right [outer] join 表2 on 表1.字段 = 表2.字段

    • 当 from 子句 指定两张或两张以上的表时。叫做表的连接(join),进行比较的两列叫做连接条件。
    • 连接分为内连接和外连接, 即 inter和outer,默认是内连接
    • 外连接分为 left , right ,即左连接 , 右连接
    • 两个表中重复的属性需要使用点操作符 “表名.列名”指定来自于那个表
    • 所有属性都可以指定其来自于哪个表,这可以提高查询的可读性。

    内连接

    内连接查询是最常用的一种查询,也称为等同查询,就是在表关系的笛卡尔积数据记录中,保留表关系中所有相匹配的数据,而舍弃不匹配的数据。

    • 等值连接(inner join)

    用来连接两个表的条件称为连接条件,如果连接条件中的连接运算符是 = 时,称为等值连接。

    • 自然连接(natural join)

    自然连接操作就是在表关系的笛卡尔积中,首先根据表的关系中相同名称的字段进行记录匹配,然后去掉重复的字段,还可以理解为在等值连接中把目标列中重复的属性列去掉,则为自然连接。

    • 不等值连接(inner join)

    用来连接两个表的条件称为连接条件,如果连接条件中的连接运算符是 = 时,称为等值连接。 如果时其它的运算符,则是不等值连接

    外连接

    • 左连接

    • 右连接

    注意

    • 子查询通常是令某一表的查询结果作为外层查询的条件,查询的结果只来自一张表,这种情况通常使用子查询。

    • 查询结果来自于不同表,这种情况通常使用连接查询。

  • 相关阅读:
    关于求LCA三种方法
    逆序对与本质不同的逆序对
    缩点+割点(tarjan)
    关于线段树
    引爆点
    0 基础认知产品经理
    一款 App 开发到上架
    坚持+时间管理
    测试流程
    Java学习笔记--字符串String、StringBuffer和StringBuilder
  • 原文地址:https://www.cnblogs.com/duoban/p/11742930.html
Copyright © 2020-2023  润新知