日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

想学数据分析但不会Python,过来看看SQL吧(上)~

發布時間:2024/9/15 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 想学数据分析但不会Python,过来看看SQL吧(上)~ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者:賈勝杰,碩士,退役軍人,電氣工程專業,現成功轉行K12領域數據挖掘工程師,不僅在數據清理、分析和預測方向,而且在自制力和高效學習方面都有豐富經驗。編輯:王老濕
  • SQL

    • SQL基礎:語法,檢索,排序,過濾,創建計算字段和使用別名;

    • SQL進階:鏈接表,聚合,分組,條件判斷,子查詢以及時間序列的處理;

  • Python

    • Python基礎:語法,數據類型,運算符,控制流,函數,腳本編寫及本地環境搭建;

    • Python數據處理:Numpy與Pandas;

    • Python可視化:Matplotlib,Pyecharts;

  • 統計學

    • 統計學基礎:描述統計學,概率,正態分布,隨機抽樣,中心極限定律等;

    • 統計學進階:推論統計學,置信區間,假設檢驗,線性回歸,邏輯回歸等。

所有以上的這些技法都只是工具,所以要以會用且熟練為目的,把學習重點放在應用層面,多動手便能事半功倍!我們今天先從數據分析必備技能中最為簡單的SQL來開始學習吧!(這篇文章介紹的主要是SQL基礎,文章末尾也會給出在線的練習SQL的網站)

知識清單

SQL簡介

SQL是Structured Query Language的簡寫,也就是結構化查詢語言。它最受歡迎的功能便是對數據庫中的數據進行增刪改查。作為數據分析師,會經常使用SQL語言從數據庫中查詢并提取數據,而增刪改則一般由數據工程師去操作。

🙋?♂?你可能聽說過 NoSQL,它表示 Not only SQL(不僅僅是 SQL),與NoSQL的數據庫進行交互時,你編寫的代碼會與本課程中所學的SQL有所不同。最常用的 NoSQL 語言之一是 MongoDB(https://www.mongodb.com/),可以自行了解一下~

書寫規則及注釋

就像我們剛開始學寫字一樣,在學習編寫代碼之前,我們也要先了解這門語言規范的書寫規則和注釋方法。

這部分雖然比較簡單,但非常重要,有時候這不僅關系到你的飯碗,甚至還會危及到你的性命🥶,不信你可以看這篇假新聞:因代碼規范問題,美國一碼農槍殺了4個同事

(https://yq.aliyun.com/articles/644710)

SQL書寫規則

  • SQL語句不區分大小寫,因此SELECT與select甚至是SeLect的效果是相同的,但是要對命令和變量進行區分,所以默認命令需要大寫,其他內容如變量等則需要小寫

  • 表和變量名中不要出現空格,可使用下劃線_替代;

  • 查詢語句中,使用單一空格隔開命令和變量;

  • 為提高代碼的可移植性,請在查詢語句結尾添加一個分號;。

SQL中的注釋

代碼是給電腦看的,而注釋則是給人看的,是對你寫這行代碼的思路解釋,方便自己做debug或者給同事交接。

  • 單行注釋-,添加注釋。

SELECT?col_name?--?這是一條注釋 FROM?table_name;
  • 多行注釋

多行注釋以/*起始,以*/結尾。

/*SELECT?col_name? FROM?table_name;*/ SELECT?col_2? FROM?table_name;

檢索數據

檢索數據主要用的語句為:SELECT和FROM,意為從(FROM)xxx表中選擇(SELECT)xxx變量,下面看示例。

  • 檢索單列

從table_name表中檢索col_name列。

SELECT?col_name FROM?table_name;
  • 檢索多列

從table_name表中檢索col_1,col_2和col_3列。

SELECT?col_1,col_2,col_3 FROM?table_name;
  • 檢索所有列

使用通配符*,返回table_name表中的所有列;

SELECT?* FROM?table_name;
  • 檢索某列中不同的值

檢索col_1中具有唯一性的行,即唯一值。

SELECT?DISTINCT?col_1 FROM?table_name;
  • 限制檢索的結果

使用LIMIT語句可以限制返回的行數。

SELECT?col_1 FROM?table_name LIMIT?10;

返回前10行(即第0-第9行)。

也可以添加OFFSET語句,設置返回數據的起始行:

SELECT?col_1 FROM?table_name LIMIT?10?OFFSET?5;

從第五行之后,返回十行數據(即第5-第14行)。

排序檢索數據

排序需要使用的子句是:ORDER BY。

  • 其可以根據指定的單列或多列對結果進行排序;

  • 默認按照升序進行排序(從小到大,從a到z),使用DESC關鍵字可以改為降序;

  • 在使用ORDER BY時,請確保它是SELECT語句中的最后一條子句。

下面請看示例:

  • 按列排序

SELECT?col_name FROM?table_name ORDER?BY?col_name;

返回的數據會按照col_name列進行升序排序,這里col_name可以是單列也可以是多列,當然也可以使用非檢索的列進行排序。

  • 降序排序

SELECT?col_1,col_2 FROM?table_name ORDER?BY?col_2?DESC,col_3;

返回的數據會按照col_2列降序,col_3列升序對col_1和col_2兩列進行排序。

這里可以看出,DESC關鍵字的用法:只對跟在語句前面的變量有效。所以,想要對多列進行降序排序時,需要對每一列都指定DESC關鍵字。

過濾數據

我們使用WHERE子句來根據某個條件對篩選的數據進行過濾。

  • WHERE子句應該寫在表名(即FROM子句)之后,在ORDER BY子句之前;

  • 使用的基本方式為:WHERE 列名+運算符+值;

  • 過濾條件是區分大小寫的。

使用示例:col_1 運算符 value的值。

SELECT?col_1 FROM?table_1 WHERE?col_1?運算符?value;
  • 運算符

運算符描述
=等于
<>不等于
>大于
<小于
>=大于等于
<=小于等于
BETWEEN…AND…在指定的兩值之間
IS NULL為NULL值
AND邏輯運算符:與
OR邏輯運算符:或
IN條件范圍篩選
NOT邏輯運算符:非

?? SQL的版本不同,可能導致某些運算符不同(如不等于可以用!=表示),具體要查閱數據庫文檔。

在同時輸入AND和OR時,SQL會優先處理AND語句,所以為了建議大家在進行多條件篩選時,請用小括號將每個條件單獨擴起來,這樣既方便閱讀代碼,又不容易出問題。

  • 用通配符進行過濾(LIKE)

通配符用來匹配值的一部分,跟在LIKE關鍵字后面進行數據過濾。

通配符描述
%表示任何字符出現任意次數
_表示任何字符出現一次
[]指定一個字符集,它必須匹配該位置的一個字符
^在[]中使用,表示否定

示例:

SELECT?col_1 FROM?table_1 WHERE?col_1?LIKE?'_[^JM]%' ORDER?BY?col_1;

如上篩選出的是,第二個字符為非J且非M的數據。

創建計算字段

其實就是在檢索數據的同時進行計算,并使用關鍵字AS將結果保存為某一列。

  • 數值類型的計算

SELECT?prod_id,quantity,item_price,quantity*item_price?AS?expanded_price FROM?orderitems WHERE?order_num?=?200008;

輸出:

prod_id??quantity??item_price??expanded_price --------------------------------------------- RGAN01??5??4.9900??24.9500 BR03??5??11.9900??59.9500

這里實現的就是使用quantity*item_price創建一個名為expanded_price的計算字段,也就是一個新列。

同樣適用于計算的操作符有+(加),-(減)和/(除)。

  • 字符類型的拼接

SELECT?RTRIM(col_name)?+?'('+RTRIM(col_country)+')'?AS?col_title FROM?table_name ORDER?BY?col_name;

輸出:

col_title ------------------------ Bear?Emporium(USA) Bears?R?Us(USA) Jouets?et?ours(France)

這里實現的就是將col_name列與col_country列進行了拼接,新列的名字叫做col_title。

RTRIM()函數是去掉右邊的所有空格,LTRIM()是去掉左邊的所有空格,TRIM()是去掉兩邊的所有空格。

使用別名

在上一節中我們使用AS來為變量設置別名,你可能也見過如下所示的語句:

SELECT?col1?+?col2?AS?total,?col3

當然沒有 AS 的語句也可以實現使用別名:

FROM?tablename?t1

以及

SELECT?col1?+?col2?total,?col3

將col1+col2的結果設置名為total的列。

代碼總結

語句使用方法其他詳細信息
SELECTSELECT Col1, Col2, …選擇要篩選的列
FROMFROM Table提供列所在的表格
LIMITLIMIT 10限制返回的行數
ORDER BYORDER BY Col根據列Col對查詢的結果排序(順序),可與 DESC 一起使用實現逆序。
WHEREWHERE Col > 5用于過濾結果的一個條件語句
LIKEWHERE Col LIKE ‘%me%’僅提取出列文本中包含 ‘me’ 的行
INWHERE Col IN (‘Y’, ‘N’)僅過濾行對應的列為 ‘Y’ 或 ‘N’的數據
NOTWHERE Col NOT IN (‘Y’, “N’)NOT表示非,與上行結果剛好互補。
ANDWHERE (Col1 > 5) AND (Col2 < 3)AND表示與,過濾兩個或多個條件均為真的數據
ORWHERE Col1 > 5 OR Col2 < 3OR表示或,過濾至少某一條件為真的行
BETWEENWHERE Col BETWEEN 3 AND 5與AND連用,比用運算符簡單一些

總結

以上是生活随笔為你收集整理的想学数据分析但不会Python,过来看看SQL吧(上)~的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。