介绍

SQLite是一个免费的跨平台数据库管理系统。它因其效率和与许多不同编程语言接口的能力而广受欢迎。

在本教程中,您将在 Ubuntu 20.04 上安装 SQLite。然后,您将创建一个数据库、从中读取数据、插入项目、删除项目以及从单独的表中连接项目。

先决条件

要完成本教程,您将需要:

  • 运行 Ubuntu 20.04 的本地机器或服务器。要设置服务器,包括非 root sudo 用户和防火墙。

第 1 步:在 Ubuntu 20.04 上安装 SQLite

要在 Ubuntu 上安装 SQLite 命令行界面,首先更新您的软件包列表:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt update

现在安装 SQLite:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install sqlite3

要验证安装,请检查软件的版本:

linuxmi@linuxmi:~/www.linuxmi.com$ sqlite3 –version

您将收到如下输出:

3.37.0 2021-11-27 14:13:22 bd41822c7424d393a30e92ff6cb254d25c26769889c1499a18a0b9339f5d6c8a

安装 SQLite 后,您现在可以创建新数据库了。

第 2 步:创建 SQLite 数据库

在此步骤中,您将创建一个包含不同鲨鱼及其属性的数据库。要创建数据库,请打开终端并运行以下sqlite3命令:

linuxmi@linuxmi:~/www.linuxmi.com$ sqlite3 linuxmi.db

这将创建一个名为linuxmi 如果文件linuxmi.db已经存在,SQLite 将打开一个连接;如果它不存在,SQLite 将创建它。

您将收到如下输出:

SQLite version 3.37.0 2021-11-27 14:13:22
Enter ".help" for usage hints.

在此之后,您的提示将发生变化。一个新的前缀sqlite>, 现在出现:

sqlite>

如果该文件linuxmi.db尚不存在,并且您在sqlite未运行任何查询的情况下退出升级,则不会创建sharks.db文件。为了确保文件被创建,您可以通过键入;然后按“Enter”来运行一个空查询。这样,您将确保实际创建了数据库文件。

创建 Shark 数据库后,您现在将创建一个新表并用数据填充它。

第 3 步:创建 SQLite 表

SQLite 数据库被组织成表。表存储信息。为了更好地可视化表格,可以想象行和列。

本教程的其余部分将遵循输入 SQLite 命令的通用约定。SQLite 命令是大写的,用户信息是小写的。行必须以分号结尾。

现在让我们为各种数据创建一个表和一些列:

  • ID
  • name(名字)
  • type(类型)
  • 数值

使用以下命令创建表:

sqlite> CREATE TABLE linuxmi(id integer NOT NULL, name text NOT NULL, sharktype text NOT NULL, length integer NOT NULL);

使用NOT NULL使该字段成为必需的。我们将NOT NULL在下一节中更详细地讨论。

创建表后,将返回一个空提示。现在让我们在其中插入一些值。

将值插入表中

在 SQLite 中,将值插入表的命令遵循以下一般形式:

sqlite> INSERT INTO tablename VALUES(值到这里);

表的名称在tablename这里,values值在括号内。

现在在linuxmi表中的VALUES中插入三行:

  • sqlite> INSERT INTO linuxmi VALUES (1, “Ubuntu”, “Linux”, 500);
  • sqlite> INSERT INTO linuxmi VALUES (2, “SQLite”, “SQL”, 600);
  • sqlite> INSERT INTO linuxmi VALUES (3, “Python”, “Programming”, 1000);

因为您之前NOT NULL为表中的每个变量指定了值,所以您必须为每个变量输入一个值。

例如,尝试添加另一条linuxmi而不设置其数值:

sqlite> INSERT INTO linuxmi VALUES (4, "Html", "WEB");

您将收到如下错误:

Error: in prepare, table linuxmi has 4 columns but 3 values were supplied (1)Error: table sharks has 4 columns but 3 values were supplied

以上步骤如下图:

在此步骤中,您创建了一个表并向其中插入了值。在下一步中,您将从数据库表中读取。

第 4 步:在 SQLite 中读取表

在这一步中,我们将重点介绍从表中读取数据的最基本方法。认识到 SQLite 提供了更具体的方法来查看表中的数据。

要查看包含所有插入值的表,请使用SELECT

sqlite> SELECT * FROM linuxmi;

您将看到之前插入的条目:

1|Ubuntu|Linux|500
2|SQLite|SQL|600
3|Python|Programming|1000

要根据条目id(我们手动设置的值)查看条目,请将WHERE命令添加到您的查询中:

sqlite> SELECT * FROM linuxmi WHERE id IS 2;

这将返回id等于的linuxmi2

2|SQLite|SQL|600

让我们仔细看看这个命令。

  1. 首先,我们SELECT所有的 ( *) 值都来自我们的数据库,linuxmi.
  2. 然后我们查看所有id值。
  3. 然后我们返回所有id等于 的表条目2

如下图:

到目前为止,您已经创建了一个表,向其中插入了数据,并查询了保存的数据。现在您将更新现有表。

第 5 步:在 SQLite 中更新表

在以下两部分中,您将首先向现有表中添加一个新列,然后更新表中的现有值。

向 SQLite 表添加列

SQLite 允许您使用ALTER TABLE命令更改表。这意味着您可以创建新的行和列,或修改现有的行和列。

使用ALTER TABLE创建一个新列。

sqlite> ALTER TABLE linuxmi ADD COLUMN xxvi integer;

您现在有第五列,xxvi.

更新 SQLite 表中的值

使用该UPDATE命令,xxvi为每条linuxmi添加新值:

sqlite> UPDATE linuxmi SET xxvi = 168 WHERE id=1;
sqlite> UPDATE linuxmi SET xxvi = 178 WHERE id=2;
sqlite> UPDATE linuxmi SET xxvi = 688 WHERE id=3;

如下图:

在此步骤中,您更改了表格的组成,然后更新了表格内的值。在下一步中,您将从表中删除信息。

第 6 步:在 SQLite 中删除信息

在此步骤中,您将根据对参数的评估删除表中的条目。

在下面的命令中,您将查询数据库并请求它删除表中xxvi小于200的所有linuxmi:

sqlite> DELETE FROM linuxmi WHERE xxvi <= 200;

键入 SELECT * FROM linuxmi;将验证UbuntuSQLite,xxvi 列都小于 200 ,将被删除。只剩Python这一行:

如下:

3|Python|Programming|1000|688

第 7 步:在 SQLite 中加入信息

假设我们有两个表:当前linuxmi表和一个dashixiong表。现在,如果该dashixiong表有一个id映射到linuxmi表中id的值,并且它还有一个status值来指示linuxmi的状态?

如果你想从两个表中查询数据,你可以使用 SQLite 的四个JOIN连接命令之一:

  • INNER JOIN
  • OUTER JOIN
  • LEFT JOIN
  • CROSS JOIN

让我们创建第二个表,然后用于INNER JOIN连接一些数据。

首先,创建你的dashixiong表:

sqlite> CREATE TABLE dashixiong (id integer NOT NULL, status text NOT NULL);
sqlite> INSERT INTO dashixiong VALUES (1, "www.linuxmi.com");

如下图

现在加入你的表:

sqlite> SELECT * FROM linuxmi INNER JOIN dashixiong on linuxmi.id = dashixiong.id;

您的输出将如下所示:

1|Ubuntu|Linux|500|168|1|www.linuxmi.comr

如下图:

请注意,输出还包括来自 dashixiong 的id 值。 您可以使用更明确的命令指定所需的输出

sqlite> SELECT linuxmi.id, linuxmi.name, linuxmi.sharktype, linuxmi.length, linuxmi.xxvi, dashixiong.status FROM linuxmi INNER JOIN dashixiong on linuxmi.id = dashixiong.id;

这次输出不包括第二个值的id

1|Ubuntu|Linux|500|168|www.linuxmi.com

如下图:

您现在已经成功地连接了来自多个表的信息。

你也可以使用 可视化数据库浏览器 DB Browser for SQLite 来浏览修改 SQLite 数据库,具体见:https://www.linuxmi.com/db-browser-for-sqlite-linux.html

结论

SQLite 是一个有用的数据库管理工具。人们可以快速创建一个数据库并使用各种命令对其进行操作。按照本教程,您现在对 SQLite 有了基本的了解,并准备深入了解这个数据库管理系统。

对于 SQLite 语法的具体帮助,应该说官方文档是一个很好的资源。

1 个评论

  1. 编译、安装SQLite引擎

    到SQLite官网的下载页面:https://www.sqlite.org/download.html 这里是最新的版本,我们就安装它吧。

    源码有两个文件,我们下第二个(sqlite-autoconf-3370000.tar.gz),连接:https://www.sqlite.org/2021/sqlite-autoconf-3370000.tar.gz
    因为这个有配置文件。复制其链接,然后在终端执行:
    wget https://www.sqlite.org/2021/sqlite-autoconf-3370000.tar.gz
    tar zxvf sqlite-autoconf-3370000.tar.gz
    cd sqlite-autoconf-3370000

    ./configure
    make
    sudo make install
    以默认方式安装后,会把编译好的二进制文件安装到 /usr/local/lib, 把头文件sqlite3.h sqlite3ext.h安装到/usr/local/include。

    用这两条命令确认一下已成功安装到这里:
    ls -l /usr/local/lib/*sqlite*
    ls -l /usr/local/include/*sqlite*

    linuxmi

发表评论