在商業資料分析領域,SQL 與 R 語言的結合應用至關重要。透過 SQL,我們可以有效地從資料函式庫中提取所需資料,而 R 則提供強大的統計分析和視覺化工具,幫助我們深入挖掘資料價值。本文將引導讀者瞭解如何結合 SQL 與 R,從資料函式庫查詢到資料分析,建立一套完整的工作流程,有效提升資料處理效率與分析洞察力。此流程涵蓋 SQL 基礎語法、資料函式庫查詢技巧、R 基礎知識、資料分析環境設定、資料匯入與匯出等導向,尤其針對臺灣商業環境常見的資料處理需求,提供實務操作。
SQL 基礎知識
SQL(Structured Query Language)是一種用於管理關係式資料函式庫的語言。它的基礎知識包括 SELECT、FROM 和 WHERE 三個部分。
SELECT 陳述式
SELECT 陳述式用於指定要從資料表中檢索的欄位。例如,如果你想要檢索 Customer_ID
、Date_Day
和 Prod_Cat
欄位,你可以使用以下 SQL 陳述式:
SELECT Customer_ID, Date_Day, Prod_Cat
FROM retail_db.sales_tbl;
FROM 陳述式
FROM 陳述式用於指定要從哪個資料表中檢索資料。在上面的例子中,我們從 retail_db.sales_tbl
資料表中檢索資料。
WHERE 陳述式
WHERE 陳述式用於指定要檢索的資料的條件。例如,如果你想要檢索 Electronics
類別的交易資料,並且交易日期在一月到五月之間,你可以使用以下 SQL 陳述式:
SELECT Customer_ID, Date_Day, Prod_Cat
FROM retail_db.sales_tbl
WHERE Prod_Cat = 'Electronics' AND Date_Day BETWEEN '2022-01-01' AND '2022-05-31';
在 WHERE 陳述式中,你可以使用各種運運算元,例如 =
, <
, >
, <=
, >=
, <>',
BETWEEN,
OR,
AND,
IN和
NOT IN` 等。
資料型別
在 SQL 中,各種資料型別都有其特定的格式。例如,日期欄位需要以 yyyy-mm-dd
格式表示,非數值欄位需要以單引號括住。
範例
假設我們有一個 sales_tbl
資料表,包含了銷售交易的相關資料。如果我們想要檢索所有欄位和所有列的資料,可以使用以下 SQL 陳述式:
SELECT * FROM retail_db.sales_tbl;
如果我們只想要檢索 Customer_ID
、Date_Day
和 Prod_Cat
欄位,並且只想要檢索 Electronics
類別的交易資料,可以使用以下 SQL 陳述式:
SELECT Customer_ID, Date_Day, Prod_Cat
FROM retail_db.sales_tbl
WHERE Prod_Cat = 'Electronics';
如果我們想要檢索 Electronics
類別的交易資料,並且交易日期在一月到五月之間,可以使用以下 SQL 陳述式:
SELECT Customer_ID, Date_Day, Prod_Cat
FROM retail_db.sales_tbl
WHERE Prod_Cat = 'Electronics' AND Date_Day BETWEEN '2022-01-01' AND '2022-05-31';
看圖說話:
flowchart TD A[SELECT] --> B[FROM] B --> C[WHERE] C --> D[執行查詢] D --> E[傳回結果]
這個流程圖展示了 SQL 查詢的基本流程,從 SELECT 陳述式開始,然後是 FROM 陳述式,接著是 WHERE 陳述式,最後是執行查詢並傳回結果。
資料函式庫查詢與分析
在進行資料函式庫查詢時,瞭解如何有效地篩選和排序資料是非常重要的。以下將介紹幾個基本的查詢技巧,包括使用 WHERE
子句、ORDER BY
子句、IN
運運算元和 DISTINCT
關鍵字。
篩選資料
當我們想要從資料函式庫中篩選出特定條件的資料時,可以使用 WHERE
子句。例如,如果我們想要找出所有電子產品(Electronics)的銷售資料,可以使用以下查詢:
SELECT *
FROM retail_db.sales_tbl
WHERE Prod_Cat = 'Electronics'
AND Date_Day BETWEEN '2015-01-01' AND '2015-05-31';
排序資料
如果我們想要根據某個欄位對資料進行排序,可以使用 ORDER BY
子句。例如,要根據銷售金額(Sales)對資料進行遞增排序,可以使用以下查詢:
SELECT *
FROM retail_db.sales_tbl
WHERE Sales > 50
ORDER BY Sales;
使用 IN 運運算元
當我們需要篩選多個特定值時,可以使用 IN
運運算元。例如,要找出客戶 ID 為 727635 和 230333 的銷售資料,可以使用以下查詢:
SELECT *
FROM retail_db.sales_tbl
WHERE Customer_ID IN (727635, 230333);
去除重複值
如果我們只想要得到唯一的值,可以使用 DISTINCT
關鍵字。例如,要找出客戶 ID 為 727635 和 230333 的唯一產品類別,可以使用以下查詢:
SELECT DISTINCT Prod_Cat
FROM retail_db.sales_tbl
WHERE Customer_ID IN (727635, 230333);
匯出資料
在 MySQL 中,匯出資料可以使用 INTO OUTFILE
子句。例如,要將前面的查詢結果匯出為 CSV 檔案,可以使用以下查詢:
SELECT DISTINCT Prod_Cat
FROM retail_db.sales_tbl
WHERE Customer_ID IN (727635, 230333)
INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/output.csv';
R 基礎
R 是一種強大的統計分析語言,以下將介紹 R 的一些基礎知識。
安裝套件
在 R 中,安裝套件可以使用 install.packages()
函式。例如,要安裝 ggplot2 套件,可以使用以下命令:
install.packages("ggplot2")
載入套件
要使用某個套件,需要先載入它,可以使用 library()
函式。例如,要載入 ggplot2 套件,可以使用以下命令:
library(ggplot2)
設定工作目錄
在 R 中,工作目錄是用於儲存和載入檔案的目錄。要設定工作目錄,可以使用 setwd()
函式。例如,要設定工作目錄為 C:/Users/玄貓/Documents,可以使用以下命令:
setwd("C:/Users/玄貓/Documents")
取得工作目錄
要取得目前的工作目錄,可以使用 getwd()
函式。
getwd()
這些是 R 和 MySQL 中的一些基礎知識,希望對您有所幫助。
資料分析環境設定
首先,我們需要設定工作目錄,以便存取所需的檔案。這可以透過 setwd()
函式完成,指定工作目錄為 "C:\\Desktop\\Analysis"
。
setwd("C:\\Desktop\\Analysis")
接下來,確認目前的工作目錄是否正確設定,可以使用 getwd()
函式。
getwd()
資料匯入與匯出
R 中的資料匯入與匯出可以透過多種方式進行,包括從 CSV 檔案、資料函式庫等來源匯入資料。
從 CSV 檔案匯入資料
假設我們有一個名為 Demographics.csv
的檔案,且已經設定了正確的工作目錄,則可以使用 read.csv()
函式匯入資料。
c3_mydata_1 <- read.csv("Demographics.csv", header = TRUE)
從資料函式庫匯入資料
如果我們需要從資料函式庫中匯入資料,則可以使用 RODBC 套件。首先,需要安裝 ODBC 驅動程式,然後安裝並載入 RODBC 套件。
# 安裝 RODBC 套件
install.packages("RODBC")
# 載入 RODBC 套件
library(RODBC)
# 連線到 MySQL 資料函式庫
db <- odbcConnect(dsn = "mysql", uid = "root", pwd = "password1")
# 顯示所有的 schema 和表格
sqlTables(db)
# 查詢 sales_tbl 表格的資料
c3_mydata_2 <- sqlQuery(db, "select * from retail_db.sales_tbl")
# 關閉資料函式庫連線
odbcClose(db)
從網站提取資料
R 也提供了多種套件來提取網站上的資料,例如 RCurl 和 XML 套件。
# 安裝 RCurl 和 XML 套件
install.packages("RCurl")
install.packages("XML")
# 載入 RCurl 和 XML 套件
library(RCurl)
library(XML)
# 提取網站上的資料
url <- "https://example.com"
html <- htmlParse(url, asText = TRUE)
# 提取網站上的段落
xpathSApply(html, "//p")
這些方法可以幫助您在 R 中匯入和處理不同的資料來源。
從內在修養到外在表現的全面檢視顯示,紮實的SQL和R基礎對於資料分析而言,如同深厚的內功修煉,能有效提升資料處理和分析能力。多維比較分析顯示,相較於僅掌握單一工具,同時精通SQL和R的複合型人才更具競爭優勢,能更有效率地從資料中萃取價值。然而,學習過程中最大的挑戰在於融會貫通,而非單純的語法 memorization。唯有理解資料函式庫的底層邏輯,並結合R語言的統計分析能力,才能將資料轉化為洞察力。從個人價值觀對職涯選擇的影響考量,資料分析能力的提升能為個人開拓更廣闊的職涯發展空間,並在資料驅動的時代中佔據先機。玄貓認為,此修養路徑已展現足夠效益,適合關注長期成長的管理者採用。