SQLite 创建,删除和更改表,本章我们将介绍 SQLite 数据库的数据定义语言(DDL)。 _DDL由定义数据库架构的 SQL 语句组成。 模式 _ 是以正式语言描述的数据库结构。 在关系数据库中,模式定义表,视图,索引,关系和触发器。
SQLite 支持以下三个 DDL 语句:
- 创造
- 更改表
- 下降
在 SQLite 中,CREATE
语句用于创建表,索引,视图和触发器。 ALTER TABLE
语句更改表的结构。 DROP
语句删除表,索引,视图或触发器。
SQLite 创建表
CREATE
语句用于创建表。 它还用于创建索引,视图和触发器。
要创建表,我们给表及其列命名。 每列可以具有以下数据类型之一:
- NULL —该值为 NULL 值
- INTEGER —有符号整数
- REAL —浮点值
- TEXT-文本字符串
- BLOB —数据块
我们使用CREATE TABLE
语句创建一个简单的Testing
表。 .schema
命令显示该表的形式定义。
如果我们尝试创建一个已经存在的表,则会出现错误。 因此,CREATE TABLE
语句具有可选的IF NOT EXISTS
子句。 使用此子句不会做任何事情,我们不会收到任何错误。
对于尝试创建一个已经存在的表,我们没有收到错误消息。
CREATE TABLE
… AS
语句可基于SELECT
语句创建新表。
上面的语句使用特定的SELECT
语句创建与Cars
表相同的表。
我们使用ATTACH DATABASE
语句将新数据库添加到当前数据库连接中。 第一个数据库称为main
,新数据库称为test2
。
由于我们有两个数据库,因此如果要在test2
数据库中创建表,则必须指定数据库名称。 数据库名称位于表名称之前。 在这种情况下,如果未指定数据库名称,则将自动选择main
。
使用TEMPORARY
关键字,我们创建一个临时数据库。 每次关闭数据库连接时,都会破坏一个临时数据库。 临时数据库的名称为temp
。
SQLite 删除表
DROP
语句用于从数据库中删除表。
我们使用.tables
命令显示可用表。 DROP TABLE
语句从数据库中删除Testing
表。
尝试删除不存在的表会导致错误。 使用IF EXISTS
子句,我们可以避免此错误。
该语句仅在存在Testing
表时才会删除。
该 SQL 语句从test2
数据库中删除Cars
表。
SQLite ALTER TABLE
SQLite 支持ALTER TABLE
语句的有限子集。 SQLite 中的此语句允许用户重命名表或向现有表添加新列。 无法重命名列,删除列或从表中添加或删除约束。
让我们创建一个要重命名的表Names
。
我们将表重命名为NamesOfFriends
。
我们验证重命名表的架构。
假设我们要向表中添加一个新列。
SQL 语句将名为Email
的新列添加到表中。
在这里,我们看到了表的新结构。