Tóm tắt :trong hướng dẫn này, bạn sẽ học cách sử dụng SQLite SELECT
để truy vấn dữ liệu từ một bảng.
SELECT
câu lệnh là một trong những câu lệnh được sử dụng phổ biến nhất trong SQL. SQLite SELECT
câu lệnh cung cấp tất cả các tính năng của SELECT
câu lệnh trong chuẩn SQL.
Cách sử dụng đơn giản của SELECT
tuyên bố
Bạn có thể sử dụng SELECT
để thực hiện một phép tính đơn giản như sau:
SELECT 1 + 1;
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Bạn có thể sử dụng nhiều biểu thức trong SELECT
tuyên bố như sau:
SELECT
10 / 5,
2 * 4 ;
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Truy vấn dữ liệu từ bảng bằng SELECT
tuyên bố
Chúng tôi thường sử dụng SELECT
câu lệnh để truy vấn dữ liệu từ một hoặc nhiều bảng. Cú pháp của SELECT
như sau:
SELECT DISTINCT column_list
FROM table_list
JOIN table ON join_condition
WHERE row_filter
ORDER BY column
LIMIT count OFFSET offset
GROUP BY column
HAVING group_filter;
Code language: SQL (Structured Query Language) (sql)
SELECT
câu lệnh là câu lệnh phức tạp nhất trong SQLite. Để giúp dễ hiểu hơn từng phần, chúng tôi sẽ ngắt SELECT
tuyên bố thành nhiều hướng dẫn dễ hiểu.
- Sử dụng mệnh đề ORDER BY để sắp xếp tập hợp kết quả
- Sử dụng mệnh đề DISTINCT để truy vấn các hàng duy nhất trong bảng
- Sử dụng mệnh đề WHERE để lọc các hàng trong tập kết quả
- Sử dụng mệnh đề LIMIT OFFSET để hạn chế số lượng hàng được trả về
- Sử dụng INNER JOIN hoặc LEFT JOIN để truy vấn dữ liệu từ nhiều bảng bằng phép nối.
- Sử dụng GROUP BY để sắp xếp các hàng trong nhóm và áp dụng hàm tổng hợp cho từng nhóm.
- Sử dụng mệnh đề HAVING để lọc các nhóm
Trong hướng dẫn này, chúng ta sẽ tập trung vào dạng đơn giản nhất của SELECT
câu lệnh cho phép bạn truy vấn dữ liệu từ một bảng.
SELECT column_list
FROM table;
Code language: SQL (Structured Query Language) (sql)
Mặc dù SELECT
mệnh đề xuất hiện trước FROM
mệnh đề, SQLite đánh giá FROM
trước rồi đến mệnh đề SELECT
, do đó:
- Đầu tiên, hãy chỉ định bảng mà bạn muốn lấy dữ liệu từ trong
FROM
mệnh đề. Lưu ý rằng bạn có thể có nhiều hơn một bảng trongFROM
mệnh đề. Chúng ta sẽ thảo luận về vấn đề này trong phần hướng dẫn tiếp theo. - Thứ hai, chỉ định một cột hoặc danh sách các cột được phân tách bằng dấu phẩy trong
SELECT
mệnh đề.
Bạn sử dụng dấu chấm phẩy (;) để kết thúc câu lệnh.
SQLite SELECT
ví dụ
Hãy cùng xem qua tracks
trong cơ sở dữ liệu mẫu.
tracks
bảng chứa các cột và hàng. Nó trông giống như một bảng tính.
Để lấy dữ liệu từ bảng bản nhạc, chẳng hạn như trackid, tên bản nhạc, nhà soạn nhạc và đơn giá, bạn sử dụng câu lệnh sau:
SELECT
trackid,
name,
composer,
unitprice
FROM
tracks;
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Bạn chỉ định tên cột danh sách, mà bạn muốn lấy dữ liệu, trong SELECT
mệnh đề và tracks
trong FROM
mệnh đề. SQLite trả về kết quả sau:
Để lấy dữ liệu từ tất cả các cột, bạn chỉ định các cột của tracks
trong SELECT
mệnh đề như sau:
SELECT
trackid,
name,
albumid,
mediatypeid,
genreid,
composer,
milliseconds,
bytes,
unitprice
FROM
tracks;
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Đối với một bảng có nhiều cột, truy vấn sẽ dài đến mức mất nhiều thời gian để nhập. Để tránh điều này, bạn có thể sử dụng dấu hoa thị (*), là cách viết tắt cho tất cả các cột của bảng như sau:
SELECT * FROM tracks;
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Truy vấn bây giờ ngắn hơn và rõ ràng hơn.
Tuy nhiên…
Bạn chỉ nên sử dụng dấu hoa thị (*) cho mục đích thử nghiệm, không phải để phát triển ứng dụng thực.
Bởi vì…
Khi bạn phát triển một ứng dụng, bạn nên kiểm soát những gì SQLite trả về cho ứng dụng của bạn. Giả sử, một bảng có 3 cột và bạn sử dụng dấu hoa thị (*) để truy xuất dữ liệu từ cả ba cột.
Điều gì sẽ xảy ra nếu ai đó xóa một cột, ứng dụng của bạn sẽ không hoạt động bình thường, vì nó giả định rằng có ba cột được trả về và logic để xử lý ba cột đó sẽ bị hỏng.
Nếu ai đó thêm nhiều cột hơn, ứng dụng của bạn có thể hoạt động nhưng nhận được nhiều dữ liệu hơn mức cần thiết, điều này tạo ra nhiều I / O hơn giữa cơ sở dữ liệu và ứng dụng.
Vì vậy, hãy cố gắng tránh sử dụng dấu hoa thị (*) như một thói quen tốt khi bạn sử dụng SELECT
tuyên bố.
Trong hướng dẫn này, bạn đã học cách sử dụng một dạng đơn giản của SQLite SELECT
để truy vấn dữ liệu từ một bảng.