一、SELECT子名
SELECT select_list //指定由查询返回的列
[ INTO new_table ] //创建新表并将结果行从查询插入新表中
FROM table_source //指定从其中检索行的表或视图
[ WHERE search_condition ] //指定限制返回行的搜索条件
[ GROUP BY group_by_expression ] //指定查询结果的分组条件
[ HAVING search_condition ] //指定组或聚合的搜索条件
[ ORDER BY order_exception [ ASC | DESC ]] //指定结果集的排序
1、选择所有列
SELECT * FROM table_source
2、选择部分列
SELECT fieldname1 [ , fieldname2 , ...] FROM table_source
3、使用列别名
SELECT fieldname1 AS alias [ , fieldname2 AS alias , ... ] FROM table_source
4、WHERE子句用到的条件运算符
比较运算符: > , < , >= , <= , !> , !< , = , <> , !=
范围运算符:BETWEEN... AND , NOT BETWEEN ... AND
列表运算符:IN , NOT IN
模糊运算符:LIKE , NOT LIKE
逻辑运算符:AND , OR , NOT
空值判断符:IS NULL , IS NOT NULL
5、模糊查询
SELECT语句提供了LIKE 和 NOT LIKE 进行模式匹配,即实现模糊查询
% : 由零个或更多字符组成的任意字符串
SELECT * FROM tb_book WHERE bookname LIKE 'JSP%'
_ : 任意单个字符
SELECT * FROM tb-book WHERE bookname LIKE '_SP'
[ ] : 指定一个字符、字符串或范围,要求所匹配的对象为它们中的一个
SELECT * FROM tb_book WHERE bookname LIKE '[ A , J]SP'
[^ ]: 指定一个字符、字符串或范围,要求所匹配的对象为指定范围之外的字符
SELECT * FROM tb_book WHERE bookname LIKE '[^A]SP'
6、遇到查询出指定列为空值的记录,并将该列用特定的值替换
SELECT id, name, bankname, isNull(bankno, '暂无') from tb_customer where bankno is null
7、去除查询结果中的重复记录
SELECT DISTINCT fieldname1 [ , fieldname2 , ....] FROM table_source [WHERE search_condition]
DISTINCT :返回惟一的行
ALL : 返回所有限定的行,为默认值,一般不会用它
8、限制结果集返回的行数
在SQL Server中使用TOP关键字
SELECT TOP n [ PERCENT ] fieldname1 [ , fieldname2 , ...] FROM table_source [ WHERE search_condition]
// n表示返回的行数,如指定PERCENT,则n必须是整数,表示返回的记录数;若指定PERCENT,则n可以是小
数,取值为0 ~ 100,表示结果集的百分比返回记录数
在MySQL中使用LIMIT关键字
SELECT fieldlist //字段名
FROM table_source //从其中获取数据的表的名称
[ WHERE selectcriteria ] //查询条件
[ LIMIT [ offset , ] rows ] //offset:要返回的第一行的偏移量,初始行的偏移量是0,rows:返回行的最大数
9、聚合函数
count():用于统计结果集中全部记录行的数量,最多为人147483647
SELECT COUNT([ ALL | DISTINCE ] expression ) / COUNT(*) FROM table_source
sum():对某一列的数值进行求和
SELECT SUM ([ ALL | DISTINCT ] expression ) FROM table_source [ WHERE search_condition ]
// ALL:默认值,对全部数据进行计算
// DISTINCT:可选值, 表示对去除重复记录后的数据进行计算
// expression:进行求和的列或是列名组成的表达式
avg() :对某一列的数值进行求平均数
SELECT AVG( [ ALL | DISTINCT ] expression ) FROM table_source [ WHERE search_condition ]
min() : 找出某一列元素的最小值
SELECT MIN( expression ) / MAX( expression ) FROM table_source [ WHERE search_condition ]
max() : 找出某一列元素的最大值