1、where 1=1语句作用
只是为了满足多条件查询页面中不确定的各种因素而采用的一种构造一条正确能运行的动态SQL语句的一种方法。
(而where 1=0; 这个条件始终为false,结果不会返回任何数据,只有表结构,可用于快速建表。)
2、含有NULL时的真值
含有NULL时,这时真值是除真假之外的第三种值——不确实(UNKNOWN)。【一般逻辑运算不存在这第三种值。】此成为三值逻辑。因此某些列需要设定NOT NULL约束。
3、聚合函数
聚合,就是将多行汇总成一行。实际上,所有的聚合函数一样,输入多行输出一行。
5个常用的函数:
COUNT:计算表中的记录数(行数)。
SUM: 计算表中数值列的数据合计值。
AVG: 计算表中数值列的数据平均值。
MAX: 求出表中任意列中数据的最大值。
MIN: 求出表中任意列中数据的最小值。
(1)COUNT函数
SELECT COUNT(*)
FROM Shohin;
【COUNT()的星号,代表全部列的意思。COUNT函数的输入值就记述在其后的括号中。此处的输入值称为参数或者parameter,输出值称为返回值。】
列中存在NULL时:COUNT函数的结果会根据参数的不同而不同。COUNT(*)会得到包含NULL的数据行数,
而COUNT(<列名>)会得到NULL之外的数据行数。
【该特性是COUNT 函数所特有,其他函数并不能将星号作为参数,如果使用星号会出错!】
(2)SUM函数
SELECT SUM(<列名>), SUM(<列名>)
FROM <表名>;
执行结果分开得两个值。
【所有的聚合函数,如果以列名为参数,那么在计算之前就已经把NULL排除在外了,因此无论有多少个NULL都会被无视。这与“等价为0”并不相同。】
(3)AVG函数
SELECT AVG(<列名>), AVG(<列名>)
FROM <表名>;
AVG函数情况与SUM函数相同,会事先删除NULL再进行计算,但是此时分母会相应变化。
(4)MAX函数与MIN函数
SELECT MAX(<列名>), MIN(<列名>)
FROM <表名>;
MAX/MIN函数几乎适用于所有数据类型的列(包括日期与字符串类型的数据)。SUM/AVG函数只适用于数值类型的列