R - 資料庫:初學者指南

你好,未來的 R 編程術士!今天,我們將踏上一段令人興奮的旅程,進入使用 R 的資料庫世界。別擔心如果你從未寫過一行代碼——我們將從最基礎的知識開始,一起逐步學習。在這個教學結束時,你將對你能夠使用 R 和資料庫做到的事情感到驚奇!

R - Database

R 和資料庫的介紹

在我們深入探讨之前,讓我們先談談我們為什麼在這裡。想像你正在經營一家小型書店。起初,你可能會用筆記本記錄你的庫存。但隨著你的業務增長,你將需要一種更有效的方式來管理你的數據。這就是資料庫的用處!而我們可靠的編程語言 R,將幫助我們與這些資料庫進行交互。

RMySQL 套件:你的資料庫魔法之門

RMySQL 是什麼?

RMySQL 就像一根魔法棒,讓 R 能夠與 MySQL 資料庫進行通信。它是一個套件(可以想像成一個工具箱),我們將使用它來連接 R 和 MySQL,發送命令和检索數據。

安裝 RMySQL

讓我們從安裝 RMySQL 套件開始。打開你的 R 控制台並輸入:

install.packages("RMySQL")

一旦安裝完畢,我們需要將它載入我們的 R 項目中:

library(RMySQL)

太棒了!你已經邁出了進入 R 和資料庫世界的第一步。

連接 R 到 MySQL:建立橋樑

現在有了我們的魔法棒(RMySQL),讓我們用它來連接到 MySQL 資料庫。把這想像成打開通向你數據倉庫的門。

con <- dbConnect(MySQL(),
user = "your_username",
password = "your_password",
dbname = "your_database_name",
host = "localhost")

讓我們分解一下:

  • dbConnect 是我們用來建立連接的函數。
  • MySQL() 指定我們正在連接到一個 MySQL 資料庫。
  • 然後我們提供我們的登錄詳情(用戶名,密碼)以及我們想要連接到數據庫的名稱。
  • host 是我們數據庫的位置。 "localhost" 意味著它在我們自己的電腦上。

記得將 "your_username"、"your_password" 和 "your_database_name" 替換為你的實際 MySQL 凭據。

查詢表格:向你的數據庫提問

現在連接上了,讓我們開始向數據庫提問吧!在資料庫術語中,我們稱之為 "查詢"。

result <- dbGetQuery(con, "SELECT * FROM books")
print(result)

這裡發生了什麼:

  • dbGetQuery 將一個 SQL 查詢發送到我們的數據庫並检索結果。
  • SELECT * FROM books 是我們的 SQL 查詢。它要求從 'books' 表中選取所有列 (*)。
  • 我們將結果存儲在一個名為 result 的變量中,然後打印它。

帶過濾子句的查詢:獲取特定數據

有時候,我們不想要所有的數據,只想獲取特定部分。讓我們說我們只想查看 2000 年後出版的書籍:

filtered_result <- dbGetQuery(con, "SELECT * FROM books WHERE publication_year > 2000")
print(filtered_result)

我們 SQL 查詢中的 WHERE 子句起到了過濾器的作用,只給我們提供符合我們標準的書籍。

更新表格中的行:進行更改

哦!我們剛剛發現我們數據中有一個錯誤。讓我們修正它:

dbExecute(con, "UPDATE books SET author = 'J.K. Rowling' WHERE title = 'Harry Potter and the Philosopher''s Stone'")

dbExecute 用於執行那些修改數據庫但不返回數據的查詢。

將數據插入表格:添加新信息

我們的庫存中有一本新書要添加?沒問題!

dbExecute(con, "INSERT INTO books (title, author, publication_year) VALUES ('The Catcher in the Rye', 'J.D. Salinger', 1951)")

這個查詢將一個新行添加到我們的 'books' 表中,並帶有指定的信息。

在 MySQL 中創建表格:建立新的數據結構

讓我們說我們想要開始跟踪書評。我們需要一個新表來做到這一點:

dbExecute(con, "CREATE TABLE reviews (
id INT AUTO_INCREMENT PRIMARY KEY,
book_id INT,
reviewer_name VARCHAR(100),
rating INT,
review_text TEXT,
FOREIGN KEY (book_id) REFERENCES books(id)
)")

這將創建一個新的 'reviews' 表,與我們的 'books' 表相連接。

在 MySQL 中刪除表格:清理房屋

有時候,我們需要完全刪除一個表:

dbExecute(con, "DROP TABLE IF EXISTS old_inventory")

請謹慎使用這個命令 - 它是永久的!

結論

恭喜你!你已經邁出了進入 R 和資料庫世界的第一步。我們已經涵蓋了很多內容,從連接到數據庫到創建和修改表。記住,熟練是由練習而來的,所以不要害怕嘗試這些命令。

這裡是一個我們使用的主要函數的快速參考表:

函數 目的
dbConnect() 建立與數據庫的連接
dbGetQuery() 執行查詢並返回結果
dbExecute() 執行不返回數據的查詢
dbDisconnect() 關閉數據庫連接

永遠記得在完成時關閉你的數據庫連接:

dbDisconnect(con)

快樂編程,願你的數據庫總是井然有序,你的查詢總是迅速!

Credits: Image by storyset