SQL(Structured Query Language,结构化查询语言)是一种专门用来与数据库沟通的编程语言。它的核心作用是存取、查询和管理 关系型数据库中的数据。通过简单的命令,比如 SELECT(查)、INSERT(增)、UPDATE(改)、DELETE(删),用户可以高效地获取或修改大量数据,是数据分析、后端开发和数据库管理中最基础也是最重要的工具之一。
前置 sql的语法顺序:
1 2 3 4 5 6 select 最后要展示的字段 from 源数据表名[where 满足的条件 ] [group by 要聚合的依据字段] [having 筛选条件] [order by 排序依据字段 asc | desc ] [limit [位置偏移量,]行数]
sql的运行数据:from–where–group by–having–order by–limit–select
基础语句 select&from 1 select 最后要展示的字段 from 要查询的表
别名语法
1 select 最后要展示的字段 as 别名 from 要查询的表 #as 可以省略用空格代替
数据去重
1 select distinct 最后要展示的字段 from 要查询的表 #as 可以省略用空格代替
where 1 2 select 最后要展示的字段 from 源数据表名[where 满足的条件 ]
模糊查询语法
1 select 最后要展示的字段 from 要查询的表 where like "通配符+字符" #(% 任意字符任意出现次数,_单个任意字符)
多条件查询
1 select 最后要展示的字段 from 要查询的表where 条件代码1 and | or 条件代码2
运算符
运算符
描述
=
等于
>
大于
<
小于
>=
大于等于
<=
小于等于
<>或!=
不等于
between…and…
在指定的两个值之间(包含这两个值)
in
条件范围筛选
not in
不在该条件范围
is null
为空值
is not null
不为空值
and
逻辑运算符:与
or
逻辑运算符:或
not
逻辑运算符:非(一般与其他连用)
order by 1 2 3 select 最后要展示的字段 from 源数据表名[where 满足的条件 ] [order by 排序依据字段 asc | desc ]
limit 1 2 3 4 select 最后要展示的字段 from 源数据表名[where 满足的条件 ] [order by 排序依据字段 asc | desc ] [limit [位置偏移量,]行数]
聚合函数&group by 聚合函数
函数
说明
AVG()
返回某列的均值
COUNT()
返回某列的行数
MAX()
返回某列的最大值
MIN()
返回某列的最小值
SUM()
返回某列的和
1 2 3 4 5 select 最后要展示的字段 from 源数据表名[where 满足的条件 ] [group by 要聚合的依据字段] [order by 排序依据字段 asc | desc ] [limit [位置偏移量,]行数]
group by字段名规定依据哪个字段分组聚合
group by核心子句是可选项,使用该子句是为了依据相同字段值分组后进行聚合运算,常和聚合函数联用
having 1 2 3 4 5 6 select 最后要展示的字段 from 源数据表名[where 满足的条件 ] [group by 要聚合的依据字段] [having 筛选条件] [order by 排序依据字段 asc | desc ] [limit [位置偏移量,]行数]
例题:查询总人口数至少为3亿的大洲和其平均gdp,其中只有gdp高于200亿且人口数大于6000万或者gdp低于80亿且首都中含有三个a的国家的计入计算,最后按国家数从大到小排序,只显示第一行
数据world:
name
continent
area
population
gdp
capital
Afghanistan
Asia
652230
25500100
20364000000
Kabul
Albania
Europe
28748
2821977
12044000000
Tirana
Algeria
Africa
2381741
38700000
207021000000
Algiers
Andorra
Europe
468
76098
3222000000
Andorra la Vella
Angola
Africa
1246700
19183590
116308000000
Luanda
。。。。。
答案:
1 2 3 4 5 6 7 select continent,avg (gdp) from world #展示聚合后筛选条件后 排序后 显示的表格where (gdp>= 20000000000 and population > 60000000 ) #聚合前筛选条件or (gdp<= 8000000000 and capital like "%a%a%a%")group by continent #聚合having sum (population)>= 300000000 #聚合后筛选条件order by count (name) desc limit 1