Truy vấn SELECT trong SQLite



Lệnh SELECT trong SQLite được sử dụng để lấy dữ liệu từ một bảng dữ liệu trong SQLite. Lệnh này trả về dữ liệu trong dạng bảng kết quả. Các bảng kết quả này cũng được gọi là các tập hợp kết quả.

Cú pháp

Cú pháp cơ bản của lệnh SELECT trong SQLite như sau:

SELECT column1, column2, columnN FROM table_name;

Ở đây, column1, column2, …, column là các trường của một bảng mà có các giá trị bạn muốn lấy. Nếu bạn muốn lấy tất cả giá trị của các trường, thì bạn có thể sử dụng cú pháp sau:

SELECT * FROM table_name;

Ví dụ

Bạn theo dõi bảng COMPANY có các bản ghi sau:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Ví dụ sau sẽ lấy và hiển thị tất cả các bản ghi bởi sử dụng lệnh SELECT. Ở đây, 2 lệnh đầu tiên đã được sử dụng để thiết lập định dạng của output:

sqlite>.header on
sqlite>.mode column
sqlite> SELECT * FROM COMPANY;

Bạn sẽ nhận được kết quả là:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Nếu bạn chỉ muốn lấy các trường đã chọn từ bảng COMPANY, bạn sử dụng truy vấn sau:

sqlite> SELECT ID, NAME, SALARY FROM COMPANY;

Truy vấn trên sẽ cho kết quả:

ID          NAME        SALARY
----------  ----------  ----------
1           Paul        20000.0
2           Allen       15000.0
3           Teddy       20000.0
4           Mark        65000.0
5           David       85000.0
6           Kim         45000.0
7           James       10000.0

Thiết lập độ rộng của cột trong output

Đôi khi, bạn sẽ gặp một tình huống liên quan tới việc output bị cắt xén trong trường hợp .mode column xuất hiện bởi vì độ rộng mặc định của cột đã được hiển thị. Điều bạn có thể làm là thiết lập độ rộng cột với lệnh .width num, num… (num là giá trị số) như sau:

sqlite>.width 10, 20, 10
sqlite>SELECT * FROM COMPANY;

Lệnh .width trên thiết lập độ rộng cột đầu tiên là 10, của cột thứ hai là 20 và của cột thứ ba là 10. Và sau đây là kết quả của lệnh SELECT trên:

ID          NAME                  AGE         ADDRESS     SALARY
----------  --------------------  ----------  ----------  ----------
1           Paul                  32          California  20000.0
2           Allen                 25          Texas       15000.0
3           Teddy                 23          Norway      20000.0
4           Mark                  25          Rich-Mond   65000.0
5           David                 27          Texas       85000.0
6           Kim                   22          South-Hall  45000.0
7           James                 24          Houston     10000.0

Thông tin Schema trong SQLite

Bởi vì tất cả các lệnh Dot Command là có sẵn chỉ tại dòng nhắc lệnh SQLite, vì thế trong khi lập trình với SQLite, bạn sẽ sử dụng lệnh sau để liệt kê tất cả các bảng đã tạo trong cơ sở dữ liệu của mình với lệnh SELECT sau:

sqlite> SELECT tbl_name FROM sqlite_master WHERE type = 'table';

Giả sử bạn chỉ có bảng COMPANY trong testDB.db, thì lệnh trên sẽ cho kết quả:

tbl_name
----------
COMPANY

Bạn có thể liệt kê toàn bộ thông tin về bảng COMPANY, như sau:

sqlite> SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'COMPANY';

Giả sử bạn chỉ có bảng COMPANY trong testDB.db, thì lệnh trên sẽ cho kết quả:

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
)

Các bài học SQLite phổ biến khác tại VietJack: