热门关键字:  ubuntu  分区  Fedora  linux系统进程  函数

SELECT查询大全

来源: 作者: 时间:2007-11-07 Tag: 点击:
 SELECT查询大全
(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)
匹配模式必须封闭在引号中,通配符有如下两个:


相关文章:
SQLite3 C/C++ 开发接口简介(API函数) 二
SQLite3 使用教学
Scaling out MySQL - Hardware today and tomorro
SQLite适用的范围
sybase cursor declare
SQL语句大全精要
用户配额
decode函数
Oracle 数据库创建表空间、创建用户指定表空间
MySQL教会我使用GnuPG验证软件包
MySQL中MyISAM引擎与InnoDB引擎性能简单测试
initdb
mysqladmin在线帮助文档
CentOS 4.7 安装Oracle 9.2.0.4的一些问题
文本如何导入oracle(sqlldr 的用法)
ORA-00600: 内部错误代码,自变量: [16201], [],
分布式Oracle的database link
install a MySQL source distribution
Mysql备份脚本(未验证)
oracle 9.2.0.1 update 9.2.0.5
每小时Dump所有mysql数据库到NAS存储设备上
Oracle SCN机制解析
Account LOCKED(TIMED)
MySQL数据库5.0的my.cnf配置选项
oracle存储过程中调用其他用户的表
修改sqlplus提示符
MYSQL建表实例
一些对Mysql DBA有用的脚本
Oracle DBA 强悍挑战OS 64位 Solaris 10-真正休
[Bugzilla]由Mysql迁移到Oracle的方法