SQLite Select 语句

前面我们已经向 company 表中添加了 7 条员工数据,现在我们想查看我们插入的数据是什么样的,要怎么操作呢?

SQLite 的 SELECT 语句可以从表中获取数据,并以结果表的形式返回数据

这种结果表也被称为结果集

语法

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> SELECT * FROM company;
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
sqlite>

看到数据都黏在一起了,不方便查看。

可以通过点命令设置正确的格式化输出,点命令如下。

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 中的 id, name 和 salary 字段 则可以使用下面的查询语句

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
sqlite>

设置输出列的宽度

有时,.mode column 可能会因为要显示的列的默认宽度不够导致数据被截断。 此时,可以使用 .width num, num.... 命令设置显示列的宽度。

如下所示:

sqlite>.width 10, 20, 10
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

上面的 .width 命令设置第一列的宽度为 10,第二列的宽度为 20,第三列的宽度为 10

Schema 信息

因为所有的 点命令 只能在 SQLite 交互命令行中使用。

我们用其它语言操作 SQLite 时,就没法使用 .database ,.table,.schema 命令了

幸运的是,SQLite 把所有数据库,表,表结构信息存储在了 sqlite_master 表中 我们只需要使用 SELECT 就可以列出所有信息了。

列出数据库中创建的表:

sqlite> SELECT tbl_name FROM sqlite_master WHERE type = 'table';
tbl_name
----------
company
department
Run Time: real 0.000 user 0.000158 sys 0.000143

列出 company 表的完整信息

sqlite> SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'company';
sql
-----------------------------------------------------------------
CREATE TABLE company (
   id INT PRIMARY KEY     NOT NULL,
   name           TEXT    NOT NULL,
   age            INT     NOT NULL,
   address        CHAR(50),
   salary         REAL
)
Run Time: real 0.001 user 0.000151 sys 0.000136

SQLite 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.