SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

SQLite - Chọn dữ liệu

Để 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 

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 cách trích xuất giá trị từ tài liệu JSON trong SQLite

  2. Đính kèm chuỗi trong dấu ngoặc kép trong kết quả truy vấn SQLite

  3. Giới hạn của các biến SQL mà người ta có thể chỉ định trong một truy vấn thực thi là gì

  4. Android:Lỗi Sqlite - (1) near null:lỗi cú pháp

  5. Tôi có nên tạo một lớp kế thừa SQLiteOpenHelper cho mỗi bảng trong cơ sở dữ liệu của mình không?