一、集合的并、交、差
(select 查询语句1) UNION 【ALL】 (select 查询语句2)
(select 查询语句1) INTERSECT 【ALL】 (select 查询语句2)
(select 查询语句1) EXCEPT 【ALL】 (select 查询语句2)
上述操作中不带关键字ALL时,返回结果消除了重复元组,而带ALL时,返回结果中为消除重复元组
二、字符串的匹配操作
条件表达式中字符串匹配操作符是“LIKE”。在表达式中可使用两个通配符:
百分号(%):与零个或多个字符组成的字符串匹配
下划线(_):与单个字符匹配
为了使字符串中暴汗特殊字符(即%和_),SQL允许定义转义字符。转义字符紧靠特殊字符并放在它面前,表示该特殊字符将被当成普通字符。在LIKE比较重使用 ESCAPE关键字来定义转义符。如果使用反斜线(\)作为转义符,那么:
LIKE ‘ab\%cd%’ ESCAPE '\' 匹配所有以“ab%cd”开头的字符串
LIKE 'ab\\cd%' ESCAPE '\' 匹配所有以“ab\cd”开头的字符串
三、集合成员的算术比较
形式如下:
SELECT * FROM S WHERE id = SOME<ALL><ANY>(SELECT SCORE FROM SC WHERE id='123');
ALL操作表示左边那个元组与左边集合中的每一个元组满足“=”运算
SOME操作表示左边那个元组与右边集合中至少一个元组满足“=”运算
ANY与SOME同义
四、WITH子句和临时视图
SQL3允许用户用WITH子句定义一个临时视图(即子查询),置于SELECT语句的开始处。例:
with
cte1 as
(
select * from table1 where name like 'abc%'
),
cte2 as
(
select * from table2 where id > 20
),
cte3 as
(
select * from table3 where price < 100
)
select a.* from cte1 a, cte2 b, cte3 c where a.id = b.id and a.id = c.id
五、INSERT
(1)单元组的插入
INSERT INTO <TABLENAME> [(<列名序列>)] VALUES(<元组值>)
(2)多元组的插入
INSERT INTO <TABLENAME> [(<列名序列>)] VALUES(<元组值>),(<元组值>),(<元组值>),...,(<元组值>)
(3)查询结果的插入
INSERT INTO <TABLENAME> [(<列名序列>)] <SELECT 查询语句>
(4)表的插入
INSERT INTO <TABLENAME> [(<列名序列>)] TABLE <基本表名2>