zoukankan      html  css  js  c++  java
  • 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)

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

    外连接

    • 左连接

    • 右连接

    注意

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

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

  • 相关阅读:
    CSS浮动(float、clear)通俗讲解
    JAVA 类的加载
    数据库操作 delete和truncate的区别
    正则表达式 匹配相同数字
    Oracle EBS OM 取消订单
    Oracle EBS OM 取消订单行
    Oracle EBS OM 已存在的OM订单增加物料
    Oracle EBS OM 创建订单
    Oracle EBS INV 创建物料搬运单头
    Oracle EBS INV 创建物料搬运单
  • 原文地址:https://www.cnblogs.com/duoban/p/11742930.html
Copyright © 2011-2022 走看看