zoukankan      html  css  js  c++  java
  • SQL语句

    当一个查询语句中同时出现了 WHERE、GROUP BY、HAVING、ORDER BY的时候:
        1. 执行where... 对全表数据做筛选,返回结果集 ①。
        2. 对结果集 ② 进行分组,返回结果集 ③。
        3. 对结果集 ③ 执行 having... 筛选,返回结果集 ④。
        4. 对第结果集 ④ 排序。    


    HAVING 短语与WHERE 子句的区别:作用对象不同。
        1. WHERE 子句作用于基表或视图,从中选择满足条件的元祖。
        2. HAVING 短语作用于组,从中选择满足条件的组。
        3. WHERE在分组前进行过滤选择,HAVING在分组后进行过滤。
        4. HAVING 是対分组之后的组数据进行筛选,WHERE是対分组之前的每一行数据进行筛选。
        5. WHERE 后的条件表达式不允许使用聚合函数,而 HAVING 可以。


    等值连接 VS 自然连接:
        1. 自然连接一定是等值连接,但等值连接不一定是自然连接。
        2. 等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分量必须是公共属性。
        3. 等值连接不把重复的属性除去;而自然连接要把重复的属性除去。

    自身连接:一个表与其自身连接
        1. 需要给表起别名以示区别
        2. 由于所有属性名都是同名属性,因此必须使用别名前缀

    外连接 VS 普通连接:
        1. 普通连接操作只输出满足连接条件的元祖
        2. 外连接操作以指定表为连接主体,将主体表中不满足连接条件的元祖一并输出

    一个 SELECT-FROM-WHERE 语句称为一个查询块
    嵌套查询:将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询。
    子查询的限制:不能使用 ORDER BY 子句

    相关子查询 VS 不相关子查询
        1. 相关:子查询的查询条件依赖于父查询
        2. 不相关:子查询的查询条件不依赖于父查询

    EXISTS谓词:存在量词
        带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值或逻辑假值

    用EXISTS/NOT EXISTS 实现全称量词(难点)
        1. SQL语言中没有全称量词
        2. 可以把带有全称量词的谓词转换为等价的带有存在量词的谓词

    需要注意的问题 :
        1. GROUP BY必须放到WHERE语句之后,GROUP BY 与 ORDER BY 都是对筛选后的数据进行处理,而where 是用来筛选数据的。
        2. 当使用了group by 或者 聚合函数的时候,在select 查询列表中不能包含其他列名,除非该列同时也出现在了group 子句中,或者该列出现在某个聚合函数中。
        3. 当某列出现null值时,count ( * ) 仍然会计算,但是count ( 列名 ) 不会。



    难点

    插入元祖:
        INTO子句:属性列的顺序可与表定义中的顺序不一致。
        VALUES子句:提供的值(个数、类型)必须与INTO子句匹配。

    视图的特点:
        1. 虚表,是从一个或几个基本表(或视图)导出的表
        2. 只存放视图的定义,不存放视图对应的数据
        3. 基表中的数据发生变化,从视图中查询出的数据也随之变化
    (DBMS执行CREATE VIEW时只是把视图定义存入数据字典,并不执行其中的SELECT语句)
  • 相关阅读:
    mysql设置不区分大小写
    java.lang.StackOverflowError: null
    与或非
    mysql自动备份
    Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 不支持“variant”数据类型。
    MySQL主从复制 + Mycat实现读写分离
    Swing做的非阻塞式仿飞秋聊天程序
    Hudson + SVN + Maven 持续集成实现自动化编译、打包、部署(over SSH 和 Deploy war/ear to a container 两种部署方式)
    CMake安装(源码方式)
    多线程使用实例
  • 原文地址:https://www.cnblogs.com/snailzh/p/12627666.html
Copyright © 2011-2022 走看看