0
点赞
收藏
分享

微信扫一扫

SQL学习:十一

如何利用UNION操作符将多条SELECT语句组合成 一个结果集。
多数SQL查询只包含从一个或多个表中返回数据的单挑SELECT语句。但是,SQL也允许执行多个查询,并将结果作为一个查询结果集返回。这些组合查询通常成为并(union)或复合查询(compound query)。

1.UNION规则

①UNION必须由两条或两条以上的SELECT语句组成、语句之间用关键字UNION分隔;
②UNION中的每个查询必须包含相同的列、表达式或聚集函数;
③列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含转换的类型。
④UNION在第一个名字和第二个名字中只返回第一个的名字
⑤UNION从查询结果集中自动去除了重复的行
⑥如果想返回所有的匹配行可使用UNION ALL而不是UNION。

```sql server
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'

SELECT cust_name,cust_contact,cust_email FROM Customers WHERE cust_state IN('Il','IN','MI')
UNION ALL
SELECT cust_name,cust_contact,cust_email FROM Customers WHERE cust_name='Fun4All'


## 2.插入数据
>利用SQL的INSERT语句将数据插入表中
INSERT用来将行插入或添加到数据库表。插入的方式有几种:
插入完整的行;
插入行的一部分;
插入某些查询的结果。

>使用INSERT INTO将信息插入到表中,如果列中没有值则应该使用NULL值(假定表允许对该列指定空值)
``` sql server
INSERT INTO Customers (cust_id,
                        cust_name,
                        cust_address,
                        cust_city,
                        cust_state,
                        cust_zip,
                        cust_country,
                        cust_contact,
                        cust_email)
VALUES(1000000006,
        'Toy Land',
        '123 Any Street',
        'New York',
        'NY',
        '11111',
        'MD USA',
        'NULL',
        'NULL');

插入部分列:省略的列必须满足以下某个条件:
该列定义未允许NULL值(无值或空值);
在表定义中给出默认值。这表示如果不给出值,将使用默认值;
如果表中不允许有NULL值或者默认值,这时候省略了表中的值,DBMS就会产生错误消息,相应的行不能成功插入。

INSET SELECT语句:将检索语句插入表中
```sql server
INSERT INTO Customers (cust_id,cust_name)
SELECT cust_id,cust_name FROM custNew;


在这里,DBMS不要求INSERT和SELECT列明匹配,它使用的是列的位置,因此SELECT中的第一列(不管其列名)将用来填充表列中指定的第一列。
举报

相关推荐

0 条评论