Cách Viết Câu Truy Vấn MySQL Hiệu Quả

1. Thêm hoặc Thay Thế ------------------- Khi bạn muốn thêm dữ liệu vào cơ sở dữ liệu và đồng thời cập nhật nếu hàng đã tồn tại, có thể sử dụng câu lệnh REPLACE INTO. Ví dụ:

REPLACE INTO danh_sach_nguoi_dung (ma_so, ho_ten, tuoi) 
VALUES (1, 'Nam', 25);
Trong ví dụ này, nếu bản ghi với ma_so là 1 đã tồn tại, nó sẽ được thay thế bằng giá trị mới.
2. Thêm Hoặc Cập Nhật ------------------- Để thêm một hàng mới và cập nhật nếu hàng đó đã tồn tại dựa trên khóa chính, bạn có thể sử dụng câu lệnh INSERT ... ON DUPLICATE KEY UPDATE. Ví dụ:

INSERT INTO danh_sach_nguoi_dung (ma_so, ho_ten, tuoi)
VALUES (1, 'Lan', 30)
ON DUPLICATE KEY UPDATE ho_ten = VALUES(ho_ten), tuoi = VALUES(tuoi);
Câu lệnh này sẽ đảm bảo rằng nếu bản ghi với ma_so là 1 tồn tại, các trường ho_tentuoi sẽ được cập nhật.
3. Thêm Và Bỏ Qua Nếu Tồn Tại ------------------- Nếu bạn muốn bỏ qua việc thêm khi bản ghi đã tồn tại, có thể sử dụng câu lệnh INSERT IGNORE. Ví dụ:

INSERT IGNORE INTO danh_sach_nguoi_dung (ma_so, ho_ten, tuoi) 
VALUES (1, 'Hoa', 28);
Bản ghi sẽ không được thêm nếu ma_so đã tồn tại trong bảng.
4. Sử Dụng Điều Kiện IF Trong SQL ------------------- Để thực hiện điều kiện trong truy vấn, bạn có thể sử dụng hàm IF(). Ví dụ:

SELECT ma_so, ho_ten, IF(tuoi > 30, 'Người lớn', 'Trẻ') AS nhom_tuoi
FROM danh_sach_nguoi_dung;
Hàm IF() sẽ kiểm tra xem cột tuoi có lớn hơn 30 hay không và trả về kết quả tương ứng.
5. Tạo Bản Sao Lưu Dữ Liệu ------------------- Để xuất dữ liệu ra tệp CSV, bạn có thể sử dụng câu lệnh SELECT ... INTO OUTFILE. Ví dụ:

SELECT *
INTO OUTFILE '/tmp/danh_sach_nguoi_dung.csv'
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM danh_sach_nguoi_dung;
Câu lệnh này sẽ tạo một tệp CSV từ bảng danh_sach_nguoi_dung.
6. Chèn Kết Quả Truy Vấn Vào Bảng Khác ------------------- Để chèn kết quả của một truy vấn vào bảng khác, bạn có thể sử dụng câu lệnh INSERT INTO ... SELECT. Ví dụ:

INSERT INTO bang_moi (thong_tin_1, thong_tin_2, thong_tin_3)
SELECT thong_tin_a, thong_tin_b, thong_tin_c
FROM bang_cu;
Tất cả các giá trị từ bảng cũ sẽ được chèn vào bảng mới.
7. Sử Dụng Chỉ Định Chỉ Số ------------------- Để ép MySQL sử dụng chỉ số cụ thể, bạn có thể sử dụng từ khóa USE INDEX. Ví dụ:

SELECT *
FROM danh_sach_nguoi_dung USE INDEX (idx_ma_so)
WHERE ma_so = 1;
Câu lệnh này sẽ đảm bảo rằng chỉ số idx_ma_so được sử dụng để tìm kiếm.

Thẻ: mysql SQL_queries indexing

Đăng vào ngày 22 tháng 5 lúc 15:18