SQLite Select 語句
sqlite 的 select 語句用于從 sqlite 數據庫表中獲取數據,以結果表的形式返回數據。這些結果表也被稱為結果集。
1. 語法
sqlite 的 select 語句的基本語法如下:
select column1, column2, columnn from table_name;
在這里,column1, column2...是表的字段,他們的值即是您要獲取的。如果您想獲取所有可用的字段,那么可以使用下面的語法:
select * from table_name;
2. 范例
假設 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
3. 設置輸出列的寬度
有時,由于要顯示的列的默認寬度導致 .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
4. 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 )