添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
·  阅读

SQLite 是一个无服务器的RDBMS,它被用来以表的形式管理数据库中的数据。这些表是在数据库中创建的,用于在列和行中存储数据,为此,可以使用SQLite中的 "CREATE TABLE "或 "CREATE TABLE if not exists "语句来创建表。"CREATE TABLE if not exists "语句在创建表时非常有用,因为如果数据库中已经存在同名的表,它就不会创建该表。在这篇文章中,我们将解释 "CREATE TABLE if not exists "是如何工作的,以及如果我们试图不使用 "CREATE TABLE if not exists "来创建一个表会发生什么。

如何在SQLite中不使用 "if not exists "来创建一个表

首先,我们将在SQLite中打开终端,创建一个表,LinuxHint_employees。

CREATE TABLE LinuxHint_employees (emp_id INT, emp_name CHAR, emp_dep );

为了确认表的创建,我们将显示这些表。

.tables

表LinuxHint_employees已经被创建。现在,我们将通过使用create语句创建另一个同名的表,LinuxHint_employees。

CREATE TABLE LinuxHint_employees (emp_id INT, emp_name CHAR, emp_dep );

在终端中执行该语句时,产生了 "Error: table LinuxHint_employees already exists "的错误。这个错误的发生是因为另一个同名的表 "LinuxHint_employees "已经存在了。

如何在SQLite中使用 "if not exists "来创建一个表

在创建表时使用的 "if not exists "语句,首先会分析该模式中存在的所有表的列表,然后如果没有与要创建的表同名的表,它将成功创建表,否则它将成功执行命令而不创建表,同时产生 "表已存在 "的错误。我们将用一个例子来解释,但在解释这个例子之前,让我们解释一下使用 "if not exists "子句创建表的一般语法。使用 "if not exists "语句创建表的一般语法。

CREATE TABLE IF NOT EXISTS TABLE_NAME (column_name datatype, column_name datatype);

这个语法的解释是这样的:

  • 使用子句 "CREATE TABLE "来创建一个表
  • 写下子句 "如果不存在"
  • 写入表名而不是table_name
  • 声明数据类型,哪种类型的数据将被插入到列中。
  • 我们将使用 "if not exists "来执行同样的命令,这样就不会产生 "表已经存在 "的错误。

    CREATE TABLE IF NOT EXISTS LinuxHint_employees (emp_id INT, emp_name CHAR, emp_dep );
    

    该命令已经成功运行,没有产生 "表已经存在 "的错误,因为在SQLite中,创建一个同名的表通常不会有错误。为了确认是否已经创建了另一个同名的表,我们将显示表的列表。

    .tables
    

    所以它没有创建同名的表,现在我们将使用if not exists语句创建一个表,名为 "JohnCompany"。

    CREATE TABLE IF NOT EXISTS JohnCompany (emp_id INT, emp_name CHAR, emp_dep );
    

    要显示表的列表

    .tables
    

    这个表已经被创建,因为在模式中没有同名的表存在。

    SQLite有一个轻量级的架构,因为它没有服务器,这意味着它使用的是它所运行的机器的操作系统,而不是有自己独立的服务器。在SQLite中,创建一个表是非常重要的,因为在表中你要定义要存储数据的列和行。像其他DBMS一样,SQLite包含各种内置子句,用于轻松运行语句。在这篇文章中,我们已经解释了什么是 "如果不存在 "子句,以及它是如何用于创建表的。这个子句首先验证是否存在另一个同名的表,如果不存在,那么它将创建该表,否则就简单地运行命令,而不产生 "已经存在 "的错误。

    分类:
    代码人生
    标签: