SQL 入门版学习

前言:

本篇文章几乎是sql查询相关,不涉及delete、update等操作。

本人非计算机专业背景,如果有表述不恰当的,欢迎指正,一切都以能快速使用,简单了解为主。

一、基本概念

语句中函数不区分大小写;

所有的输入要英文状态下;

“#”表示注释

mac电脑推荐使用软件:Sequel pro

二、常用函数

1、通用结构


select  (变量)

from    (数据表)

where  (条件1)and (条件2)

说明:

1)大概的逻辑就是 需要什么数据,从那个数据表里拿,满足什么条件的数据

2)where 中,同时满足条件用and,满足任意条件用or,使用or的时候注意使用大括号,以免重复选择

3)where 中的条件,eg:

where o.uid in (select A from B) ,括号里面的select只能有一个变量;

where o.uid in (33,44,55,66);

where o.uid not in (33,44,55,66);

where o.time>=‘2020-1-1’,只能用>=(大于等于),<=(小于等于),<>(不等于),!=(不等于)

4)select 后面可以直接计算变量,比如A+B

5)select * from A 选取所有变量

2、常见函数的混合使用

eg:


select o.uid,max(o.time) as otime,count(o.id),sum(o.money)

from   this_order o

group by o.uid

order by otime DESC

having otime>=‘2020-1-1'

说明:

1)max()求最大值,count()求个数,sum()求和,这一类函数的使用类似excel函数的使用;

2)给数据表命名,也可以使用 from this_order as o,给数据表命名方便变量的区分

3)group by 是统计维度,上述例子的意思是统计每个用户的最大下单时间、下单数、总的订单金额

4)order by 根据变量排序,DESC倒序,ASC升序

5)having 满足某一条件

6)order by 和having 都是在where 执行完之后对结果的一个整理

3、合并其他表格

eg:


select o.uid,u.mobile

from this_order o

join this_user u on o.uid=u.id

说明:

1)例句表达的意思是:选取this_order中下单的uid,并且从this_user表中找到对应的手机号

2)合并表格通用函数: join 数据表 on 数据表A.变量=数据表B.某变量

join前面的表是主表,后面的表是需要选取的部分

join 是选取数据表A、B都有的部分

left join 是全部保留数据表A的部分,数据B中有A的部分

right join 与left join 相反

2)表格变化:join (select S from B)as temp on temp.S=o.A

4、时间函数

eg:


select o.uid,DATE_FORMAT(o.time, '%Y-%m-%d’) as datet,
current_date() as 今天,sysdate() as 当前时间,
TIMESTAMPDIFF(DAY,start_time,end_time)

from   this_order o

说明:

1)时间格式变化:DATE_FORMAT(o.time, '%Y-%m-%d’) 意思是将时间转化为年月日

2)current_date() 意思是当前的年月日

3)sysdate() 意思是当前的年月日+时分秒

4)TIMESTAMPDIFF(DAY,start_time,end_time) 意思是计算start_time和end_time之间间隔多长时间,DAY表示用天表示,即两个时间中间隔了多少天,里面的时间变量可以改为特定的时间格式,方便计算

5、判断

eg:


select o.uid,

case when o.time>=‘2020-1-1 00:00:00’ then '今年有下单' when o.store_id=1 then '线下门店' else ‘其他' end as 类型

from   this_order o

where o.channel=2

说明:

1)上述例句的意思是提取this_order表中的uid,和一个新的变量类型,当满足store_id=1是线下门店,还有今年有下单,剩下的为其他

2)使用case when 条件1 then A else B end as C,注意区分条件间隔/区间

6、disitnct

eg:


select  distinct uid 
from   this_order o

提取表里非重复的uid


select  count(distinct uid)
from   this_order o

计算表里非重复的uid有多少个

三、总结

1、一定要清楚数据表的结构和逻辑,比如订单逻辑,一个用户一次购买是一条数据,很多里面的变量是另一些表的id值,需要相互连接,因为为了简化储存;

2、定义好条件,比如下单的gmv,那么选取的是未取消的订单;

3、根据实际情况,多操作多联系,多踩坑,利用已有的sql语句学习,根据这些改成自己需要的语句,这样学习并掌握的快一点;

4、如果是全表操作,比如group by这种,耗时可能会长一点,耐心一点;

好好学习,据说每一个运营/产品都得会SQL

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容