介绍
在本实验中,你将学习使用 sqlite3 命令行工具处理 SQLite 数据库的基础知识。SQLite 是一个轻量级的、基于文件的数据库系统,非常适合初学者。你将创建数据库、创建表、插入数据、查询数据、添加列、更新数据,并最终删除数据库文件。让我们开始吧!
在本实验中,你将学习使用 sqlite3 命令行工具处理 SQLite 数据库的基础知识。SQLite 是一个轻量级的、基于文件的数据库系统,非常适合初学者。你将创建数据库、创建表、插入数据、查询数据、添加列、更新数据,并最终删除数据库文件。让我们开始吧!
在此步骤中,你将创建一个新的 SQLite 数据库文件,并使用 sqlite3 命令行工具连接到它。
在 LabEx VM 环境中打开终端。默认情况下,你应该位于 /home/labex/project 目录。通过运行以下命令确认:
pwd
输出应为:
/home/labex/project
如果你不在该目录,请运行以下命令导航到它:
cd /home/labex/project
创建一个名为 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 命令。
在此步骤中,你将在 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 表,可以向其中插入数据了。这包括向表中添加行(记录),每一行代表一个用户及其相应的信息。
使用 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 子句中指定的值会被插入到表名后括号中列出的相应列。
在此步骤中,你将学习如何使用 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 的新列,然后更新现有记录的电子邮件地址。
使用 ALTER TABLE 命令向 users 表添加一个名为 email 的新列:
ALTER TABLE users ADD COLUMN email TEXT;
此命令向 users 表添加了一个名为 email 的新列,类型为 TEXT。
使用 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 列,并赋予了相应的电子邮件地址。
通过查询 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 将所有数据存储在单个文件中,因此删除数据库就像使用 rm 命令删除文件一样简单。请小心操作,此操作是永久性的!
退出 SQLite 提示符:
.quit
确保你位于 /home/labex/project 目录。通过以下命令确认:
pwd
输出应为:
/home/labex/project
如果不在该目录,请使用以下命令导航到该目录:
cd /home/labex/project
使用 rm 命令删除 mydatabase.db 文件:
rm mydatabase.db
如果删除成功,将不会有任何输出。
通过再次列出目录内容来确认文件已被删除:
ls
在输出中你不应再看到 mydatabase.db,这表明文件已被删除。
.quit 命令退出 SQLite shell 并将你返回到 Linux 终端。rm 命令是用于删除文件的标准 Linux 命令。在此示例中,它永久删除了 mydatabase.db 文件,该文件包含你的 SQLite 数据库的所有数据和结构。
在本实验中,你学习了使用 sqlite3 命令行工具创建和管理 SQLite 数据库的基本技能。你创建了一个数据库,创建了一个表,插入了数据,查询了数据,添加了一个新列,更新了数据,最后删除了数据库文件。这些步骤为你打下了坚实的 SQLite 数据库操作基础。