- 判断是否为NULL,需要使用IS NULL或者IS NOT NULL运算符
- 通常,聚合函数会对NULL以外的对象进行汇总。但是只有COUNT函数 例外,使用COUNT(*)可以查出包含NULL在内的全部数据的行数
- COUNT函数的结果根据参数的不同而不同。COUNT(*)会得到包含NULL的数据 行数,而COUNT(<列名>)会得到NULL之外的数据行数。
- MAX/MIN函数几乎适用于所有数据类型的列。SUM/AVG函数只适用于数值类型的列。
- 想要计算值的种类时,可以在COUNT函数的参数中使用DISTINCT
- 在聚合函数的参数中使用DISTINCT,可以删除重复数据。
- 聚合键中包含NULL时,在结果中会以“不确定”行(空行)的形式表现出来。
- 使用聚合函数和GROUP BY子句时需要注意的 4点。① 只能写在SELECT子句之中 ② GROUP BY子句中不能使用SELECT子句中列的别名 ③ GROUP BY子句的聚合结果是无序的 ④ WHERE子句中不能使用聚合函数
- 使用聚合函数时,SELECT 子句中只能存在三种 元素。 ①常数 ②聚合函数 ③GROUP BY子句中指定的列名(也就是聚合键)
- 使用GROUP BY子句时,SELECT子句中不能出现聚合键之外的列名。
- 在GROUP BY子句中不能使用SELECT子句中定义的别名。
- HAVING子句要写在GROUP BY子句之后。
- WHERE 子句 = 指定行所对应的条件 HAVING 子句 = 指定组所对应的条件
- 聚合键所对应的条件不应该书写在HAVING子句当中,而应该书写在WHERE子句 当中。
- 在ORDER BY子句中列名的后面使用关键字ASC可以进行升序排序,使 用DESC关键字可以进行降序排序。
- ORDER BY子句中可以使用SELECT子句中定义的列的别名。
- ORDER BY子句中可以使用SELECT子句中未出现的列或者聚合函数。
- 排序键中包含NULL时,会在开头或末尾进行汇总。
- 如果想将整个表全部删除,可以使用DROP TABLE语句,如果只想删除 表中全部数据,需使用DELETE语句。
- DELETE语句的删除对象并不是表或者列,而是记录(行)。
- 与 DELETE 不同的是,TRUNCATE 只能删除表中的全部数据,而不能通过 WHERE 子句指定条件来删除部分数据。也正是因为它不能具体地控制删除对象, 所以其处理速度比 DELETE 要快得多。
- 事务处理的终止指令包括COMMIT(提交处理)和ROLLBACK(取消处 理)两种。
- 原子性是指在事务结束时,其中所包含的更新处理要么全部执行,要 么完全不执行
- 一致性指的是事务中包含的处理要满足数据库提前设置的约束
- 隔离性指的是保证不同事务之间互不干扰的特性
- 持久性也可以称为耐久性,指的是在事务(不论是提交还是回滚)结 束后,DBMS 能够保证该时间点的数据状态会被保存的特性。
- 表中存储的是实际数据,而视图中保存的是从表中取出数据所使用的SELECT语句。
- 定义视图时不要使用ORDER BY子句。
SQL基础
原文:https://www.cnblogs.com/liu-luguang/p/14478717.html