Query trong sqlite
I. Nhóm thao tác dữ liệu (CRUD)
-
SELECT: Lấy dữ liệu từ bảng
- SELECT * FROM settings: lấy tất cả
- SELECT key, value FROM settings: Chỉ lấy cột cụ thể
-
INSERT INTO: Thêm dữ liệu mới
- INSERT INTO settings (id, key, value) VALUES (1, 'theme', 'dark');
-
UPDATE: chỉnh sửa dữ liệu đã có
- UPDATE settings SET value = 'light' WHERE key = 'theme';
-
DELETE: Xóa dữ liệu
- DELETE FROM settings WHERE id = 1
II. Nhóm lọc và sắp xếp
Giúp ta lấy chính xác thứ mình cần thay vì lấy một đống dữ liệu
- WHERE: Bộ lọc điều kiện.
- SELECT * FROM settings WHERE id > 10 AND key LIKE '%color%';
- ORDER BY: Sắp xếp kết quả.
- SELECT * FROM settings ORDER BY id DESC; (Giảm dần)
- DISTINCT: Loại bỏ các kết quả trùng lặp.
- SELECT DISTINCT key FROM settings;
- LIMIT / OFFSET: Giới hạn số lượng bản ghi trả về (rất quan trọng để làm phân trang).
- SELECT * FROM settings LIMIT 10 OFFSET 0; (Lấy 10 dòng đầu tiên)
III. Nhóm tổng hợp và thống kê
Dùng khi bạn cần tính toán thay vì chỉ liệt kê.
-
COUNT(): Đếm số dòng.
- SELECT COUNT(*) FROM settings;
-
SUM(), AVG(), MIN(), MAX(): Tính tổng, trung bình, nhỏ nhất, lớn nhất.
- SELECT MAX(id) FROM settings;
-
GROUP BY: Nhóm các dòng có cùng giá trị.
- SELECT key, COUNT(*) FROM settings GROUP BY key;
-
HAVING: Bộ lọc điều kiện dành riêng cho các nhóm sau khi GROUP BY.
- SELECT key FROM settings GROUP BY key HAVING COUNT(*) > 1;
Một số lưu ý
- Sử dụng
INDEX: Nếu table lên đến hàng nghìn dòng, hãy tạo index cho các cột hay dùng để tìm kiếm. Tốc độ tìm kiếm sẽ nhanh hơn rất nhiều. - Transaction. Nếu cần chèn 1000 dữ liệu, đừng gọi 1000 lần insert. Hãy bọc chúng vào trong một transaction -> giúp tốc độ ghi vào ổ cứng nhanh hơn.
All rights reserved