SQLite 数据库:如何创建、打开、备份和删除文件
SQLite 数据库非常轻量级。与其他数据库系统不同,SQLite 在开始工作之前无需进行任何配置或安装即可打开数据库。
您需要的是 SQLite 库,它的大小不到 500KB。我们将直接开始处理 SQLite 数据库和表。
在本 SQLite 教程中,您将学习如何访问 SQLite 数据库并使用它:
SQLite 创建数据库
与其他数据库管理系统不同,SQLite 没有 CREATE DATABASE 命令。在本 SQLite 教程中,您可以通过以下方式创建一个新数据库:
- 从“开始”菜单打开 Windows 命令提示符工具(cmd.exe),键入“cmd”并打开它。
- “cmd”将在默认用户文件夹中打开,在我的机器上是“C:\Users\MGA”:
- 根据安装和程序包教程,您现在应该已经在“C”驱动器中创建了一个 SQLite 文件夹,并将 sqlite3.exe 复制到其中。
- 之后,我们应该使用以下 SQLite 命令来选择 SQLite 文件并导航到 sqlite3.exe 所在的位置
- 以下是 sqlite3 命令创建数据库的基本语法
sqlite3 SchoolDB.db
- 这将会在您复制 .exe 文件的同一目录中创建一个名为“SchoolDB.db”的新数据库。
- 如果选择 SQLite 文件并导航到目录“c:\sqlite”,您会发现文件“SchoolDB.db”已按以下屏幕截图创建
- 您可以通过输入以下 SQLite 命令来确保数据库已创建
.databases
这将为您提供已创建数据库的列表,并且您应该在其中看到新数据库“SchoolDB.db”
使用 Open 在特定位置创建 SQLite 数据库
如果您想了解如何在指定位置(而不是 sqlite3.exe 所在的位置)打开 SQLite 文件并创建数据库文件,以下是如何查看 SQLite 数据库
- 手动导航到 sqlite3.exe 所在文件夹“C:\sqlite”。
- 双击 sqlite3.exe 以打开 SQLite 命令提示符。
- 打开数据库文件的命令是
.open c:/users/mga/desktop/SchoolDB.db
- 这将创建一个名为“SchoolDB.db”的新数据库,并将数据库文件存储在指定位置。请注意,如果数据库文件已创建,将使用相同的命令打开该数据库文件。因此,如果您再次输入完全相同的命令,您将打开数据库本身
.open c:/users/mga/desktop/SchoolDB.db
SQLite 将检查文件名“SchoolDB.db”是否在同一位置。如果文件存在,它将打开它。否则,将在指定位置创建一个具有相同文件名的数据库。
SQLite 创建数据库并从文件中填充表
如果您有一个包含表模式的 .SQL 文件,并且想从该文件中创建一个具有相同表的新数据库,在以下示例中,我们将解释如何做到这一点。
示例
在以下示例中,我们将创建示例数据库。我们将在整个 SQLite 教程中使用此示例数据库,名称为“SQLiteTutorialsDB”,并为其填充表。如下所示
- 打开一个文本文件,并将以下 SQLite 命令粘贴到其中
CREATE TABLE [Departments] ( [DepartmentId] INTEGER NOT NULL PRIMARY KEY, [DepartmentName] NVARCHAR(50) NOT NULL ); CREATE TABLE [Students] ( [StudentId] INTEGER PRIMARY KEY NOT NULL, [StudentName] NVARCHAR(50) NOT NULL, [DepartmentId] INTEGER NULL, [DateOfBirth] DATE NULL ); CREATE TABLE [Subjects] ( [SubjectId] INTEGER NOT NULL PRIMARY KEY, [SubjectName] NVARCHAR(50) NOT NULL ); CREATE TABLE [Marks] ( [StudentId] INTEGER NOT NULL, [SubjectId] INTEGER NOT NULL, [Mark] INTEGER NULL );
上面的代码将创建四个表,如下所示
- “Departments”表,包含以下列
- “DepartmentId”一个整数,表示部门 ID,并声明为主键(稍后在列约束部分进行解释)。
- “DepartmentName”– 部门的字符串名称,不允许空值(使用 NOT NULL 约束)。
- “Students”表,包含以下列
- “StudentId”一个整数,并声明为主键。
- “StudentName”– 学生的姓名,不允许空值(使用 NOT NULL 约束)。
- “DepartmentId”一个整数,指向部门表中的部门 ID 列。
- “DateOfBirth”学生的出生日期。
- “Subjects”表,包含以下列
- “SubjectId”一个整数,并声明为主键。
- “SubjectName”一个字符串值,不允许空值。
- “Marks”表,包含以下列
- “StudentId”一个整数,表示学生 ID。
- “SubjectId”一个整数,表示科目 ID。
- “Mark”学生在特定科目中获得的分数,也是一个整数,允许空值。
- 将文件保存为 “SQLiteTutorialsDB.sql”,并放在 sqlite3.exe 所在的同一位置。
- 打开 cmd.exe,然后导航到 sqlite3.exe 所在的目录。
- 输入以下命令
sqlite3 SQLiteTutorialsDB.db < SQLiteTutorialsDB.sql
- 然后,应该会创建一个名为“SQLiteTutorialsDB”的新数据库,并且文件“SQLiteTutorialsDB.db”将位于同一目录中。如下所示
- 您可以通过像这样打开我们刚创建的数据库来确保此表已创建
.open SQLiteTutorialsDB.db
- 然后输入以下命令
.tables
- 此命令将为您提供“SQLiteTutorialsDB”中的表列表,您应该会看到我们刚刚创建的四个表
SQLite 备份和数据库
要备份数据库,您必须先像这样打开该数据库
- 导航到“C:\sqlite”文件夹,然后双击 sqlite3.exe 打开它。
- 使用以下查询打开数据库
.open c:/sqlite/sample/SchoolDB.db
此命令将打开位于以下目录“c:/sqlite/sample/”的数据库
- 如果它位于 sqlite3.exe 所在的同一目录中,则无需指定位置,如下所示
.open SchoolDB.db
- 然后,要备份数据库,请输入以下命令
- 这将把整个数据库备份到一个名为“SchoolDB.db”的新文件中,该文件位于同一目录中
.backup SchoolDB.db
- 如果在执行该命令后没有看到任何错误,则表示备份已成功创建。
SQLite 删除数据库
与其他数据库管理系统不同,SQLite 没有 DROP DATABASE 命令。如果您想删除数据库 SQLite,只需删除数据库文件即可。
备注
- 您不能在同一目录中用相同的名称创建两个数据库,数据库名称在同一目录中是唯一的。
- 数据库名称不区分大小写。
- 创建数据库不需要任何权限。