筛选出一证多卡 用sql_对比Excel学习SQL(3):对列和行的操作
本文將從以下幾個方面進行:
一、對列的查詢
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】命令+操作符,主要的操作符如下表所示:
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:非,否定
【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可以組合使用,若不加括號,則優(yōu)先進行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 '李%'這一小節(jié)內容的練習可參考SQLZOO的selectbasics、select from world和selectfrom nobel的練習,關注公眾號【可樂的數據分析之路】,后臺回復【SQLZOO】即可獲得這三章練習的答案。
如果你覺得有用,請點個贊哦~
總結
以上是生活随笔為你收集整理的筛选出一证多卡 用sql_对比Excel学习SQL(3):对列和行的操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android系统源码的环境下用make
- 下一篇: php的可变函数,php之可变函数的实例