用sql取a与b的交集_SQL 课程中文笔记 Udacity

e87dd59ee02c68b9e6e5fa449b1f3bbb.png

*SQL for Data Analysis课程笔记,来源于Udacity.

*是我上课所记,顺便分享出来便于不方便看视频课程的小伙伴参考;其次如果有错误的部分,还望大家指正,谢谢。

基础课程笔记

通用内容:

1、运行查询快捷键:control+enter

2、sql的大小写不敏感,建议sql语句用大些,其他用小写,便于查看

3、sql对空格不敏感,通常用下划线,少数一定要有空格则加双引号:“table name”,或者其他软件用[table name]

4、分号:在结尾语句需要执行的时候用;其他不是最终执行语句不用标点

5、逗号:同句中用于间隔两个内容

课程笔记:

15课:limit(用于限制查询的行数,eg只想要前15行的查询结果)

用法:加在select语句后面

select occurred_at, account_id, channel from web_events

limit 15;

课程18:order by(用于自定义按某列顺序为主的排列结果)

Order by子句要放在from和limit中间,否则无法执行

排序默认为升序,+desc为降序

取最小值用升序,即无后缀

取最大值用降序,即加desc

Order by子句和excel中的升降序不同,sql中是一次性的,下次的操作不建立在本次排序之上

情形2:多列排序,order by后面的顺序

Order by后的内容有先后之分,是依次执行排序的

Order by 1,2:先执行1的升序排列,在此基础上执行2的升序排列

即:

Order by 1, 2 desc;(以1升序为先,在对2进行降序)

Order by 2 desc, 1;(先按2降序;当出选数值一样大的ab,依照第二个条件1列降序,a在b的前面)

45cff6bc94899304ec5efeb056753cb4.png

课程24:where

用于依照某列具体的标准筛选,可以回答更有意义的问题

常用的符号:>、 <、 >=、 <=、 =、 !=(不等于)

一般用where子句的时候就不用order by子句,除非我们真的想对data排序?

搜索的结果自动以最前列的数值进行升序排列,并非根据where所要求的列进行排序。

对于非数字的data,where子句中要在非数字的内容上加上单引号(经常会忘记)。

对于非数字的运算一般是=和!=,还有like, not, in(后面会讲)

课程30:派生列derived columns

基于原表的数据创建新的列,并对新列命名使用as

派生列是暂时的,下次再查询的时候将不存在

运算:+ — * /

哪里需要派生列,就如同其他列名称一样写在那个地方,无需另外写:运算内容(遵从数学运算规则)as 新列名字

课程33:逻辑运算 where 子句(以下内容均是基于where子句项下)

Like:不确定具体找什么的时候用(模糊搜索)

In:多于一个条件时使用

Not:和like 和in连用,not like not in

And & between:两个条件同时成立

Or:至少一个条件成立

课程34:like

用于对条件模糊搜索,即部分条件内容成立,目的在于排除多余的信息

=的作用在于完全和条件一致,和like不同,like为部分吻合

常用于网页搜索,即一个单元格中信息很多,搜寻内含有google的网址

like的运算需要通配符,常用%表示任意值

like内容需要加单引号或双引号,引号内区分大小写。t和T是不一样的

课程37:in

根据多个可能的值筛选数据,和=类似,只是=只能是单个赋值

+where列名称in(a,b...n)要有括号,ab可以为数值也可以是文字,要用逗号隔开,文字要加单引号(如果文字本身有引号,则该引号改为双引,头尾依旧用单引,macy's变为‘macy''s’

课程40:not

与like和in连用:not like not in

可以快速查询除like in 查询条件以外的结果

课程43:and

当where子句下要考虑一个以上的要求时,可以用and连接,但是连接的句子都是独立完整的查询语句即:(除了符号外的内容要带单引号)

Where occurred at>=‘2016-04-01’ and occurred at<=‘2016-10-01’(第二句也要有occurred at,不可以省略)

And 常用于+ - * / like not 的情况下

和between的区别:between是作用于同一列的两个要求eg where occurred at between >=’2016-04-01’ and <=’2016-10-01’ where occurred_at between ‘2016-04-01’ and ‘2016-10-01’ between的时候就不用>=和<=了

and是对于不同列的不同要求的连接,1个以上都可以用

课程46:or

和and的用法类似,用于一个以上的条件,其中一个条件成立即可

通常和+ - * / in like not and between 连用

Where (a=0 or c=0 or d=0)

And b=’2016-10-01’

上面式子即含有or子句也含有and子句,当有括号则代表括号内容为一个整体

小结:

0b4ee9b8730ada58deeae5ed0ac6d94e.png

*其他贴士:

对于大小写不敏感

where子句下的内容,各条件的先后顺序有别。写在前的条件先执行,后写的条件后执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值