数据处理--sql

目录

Select&from

Where

运算符

模糊查询like

order by

Limit

聚合函数&group by

Having

部分常见函数

窗口函数:

常见窗口函数

表连接

子查询


Select&from

知识点:

标准语法

select 字段名 (决定这一段查询最后显示的字段)

from  表名 (指定这段查询语句涉及的数据来源)

从word单表在select后指定查询的字段名称,多个字段名称之间用英文逗号(,)隔开

在select核心语句中,在字段后面加as别名,可以给字段名在最后显示前予别名,as可以省略,写成 字段名 别名。注意字段名和别名之间有空格,别名和下一字段名之间为逗号

select和(*)通配符联用返回查询的表中所有的列

在select核心语句中加distinct关键字,可以对最后显示的数据去重。在select distinct后加多个字段时,可以对重复的行数据去重

Where

标准语法:

select 字段名

from  表名

where 表达式 (限定查询行必须满足的条件)

where核心句子是可选项,使用该子句是为了通过表达式筛选出符合查询条件的数据

运算符

and 和 or 可以把两个或多个条件结合起来。若and连接的两个条件对于该数据都成立,就显示该数据,若or连接的两个条件对于该数据只要有一个成立,就显示该数据,否则就筛除该数据。

找寻字符段值等于某个值时使用等于号(=),如果值是文本,则文本需要’’包裹

in会筛选出字符值中所有与括号内数据相等的行

模糊查询like

语法:

select 字段名

from  表名

where 字段名like’通配符+字符’

跟在like后面进行数据过滤常用的通配符有%和_,%可以匹配多个字符,_只能匹配一个字符。

order by

语法

select 字段名

from  表名

where 表达式

order by 字段名asc|desc  (规定查询出的结果集显示的顺序,asc为升序,desc为降序,不写默认为升序)

Limit

语法

select 字段名

from  表名

where 表达式

order by 字段名asc|desc

[limit[位置偏移量,]行数]  (限制查询结果集显示的行数)

limit n返回查询结果的前n行

Limit x,n意味着从x+1行开始返回n行

聚合函数&group by

语法:

select 字段名

from  表名

where 表达式

group by字段名1,字段2

order by 字段名asc|desc

[limit[位置偏移量,]行数]

group by子句中有多字段时,依据写的字段的顺序进行分区。使用group by子句时,select只能使用聚合函数和group by引用过的字段,否则会报错

Having

语法:

select 字段名

from  表名

where 表达式

group by字段名1,字段2

having表达式

order by 字段名asc|desc

[limit[位置偏移量,]行数]

只有使用了group by子句后才会使用having子句,having子句是对group by分组的筛选

having子句中只能使用聚合函数和group by作为分组依据的字段

having和where的表达式基本相同,但having可以使用聚合函数,但where不行。

部分常见函数

Round(x,y)--四舍五入函数。对x四舍五入,保留到小数点后y位

Concat(s1,s2,,,)--连接字符串函数,任一参数为null时返回null

Replace(s,s1,s2)--替换函数,字符串s2替换s`中s1

Left(s,n),right(s,n),substring(s,n,len)--截取字符串一部分函数

left返回字符串s最左边n个字符串

Right返回字符串右边n个字符串

Substring函数返回字符串s从第n个字符串起取长度为len的子字符串,也可以为负数, 不写的话取从n个字符开始到最后一位

Cast(x as type)--类型转换函数,将x转换为一个类型的值

窗口函数:

标准语法:

窗口函数 over (partition by 用于分组的字段名 order by 用于排序的字段名)

讲解:

Over()中有两个子句为可选项,partition by指定分区依据,order by指定排序依据

常见窗口函数

知识点讲解:

窗口函数只能写在select 字句中。窗口函数中的partiton by可以指定数据的分区,和group by要去重分组不同,partition by只分区,不去重,当没有partition by时,整个表为一个分区。排序窗口函数中order by 是必选项,order by子句在分区内,依据指定的字段和排序方法对数据排序。

偏移分析函数语法

Lag(字段名,向上偏移量[,默认值])over (partition 字段名 order by 字段名 asc|desc)

lead(字段名,向下偏移量[,默认值])over (partition 字段名 order by 字段名 asc|desc)

表连接

语法

内连接

Select字段名

om 表格名1 inner join 表格名2 on 表格名1.字段名 = 表格名2.字段名

注意内连接inner可以省略,直接使用join默认为内连接

连接两个表留下同时相互匹配上的行)

左连接

Select字段名

om 表格名1 left join 表格名2 on 表格名1.字段名 = 表格名2.字段名

左边的表返回所有行,右边的表只留下匹配上的行得到新表

右连接

Select字段名

om 表格名1 right join 表格名2 on 表格名1.字段名 = 表格名2.字段名

右边的表返回所有行,左边的表只留下匹配上的行得到新表

子查询

知识点:

子查询本身就是一个完整的查询语句,然后用括号()包裹嵌套在主查询语句中,子查询可以多层嵌套

之前所涉及到的都是从数据库中检索数据的单条语句,但当我们想要检索的数据并不能直接从数据库表中获取,而是需要从筛选后的表格中再度去查询时,就要用到子查询

子查询的执行优先于主查询执行,因为主查询的条件用到了子查询的结果

子查询本身是一个完整的查询,由括号包裹嵌套在主查询中

子查询最后返回查询出的结果给主查询可以多重嵌套。

子查询可以在select,from,where,having子句中使用,但要注意不同子句能接受的子查询种类有差别

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓宜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值