Node.js - MySQL Truy vấn Lấy Dữ liệu
Xin chào, những người đam mê lập trình! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị vào thế giới của Node.js và MySQL. Là một giáo viên khoa học máy tính gần gũi, tôi sẽ hướng dẫn bạn qua quá trình lấy dữ liệu từ cơ sở dữ liệu MySQL sử dụng Node.js. Đừng lo lắng nếu bạn mới bắt đầu lập trình - chúng ta sẽ bắt đầu từ những điều cơ bản và dần dần nâng cao. Vậy, hãy lấy một tách cà phê (hoặc đồ uống yêu thích của bạn) và cùng nhau bắt đầu nhé!
Node.js và MySQL là gì?
Trước khi chúng ta vào phần mã code, hãy nhanh chóng hiểu qua Node.js và MySQL là gì:
- Node.js: Đây là một môi trường chạy JavaScript mạnh mẽ cho phép bạn chạy JavaScript trên máy tính của bạn, không chỉ trong trình duyệt web.
- MySQL: Đây là một hệ thống cơ sở dữ liệu phổ biến để lưu trữ và quản lý dữ liệu cho các ứng dụng của bạn.
Hãy tưởng tượng Node.js như một đầu bếp talent và MySQL như một tủ lạnh được tổ chức tốt. Đầu bếp của chúng ta (Node.js) cần lấy nguyên liệu (dữ liệu) từ tủ lạnh (MySQL) để tạo ra những món ăn ngon (ứng dụng web). Hôm nay, chúng ta sẽ học cách đầu bếp có thể hiệu quả lấy những nguyên liệu này!
Thiết lập Môi trường
Trước tiên, chúng ta cần thiết lập căn bếp (môi trường phát triển). Dưới đây là những gì bạn cần làm:
- Cài đặt Node.js từ trang web chính thức (https://nodejs.org).
- Cài đặt MySQL từ trang web chính thức (https://www.mysql.com).
- Tạo một thư mục mới cho dự án của bạn.
- Mở một terminal hoặc command prompt trong thư mục đó.
- Chạy
npm init -y
để tạo một file package.json. - Cài đặt gói MySQL bằng cách chạy
npm install mysql
.
Tuyệt vời! Bây giờ căn bếp của chúng ta đã sẵn sàng cho phép chúng ta thực hiện những phép màu mã code!
Kết nối đến MySQL
Hãy bắt đầu bằng cách thiết lập kết nối đến cơ sở dữ liệu MySQL của chúng ta. Dưới đây là một ví dụ:
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database_name'
});
connection.connect((err) => {
if (err) {
console.error('Error connecting to the database: ' + err.stack);
return;
}
console.log('Connected to the database.');
});
Hãy phân tích này:
- Chúng ta import gói MySQL.
- Chúng ta tạo một đối tượng kết nối với chi tiết cơ sở dữ liệu của chúng ta.
- Chúng ta sử dụng phương thức
connect()
để thiết lập kết nối. - Nếu có lỗi, chúng ta ghi lại nó. Nếu không, chúng ta xác nhận kết nối.
Nhớ thay thế 'your_username'
, 'your_password'
, và 'your_database_name'
bằng thông tin tài khoản MySQL thực tế của bạn.
Truy vấn SELECT Cơ bản
Bây giờ chúng ta đã kết nối, hãy lấy một số dữ liệu! Dưới đây là một truy vấn SELECT đơn giản:
connection.query('SELECT * FROM users', (error, results, fields) => {
if (error) throw error;
console.log('The users are: ', results);
});
Truy vấn này lấy tất cả các cột (*) từ bảng 'users'. Kết quả được trả về trong hàm回调. Nếu có lỗi, chúng ta ném nó. Nếu không, chúng ta ghi lại kết quả.
SELECT với Câu lệnh WHERE
Thường xuyên, chúng ta muốn lấy dữ liệu cụ thể. Hãy sử dụng câu lệnh WHERE:
const userId = 1;
connection.query('SELECT * FROM users WHERE id = ?', [userId], (error, results) => {
if (error) throw error;
console.log('User found: ', results[0]);
});
Ở đây, chúng ta đang lấy một người dùng với một ID cụ thể. Dấu '?' là một placeholder, và [userId] là giá trị thay thế nó. Điều này ngăn chặn các cuộc tấn công SQL injection - luôn sử dụng placeholder cho đầu vào của người dùng!
SELECT với ORDER BY
Muốn sắp xếp kết quả của bạn? Sử dụng ORDER BY:
connection.query('SELECT * FROM users ORDER BY name ASC', (error, results) => {
if (error) throw error;
console.log('Users sorted by name: ', results);
});
Truy vấn này sắp xếp người dùng theo tên của họ theo thứ tự tăng dần. Thay đổi ASC thành DESC để có thứ tự giảm dần.
SELECT với LIMIT
Để giới hạn số lượng kết quả, sử dụng LIMIT:
connection.query('SELECT * FROM users LIMIT 5', (error, results) => {
if (error) throw error;
console.log('First 5 users: ', results);
});
Truy vấn này chỉ trả về 5 người dùng đầu tiên từ bảng.
Kết hợp Nhiều Câu lệnh
Hãy kết hợp những gì chúng ta đã học:
const searchName = 'John';
const limit = 10;
connection.query(
'SELECT * FROM users WHERE name LIKE ? ORDER BY created_at DESC LIMIT ?',
['%' + searchName + '%', limit],
(error, results) => {
if (error) throw error;
console.log('Search results: ', results);
}
);
Truy vấn phức tạp này:
- Tìm kiếm người dùng có tên chứa 'John'
- Sắp xếp kết quả theo ngày tạo (mới nhất trước)
- Giới hạn kết quả thành 10
Đóng Kết nối
Luôn nhớ đóng kết nối khi bạn đã xong:
connection.end((err) => {
if (err) {
console.error('Error closing the connection: ' + err.stack);
return;
}
console.log('Connection closed successfully.');
});
Điều này đảm bảo rằng bạn không để lại bất kỳ kết nối mở nào, điều này có thể dẫn đến các vấn đề hiệu suất.
Tóm tắt Phương thức
Dưới đây là bảng tóm tắt các phương thức chúng ta đã覆盖:
Phương thức | Mô tả |
---|---|
createConnection() |
Tạo một kết nối đến cơ sở dữ liệu MySQL |
connect() |
Thiết lập kết nối cơ sở dữ liệu |
query() |
Thực hiện một truy vấn SQL |
end() |
Đóng kết nối cơ sở dữ liệu |
Kết luận
Chúc mừng! Bạn đã học cách thực hiện truy vấn SELECT sử dụng Node.js và MySQL. Nhớ rằng, thực hành là cách tốt nhất để trở thành người thạo. Hãy thử tạo các truy vấn khác nhau, thử nghiệm với các câu lệnh khác nhau, và sớm bạn sẽ trở thành một phù thủy cơ sở dữ liệu!
Khi kết thúc, đây là một chút hài hước lập trình: Tại sao các lập trình viên thích chế độ tối? Vì ánh sáng thu hút ruồi! ?
Tiếp tục lập trình, giữ vững sự tò mò, và đừng quên vui vẻ trên đường đi. Hẹn gặp lại, chúc bạn có những truy vấn vui vẻ!
Credits: Image by storyset