视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Select语句,join,union用法
2020-11-09 10:01:04 责编:小采
文档


一、基本的SELECT语句

1. “*”的注意事项:在SELECT语句中,用*来选取所有的列,这是一个应该抵制的习惯。

虽然节省了输入列名的时间,但是也意味着获得的数据比真正需要的数据多的多。相应的,也会降低应用程序的性能及网络性能。

良好的规则是只选所需。


2. join子句

jion是用来定义如何从多个表中选取数据并组合成一个结果集。

jion必需是因为(1)我们所要获取的所有信息并不都在一个表中,或者(2)所要返回的信息都在一个表中,但是其上设置的条件信息却在另一个表中。

jion的共同点是通过记录的连接列,把一条记录同一条或者多条其他记录进行匹配,从而产生出是这些记录的超级的记录。

2.1 INNER JOIN

INNER JOIN只返回进行联接的字段上匹配的记录。INNER JOIN是在做排除。

自引用是为了某种原因把一个表联接回它自身。

INNER JOIN是默认的联接方式。

2.2 OUTER JOIN

OUTER JOIN有左右联接之分,而INNER JOIN没有左右联接之分。

RIGHT(LEFT) OUTER JOIN是既想要包含右侧表中的所有行,以及左侧表中有匹配记录的行。

2.3 FULL JOIN

FULL JOIN联接,就是要包含位于联接两侧的表中所有的行。

2.4 CROSS JOIN

CROSS JOIN没有ON联接符,并且将join一侧表中的每一条记录与另一侧的表中所有的记录联接起来。即联接表中的笛卡尔积。

CROSS JOIN可用于提供样本数据和科学数据


3. WHERE子句

一些常用且不太熟悉的操作符:

BETWEEN: <列> BETWEEN num1 AND num2

LIKE: LIKE "ANY%" %代表0个或者多个任意字符。_代表单个任意字符。[]表示括号中包含的任意单个字符。^排除下一个。

EXISTS: EXISTS 查询语句。


4. ORDER BY

你知道吗?查询的返回结果通常是以字母或者数字顺序方式给出,这是偶然的。

以何种方式给出,在没有指定的情况下,通常取决于SQLServer认为哪一种汇集数据的方式开销最小。因此,返回的结果通常是基于表中数据的物理顺序或者SQLServer用来找寻数据所使用的某个索引。

默认降序DESC,升序是ASC

ORDER BY 子句可以基于查询中使用的任何表中的任何字段来进行排序,无论该列是否包含在SELECT列表中。


5. 使用GROUP BY 子句聚集数据

一旦在查询语句中使用了GROUP BY,SELECT列表中的每一列要么包含在GROUP BY列表中,要不包含在聚集中。

当聚集不与GROUP BY一起使用时,聚集只能与其他聚集一起位于SELECT列表中,而不能与列名搭配出现在SELECT列表中。

除了COUNT(*) 之外,任何聚集函数都会忽略NULL值。


6. HAVING子句

仅当查询语句中有GROUP BY子句时使用HAVING子句。

WHERE子句应用到形成组的每一行上,HAVING子句应用到组的聚集上。

7. DISTINCT子句

DISTINCT消除重复数据。如果值是相同的,则该值出现一次。

DISTINCT出现在列表的开始处,或者出现在COUNT中。

二、基本的INSERT语句

1. 基本结构

INSERT [INTO] table_name [table_column_list] VALUES (data_value_list)

INTO是可以省略的。

table_column_list建议都显式给出,一是增强可读性,二是以后即使是表的结构发生改变,也不会有所影响。

2. INSERT INTO ... SELECT语句

批量插入数据。

INSERT [INTO] <表名> [<列表名>]