嵌入式数据库之SQLite 3

数据库基本概念

数据(Data)
能够输入计算机并能被计算机程序识别和处理的信息集合。

数据库(DataBase)
数据库是在数据库管理系统管理和控制之下,存放在存储介质上的数据集合。

数据库管理系统(DBMS)

常用的数据库管理系统

大型数据库管理系统

Oracle
IBM的DB2

中型数据库管理系统

Server是微软开发的数据库产品,主要支持Windows平台。

小型数据库管理系统

MySQL

基于嵌入式的数据库管理系统

SQLite、Firebird、eXtremeDB

SQLite 基础

基本概述

SQLite是一款轻量级的开源的嵌入式数据库,由D.Richard Hipp在2000年发布。SQLite的源代码是C,完全开放,广泛应用于消费电子、医疗、工业控制、军事等各种领域。通过这款数据库软件,我们可以对数据库进行创建和增删改查等操作。

特性

(1)零配置,无需安装和管理配置

(2)以文件的形式存放在磁盘上。

(3)可移植性强:能支持各种32位和64位体系的硬件平台,也能在Windows、Linux、BSD、Mac OS、Solaries等软件平台中运行。

(4)支持数据库大小至2TB。

(5)足够小,全部源码大致3万行代码,250KB。

视频教程链接如下:https://www.bilibili.com/video/BV1Li4y1f7ho?p=2.

SQLite 3 的安装

嵌入式数据库之SQLite 3_第1张图片

sudo apt-get install sqlite3
sqlite3 -version

注意:sqlite3 的关键字(包括数据类型和命令),不区分大小写。

SQLite 3 中的数据类型

嵌入式数据库之SQLite 3_第2张图片

表的概念

使用 sqlite3 创建一个数据库文件

1、创建数据库

嵌入式数据库之SQLite 3_第3张图片
假设这里,我们想要创建一个 stu.db 的库文件
就可以在在终端中输入

sqlite3 stu.db

之后,就进入了命令行模式,如下图所示。
在这里插入图片描述
之后输入 .quit 后,就会退出命令行模式,同时当前文件夹也并没有创建一个 stu.db 的文件,这是因为我们并没有对这个数据库文件进行任何的编辑和操作。
在这里插入图片描述
这个时候,我们可以使用 .table 来操作一下,然后再输入 .quit 并查看当前文件夹下的内容。来看下。
嵌入式数据库之SQLite 3_第4张图片
当然使用 .table 来创建的数据库文件内部是空表。

使用 sqlite3 完成对表的操作

1、创建表

嵌入式数据库之SQLite 3_第5张图片
注意:在最后要输入分号表示结束。

2、创建表常用字段属性


同一个字段的属性可以不唯一。

所谓 autoincrement (自增),就是说,假设当前字段不指定的话,他会自动的按照上一个字段值来自增。比如,上一个字段的值是1,而当前字段不指定的话,它的值就会是2。

这里来演示下,首先使用 sqlite3 来创建一张表,表的内容就是学生,这里设定两个字段,一个是 id,一个是学生姓名,其中,id 的属性为主键,数据类型为整型,而学生姓名的属性则为非空,数据类型为文本字符串。

使用命令

sqlite3 stu.db

来打开数据库文件。

CREATE TABLE stu(id INTEGER primary key AUTOINCREMENT,
				 name TEXT not null);

怎么查看我们刚刚建立的表呢?
可以使用 .table 来查看我们建的表都有哪些。
在这里插入图片描述
那又是如何查看表中的内容都有哪些的呢,使用 “.schema + 表名”。
在这里插入图片描述

3、插入元素

4、查看表内元素的字段

5、筛选条件


并不一定非要一次性将表中的所有字段名都给写上去,因为有一些字段的属性是自增的。

字段名1对应着字段值1,字段名2对应着字段值2。

下面尝试插入几个学生信息到表中,如下图所示。

注意,正确写法和错误写法。

1、文本字符串类型的数据可以使用单引号或双引号,不可以不加。

正确写法:

INSERT INTO stu(id,name)values(202201,'张三');
INSERT INTO stu(id,name)values(202202,"李四");

错误写法:

INSERT INTO stu(id,name)values(202201,张三);

2、有些字段名可以不写(比如该字段的属性设置为自增了),但是要注意前后一致,前面不写,后面也不要写,前面写了,后面也要写(不可以空,连逗号也别加)。

正确写法:

INSERT INTO stu(name)values("王五");

错误写法:

INSERT INTO stu(id,name)values(,"王五");
Error: near ",": syntax error

下面再来尝试下查看刚刚插入到表中的学生信息,这里使用 select 命令来进行,如下图所示。

select id,name FROM stu;

输出结果如下:
在这里插入图片描述
此时,如果我们还想把表头(字段)给打印出来的话,就要在查询之前先输入命令

.header on

看下图。
嵌入式数据库之SQLite 3_第6张图片
此外,我们还可以使用 where 添加筛选条件。
在这里插入图片描述
注意,表示等于条件用一个 “=”。

6、修改元素

7、删除元素

嵌入式数据库之SQLite 3_第7张图片
1、在修改表中元素时,如果不指定筛选条件的话,它会将表中的所有满足你要修改条件的字段的值全部改成你要修改的字段的值。

演示下:将表中 id = 202201 的 name 和 id 字段修改为 ‘路人甲’ 和 202006。

UPDATE stu SET name='路人甲',id=202006 WHERE id=202201;

看下修改后的结果:
在这里插入图片描述
再来演示下:将表中 id = 202006 的那一行从表中删除。

DELETE FROM stu where id=202006;

看下删除后的结果:
在这里插入图片描述

你可能感兴趣的:(笔记,数据库,sqlite,database)