excel 模糊查找sql_对比Excel学习SQL(3):对列和行的操作

b3f043880620418219f5f874a54f9526.png

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

一、对列的查询

01 查询单个列

03 查询所有列

04 对列去重

二、对列的值排序

01 升序排列

02 降序排列

03 多个列排序

三、对行的筛选

01 单条件筛选

02 多条件筛选

03 IN命令

04 LIKE命令

正文:

一、对列的查询

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

01 查询一个列

85c01bb448938f48de26aa5d360a16b6.gif

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

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

查询student表里sname一列的值

db13aebfc2c60e58f39535bf90cb39f1.png

02 查询多个列

93db825ec90ca270f7e830779193a109.gif

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

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

查询sname和sage两个列的值

49be9857eac126c0c6c0df8cec113ad4.png

03 查询所有列

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

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

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

5f400c5eff16f113c024446a0f9875a6.png

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

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

fb39d8b622d9a9174fde63dcb4c891f3.gif

SQL中用到【Distinct】命令

--去重
select DISTINCT 列 from 表;

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

ff6147bf96a7360a7f886cc8798fbeef.png

二、对列的值排序

01 升序排列

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

23c0b0d6283b111936a164698be8b527.gif

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

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

按snum一列升序排列

8f4691e09acc2713b405fcdea1d5464e.png

02 降序排列

a105e3db53217d2c9693b4b602c69313.gif

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

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

按snum一列降序排列

31afa4ff9e50c235ec32be71ac820baa.png

03 多个列排序

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

3464bcc613a5b4c29f39e25324255c95.gif

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

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

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

61bd51431ebecc2c45cb9ebebbc636ca.png

三、对行的筛选

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

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

055b2e042baf3abeae126e6e489d86d5.png

01 单条件筛选

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

注:

  • 字符要加单引号
  • Order by 在 where 之后使用

【=】

筛选snum等于6的行记录

0a3cf3248acf4fad0d05a23efb3653ee.gif
select * from student1 where snum = 6;

3e7629b93e7942b305dbdb4920ab6819.png

【<】

筛选snum小于6的行记录

d37f77dfbbc44270ef26c44b8f46db7f.gif
select * from student1 where snum < 6;

6397ed679c0d26ae00ab0ae3411969ba.png

【>】

筛选snum大于6的行记录

964900fe69ac741dfeab487132d856f1.gif
select * from student1 where snum > 6

c9cb1a7e375bdc002a9467b4cc805290.png

【<>】

筛选snum不等于6的行记录

34101d8fedaaee0c14feefec0930dddc.gif
select * from student1 where snum <> 6;

280d0e5a3d3aa21b31207151ab811867.png

【between】

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

f6910e5148ac741330dfaed81074b38b.gif
select * from student1 where snum between 6 and 8;

d6afc6a0666ac41944ce1dd225a80804.png

02 多条件筛选

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

  • AND:与,表示必须几个条件同时满足;
  • OR:或,表示几个条件中有一个满足即可;
  • NOT:非,否定
--多条件筛选
select 列 from 表 where 列 操作符 值 逻辑运算符 列 操作符 值;

【and】

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

2d93d44ef9d3eb1e5d4958ea45f569ee.gif
select * from sc where score > 60 and snum = 1;

2c441e4fc937f651e4407a33f72baf1a.png

【or】

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

Excel里用高级筛选来做

53ae8b4466407db7c58a7361aa700225.gif
select * from sc where score > 60 or snum = 1;

3e8ae6407024a474bbcb915fb811b115.png

【and or 同时】

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

4ece9d183a4ef36cb3bd0ea0fb1b0de9.png
select * from sc where score > 60 or snum = 1 and cnum = 1;

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

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

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

eb17f80776581c6f5454c375b447fd49.png

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

03 IN

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

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

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

9263023237b4b3c8111070ddbc9981b4.png

04 LIKE

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

--模糊查找
select 列 from 表 where 列 LIKE 条件;
  • 百分号(%)表示多个任意想要匹配的字符。
  • 下划线(_)同%的匹配,只是只能匹配单个字符。

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

fd63f9c785a962224b14358a51f03515.gif
select * from student1 where sname like '李%'

0e39a444c4afaebeb3bd2906ed09183b.png

这一小节内容的练习可参考SQLZOO的selectbasics、select from world和selectfrom nobel的练习,关注公众号【可乐的数据分析之路】,后台回复【SQLZOO】即可获得这三章练习的答案。

如果你觉得有用,请点个赞哦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值