Hướng dẫn入门: Cơ sở dữ liệu với R
Xin chào các pháp sư lập trình R tương lai! Hôm nay, chúng ta sẽ bắt đầu một hành trình đầy thú vị vào thế giới của cơ sở dữ liệu bằng R. Đừng lo lắng nếu bạn chưa từng viết một dòng mã trước đây - chúng ta sẽ bắt đầu từ những điều cơ bản và cùng nhau tiến hóa. Cuối cùng của bài hướng dẫn này, bạn sẽ ngạc nhiên về những gì bạn có thể làm với R và cơ sở dữ liệu!
Giới thiệu về R và Cơ sở dữ liệu
Trước khi chúng ta đi vào chi tiết, hãy nói về lý do chúng ta ở đây. Hãy tưởng tượng bạn đang quản lý một cửa hàng sách nhỏ. Ban đầu, bạn có thể theo dõi tồn kho của mình trong một cuốn sổ tay. Nhưng khi doanh nghiệp của bạn phát triển, bạn sẽ cần một cách hiệu quả hơn để quản lý dữ liệu. Đó là lúc cơ sở dữ liệu xuất hiện! Và R, ngôn ngữ lập trình đáng tin cậy của chúng ta, sẽ giúp chúng ta làm việc với những cơ sở dữ liệu này.
Gói RMySQL: Cửa ngõ đến phép thuật cơ sở dữ liệu
RMySQL là gì?
RMySQL giống như một枝 phép thuật giúp R giao tiếp với cơ sở dữ liệu MySQL. Đây là một gói (hãy tưởng tượng nó như một bộ công cụ) mà chúng ta sẽ sử dụng để kết nối R với MySQL, gửi lệnh và truy xuất dữ liệu.
Cài đặt RMySQL
Hãy bắt đầu bằng cách cài đặt gói RMySQL. Mở bảng điều khiển R của bạn và gõ:
install.packages("RMySQL")
Một khi đã cài đặt xong, chúng ta cần yük nó vào phiên làm việc của R:
library(RMySQL)
Tuyệt vời! Bạn đã chính thức bước vào thế giới của R và cơ sở dữ liệu.
Kết nối R với MySQL: Xây dựng cầu nối
Bây giờ chúng ta có cây phép thuật của mình (RMySQL), hãy sử dụng nó để kết nối với cơ sở dữ liệu MySQL. Hãy tưởng tượng việc này như mở cửa vào kho dữ liệu của bạn.
con <- dbConnect(MySQL(),
user = "your_username",
password = "your_password",
dbname = "your_database_name",
host = "localhost")
Hãy phân tích điều này:
-
dbConnect
là hàm chúng ta sử dụng để thiết lập kết nối. -
MySQL()
chỉ định rằng chúng ta đang kết nối với cơ sở dữ liệu MySQL. - Chúng ta sau đó cung cấp thông tin đăng nhập của mình (tên người dùng, mật khẩu) và tên của cơ sở dữ liệu mà chúng ta muốn kết nối.
-
host
là nơi cơ sở dữ liệu của chúng ta được đặt. "localhost" có nghĩa là nó nằm trên máy tính của chúng ta.
Nhớ thay thế "your_username", "your_password", và "your_database_name" bằng thông tin thực tế của MySQL của bạn.
Truy vấn bảng: Hỏi đáp với cơ sở dữ liệu
Bây giờ chúng ta đã kết nối, hãy bắt đầu hỏi cơ sở dữ liệu của mình một số câu hỏi! Trong ngôn ngữ cơ sở dữ liệu, chúng ta gọi điều này là "truy vấn".
result <- dbGetQuery(con, "SELECT * FROM books")
print(result)
Đây là những gì đang xảy ra:
-
dbGetQuery
gửi một truy vấn SQL đến cơ sở dữ liệu của chúng ta và truy xuất kết quả. -
SELECT * FROM books
là truy vấn SQL của chúng ta. Nó yêu cầu tất cả các cột (*) từ bảng 'books'. - Chúng ta lưu kết quả vào một biến叫做
result
và sau đó in nó.
Truy vấn với điều kiện lọc: Lấy dữ liệu cụ thể
Đôi khi, chúng ta không muốn tất cả dữ liệu, chỉ một phần cụ thể. Hãy nói chúng ta chỉ muốn sách được xuất bản sau năm 2000:
filtered_result <- dbGetQuery(con, "SELECT * FROM books WHERE publication_year > 2000")
print(filtered_result)
Câu điều kiện WHERE
trong truy vấn SQL của chúng ta hoạt động như một bộ lọc, cung cấp cho chúng ta chỉ những sách đáp ứng tiêu chí của chúng ta.
Cập nhật hàng trong bảng: Thực hiện thay đổi
Ồ! Chúng ta vừa nhận ra rằng chúng ta đã mắc lỗi trong dữ liệu của mình. Hãy sửa nó:
dbExecute(con, "UPDATE books SET author = 'J.K. Rowling' WHERE title = 'Harry Potter and the Philosopher''s Stone'")
dbExecute
được sử dụng cho các truy vấn mà thay đổi cơ sở dữ liệu nhưng không trả về dữ liệu.
Chèn dữ liệu vào bảng: Thêm thông tin mới
Có một cuốn sách mới để thêm vào tồn kho của chúng ta? Không có vấn đề gì!
dbExecute(con, "INSERT INTO books (title, author, publication_year) VALUES ('The Catcher in the Rye', 'J.D. Salinger', 1951)")
Truy vấn này thêm một hàng mới vào bảng 'books' với thông tin được chỉ định.
Tạo bảng trong MySQL: Xây dựng cấu trúc dữ liệu mới
Hãy nói chúng ta muốn bắt đầu theo dõi các bài đánh giá sách. Chúng ta sẽ cần một bảng mới cho điều đó:
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)
)")
Điều này tạo một bảng 'reviews' mới liên kết với bảng 'books' của chúng ta.
Xóa bảng trong MySQL: Dọn dẹp
Đôi khi, chúng ta cần xóa bỏ một bảng hoàn toàn:
dbExecute(con, "DROP TABLE IF EXISTS old_inventory")
Hãy cẩn thận với điều này - nó là vĩnh viễn!
Kết luận
Chúc mừng! Bạn đã chính thức bước vào thế giới của R và cơ sở dữ liệu. Chúng ta đã bao gồm rất nhiều nội dung, từ việc kết nối với cơ sở dữ liệu đến việc tạo và sửa đổi bảng. Nhớ rằng, thực hành làm nên hoàn hảo, vì vậy đừng ngần ngại thử nghiệm với các lệnh này.
Dưới đây là bảng tham khảo nhanh các hàm chính chúng ta đã sử dụng:
Hàm | Mục đích |
---|---|
dbConnect() | Thiết lập kết nối với cơ sở dữ liệu |
dbGetQuery() | Thực hiện truy vấn và truy xuất kết quả |
dbExecute() | Thực hiện truy vấn không trả về dữ liệu |
dbDisconnect() | Đóng kết nối cơ sở dữ liệu |
Luôn nhớ đóng kết nối cơ sở dữ liệu khi bạn đã xong:
dbDisconnect(con)
Chúc bạn lập trình vui vẻ, và may mắn để cơ sở dữ liệu của bạn luôn được tổ chức và các truy vấn của bạn luôn nhanh chóng!
Credits: Image by storyset