SQLite SELECT命令
SQLite SELECT命令
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
设置输出列宽
有时,您将面临输出截断相关的问题。由于要显示的列的默认宽度太小而无法展示数据。您可以使用 .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信息
由于所有dot命令在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 )