文章來源:可樂的數據分析之路
作者:蝦殼可樂
本文將從以下幾個方面進行:
一、對列的查詢
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 查詢所有列
用到通配符 *,相當於查看這個表所有的數值
查詢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 '李%'
如果你覺得文章不錯的話,分享、收藏、在看、留言666是對老表的最大支持。