一. 选择列表
可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等
1.选择所有列
例如:select * from testtable
2.选择部分列并指定他们的显示次序
查询结果集中数据的排列顺序与选择列表中所指定的列名排列顺序相同
3.更改列标题
在选择列表中可以重新指定列标题,如果指定的列标题不是标准的标示符格式,应使用引号定界符
例如,下列语句使用汉字显示列标题:
select 昵称=nickname, 电子邮件=email from testtable
4.删除重复行
select语句中使用all或distinct选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为all
使用distinct选项时,对于所有重复的数据行在 select返回的结果集中只保留一行。
5.限制返回的行数
SQL Server系列的数据库,使用top n [percent]来限制返回的行数
top n 说明返回n行
top n percent 说明n是百分数,指定返回的行数等于总行数的百分之几
Oracle数据库,使用rownum <= n 来限制返回的行数
select * from cm_emsversion where rownum <= 3;
二.From子句
from子句用来指定select语句查询以及与查询有关的表或视图
from子句中最多可以指定256个表或视图,它们之间用逗号分隔
from子句同时指定多个表或视图时,如果选择列表中存在同名列,应该用对象名来限定这些列所属的表或视图
三.Where子句
(1)比较运算符 >, >=, <, <=, =, <>, !>, !<
(2)范围运算符 between...and..., not between...and...
(3)列表运算符 in (项1, 项2, ...) , not in (项1, 项2,...)
(4)模式匹配符 like, not like
(5)空值运算符 is null, is not null
(6)逻辑运算符 not, and, or
例1.范围运算符
age between 10 and 30 相当于 age >= 10 and age <= 30
例2.列表运算符
country in('Germany', 'China')
例3.模式匹配符
判断列值是否与指定的字符串格式相匹配
用于char, varchar, text, ntext, datetime 和 smalldatetime等类型查询
通配字符:
百分号% 可匹配任意类型、任意长度的字符,如果是中文,要使用两个百分号%%
下划线_ 匹配任意单个字符, 常用来限制表达式的字符长度
方括号[] 指定一个字符,字符串或者范围, 要求所匹配的对象为它们中的任一个
[^] 要求所匹配的对象为指定字符外的任一个
四.查询结果排序
使用order by子句对查询返回的结果按一列或多列排序
order by {column_name [asc|desc]} [, ... n]
其中,asc 为升序(默认值), desc为降序
注:order by 不能按ntext, text 和 image数据类型进行排序