资源描述:
《sqlselect语句详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、sqlselect语句详解SELECT[ALL
2、DISTINCT[ON(expression[,...])]]*
3、expression[ASoutput_name][,...][FROMfrom_item[,...]][WHEREcondition][GROUPBYexpression[,...]][HAVINGcondition[,...]][{UNION
4、INTERSECT
5、EXCEPT}[ALL]select][ORDERBYexpression[ASC
6、DESC
7、USINGoperator][,
8、...]][FORUPDATE[OFtablename[,...]]][LIMIT{count
9、ALL}][OFFSETstart]这里from_item可以是:[ONLY]table_name[*][[AS]alias[(column_alias_list)]]
10、(select)[AS]alias[(column_alias_list)]
11、from_item[NATURAL]join_typefrom_item[ONjoin_condition
12、USING(join_column_list)]输入ex
13、pression表的列/字段名或一个表达式.output_name使用AS子句为一个列/字段或一个表达式声明另一个名称.这个名称主要用于标记输出列用于显示。它可以在ORDERBY和GROUPBY子句里代表列/字段的值.但是output_name不能用于WHERE或HAVING子句;用表达式代替.from_item一个表引用,子查询,或者JOIN子句.详见下文.condition一个布尔表达式,给出真或假的结果.参见下面描述的WHERE和HAVING子句.select一个选择语句,可以有除ORDERBY,
14、FORUPDATE,和LIMIT子句以外的所有特性(甚至在加了括弧的情况下那些语句也可以用).FROM项可以包括:15table_name一个现存的表或视图的名字.如果声明了ONLY,则只扫描该表.如果没有声明ONLY,该表和所有其派生表(如果有的话)都被扫描.可以在表名后面跟一个*来表示扫所有其后代表,但在目前的版本里,这是缺省特性.(在PostgreSQL7.1以前的版本里,ONLY是缺省特性.)alias用于于前面的table_name.的替换名字,用于缩写或消除一个表自连接时的含混.(此时同一个
15、表要扫描好几次.)如果写了别名,那么你也可以写一个字段别名列表,为表的一个或者几个字段提供替换名字.select一个在FORM子句里出现的子查询.它的输出作用好象是为这条SELECT命令在其生存期里创建一个临时表.请注意这个子查询必须用园括弧包围.并且必须给它加别名.join_type[INNER]JOIN,LEFT[OUTER]JOIN,RIGHT[OUTER]JOIN,FULL[OUTER]JOIN,或CROSSJOIN.之一.就INNER和OUTER连接类型,必须出现NATURALONjoin_c
16、ondition,或USING(join_column_list)之一.对于CROSSJOIN,上面的项都不能出现.join_condition一个条件限制.类似WHERE条件,只不过它只应用于在这条JOIN子句里连接的两个from_item.join_column_list一个USING字段列表(a,b,...)是ON条件left_table.a=right_table.aANDleft_table.b=right_table.b...的缩写.输出Rows你声明的查询返回的所有结果集的行.count查
17、询返回的行的计数.描述SELECT将从一个或更多表中返回记录行。选择的侯选行是满足WHERE条件的所有行。或者如果省略了WHERE语句则选择表中的所有行.(参阅WHERE子句).实际上,返回的行并不是由FROM/WHERE/GROUPBY/HAVING子句直接生成的行;其实,输出行是通过给每个选出的行计算SELECT输出表达式形成的.你可以在输出列表上写一个*表示选出的行的所有列.同样我们可以拿table_name.*表示来自该表的所以行.DISTINCT将从选择出来的结果集中删除所有的重复的行。ALL
18、(缺省)将返回所有侯选行,包括重复的行。15DISTINCTON删除匹配所有你声明的表达式的行,只保留每个重复集的第一行。DISTINCTON表达式是用和ORDERBY项一样的规则来解释的,见下文.注意这里每个重复集的"第一行"是不可预料的,除非我们用ORDERBY来保证我们希望的行最先出现。例如,SELECTDISTINCTON(location)location,time,reportFROMweatherReportsORDERBYl