Gửi - Lấy - Xóa
Bạn đã dùng dbGetQuery() nhiều lần rồi. Đây là một hàm ảo từ gói DBI, nhưng thực tế được triển khai bởi gói RMySQL. Ẩn sau đó là các bước sau:
- Gửi truy vấn đã chỉ định với
dbSendQuery(); - Lấy kết quả thực thi truy vấn trên cơ sở dữ liệu với
dbFetch(); - Xóa kết quả với
dbClearResult().
Lần này, chúng ta không dùng dbGetQuery() mà tự triển khai các bước ở trên. Cách này viết hơi dài, nhưng cho phép bạn lấy kết quả truy vấn theo từng phần thay vì tất cả cùng lúc. Bạn có thể làm điều này bằng cách chỉ định đối số n trong dbFetch().
Bài tập này là một phần của khóa học
Nhập dữ liệu nâng cao trong R
Hướng dẫn bài tập
- Kiểm tra lệnh gọi
dbSendQuery()đã được viết sẵn cho bạn. Nó chọn các bình luận (comments) của những người dùng có id lớn hơn 4. - Dùng
dbFetch()hai lần. Ở lần đầu, chỉ nhập hai bản ghi của kết quả truy vấn bằng cách đặt đối sốnthành2. Ở lần thứ hai, nhập tất cả phần còn lại (không chỉ địnhn). Ở cả hai lần, chỉ cần in ra các data frame kết quả. - Xóa
resvớidbClearResult().
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Connect to the database
library(DBI)
con <- dbConnect(RMySQL::MySQL(),
dbname = "tweater",
host = "courses.csrrinzqubik.us-east-1.rds.amazonaws.com",
port = 3306,
user = "student",
password = "datacamp")
# Send query to the database
res <- dbSendQuery(con, "SELECT * FROM comments WHERE user_id > 4")
# Use dbFetch() twice
# Clear res