创建和管理 SQLite 数据库

SQLiteBeginner
立即练习

介绍

在本实验中,你将学习使用 sqlite3 命令行工具处理 SQLite 数据库的基础知识。SQLite 是一个轻量级的、基于文件的数据库系统,非常适合初学者。你将创建数据库、创建表、插入数据、查询数据、添加列、更新数据,并最终删除数据库文件。让我们开始吧!

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 85%。获得了学习者 99% 的好评率。

创建 SQLite 数据库并连接

在此步骤中,你将创建一个新的 SQLite 数据库文件,并使用 sqlite3 命令行工具连接到它。

  1. 在 LabEx VM 环境中打开终端。默认情况下,你应该位于 /home/labex/project 目录。通过运行以下命令确认:

    pwd

    输出应为:

    /home/labex/project

    如果你不在该目录,请运行以下命令导航到它:

    cd /home/labex/project
  2. 创建一个名为 mydatabase.db 的新 SQLite 数据库,并使用 sqlite3 命令连接到它:

    sqlite3 mydatabase.db

    如果 mydatabase.db 文件不存在,此命令将创建它并打开一个连接。你将看到 SQLite 提示符:

    SQLite version 3.x.x
    Enter ".help" for usage hints.
    sqlite>

sqlite3 命令用于创建和连接 SQLite 数据库。如果指定的数据库文件不存在,SQLite 将会创建它。现在你已准备好在 SQLite 环境中执行 SQL 命令。

创建 users 表

在此步骤中,你将在 mydatabase.db 数据库中创建一个名为 users 的表。

在 SQLite 提示符下,使用以下 SQL 命令创建一个名为 users 的表:

CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    age INTEGER
);

此命令定义了 users 表的结构。id 列是整数类型,并且是主键 (PRIMARY KEY),确保每个用户都有唯一的标识符。name 列是文本字段,不能为空 (NOT NULL),而 age 列是整数类型。

CREATE TABLE 命令是用于定义数据库中表结构的 SQL 基本命令。PRIMARY KEY 约束确保 id 列为每行包含唯一值,而 NOT NULL 约束确保 name 列不能为空。

向 users 表插入数据

现在你已经创建了 users 表,可以向其中插入数据了。这包括向表中添加行(记录),每一行代表一个用户及其相应的信息。

使用 INSERT INTO 命令向 users 表插入以下记录:

INSERT INTO users (id, name, age) VALUES (1, 'Alice', 25);
INSERT INTO users (id, name, age) VALUES (2, 'Bob', 30);
INSERT INTO users (id, name, age) VALUES (3, 'Charlie', 22);

这些命令向 users 表添加了三行新记录。每一行都包含一个 id、一个 name 和一个 age

INSERT INTO 命令用于向表中添加新行。在 VALUES 子句中指定的值会被插入到表名后括号中列出的相应列。

从 users 表查询数据

在此步骤中,你将学习如何使用 SELECT 命令从 users 表查询数据。这允许你从数据库中检索特定信息。

使用以下 SQL 命令从 users 表检索所有数据:

SELECT * FROM users;

此命令选择 users 表中的所有行 (rows) 的所有列 (*)。输出将显示你在上一步插入的数据。你应该会看到类似以下内容:

1|Alice|25
2|Bob|30
3|Charlie|22

SELECT 命令是用于从数据库检索数据的强大工具。* 通配符指定应选择所有列。你也可以通过列出列名并用逗号分隔来选择特定列(例如,SELECT name, age FROM users;)。

添加新列并更新数据

在此步骤中,你将向 users 表添加一个名为 email 的新列,然后更新现有记录的电子邮件地址。

  1. 使用 ALTER TABLE 命令向 users 表添加一个名为 email 的新列:

    ALTER TABLE users ADD COLUMN email TEXT;

    此命令向 users 表添加了一个名为 email 的新列,类型为 TEXT

  2. 使用 UPDATE 命令为每个用户更新 email 列:

    UPDATE users SET email = 'alice@example.com' WHERE id = 1;
    UPDATE users SET email = 'bob@example.com' WHERE id = 2;
    UPDATE users SET email = 'charlie@example.com' WHERE id = 3;

    这些命令为每个用户更新了 email 列,并赋予了相应的电子邮件地址。

  3. 通过查询 users 表来检查更新后的数据:

    SELECT * FROM users;
    1|Alice|25|alice@example.com
    2|Bob|30|bob@example.com
    3|Charlie|22|charlie@example.com

ALTER TABLE 命令用于修改现有表的结构。在此示例中,我们添加了一个新列。UPDATE 命令用于修改表中的现有数据。SET 子句指定要更新的列和新值。WHERE 子句根据条件指定要更新的行。

退出 SQLite 并删除数据库文件

在此步骤中,你将退出 SQLite 界面,然后删除数据库文件。由于 SQLite 将所有数据存储在单个文件中,因此删除数据库就像使用 rm 命令删除文件一样简单。请小心操作,此操作是永久性的!

  1. 退出 SQLite 提示符:

    .quit
  2. 确保你位于 /home/labex/project 目录。通过以下命令确认:

    pwd

    输出应为:

    /home/labex/project

    如果不在该目录,请使用以下命令导航到该目录:

    cd /home/labex/project
  3. 使用 rm 命令删除 mydatabase.db 文件:

    rm mydatabase.db

    如果删除成功,将不会有任何输出。

  4. 通过再次列出目录内容来确认文件已被删除:

    ls

    在输出中你不应再看到 mydatabase.db,这表明文件已被删除。

.quit 命令退出 SQLite shell 并将你返回到 Linux 终端。rm 命令是用于删除文件的标准 Linux 命令。在此示例中,它永久删除了 mydatabase.db 文件,该文件包含你的 SQLite 数据库的所有数据和结构。

总结

在本实验中,你学习了使用 sqlite3 命令行工具创建和管理 SQLite 数据库的基本技能。你创建了一个数据库,创建了一个表,插入了数据,查询了数据,添加了一个新列,更新了数据,最后删除了数据库文件。这些步骤为你打下了坚实的 SQLite 数据库操作基础。