【数据库】sqlite

news/2024/9/28 23:54:56/

文章目录

    • 1. 基本概述
    • 2. 主要特点
    • 3. 应用场景
    • 4. 优缺点
    • 5. 基本使用示例
    • 6. 在编程语言中的使用
      • 连接到 SQLite 数据库(如果文件不存在会自动创建)
      • 创建表
      • 插入数据
      • 提交事务
      • 查询数据
      • 关闭连接
    • 7. 总结

SQLite 是一个轻量级的关系型数据库管理系统(RDBMS),它以其简洁、高效和易用性在众多应用场景中得到广泛应用。

1. 基本概述

无服务器架构:SQLite 不需要独立的服务器进程或系统来运行,它是一个嵌入式数据库,直接集成在应用程序中。
自包含:所有数据库功能都包含在一个单一的库文件中,简化了部署和管理。
零配置:无需复杂的配置过程,开箱即用。

2. 主要特点

轻量级:SQLite 库的大小通常在几百 KB 左右,非常适合资源受限的环境。
跨平台:支持多种操作系统,包括 Windows、macOS、Linux、iOS 和 Android。
事务支持:完全支持 ACID(原子性、一致性、隔离性、持久性)事务,确保数据的可靠性。
标准 SQL 支持:支持大部分标准 SQL 语法,易于学习和使用。
高性能:在读取操作上表现出色,适用于大多数中小型应用场景。

3. 应用场景

移动应用:广泛用于 Android 和 iOS 应用中,作为本地存储解决方案。
桌面应用:如浏览器(SQLite 用于存储书签、历史记录等)、媒体播放器等。
嵌入式系统:适用于物联网设备、智能家居等需要本地数据存储的设备。
测试和开发:常用于开发阶段的轻量级数据库需求,方便快速迭代。

4. 优缺点

优点
简单易用:无需复杂的安装和配置,适合快速开发和部署。
高效:对于读多写少的应用场景,性能表现优异。
便携性:数据库文件是一个单独的文件,易于备份、迁移和共享。
缺点
并发性有限:在高并发写操作的场景下,性能可能受限。
功能有限:相比于大型数据库(如 MySQL、greSQL),一些高级功能(如存储过程、复杂权限管理)不支持或支持有限。
规模限制:适合中小型数据集,对于极大规模的数据存储和复杂查询可能不适合。

5. 基本使用示例

以下是使用 SQLite 的基本操作示例,使用命令行工具 sqlite3:

创建数据库和表

-- 创建一个名为 example.db 的数据库并进入交互模式
sqlite3 example.db
-- 创建一个用户表
CREATE TABLE users (id INTEGER PRIMARY KEY,name TEXT NOT NULL,email TEXT UNIQUE NOT NULL
);

插入数据

INSERT INTO users (, email) VALUES ('张三', 'zhangsan@example.com');
INSERT INTO users (, email) VALUES ('李四', '@example.com');

查询数据

SELECT * FROM users;

更新数据

UPDATE users SET email = 'zhangsan_new@example.com' WHERE id = 1;

删除数据

DELETE FROM users WHERE id = 2;

关闭数据库

.exit

6. 在编程语言中的使用

SQLite 支持多种编程语言的接口,如 Python、C/C++、 等。以下是使用 Python 操作 SQLite 的简单示例:

import sqlite3

连接到 SQLite 数据库(如果文件不存在会自动创建)

conn = sqlite3.connect('example.db')
cursor = conn.cursor()

创建表

cursor.execute('''CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY,name TEXT NOT NULL,email TEXT UNIQUE NOT NULL)
''')

插入数据

cursor.execute('INSERT INTO users (, email) VALUES (?, ?)', ('王五', 'wu@example.com'))

提交事务

conn.commit()

查询数据

cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()
for row in rows:print(row)

关闭连接

conn.close()

7. 总结

SQLite 以其轻量级、易用和高效的特性,成为了众多应用程序的首选数据库解决方案。无论是移动开发、桌面应用,还是嵌入式系统,SQLite 都能提供可靠的本地数据存储支持。虽然在某些高并发或复杂需求场景下存在限制,但对于大多数中小型项目来说,SQLite 是一个非常理想的选择。


http://www.ppmy.cn/news/1531665.html

相关文章

py-mmcif 包entity_poly 对象介绍

在 py-mmcif 包中,entity_poly 对象和 pdbx_poly_seq_scheme 对象都与生物大分子(如蛋白质和核酸)的序列和结构信息相关,但它们的目的和包含的信息有所不同。以下是它们之间的区别和联系: 1. 对象定义与结构 entity_poly 对象: 用于描述生物大分子的聚合体(如多肽或核酸…

Netty--第三章

Netty 进阶 1. 粘包与半包 1.1 粘包现象 服务端代码 public class HelloWorldServer { static final Logger log LoggerFactory.getLogger(HelloWorldServer.class); void start() { NioEventLoopGroup boss new NioEventLoopGroup(1); NioEventLoopGroup worker new Nio…

Stream流将List转换成Map

一、前言 通常会需要使用到对象和Map互相转换的开发场景,下面这篇文章主要给大家介绍了关于java对象list使用stream根据某一个属性转换成map的3种方式,需要的朋友可以参考下。 二、将List转换为Map&#xff0c;键为某个属性&#xff0c;值为对象本身 List<User> userL…

c++9月23日

1.My_string 头文件 #ifndef MY_STRINGHEAD_H #define MY_STRINGHEAD_H#include <iostream> #include <cstring> using namespace std;class My_string { private:char *ptr;//指向字符数组的指针int size;//字符数组的最大容量int len ;//当前字符串的长度 publ…

R语言机器学习遥感数据处理与模型空间预测技术及实际项目案例分析

随机森林作为一种集成学习方法&#xff0c;在处理复杂数据分析任务中特别是遥感数据分析中表现出色。通过构建大量的决策树并引入随机性&#xff0c;随机森林在降低模型方差和过拟合风险方面具有显著优势。在训练过程中&#xff0c;使用Bootstrap抽样生成不同的训练集&#xff…

主从数据库同步配置详解(MySQL/MariaDB)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、环境准备与安装配置本地部署MySQLUbuntu 系统&#xff1a;CentOS 系统&#xff1a; MariaDBUbuntu 系统&#xff1a;CentOS 系统&#xff1a; 容器部署MySQ…

进阶SpringBoot之分布式系统与 RPC 原理

分布式系统是若干独立计算机的集合&#xff0c;这些计算机对于用户来说就像单个相关系统 分布式系统是由一组通过网络进行通信&#xff0c;为了完成共同的任务而协调工作的计算机节点组成的系统 其目的是利用更多的机器&#xff0c;处理更多的数据 RPC&#xff08;Remote Pr…

Chainlit集成LlamaIndex实现知识库高级检索(路由检索器)

检索原理 llamaindex 是一个用于构建和部署基于文档的问答系统的框架。其中&#xff0c;RouterRetriever 是一个特定的检索器组件&#xff0c;它设计用于根据输入查询选择最佳的检索策略。RouterRetriever 的主要功能是在多个不同的检索器之间进行路由&#xff0c;根据输入的特…