位置:首頁 > 數據庫 > SQLite基礎教程 > SQLite SELECT查詢

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列,這是因為要顯示的列的默認寬度。可以設置顯示的列柱 .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使用下麵的語句,列出了所有在數據庫中創建表,使用下麵的SELECT語句 及 sqlite_master 表: 

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
)