sql学习
2015-03-02
记录下常用的、重要的sql语法。
测试数据
Store_Information表
store_name Sales Date
lOS ANGELES $1500 Jan-05-1999
SAN DIEGO $250 Jan-07-1999
LOS ANGELES $300 Jan-08-1999
BOSTAN $700 Jan-08-1999
1.DISTINCT
####语法:
select distinct "字段名"
from "表格名"
####例子 在表格Store_Information中,找出所以不同的店名时。
select distinct store_name from Store_Information;
显示结果如下:
store_name
LOS ANGELES
San DIEGO
BOSTAN
2. IN
语法
select "字段名"
from "表格名"
where "字段名" in ('值一','值二');
在括号内可以有一个或多个值,不同值之间用逗号分开,值可以是数字或文字。若括号中 只有一个值,那么这个子句就等于:where “字段名”=”值一”。
例子
在表格中查找所有与Los Angeles 或 San Diego的资料。
select *
from Store_Information
where store_name in ('LOS ANGELES', 'SAN DIEGO');
结果如下;
store_name Sales Date
lOS ANGELES $1500 Jan-05-1999
SAN DIEGO $250 Jan-07-1999
3.LIKE
####语法
SELECT "栏位名"
FROM "表格名"
WHERE "栏位名" LIKE {模式}
模式例子;
'A_Z':以A开头,以Z结尾,中间有且仅有一个任意字符。
'ABC%':所有以ABC开始的字符串。
'%XYZ':所有以XYZ结尾的字符串。
'%AN%':所有含有AN这个模式的字符串,如:LOS ANGELES 和 SAN DIEGO都符合这个模式。
例子
查找store_name中包含’AN’两个字符的所有资料。
SELECT *
FROM Store_Information
WHERE store_name LIKE '%AN%'
结果:
store_name Sales Date
LOS ANGELES $1500 Jan-05-1999
SAN FRANCISCO $300 Jan-08-1999
SAN DIEGO $250 Jan-07-1999
4.GROUP BY
当我们选不只一个字段,且其中至少一个字段有包含函数的运用时,我们就需要用到 GROUP BY 这个指令。在这个情况下,我们需要确定我们有 GROUP BY 所有其他的字段。 换句话说,除了有包括函数的字段外,我们都需要将其他字段放在 GROUP BY 的子句中。
语法:
SELECT "字段 1", SUM("字段 2")
FROM "表格名"
GROUP BY "字段 1"
例子
查找每间店铺(store_name)的营业额(Sales)。
SELECT store_name, SUM(Sales)
FROM Store_Information
GROUP BY store_name
结果:
store_name SUM(Sales)
Los Angeles $1800
San Diego $250
Boston $700
5.HAVING
在SQL中增加HAVING子句原因是,WHERE 关键字无法与函数一起使用。 HVAING指令可用于对函数产生的值来设定条件,HAVING 子句通常是在一个 SQL 句子的最后。 一个含有 HAVING 子句的 SQL 并不一定要包含GROUP BY 子句。
语法:
SELECT "字段 1", SUM("字段 2")
FROM "表格名"
GROUP BY "字段 1"
HAVING (函数条件)
例子:
查找出哪些店的营业额有超过 $1,500。
select store_name, sum(sales)
from Store_Information
group by store_name
having sum(sales)>1500;
结果:
store_name sum(sales)
Los Angeles $1800