SELECT语句是数据查询语言。
1)SELECT语句的基本结构:
SELECT [ ALL ▏DISTINCT] select_list
[ INTO [new_table_name] ]
FROM ﹛table_name | view_name﹜
[ [,﹛table_name2 | view_name2﹜
[ …, ﹛table_name16|
View_name16﹜]]
[WHERE search_conditions]
[GROUP BY group_by_list]
[HAVING search_conditons]
[ORDER BY order_list [ASC| DESC]]
2)子句
<1>SELECT子句指定需要通过查询返回的表的列
语法:SELECT [ALL |ISTINCT ]
[TOP n ]
<select_list>
注释:select_list表示需要检索的字段的列表。*表示返回数据表中的所有字段
ALL与DISTINCT的区别:ALL指明查询结果中可以显示相同的列;而DISTINCT 询结果中如果有相同的列,则显示其中一列。
TOP n [PERCENT]:指定返回结果的钱n行数据,如果PERCENT关键字的话,则返回查询结果的前百分之n行数据。
<2>INTO子句用于把查询结果存放到一个新建的表中。
语法:INTO new_table
注释:INTO子句不能与COMPUTE子句一起使用;new_table指新建表的名称
<3>FROM子句指定需要进行数据查询的表。
语法:FROM﹛<table_source>﹜[,…n]
注释:table_source 指明SLECT语句用到的表、视图等数据源。From子句还可以指定数据表或视图之间联接的类型。这些类型将决定于on 子句中指定的关联条件。
<4> WHERE子句 指定数据检索的条件,以限制返回的数据行。
范围说明:Between A and B 、 Not Between A and B
可选值列表:IN NOT IN
模式匹配:LIKE 、NOT LIKE
是否空值:IS NULL 、IS NOT NULL
上述条件的逻辑组合:AND 、OR、NOT
通配符:* 匹配任意字符串;?匹配任意一个字符;
%由0个或多字符组成的任意字符串;
— 任意单个字符;
[]指定的范围;
[ˆ]表示指定范围,例如[ˆa-f],表示a到f范围以外的任何单个字符
空值判断查询条件:null值表示字段的数据值未知或不可用,并不表示零、零长度的字符串或空白。
<5>GROUP BY 子句指定查询结果的分组条件
语法:GROUP BY [ALL] group_by_expression[,...n]
[WITH﹛CUBE|ROLLUP﹜]
<6>HAVING子句 指定分组搜索条件。
语法:HAVING<search-condition>
注释:Having子句通常与GrouPBy子句一起使用。 TEXT NTEXT IMAGE 数据类型不 用于 HAVING 子句。
HAVING<search-condition> 与where子句(表和视图)的作用对象不同having子句作用组
<7>ORDER BY子句 指定查询结果的排序方式
语法:Compute
﹛﹛AVG|COUNT|MAX|MIN|SUM﹜
(expression)﹜[,...]
[BY expression [,...n]]
<8> UNION子句:将两个或两个以上的查询结果合并为一个结果集。
语法:Select 语句
UNION[ALL]
Select语句
查询遵循原则:列数目和顺序在所有查询中必须是一致的,数据类型必须兼容