SQLite 的 SELECT 語句用于從 SQLite 數(shù)據(jù)庫表中獲取數(shù)據(jù),以結(jié)果表的形式返回?cái)?shù)據(jù)。這些結(jié)果表也被稱為結(jié)果集混蔼。
語法
SQLite 的 SELECT 語句的基本語法如下:
SELECT column1, column2, columnN FROM table_name;
在這里,column1, column2...是表的字段,他們的值即是您要獲取的昭抒。如果您想獲取所有可用的字段,那么可以使用下面的語法:
SELECT * FROM table_name;
實(shí)例
假設(shè) 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
下面是一個(gè)實(shí)例炼杖,使用 SELECT 語句獲取并顯示所有這些記錄灭返。在這里,前三個(gè)命令被用來設(shè)置正確格式化的輸出坤邪。
sqlite>.header on
sqlite>.mode column
sqlite> SELECT * FROM COMPANY;
最后熙含,將得到以下的結(jié)果:
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;
上面的查詢會(huì)產(chǎn)生以下結(jié)果:
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
設(shè)置輸出列的寬度
有時(shí)艇纺,由于要顯示的列的默認(rèn)寬度導(dǎo)致截?cái)?.mode 列怎静,這種情況下邮弹,輸出被截?cái)唷4藭r(shí)蚓聘,您可以使用 .width num, num.... 命令設(shè)置顯示列的寬度腌乡,如下所示:
sqlite>.width 10, 20, 10
sqlite>SELECT * FROM COMPANY;
上面的 .width 命令設(shè)置第一列的寬度為 10,第二列的寬度為 20夜牡,第三列的寬度為 10与纽。因此上述 SELECT 語句將得到以下結(jié)果:
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 信息
因?yàn)樗械狞c(diǎn)命令只在 SQLite 提示符中可用,所以當(dāng)您進(jìn)行帶有 SQLite 的編程時(shí)塘装,您要使用下面的帶有 sqlite_master 表的 SELECT 語句來列出所有在數(shù)據(jù)庫中創(chuàng)建的表:
sqlite> SELECT tbl_name FROM sqlite_master WHERE type = 'table';
假設(shè)在 testDB.db 中已經(jīng)存在唯一的 COMPANY 表渣锦,則將產(chǎn)生以下結(jié)果:
tbl_name
----------
COMPANY
您可以列出關(guān)于 COMPANY 表的完整信息,如下所示:
sqlite> SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'COMPANY';
假設(shè)在 testDB.db 中已經(jīng)存在唯一的 COMPANY 表氢哮,則將產(chǎn)生以下結(jié)果:
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
)
參考:http://www.w3cschool.cc/sqlite/sqlite-select.html