Để chọn dữ liệu từ cơ sở dữ liệu SQLite, hãy sử dụng SELECT
tuyên bố.
Khi bạn sử dụng câu lệnh này, bạn chỉ định / s bảng để chọn dữ liệu, cũng như các cột để trả về từ truy vấn.
Bạn cũng có thể cung cấp các tiêu chí bổ sung để thu hẹp hơn nữa dữ liệu được trả về.
SELECT
đơn giản Tuyên bố
Chúng tôi đã sử dụng SELECT
trước đây, khi chúng tôi chèn dữ liệu.
Câu lệnh chúng tôi sử dụng là:
SELECT * FROM Artists;
Điều này khá dễ hiểu - nó yêu cầu SQLite chọn tất cả các cột từ
Artists
bàn. Dấu hoa thị (*
) là cách nói ngắn gọn của "tất cả các cột". Nó giúp chúng ta viết ra tên của tất cả các cột.
Do đó, truy vấn này trả về tất cả các bản ghi và tất cả các cột. Như thế này:
1|Joe Satriani 2|Steve Vai 3|The Tea Party 4|Noiseworks 5|Wayne Jury 6|Mr Percival 7|Iron Maiden 8|Atmasphere 9|Ian Moss 10|Magnum 11|Strapping Young Lad 12|Slayer 13|Primus 14|Pat Metheny 15|Frank Gambale 16|Frank Zappa 17|The Wiggles
Định dạng
Hãy định dạng đầu ra để kết quả của chúng ta dễ đọc hơn một chút.
Sử dụng các cột
Bạn có thể sử dụng .mode
để thay đổi chế độ đầu ra. Ví dụ trên sử dụng .mode list
, hiển thị kết quả dưới dạng danh sách.
Hãy thay đổi chế độ để sử dụng các cột.
.mode column
Khi làm điều này, bạn có thể cần phải điều chỉnh độ rộng của cột (bất kỳ dữ liệu nào quá rộng đối với cột sẽ bị cắt bớt).
Điều chỉnh độ rộng của cột
Để điều chỉnh độ rộng của cột, hãy sử dụng .width
, theo sau là độ rộng cho mỗi cột.
Ví dụ sau đặt cột đầu tiên thành 12
và cột thứ hai thành 20
.
.width 12 20
Thêm tiêu đề
Bạn cũng có thể sử dụng .headers
để chỉ định có hiển thị tiêu đề cột hay không.
Để hiển thị các tiêu đề, hãy sử dụng cái này:
.headers on
Bạn có thể xóa chúng bằng cách .headers off
.
Hiển thị cài đặt
Bạn có thể xem lại các cài đặt này và các cài đặt khác bất kỳ lúc nào bằng cách nhập .show
sqlite> .show echo: off eqp: off explain: off headers: on mode: column nullvalue: "" output: stdout separator: "|" stats: off width: 12 20
Định dạng mới
Đây là ví dụ trước trông như thế nào khi sử dụng chế độ cột và tiêu đề:
ArtistId ArtistName ---------- ------------ 1 Joe Satriani 2 Steve Vai 3 The Tea Part 4 Noiseworks 5 Wayne Jury 6 Mr Percival 7 Iron Maiden 8 Atmasphere 9 Ian Moss 10 Magnum 11 Strapping Yo 12 Slayer 13 Primus 14 Pat Metheny 15 Frank Gambal 16 Frank Zappa 17 The Wiggles
WHERE
Mệnh đề
Bạn có thể sử dụng WHERE
mệnh đề thu hẹp kết quả. Điều khoản cho phép bạn quy định các tiêu chí cụ thể để áp dụng cho truy vấn.
Ví dụ, bạn có thể chỉ định rằng chỉ các bản ghi, trong đó một trường nhất định chứa một giá trị nhất định sẽ được trả về.
Đây là một ví dụ rất cụ thể. Nó chỉ định rằng chỉ bản ghi có ArtistId bằng 6 nên được trả lại:
SELECT * FROM Artists WHERE ArtistId = 6;
Kết quả:
ArtistId ArtistName ------------ -------------------- 6 Mr Percival
Để tìm tất cả các nghệ sĩ có tên bắt đầu bằng chữ "S", bạn có thể làm như sau:
SELECT * FROM Artists WHERE ArtistName LIKE 'S%';
Kết quả:
ArtistId ArtistName ------------ -------------------- 2 Steve Vai 11 Strapping Young Lad 12 Slayer
Dấu phần trăm (%
) là một ký tự đại diện có thể được sử dụng để chỉ định bất kỳ ký tự nào. Vì vậy, trong ví dụ này, chúng tôi chỉ định rằng tên của nghệ sĩ phải giống như mẫu này (tức là mẫu bắt đầu bằng chữ cái
S
và theo sau với bất kỳ ký tự nào khác).
Một ví dụ khác về việc sử dụng WHERE
mệnh đề là truy xuất một phạm vi giá trị. Ví dụ:chúng tôi có thể tìm kiếm các bản ghi trong đó giá trị nhỏ hơn một số, lớn hơn một số hoặc trong một phạm vi nhất định.
Đây là một ví dụ về việc chỉ chọn những bản ghi có ArtistId ít hơn một số:
SELECT * FROM Artists WHERE ArtistId < 6;
Kết quả:
ArtistId ArtistName ------------ -------------------- 1 Joe Satriani 2 Steve Vai 3 The Tea Party 4 Noiseworks 5 Wayne Jury
Đây là một ví dụ về việc chỉ chọn những bản ghi có ArtistId trong một phạm vi nhất định:
SELECT * FROM Artists WHERE ArtistId BETWEEN 5 AND 10;
Kết quả:
ArtistId ArtistName ------------ -------------------- 5 Wayne Jury 6 Mr Percival 7 Iron Maiden 8 Atmasphere 9 Ian Moss 10 Magnum
Chọn cột
Bạn có thể chỉ định rằng chỉ một số cột nhất định được trả về trong tập kết quả. Chỉ cần viết tên cột trong truy vấn. Nhiều tên cột cần được phân tách bằng dấu phẩy.
Thực hành tốt là chọn ony những cột bạn cần. Sử dụng *
, mặc dù thuận tiện, nhưng có thể gây ra thêm chi phí nếu nó trả về nhiều cột hơn mức cần thiết.
Vì vậy, hãy chạy lại cùng một truy vấn, nhưng lần này, chỉ chọn ArtistName cột:
SELECT ArtistName FROM Artists WHERE ArtistId BETWEEN 5 AND 10;
Kết quả:
ArtistName ------------ Wayne Jury Mr Percival Iron Maiden Atmasphere Ian Moss Magnum
ORDER BY
Mệnh đề
Bạn có thể sử dụng ORDER BY
điều khoản để giới hạn số lượng hồ sơ trả về.
Bạn có thể thêm ASC
cho thứ tự tăng dần, hoặc DESC
cho thứ tự giảm dần. Nếu bạn không thêm bất cứ điều gì, nó sẽ sử dụng tăng dần.
Ở đây, chúng tôi đặt hàng theo ArtistName trường theo thứ tự tăng dần:
SELECT * FROM Artists ORDER BY ArtistName;
Kết quả:
ArtistId ArtistName ------------ -------------------- 8 Atmasphere 15 Frank Gambale 16 Frank Zappa 9 Ian Moss 7 Iron Maiden 1 Joe Satriani 10 Magnum 6 Mr Percival 4 Noiseworks 14 Pat Metheny 13 Primus 12 Slayer 2 Steve Vai 11 Strapping Young Lad 3 The Tea Party 17 The Wiggles 5 Wayne Jury
Và nếu chúng ta chuyển sang thứ tự giảm dần:
SELECT * FROM Artists ORDER BY ArtistName DESC;
Kết quả:
ArtistId ArtistName ------------ -------------------- 5 Wayne Jury 17 The Wiggles 3 The Tea Party 11 Strapping Young Lad 2 Steve Vai 12 Slayer 13 Primus 14 Pat Metheny 4 Noiseworks 6 Mr Percival 10 Magnum 1 Joe Satriani 7 Iron Maiden 9 Ian Moss 16 Frank Zappa 15 Frank Gambale 8 Atmasphere
LIMIT
Mệnh đề
Bạn có thể sử dụng LIMIT
điều khoản để giới hạn số lượng hồ sơ trả về. Điều này có thể hữu ích nếu bảng của bạn chứa một số lượng lớn các bản ghi nhưng bạn chỉ muốn xem một số ít.
Ở đây, chúng tôi giới hạn bộ kỷ lục chỉ có năm bản ghi:
SELECT * FROM Artists LIMIT 5;
Kết quả:
ArtistId ArtistName ------------ -------------------- 1 Joe Satriani 2 Steve Vai 3 The Tea Party 4 Noiseworks 5 Wayne Jury