SQL基础教程

时间:2023-03-08 21:48:45
SQL基础教程

SQL基础教程

第一范式:

列仅包含原子值;

没有重复的组。

第二范式:

满足第一范式;

非部分函数依赖。(如果组合键中任何一列值改变,将导致非键列的值需要被更新)

那么,主键是一列(不是组合的)满足第二范式;所有列是主键一部分也满足第二范式。

第三范式:

满足第二范式;

没有传递依赖。(如果一个非键列的值确定了另一个非键列的值,则表包含传递依赖)

函数EXTRACT(field FROM datetime_or_interval)将日期或时间间隔隔离为单一字段,并以数字形式返回,例如:

select title_id from titles

where EXTRACT(YRER from pubdate)

between 2001 and 2002;

COALESCE (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。

如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。

作用

返回表达式中第一个非空表达式,如有以下语句:
SELECT COALESCE(NULL,NULL,3,4,5) FROM dual
其返回结果为:3
NULLIF ( expression1 expression2 )
如果两个表达式不相等,NULLIF 返回第一个 expression1 的值。
如果两个表达式相等,NULLIF 返回空值NULL。
聚合函数
min、max、sum、avg、count等。
除了 COUNT 以外,聚合函数都会忽略空值。 聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用。
没有聚合函数的查询一行接一行处理,聚合查询将表作为整体,并从中构造新行。
聚合表达式不能出现在where子句里;
不能在select子句混合使用聚合和非聚合表达式(但对于分组列可以,即有group by);
不可以嵌套聚合表达式;
不可以在聚合表达式中使用子查询。
使用having筛选分组

交叉联结cross join 

mxn。笛卡尔积或者交叉积

自然联结 natural join

同名的列;只有等值,不能有ON或USING条件。

内联结 inner join

同名列,可以用ON条件选择;内联结删除在另一表中没有匹配的行。

外联结 outer join

左表和右表;至少返回一个表的所有行;

left/right/full [outer] join

自联结