SELECT [ALL | DISTINCT] column1[,column2]
FROM table1[,table2]
[WHERE "conditions"]
[GROUP BY "column-list"]
[HAVING "conditions]
[ORDER BY "column-list" [ASC | DESC] ] ;
注意:一定要在SQL语句末尾加上一个分号。这个分号提示SQL语句已经结束并准备被解释。
•SQL 语言大小写不敏感。
•SQL 可以写在一行或者多行
•关键字不能被缩写也不能分行
•各子句一般要分行写。
•使用缩进提高语句的可读性。
以下的表格给出了各种比较运算符号:
= 等于
> 大于
< 小于
>= 大于等于
<= 小于等于
<> 不等于
LIKE 字符串比较测验
举个例子:SELECT name, title, dept FROM employee WHERE title LIKE 'Pro%';
上面的语句是从employee表中选择title是以'Pro'为开头的name、title和dept列中的所有行或者数值。
ALL和DISTINCT也是SQL中的关键字,它们用于在你的查询结果中选择ALL(缺省)或者"
DISTINCT "或者单一记录。DISTINCT这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值.
比如我想用一条语句查询得到name不重复的所有数据,那就必须使用distinct去掉多余的重复记录。
select distinct name from table;
所有的合计函数:
MIN 返回一个给定列中最小的数值
MAX 返回一个给定列中最大的数值
SUM 返回一个给定列中所有数值的总和
AVG 返回一个给定列中所有数值的平均值
COUNT 返回一个给定列中所有数值的个数
COUNT(*) 返回一个表中的行数
合计函数用于从SELECT语句中计算一个”返回列的数据”。它们是总结了所选数据列的结果。
下面这条语句将返回employee表的行数,如下:
SELECT Count(*) FROM employees;
1.MIN(DISTINCT|ALL)
求最小值,ALL表示对所有的值求最小值,DISTINCT表示对不同的值求最小值,相同的只取一次
SQL> select min(all sal) from gao.table3;
2.MAX(DISTINCT|ALL)
求最大值,ALL表示对所有的值求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次
SQL> select max(distinct sal) from scott.emp;
3.SUM
功能描述:该函数计算组中表达式的累积和。
SQL> SELECT SUM (salary) FROM employees ;
4.AVG(DISTINCT|ALL)
all表示对所有的值求平均值,distinct只对不同的值求平均值
SQL> select avg(distinct sal) from gao.table3;
5.COUNT
功能描述:对一组内发生的事情进行累积计数,如果指定*或一些非空常数,count将对所有行计数,如果指定一个表达式,count 返回表达式非空赋值的计数,当有相同值出现时,相等的值都会被纳入被计算的值;可以使用DISTINCT来记录去掉一组中完全 相同的数据后出现的行数。
SQL> SELECT count(salary) FROM employees ;
group by 从英文里理解就是分组。必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段。sum()、count()、avg()等都是“聚合函数” 使用group by 的目的就是要将数据分类汇总
having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。having 子句被限制子已经在SELECT语句中定义的列和聚合表达式上。通常,你需要通过在HAVING子句中重复聚合函数表达式来引用聚合值
order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。