SQLite 入门教程二 SQLite的创建、修改、删除表

所属分类: 数据库 / SQLite 阅读数: 117
收藏 0 赞 0 分享

一、数据库定义语言 DDL

在关系型数据库中,数据库中的表 Table、视图 View、索引 Index、关系 Relationship 和触发器 Trigger 等等,构成了数据库的架构 Schema。 在 SQL 语句中,专门有一些语句用来定义数据库架构,这些语句被称为“数据库定义语言”,即 DDL。

SQLite 数据库引擎支持下列三种 DDL 语句:

复制代码 代码如下:

CREATE
ALTER TABLE
DROP

其中,CREATE 语句用来创建表 Table、视图 View、索引 Index、关系 Relationship 和触发器 Trigger, DROP语句用来删除表 Table、视图 View、索引 Index、关系 Relationship 和触发器 Trigger, ALTER TABLE 语句用来改变表的结构。

今天这一篇只涉及到表的相关内容,视图、触发器等到后面再讲。

二、SQLite 中的数据类型

SQLite 数据库中的数据一般由以下几种常用的数据类型组成:

NULL - 空值
INTEGER - 有符号整数
REAL - 浮点数
TEXT - 文本字符串
BLOB - 二进制数据,如图片、声音等等
SQLite 也可以接受其他数据类型。

三、创建表 CREATE TABLE

首先,创建一个 test.db 数据库并进入 SQLite 命令行环境,还记得怎么做吗?

复制代码 代码如下:

myqiao@ubuntu:~$ sqlite3 test.db
-- Loading resources from /home/myqiao/.sqliterc
SQLite version 3.7.4
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
sqlite>

向上面这样,我们就在终端中创建了一个 test.db 数据库,并且通过 .tables 命令查询数据库中的表,结果没有任何返回,因为数据库本来就是空的嘛。

下面我们创建一个 Student 表,其中包含 Id、Name、Age 等字段.

复制代码 代码如下:

sqlite>
sqlite> CREATE TABLE Students(Id integer,Name text,age integer);
sqlite> .tables
Students
sqlite> .schema Students
CREATE TABLE Students(Id integer,Name text,age integer);
sqlite>

向上面这样,一个 Students 表就被建立了,这回再运行 .tables 命令就有响应了,系统告诉我们数据库中现在有一个 Students 表, 运行 .schema 命令,返回了我们创建这个表的 SQL 命令。

四、修改表 ALTER TABLE

SQLite 仅仅支持 ALTER TABLE 语句的一部分功能,我们可以用 ALTER TABLE 语句来更改一个表的名字,也可向表中增加一个字段(列),但是我们不能删除一个已经存在的字段,或者更改一个已经存在的字段的名称、数据类型、限定符等等。

改变表名 - ALTER TABLE 旧表名 RENAME TO 新表名
增加一列 - ALTER TABLE 表名 ADD COLUMN 列名 数据类型 限定符
下面我们来演示一下,将前面的 Students 表的名字改为 Teachers

复制代码 代码如下:

sqlite>
sqlite> .tables
Students
sqlite> ALTER TABLE Students RENAME TO Teachers;
sqlite> .tables
Teachers
sqlite>

原来数据库中只有一个 Students 表,改名以后再运行 .tables 命令,发现 Students 表已经没了,现在变成了 Teachers 表。

下面改变 Teachers 表的结构,增加一个 Sex 列

复制代码 代码如下:

sqlite>
sqlite> .schema Teachers
CREATE TABLE "Teachers"(Id integer,Name text,age integer);
sqlite> ALTER TABLE Teachers ADD COLUMN Sex text;
sqlite> .schema Teachers
CREATE TABLE "Teachers"(Id integer,Name text,age integer, Sex text);
sqlite>

五、删除表 DROP TABLE

删除一个表很简单,只要给出表名即可

删除表 - DROP TABLE 表名
下面,我们将 test.db 中的 Teachers 表删除

复制代码 代码如下:

sqlite>
sqlite> .tables
Teachers
sqlite> DROP TABLE Teachers;
sqlite> .tables
sqlite>

删除 Teachers 表后再运行 .tables 命令,发现数据库已经空了。

六、后续内容

其实创建一个表远没有这么简单,表的每一列可以有很多限定符,比如主列、非空、限制、默认值、唯一、键等等,这些内容留到下一篇吧

更多精彩内容其他人还在看

SQLite3中的日期时间函数使用小结

这篇文章主要介绍了SQLite3中的日期时间函数使用小结,同时介绍了一些SQLite数据库的基本知识,需要的朋友可以参考下
收藏 0 赞 0 分享

SQLite3中自增主键相关知识总结

这篇文章主要介绍了SQLite3中自增主键相关知识总结,清零的方法、INTEGER PRIMARY KEY AUTOINCREMENT和rowid的使用等,需要的朋友可以参考下
收藏 0 赞 0 分享

sqlite时间戳转时间语句(时间转时间戳)

这篇文章主要介绍了sqlite时间戳转时间、时间转时间戳的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

初识SQLITE3数据库

本文主要讲诉Sqlite数据库的一些基本概念以及SQLite的优势,需要的朋友可以参考下
收藏 0 赞 0 分享

SQLite数据库安装及基本操作指南

SQLite 是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。 其特点是高度便携、使用方便、结构紧凑、高效、可靠。今天我们主要来讲解下SQLite数据库的安装以及基本操作指南
收藏 0 赞 0 分享

SQLITE3 使用总结

Sqlite3 的确很好用。小巧、速度快。但是因为非微软的产品,帮助文档总觉得不够。这些天再次研究它,又有一些收获,这里把我对 sqlite3 的研究列出来,以备忘记。也希望能对大家有所帮助。
收藏 0 赞 0 分享

ubuntu下使用SQLite3的基本命令

sqlite3一款主要用于嵌入式的轻量级数据库,本文旨在为熟悉sqlite3基本命令提供技术文档。希望对读者们有所帮助,如有疑问请和我联系,尽可能解答
收藏 0 赞 0 分享

SQLite中的WAL机制详细介绍

这篇文章主要介绍了SQLite中的WAL机制详细介绍,本文讲解了什么是WAL、WAL如何工作、WAL的优点与缺点、WAL引入的兼容性问题、WAL引入的性能问题等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

SQLite中重置自动编号列的方法

这篇文章主要介绍了SQLite中重置自动编号列的方法,本文讲解了3种情况和其对应解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

SQLite字符串比较时的大小写问题解决方法

这篇文章主要介绍了SQLite字符串比较时的大小写问题解决方法,本文总结了比较字符串时的大小写问题的3种解决方案,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多