1、UNION
UNION返回两个查询所得的所有行,但删除重复行,UNION ALL保留重复行,即求并集
UNION ALL的效率比UNION高,因为后者会自己排序。
select_statement1 UNION [ALL] select_statement2
2、INTERSECT
INTERSECT返回两个查询的结果中的相同行,即求交集
select_statement1 INTERSECT select_statement2
PS:Access,SQL Server 2000,MySQL不支持
3、EXCEPT
EXCEPT返回包含在第一个查询,但是不在第二个查询中的行,即求差
select_statement1 EXCEPT select_statament2
PS:Access,SQL Server 2000,MySQL不支持
4、CASE
CASE comparision_value
WHEN value1 THEN result1
WHEN value2 THEN result2
ELSE default_result
END
?
5、临时表
CREATE {LOCAL|GLOBAL} TEMPORARY TABLE table(...)
本地临时表仅当前用户可见,在DBMS进程结束后消失
全局临时表可以被所有用户访问,在DBMS进程结束后消失
PS:Access不支持临时表
SQL Server创建本地临时表 CREATE TABLE #table(...),创建全局临时表 CREATE TABLE ##table(...)
MySQL不区分本地和全局临时表,去掉关键字LOCAL或GLOBAL
?
6、序列
CREATE SEQUENCE seq_name
[INCREMENT [BY] increment]
[MINVALUE min|NO MINVALUE]
[MAXVALUE max|NO MAXVALUE]
[START [WITH] start]
[[NO] CYCLE]
increment指定间隔大小,正数创建递增序列,负数创建递减序列,默认为1
CYCLE表示在达到最大或最小值时继续产生值,对于递增,产生最小值,对于递减,产生最大值
NO CYCLE 表示在达到最大或最小值后,不再继续产生值
内置函数NEXT VALUE FOR
INSERT INTO table_name(part_name,desc,quantity) VALUES(NEXT VALUE FOR seq_name,"test",5)