SQL总结(六)
组合查询
SQL允许执行多个查询(多条SELECT语句),并将结果作为一个查询结果输出。组合查询通常称为并(union)或复合查询。
有两种情况需要使用组合查询:
1、在一个查询中从不同的表返回结构数据
2、对一个表执行多个查询,按一个查询返回数据。
例子:
SELECT cust_name,cust_contact,cust_email FROM Customers WHERE cust_state IN ('IL','IN','MI') UNION SELECT cust_name,cust_contact,cust_email FROM Customers WHERE cust_name='Fun4All';
其实这一条语句就是用UNION将两条SELECT语句连接在一起,作为一个查询结果输出。
UNION规则:
UNION必须由两条或以上的SELECT语句组成;
UNION的每个查询中必须包含相同的列、表达式或聚集函数,即SELECT后面跟的要输出的内容必须相同;
列数据类型必须兼容。
注意:使用UNION时,重复的行会被自动取消,即两条SELECT输出的内容假设有相同的行,那么只会输出一行该内容。如果想返回所有的匹配行,可以使用UNION ALL。
另外,在排序时,只能使用一条ORDER BY子句,且位于最后一条SELECT语句后面。
插入数据
数据插入
INSERT语句,插入包括:插入完整的行,插入行的一部分,插入某些查询的结果。
插入完整的行:
INSERT INTO Customers VALUES('','','');括号内是插入的内容。
更安全的插入方法是:
INSERT INTO Customers(A,B,C,D) VALUES('','','','');前一个括号是列名,后一个括号内是对应的插入的值。
另外ABCD的顺序不用严格遵守Customers内的列的顺序。
插入行的一部分:
INSERT INTO Customers(A,C,D) VALUES('','','');表示只是插入了ACD三个值,B这个空着不插入。
注意:
省略的值必须满足以下某个条件,该列定义为允许NULL值(无值或者空值);或者在表的定义中给出了默认值。
插入检索出的数据:
INSERT INTO Customers(A,B,C,D) SELECT A,B,C,D FROM Cust_new;