SQLite 数据库:如何创建、打开、备份和删除文件

SQLite 数据库非常轻量级。与其他数据库系统不同,SQLite 在开始工作之前无需进行任何配置或安装即可打开数据库。

您需要的是 SQLite 库,它的大小不到 500KB。我们将直接开始处理 SQLite 数据库和表。

在本 SQLite 教程中,您将学习如何访问 SQLite 数据库并使用它:

SQLite 创建数据库

与其他数据库管理系统不同,SQLite 没有 CREATE DATABASE 命令。在本 SQLite 教程中,您可以通过以下方式创建一个新数据库:

  • 从“开始”菜单打开 Windows 命令提示符工具(cmd.exe),键入“cmd”并打开它。
  • “cmd”将在默认用户文件夹中打开,在我的机器上是“C:\Users\MGA”

    SQLite CREATE Database

  • 根据安装和程序包教程,您现在应该已经在“C”驱动器中创建了一个 SQLite 文件夹,并将 sqlite3.exe 复制到其中。
  • 之后,我们应该使用以下 SQLite 命令来选择 SQLite 文件并导航到 sqlite3.exe 所在的位置

SQLite CREATE Database

  • 以下是 sqlite3 命令创建数据库的基本语法
    sqlite3 SchoolDB.db
  • 这将会在您复制 .exe 文件的同一目录中创建一个名为“SchoolDB.db”的新数据库。

SQLite CREATE Database

  • 如果选择 SQLite 文件并导航到目录“c:\sqlite”,您会发现文件“SchoolDB.db”已按以下屏幕截图创建

    SQLite CREATE Database

  • 您可以通过输入以下 SQLite 命令来确保数据库已创建
    .databases

    这将为您提供已创建数据库的列表,并且您应该在其中看到新数据库“SchoolDB.db”

    SQLite CREATE Database

使用 Open 在特定位置创建 SQLite 数据库

如果您想了解如何在指定位置(而不是 sqlite3.exe 所在的位置)打开 SQLite 文件并创建数据库文件,以下是如何查看 SQLite 数据库

  • 手动导航到 sqlite3.exe 所在文件夹“C:\sqlite”

    SQLite CREATE Database in a Specific Location

  • 双击 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”将位于同一目录中。如下所示

    SQLite Create a Database

  • 您可以通过像这样打开我们刚创建的数据库来确保此表已创建
    .open SQLiteTutorialsDB.db
  • 然后输入以下命令
    .tables
  • 此命令将为您提供“SQLiteTutorialsDB”中的表列表,您应该会看到我们刚刚创建的四个表

    SQLite Create a Database

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,只需删除数据库文件即可。

备注

  • 您不能在同一目录中用相同的名称创建两个数据库,数据库名称在同一目录中是唯一的。
  • 数据库名称不区分大小写。
  • 创建数据库不需要任何权限。