04.sqlite3学习——DDL(数据定义:创建和删除表)

目录

DDL(数据定义:创建和删除表)

SQLite 创建表

语法

实例

字段修饰符

primary key 定义主键列

AUTOINCREMENT 自动增长

UNIQUE 字段的值唯一

NOT NULL 字段的值不为空

SQLite 修改表

增加字段add

修改表名rename to

SQLite 删除表

语法

实例


DDL(数据定义:创建和删除表)

数据定义(DDL):用于用户定义、删除和修改数据模式。

但在sqlite3中不存在用户这一概念,所以sqlite的DDL包括创建表、修改表和删除表

SQLite 创建表

SQLite 的 CREATE TABLE 语句用于在任何给定的数据库创建一个新表。创建基本表,涉及到命名表、定义列及每一列的数据类型。

语法

CREATE TABLE 语句的基本语法如下:

CREATE TABLE database_name.table_name(
   column1 datatype  PRIMARY KEY(one or more columns),
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
);

CREATE TABLE 是告诉数据库系统创建一个新表的关键字。CREATE TABLE 语句后跟着表的唯一的名称或标识。您也可以选择指定带有 table_name 的 database_name

实例

下面是一个实例,它创建了一个 COMPANY 表,ID 作为主键,NOT NULL 的约束表示在表中创建纪录时这些字段不能为 NULL:

sqlite> CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

让我们再创建一个表,我们将在随后章节的练习中使用:

sqlite> CREATE TABLE DEPARTMENT(
   ID INT PRIMARY KEY      NOT NULL,
   DEPT           CHAR(50) NOT NULL,
   EMP_ID         INT      NOT NULL
);

您可以使用 SQLIte 命令中的 .tables 命令来验证表是否已成功创建,该命令用于列出附加数据库中的所有表。

在这里,可以看到我们刚创建的两张表 COMPANY、 DEPARTMENT。

您可以使用 SQLite的.schema 命令得到表的完整信息,如下所示:

sqlite>.schema COMPANY
CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

对于SQLite中所有的 命令都是SQLite所特有的,别的数据库不支持

字段修饰符

primary key 定义主键列

方法一:在定义字段的同时指定为主键

方法二:在设置完字段后指定主键

AUTOINCREMENT 自动增长

设置了AUTOINCREMENT之后,如果不给它赋值,它就会默认从0、1、2、3、4...自动增长

UNIQUE 字段的值唯一

设置UNIQUE,表示该字段的值必须唯一,后续插入的值不能出现重复

NOT NULL 字段的值不为空

如果设置not null,那么之后插入数值的时候就不许为空

SQLite 修改表

增加字段add

语法:alter table 表名 add 字段名 字段类型

如:ALTER TABLE student ADD age INT(4);

修改表名rename to

语法:alter table 旧表名 rename to 新表名

除此之外,sqlite不支持修改字段change和modify,同样也不支持drop删除表命令。

具体可参考:SQLite Alter 命令 | 菜鸟教程

SQLite 删除表

SQLite 的 DROP TABLE 语句用来删除表定义及其所有相关数据、索引、触发器、约束和该表的权限规范。

使用此命令时要特别注意,因为一旦一个表被删除,表中所有信息也将永远丢失。

语法

DROP TABLE 语句的基本语法如下。您可以选择指定带有表名的数据库名称,如下所示:

DROP TABLE database_name.table_name;

实例

让我们先确认 COMPANY 表已经存在,然后我们将其从数据库中删除。

sqlite>.tables
COMPANY  test.COMPANY

这意味着 COMPANY 表已存在数据库中,接下来让我们把它从数据库中删除,如下:

sqlite>DROP TABLE COMPANY;

现在,如果尝试 .TABLES 命令,那么将无法找到 COMPANY 表了:

sqlite>.tables
sqlite>

显示结果为空,意味着已经成功从数据库删除表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹烟淮雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值