河南南阳收割机被堵事件:官员缺德,祸患无穷

极目新闻领导公开“记者毕节采访被打”细节:他们打人后擦去指纹

突发!员工跳楼!只拿低保工资!央企设计院集体罢工!

退休后的温家宝

突发!北京某院集体罢工!

生成图片,分享到微信朋友圈

自由微信安卓APP发布,立即下载! | 提交文章网址
查看原文

对比Excel学习SQL:对列和行的操作

简说Python 2022-07-01

以下文章来源于可乐的数据分析之路 ,作者虾壳可乐

文章来源:可乐的数据分析之路

作者:虾壳可乐


本文将从以下几个方面进行:

一、对列的查询

    01 查询单个列

    03 查询所有列

    04 对列去重

二、对列的值排序

    01 升序排列

    02 降序排列

    03 多个列排序

三、对行的筛选

    01 单条件筛选

    02 多条件筛选

    03 IN命令

    04 LIKE命令


一、对列的查询

Excel里对于一张表,只想选取其中的某几列,只需复制列的值粘贴到新表即可,Excel是对行的操作很多,对列的操作几乎不需要什么技巧。

 

01 查询一个列

这里查询用到【select】命令,从XX表里选取XX列,select后跟列名,from后跟表名

--查询一个列select 列名 from 表名;

查询student表里sname一列的值

 

02 查询多个列


多个被查询的列之间用逗号分隔

--查询多个列select 列1,列2 from 表;

查询sname和sage两个列的值

 

03 查询所有列

用到通配符 *,相当于查看这个表所有的数值

--查询所有列select * from 表;

查询student这个表的所有列的值

 

04 查询该列中不重复的值(去重)

Excel里用到【删除重复值】的功能


SQL中用到【Distinct】命令

--去重select DISTINCT 列 from 表;

对sex一列进行去重(这个例子里这样去重并没什么意义)

 

二、对列的值排序

01 升序排列

Excel中从【筛选】功能里可以进行升序排列的操作


SQL中排序用到【order by】关键字,后面跟要安装哪一列排序,默认是升序,也可以直接写明ASC。

--对列的值升序排列select 列 from 表 order by 列;select 列 from 表 order by 列 ASC;

按snum一列升序排列

 

02 降序排列


SQL中用到【DESC】关键字降序排列

--对列的值降序排列select 列 from 表 order by 列 DESC;

按snum一列降序排列

 

03 多个列排序

Excel中用【排序】功能对多个列排序


SQL里对要排序的多个列之间用逗号进行分割

--多个列排序select 列1,列2 from 表 order by 列1 DESC,列2 ASC;

(左右滑动可查看完整代码)

对snum降序,对sage升序排列选择全部的列。


三、对行的筛选

Excel里对行的筛选主要用到【筛选】功能

SQL里对行的筛选主要用【where】命令+操作符,主要的操作符如下表所示:

操作符

说明

=

等于

小于

大于

<> 

不等于

>=

大于等于

<=

小于等于

BETWEEN

介于

LIKE

通配符

IS  NULL

空值

 

01 单条件筛选

--单条件筛选select 列 from 表 where 列 操作符 值;

注:

  • 字符要加单引号

  • Order by 在 where 之后使用


【=】

筛选snum等于6的行记录


select * from student1 where snum = 6;

 

【<】

筛选snum小于6的行记录

select * from student1 where snum < 6;

 

【>】

筛选snum大于6的行记录

select * from student1 where snum > 6

 

【<>】

筛选snum不等于6的行记录

select * from student1 where snum <> 6;


【between】

筛选snum中介于6~8之间的行记录

select * from student1 where snum between 6 and 8;

 

02 多条件筛选

SQL中多条件筛选用到逻辑运算符:AND  OR   NOT

  • AND:与,表示必须几个条件同时满足;

  • OR:或,表示几个条件中有一个满足即可;

  • NOT:非,否定

--多条件筛选select 列 from 表 where 列 操作符 值 逻辑运算符 列 操作符 值;


【and】

这里用另一张表sc表,选择分数大于60分且学号为1的所有记录

select * from sc where score > 60 and snum = 1;

 

【or】

选择分数大于60或者学号等于1的所有记录

Excel里用高级筛选来做

select * from sc where score > 60 or snum = 1;

 

【and or 同时】

同样用到Excel里高级筛选的功能

select * from sc where score > 60 or snum = 1 and cnum = 1;

这里先计算的是and两边的snum为1且cnum为1的值,再与score大于60进行或计算


select * from sc where (score > 60 or snum = 1) and cnum = 1;

与上例不同,这里先计算括号里的或再计算括号外的与

注:and 和 or可以组合使用,若不加括号,则优先进行and计算

 

03 IN

【IN】命令的功能和OR是一样的,不同的是OR只能对两个值进行或计算,而IN可以对多个值进行或计算。

--多个值的或计算select 列 from 表 where 列 IN (值1,值2,值3);

筛选出分数等于60或70或80的所有行记录


 

04 LIKE

LIKE的功能类似Excel里筛选里的模糊查找。

--模糊查找select 列 from 表 where 列 LIKE 条件;
  • 百分号(%)表示多个任意想要匹配的字符。

  • 下划线(_)同%的匹配,只是只能匹配单个字符。


筛选出student表中sname里姓李的学生的所有记录

select * from student1 where sname like '李%'

 

近期推荐阅读:

【1】整理了我开始分享学习笔记到现在超过250篇优质文章,涵盖数据分析、爬虫、机器学习等方面,别再说不知道该从哪开始,实战哪里找了【2】【终篇】Pandas中文官方文档:基础用法6(含1-5)


如果你觉得文章不错的话,分享、收藏、在看、留言666是对老表的最大支持。

文章有问题?点此查看未经处理的缓存