SQLite的SELECT语句用于从SQLite数据库表中获取数据,以结果表的形式返回数据。这些结果表也被称为结果集。
语法
SQLite的SELECT语句的基本语法如下:
SELECT column1, column2, columnN FROM table_name;
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';
> 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
)
参考:
https://www.yuque.com/docs/share/069f52c9-4fb7-4245-a004-5424aae1c72d