zoukankan      html  css  js  c++  java
  • sql连接查询和分组查询

    分组查询

    分组查询语句:

    SELECT …… FROM <表名> WHERE …… GROUP BY ……

    eg:

    SELECT COUNT(*) AS 人数, SGrade AS 年级 FROM Students GROUP BY SGrade

    多列分组:

    SELECT COUNT(*)........FROM 表名  COUNT BY 列名 ORDER BY   想要按照排列的列名

    eg:

    SELECT COUNT(*) AS 人数,SGrade AS 年级,SSex AS 性别 FROM StudentS GROUP BY SGrade,SSex ORDER BY SGrade

    分组筛选语句:

    语法:

    SELECT …… FROM <表名> WHERE …… GROUP BY …… HAVING……

    eg:

    SELECT COUNT(*) AS 人数,SGrade AS 年级 FROM Students GROUP BY SGrade HAVING COUNT(*)>15

    WHERE与HAVING对比:

    WHERE子句 用来筛选 FROM 子句中指定的操作所产生的行 GROUP BY子句 用来分组 WHERE 子句的输出 HAVING子句 用来从分组的结果中筛选行

    内连接(INNER  JOIN)

    内连接使用比较运算符根据每个表的通用列中的值匹配两个表中的行

    内连接语句:

    SELECT …… FROM 表1 INNER JOIN 表2 ON ……

    等价于

    SELECT …… FROM 表1,表2 WHERE ……

    eg:

    SELECT Students.SName, Score.CourseID, Score.Score FROM Students,Score WHERE Students.SCode = Score.StudentID

    左连接:(LEFT   JOIN)

    eg:

    SELECT S.SName,C.CourseID,C.Score FROM Students AS S LEFT JOIN Score AS C ON C.StudentID = S.SCode

    右连接:(RIGHT  JOIN )

    eg:

    SELECT 图书编号,图书名称,出版社名称 FROM 图书表 RIGHT JOIN 出版社表 ON 图书表.出版社编号 = 出版社表.出版社编号

    内连接和外连接的区别:

    概念:

    内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。

    外连接:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。

    左外连接:左边表数据行全部保留,右边表保留符合连接条件的行。

    右外连接:右边表数据行全部保留,左边表保留符合连接条件的行。

    全外连接:左外连接 union 右外连接。

    区别:

    1.两者的分类不同:内连接分为相等连接和自然连接两种连接方式;而外连接分为左外连接、右外连接和全外连接三种连接方式(左外连接即LEFT OUTER JOIN;右外连接即RIGHT OUTER JOIN)。
    2.两者所连接的对象表不同:内连接进行连接的两个表是对应的相匹配的字段完全相同的。左外连接中进行连接的两个表会返回左边表中的所有的行...
    3.两者的作用范围不同:内连接的连接发生在一张基表内,而外连接的连接发生在两张表之间。
  • 相关阅读:
    DDOS工具介绍转载 规格严格
    MSB和LSB 规格严格
    Java 脚本 规格严格
    Derby配置总结(原创) 规格严格
    new ImageIcon(String filename)的路径问题 规格严格
    转载JNI(Windows) 规格严格
    C++ 0x新特性:详细讲解lambda表达式
    Linux信号量线程控制
    虚拟机VMware中安装 RedHateEL4(图解)
    2011年7月编程语言排行榜:COBOL五角大楼出品
  • 原文地址:https://www.cnblogs.com/zjx-959/p/12747807.html
Copyright © 2011-2022 走看看