Latest web development tutorials

SQLite Select 語句

SQLite的SELECT語句用於從SQLite數據庫表中獲取數據,以結果表的形式返回數據。 這些結果表也被稱為結果集。

語法

SQLite 的SELECT 語句的基本語法如下:

SELECT column1, column2, columnN FROM table_name;

在這裡,column1, column2...是表的字段,他們的值即是您要獲取的。 如果您想獲取所有可用的字段,那麼可以使用下面的語法:

SELECT * FROM table_name;

實例

假設COMPANY 表有以下記錄:

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

下面是一個實例,使用SELECT 語句獲取並顯示所有這些記錄。 在這裡,前三個命令被用來設置正確格式化的輸出。

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

最後,將得到以下的結果:

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

如果只想獲取COMPANY 表中指定的字段,則使用下面的查詢:

sqlite> SELECT ID, NAME, SALARY FROM COMPANY;

上面的查詢會產生以下結果:

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

設置輸出列的寬度

有時,由於要顯示的列的默認寬度導致.mode column ,這種情況下,輸出被截斷。 此時,您可以使用.width num, num....命令設置顯示列的寬度,如下所示:

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

上面的.width命令設置第一列的寬度為10,第二列的寬度為20,第三列的寬度為10。 因此上述SELECT 語句將得到以下結果:

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

Schema 信息

因為所有的點命令只在SQLite提示符中可用,所以當您進行帶有SQLite的編程時,您要使用下面的帶有sqlite_master表的SELECT語句來列出所有在數據庫中創建的表:

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

假設在testDB.db 中已經存在唯一的COMPANY 表,則將產生以下結果:

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

您可以列出關於COMPANY 表的完整信息,如下所示:

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

假設在testDB.db 中已經存在唯一的COMPANY 表,則將產生以下結果:

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