對比Excel學習SQL:對列和行的操作

2021-03-02 簡說Python

文章來源:可樂的數據分析之路

作者:蝦殼可樂

本文將從以下幾個方面進行:

一、對列的查詢

    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是對老表的最大支持。

相關焦點

  • 5分鐘學會SQL SERVER行轉列、列轉行,PIVOT操作
    PIVOT語法PIVOT示例UNPIVOT語法UNPIVOT示例PIVOT和UNPIVOTPIVOT 通過將表達式中的一個列的唯一值轉換為輸出中的多列(即行轉列),來輪替表值表達式。PIVOT 在需要對最終輸出所需的所有剩餘列值執行聚合時運行聚合。與 PIVOT 執行的操作相反,UNPIVOT 將表值表達式的列輪換為行(即列轉行)。但是需要注意的是,UNPIVOT 並不完全是 PIVOT 的逆操作。PIVOT 執行聚合,並將多個可能的行合併為輸出中的一行。
  • pandas操作excel全總結
    pandas是基於Numpy創建的Python包,內置了大量標準函數,能夠高效地解決數據分析數據處理和分析任務,pandas支持多種文件的操作,比如Excel,csv,json,txt 文件等,讀取文件之後,就可以對數據進行各種清洗、分析操作了。
  • excel兩列數據對比找不同
    如果我們的excel數據比較多,而我們要使用某一列數據的時候怕和原來的數據有差別,所以最好需要對比下兩列一樣的數據有什麼不同,那麼怎麼做呢,今天我就來教大家excel兩列數據對比找不同吧。excel兩列數據對比找不同如圖我做了一張簡單的excel數據表格,有兩列數據正常是一樣的,就是記錄學號和新學號,但是新學號可能有變動,所以要對比一下找出excel兩邊兩列數據的不同之處。
  • 【Python技術進階-7】使用Python的xlrd操作Excel文檔詳細指南
    (福利:文末會有這次任務的精簡版的代碼喲,小夥伴可以作為讀取excel文檔的練習。)Python處理Excel文檔的第三方庫主要有:xlrd,xlwt,openpyxl等。Xlrd用於讀取操作,xlwt用於寫入操作,openpyxl用於讀寫操作。
  • 十分鐘學習pandas! pandas常用操作總結!
    學習Python, 當然少不了pandas,pandas是python數據科學中的必備工具
  • 對比Excel學習SQL(4):計算欄位
    今天這篇文章是對比Excel學習SQL系列的第4篇文章,之前3篇的傳送門在這裡:《對行和列的操作》、《庫/表/記錄的增查刪改》、《寫給小白的SQL
  • 十分鐘學習pandas!pandas常用操作總結!
    學習Python, 當然少不了pandas,pandas是python數據科學中的必備工具,熟練使用pandas是從sql boy/girl 跨越到一名優秀的數據分析師傅的必備技能。這篇pandas常用操作總結幫大家回顧下pandas的常用語法,尤其是我們分析數據時常用的方法。
  • 對比Excel學習SQL(6):表連接
    本文是對比Excel學習SQL系列第6篇文章,之前5篇傳送門在此:《分組和子查詢》、《計算欄位》、《對行和列的操作》、《庫/表/記錄的增查刪改》
  • 當pandas撞上了sql,於是一個強大的pandasql庫產生了!
    2. pandasql的使用1)簡介pandas中的DataFrame是一個二維表格,資料庫中的表也是一個二維表格,因此在pandas中使用sql語句就顯得水到渠成,pandasql使用SQLite作為其操作資料庫,同時Python自帶SQLite模塊,不需要安裝,便可直接使用。
  • 一場pandas與SQL的巔峰大戰(七)
    的使用    簡介    安裝    使用pandas操作MySQL資料庫    read_sql    to_sql巔峰系列總結十條(驚喜在此)reference 在之前的六篇系列文章中,我們對比了pandas和SQL在數據方面的多項操作
  • MySQL資料庫的分組操作,語句拼接,列轉行操作
    本文介紹MySQL資料庫的分組操作,語句拼接,列轉行操作。關於group by 的sql_mode關於group by 的sql_modeonly_full_group_by說明:僅是MySQL5.7中存在,5.6和8.0都沒有,查看sql_modeselect @@sql_mode;在帶有group by 子句的select中,select後的條件列(非主鍵列),要麼是group by 後面的列,要麼需要在函數中
  • 表格中列和行的插入與刪除及行高和列寬的調整——想像力電腦應用
    操作步驟如下圖所示:溫馨提示:1、當我們在插入行或列的時候,需要同時插入多行或是多列時,我們只需要選擇對應的行數或列數之後執行相同的操作就行了。如:插入3列,就先選中3列,之後執行我們上面講的插入列的方法即可播放3列了。
  • 對比MySQL學習Pandas的groupby分組聚合
    業界處理像excel那樣的二維表格數據,通常有如下兩種風格:* DSL風格:使用面向對象的方式來操作,pandas就是採用這種方式,通俗說就是「語法順序和執行順序一致」。* SQL風格:寫sql語句來處理。
  • 辦公軟體操作技巧47:如何在excel中快速找出兩列數據的不同
    在日常工作中,我們經常需要對比兩列excel表格數據是否相同,如果數據項比較少,我們可以一個一個的直接觀察核對,如果都是數字,可以用減法來核對,等於0即相同,但是對於比較複雜且數量多的內容,直接核對顯然行不通。
  • 讓Excel成為SQL的學習法!(附筆試原題)
    相信大夥都使用過Excel,用SQL實現excel 常用操作去學,感覺會比較具體。數據是網上找到的銷售數據,命名為sale,長這樣:vlookup是excel幾乎最常用的公式,一般用於兩個表的關聯查詢等。所以我先創建一個新表:複製sale表並篩選出地區僅為廣州的,命名為sale_guang。
  • excel技能分享:常用快捷鍵匯總及操作演示 下
    第二十八,Excel自動調整行高或列寬如果某些行或者列的單元格寬度和高度不夠,咱們可以雙擊自動調整行高或列寬。比如下面截圖第2行,沒有顯示完整,我們可以這樣操作。按下CTRL+A全選,在任意列和行的單元格邊線雙擊即可。
  • 數據分析利器 pandas 系列教程(四):對比 sql 學 pandas
    作為 pandas 教程的第四篇,本篇將對比 s
  • 「Python替代Excel Vba」系列(二):pandas分組統計與操作Excel
    帶你用pandas玩轉各種數據處理前言在本系列的上一章已經介紹了如何讀寫 excel 數據,並快速進行匯總處理。但有些小夥伴看完之後有些疑惑:那只是簡單讀寫數據而已,有時候需要設置 excel 的格式。
  • 資料庫sql 學習
    sql 用於訪問和處理資料庫的標準計算機語言rdbms 關係型資料庫管理系統ANSI 美國國家標準化組織
  • 【免費】SQL在Excel中的應用(全套視頻教程+課件打包下載)