Lihb +

sql学习

记录下常用的、重要的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
点击查看评论

Blog

Knowledge

Project