乐天派地带
一位新手的家园
数据库查询语法:
SELECT [ ALL | DISTINCT ] [ TOP n [ PERCENT ] [ WITH TIES ] ]  
        <dest_column> [AS column_name AS column_alias ]
        [,<dest_column> [AS column_name AS column_alias ] ...
FROM table_name | view_name [table_alias]
[WHERE <condition_expression>]
[GROUP BY <column_name> [HAVING <condition_exp>]]
[ORDER BY <column_name> [ASC | DESC]];
说明:
ALL|DISTINCT: 指明查询结果集中表中重复的元组是否输出,ALL全部输出,DISTINCT去除重复的元组,保留其中一个元组。此默认为ALL。
GROUP BY 子句: 则指明按照列的值进行分组,该属性列值相等的元组为一个组。通常在每个组左右集函数。如果GROUP子句带HAVING短语,则只有满足指定条件的组才予输出。
ORDER BY 子句: 则结果表还要按指定列的值升序或降序。 
常用的查询条件:
查询条件
谓词
比较
=, >, <, >=, <=, !=, <>, !>, !<, NOT + 上述比较运算符
确定范围
BETWEEN...AND..., NOT BETWEEN...AND...
确定集合
IN, NOT IN
字符匹配
LIKE, NOT LIKE
空值
IS NULL, IS NOT NULL
多重条件
AND, OR
注: 谓词LIKE可以用来进行字符串的匹配,其一般格式:[NOT] LIKE '<匹配串>' [ESCAPE '<换码字符>'].其含义是查找指定的属性列值与<匹配串>相匹配的元组。通配符:%(任意长度字符,长度>=0)或_ (任意单个字符);ESCAPE:说明紧跟在换码字符后面的字符不在有通配符的属性,转义为普通的字符。
带有ANY或ALL谓词的子查询: 
谓词
描述
> ANY
大于子查询结果中的某个值
> ALL
大于子查询结果中的所有值
< ANY
小于子查询结果中的某个值
< ALL
小于子查询结果中的所有值
>= ANY
大于等于子查询结果中的某个值
>= ALL
大于等于子查询结果中的所有值
<= ANY
小于等于子查询结果中的某个值
<= ALL
小于等于子查询结果中的所有值
= ANY
等于子查询结果中的某个值
= ALL
等于子查询结果中的任何一个值
!= (<>) ANY
不等于子查询结果中的某个值
!= (<>) ALL
不等于子查询结果中的任何一个值
ANY,ALL谓词与集函数及IN谓词的等价转换关系:
 
=
<>或!=
<
<=
>
>=
ANY
IN
--
<MAX
<=MAX
>MIN
>=MIN
ALL
--
NOT IN
<MIN
<=MIN
>MAX
>=MAX
带有EXISTS谓词的子查询:
    带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值"TRUE"或逻辑假值"FALSE".
集合查询:
SELECT语句的查询结果是元组的集合,所以多个SELECT语句的结果可以进行集合操纵。集合操纵主要包括并操纵UNION、交操纵INTERSECT和差操纵MINUS。使用UNION将多个查询结果合并起来时,系统会自动去掉重复元组。注意,参加UNION操纵的各结果表的列数必须相同;对应项的数据类型也必须相同。
集合函数:
函数名称
描述
COUNT( [DISTINCT | ALL] *)
统计元组个数
COUNT( [DISTINCT | ALL] <column_name>)
统计一列中值的个数
SUM( [DISTINCT | ALL] <column_name>))
计算一列值的总和(此列必须是数值型)
AVG( [DISTINCT | ALL] <column_name>))
计算一列值的平均值
MAX( [DISTINCT | ALL] <column_name>))
求一列值中的最大值
MIN( [DISTINCT | ALL] <column_name>))
求一列值中的最小值
posted on 2008-03-31 20:00  I'm乐天派  阅读(307)  评论(0)    收藏  举报