(1).Select语法
SELECT [ALL|DISTINCT] select_list
FROM table/view_list
[WHERE search_conditions]
[GROUP BY group_by_list]
[HAVING search_conditions]
[ORDER BY order_by_list]
(2).Select子句
组成
选择所有的列:SELECT *;
按任意顺序使用一个或多个列名,之间用逗号分隔;
可以使用一个或多个字符常量;
可以使用一个或多个SQL函数和算术运算符。
别名
可为列指定显示标记(别名)。如:
select pub_name Publisher, pub_id…;
select pub_name as Publisher, pub_id…;
删除重复行
ALL返回所有限定的行,其用法是默认的;
DISTINCT只返回唯一的行。
格式要求:
在SELECT列表只能使用一次;
在SELECT列表中为首词;
不能再其后添加逗号。
虽然空值被定义为未知且相互不等,但在一个特殊的列中DISTINCT将每一个NULL作为该列中其他空值的复制来对待。
聚集函数
函数 说明
SUM([DISTINCT] expression) 数值表达式中(特殊值)的总和
AVG([DISTINCT] expression) 数值表达式中(特殊值)的平均值
COUNT([DISTINCT] expression) 表达式中非空值(特殊)的个数
COUNT(*) 被选择行的个数
MAX(expression) 表达式的最大者
MIN(expression) 表达式的最小者
注意COUNT和COUNT(*)的区别:
COUNT忽略空值;
COUNT(*)计算所有的行,无论是否有一个特殊的列含有空值。
(3).From子句
可以为表指定别名。如:
select p.pub_id, p.pub_name from publisher p
(4).Where子句
比较运算符
= 等于
> 大于
< 小于
>= 大于等于
<= 小于等于
<> 不等于
组合或逻辑非条件
AND 与
OR 或
NOT 非
优先级:先NOT,然后AND,最后OR。
限制范围
BETWEEN… AND …
NOT BETWEEN … AND …
列表(IN、NOT IN)
select au_lname, state
from authors
where state in ('CA', 'IN', 'MD');
未知值(IS NULL、IS NOT NULL)
select title_id, advance
from titles
where advance is null;
字符匹配(LIKE和NOT LIKE)
匹配模式必须封闭在引号中,通配符有如下两个:
