zoukankan      html  css  js  c++  java
  • 第六章 分组查询和连接查询

    1、分组查询的语法:

    select 列(或者聚合函数)

    from 表名

    where 条件

    group by 分组依据

    对分组后的每个组内的记录进行一个聚集,通常用到聚合函数

    注:分组查询所查询的列

    (1)分组列——CourseID

    (2)聚合函数计算出的列—— AVG(Score) AS 课程平均成绩

    注:在分组查询的只能有两项:

    (1)查询的结果(可以多个,比如可以同时查询平均分和总分)

    (2)分组的依据(用哪个列分组)

    2、分组筛选语句:

    select ……                 --要查询的结果或者分组的列

    from  <表名>                    --从哪一张表中查询

    where ……              --查询的条件,列名作为判断条件

    group by  ……          --分组

    having……              --聚合函数得到的结果作为条件、

    order by……           --排序选择哪一个列

    WHEREHAVING的区别

    WHERE子句:

    用来筛选 FROM 子句中指定的操作所产生的行,WHERE子句只能对没有分组的数据进行筛选。

    GROUP BY子句:

    用来分组 WHERE 子句的输出

    HAVING子句:

    用来从分组的结果中筛选行,分组后的条件筛选必须使用HAVING子句。

    3、连接查询

    a) 内连接的语法:

    • 使用where判断列名:

    select ……    --两张或者多张表中的一个或者多个列

    from 1,表2……

    where 1.相同列名=2.相同列名

    • 使用inner join on

    select ……    --两张或者多张表中的一个或者多个列

    from 1 as 别名1

    inner join 2 as 别名2

    on(别名1.相同列名=别名2.相同列名)

    b) 外连接——主表全部出,次表出对应,没有就出NULL

    • 左外连接:主表和次表连接的时候,如果主表中的数据在次表中没有对应的数据,那么次表中用null返回到结果集中。

    语法:

    select ……

    from 主表 as 别名

    left join 次表 as 别名

    on(主表别名.相同列=次表别名.相同列)

    注:先出现的第一张表为主表(左表),第二章为次表

    • 右外连接:右外联接的原理与左外联接相同,右表逐条去匹配记录;否则NULL填充。

    语法:

    select……

    from 次表 as 别名

    right join 主表 as 别名

    on(主表别名.相同列=次表别名.相同列)

    注:先出现的第一张表为次表,第二章为主表(右表)

    数据库中所有下标从1开始,编程语言中所有下标从0开始 

  • 相关阅读:
    2:(sql语言的数据类型)
    4:关系数据库标准语言sql(sql概述:功能,特点)
    毕业设计:反射,枚举
    毕业设计:阶段性总结
    3.9易错题
    3.8(关系代数表达查询)
    3.7(附加的关系运算)
    3.5(关系的完整性约束)、(关系代数的五种基本运算:选择和投影(关于行运算和列运算的概念还不清晰))
    3.4(从E-r概念模型到关系模型即DBMS直接支持的数据模型)
    php 如何获取图片后缀和可变函数的使用实战
  • 原文地址:https://www.cnblogs.com/suola/p/11344384.html
Copyright © 2011-2022 走看看