本文最后更新于 2024-08-27,文章内容可能已经过时。

一、SQLite简介

SQLite 是一个开源的嵌入式关系数据库,实现了自给自足的、无服务器的、配置无需的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库系统不同,比如 MySQL、PostgreSQL 等。

SQLite 不需要在系统中设置和管理一个单独的服务。这也使得 SQLite 是一种非常轻量级的数据库解决方案,非常适合小型项目、嵌入式数据库或者测试环境中。

SQLite 的一些主要特性包括:

  1. 无服务器的:SQLite 不是一个单独的服务进程,而是直接嵌入到应用程序中。它直接读取和写入磁盘文件。

  2. 事务性的:SQLite 支持 ACID(原子性、一致性、隔离性、持久性)属性,能够确保所有事务都是安全、一致的,即使在系统崩溃或者电力中断的情况下。

  3. 零配置的:SQLite 不需要任何配置或者管理,这使得它非常容易安装和使用。

  4. 自包含的:SQLite 是一个自包含系统,这意味着它几乎不依赖其他任何外部系统或者库,这使得 SQLite 的跨平台移植非常方便。

  5. 小型的:SQLite 非常小巧轻量,全功能的 SQLite 数据库引擎的大小只有几百KB。

  6. 广泛应用:SQLite 被广泛应用在各种各样的产品和系统中,包括手机、平板电脑、嵌入式系统、物联网设备等。它也被广泛用于网站开发、科学研究、数据分析等领域。

在一些轻量级的应用场景下,SQLite 是一个非常理想的选择,因为它简单、高效、易于使用和部署。然而,对于需要处理大量并发写操作或者需要更高级的功能(如用户管理或者存储过程等)的应用场景,更全功能的数据库系统(如 PostgreSQL 或 MySQL)可能会是更好的选择。

二、安装SQLite

在Ubuntu上,可以运行以下命令安装:

sudo apt-get install sqlite3

在CentOS上,可以运行以下命令安装:

sudo yum install sqlite

安装完成后,可以输入以下命令查看SQLite版本

sqlite3 --version

三、SQLite基本操作

一般以.开头的属于内嵌命令,无需分号;结束。

所有的 SQLite 语句可以以任何关键字开始,如 SELECT、INSERT、UPDATE、DELETE、ALTER、DROP 等,所有的语句以分号 ; 结束。

大小写敏感性

有个重要的点值得注意,SQLite 是不区分大小写的,但也有一些命令是大小写敏感的,比如 GLOBglob 在 SQLite 的语句中有不同的含义。

(一)创建并打开.db文件

方法一:

# 直接进入SQLite
sqlite3

# 建立新数据库文件
.open test.db

方法二:

# 也可以直接创建并打开test数据库(如果该目录没有这数据库文件,则会创建)
sqlite3 test.db

(二)查看数据库表

# 1. 显示数据库中的所有表
.tables

# 2. 查看数据表的所有内容(将table_name替换成实际表的名称)
select * from table_name;

# 3. 查看数据表结构(将table_name替换成实际表的名称)
pragma table_info(table_name);
# 也可以用以下命令
.schema table_name

(三)数据表结构操作

# 1. 创建表(跟mysql写法一致)
create table table_name (column_name datatype key not null, column_name datatype)
// table_name 数据表名
// column_name 列名
// datatype 数据类型
// key 主键
// not null 非空

# 2. 添加列
alter table table_name add column column_name datatype;
// table_name 数据表名
// column_name 列名
// datatype 数据类型

# 3. 删除列
alter table table_name drop column column_name;
// table_name 数据表名
// column_name 列名

# 4. 删除数据库表(将table_name替换成实际表的名称)
drop table table_name

(四)插入

方法一:

// table_name 数据表名
// column 列名
// value 数据值
INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]  
VALUES (value1, value2, value3,...valueN); 

方法二:

// table_name 数据表名
// value 数据值
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

(五)修改

// table_name 数据表名
// column 列名
// value 数据值
// [condition] 条件表达式
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];

(六)删除

// table_name 数据表名
// [condition] 条件表达式

DELETE FROM table_name
WHERE [condition];

(七)退出

.exit

参考: