当前位置: 首页 > news >正文

【数据库】sqlite

文章目录

    • 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 是一个非常理想的选择。

相关文章:

  • Qt 每日面试题 -3
  • 前端基础知识汇总(一)
  • ubuntu20.04编译安装opencv-4.9.0的cuda版本
  • 力扣(leetcode)每日一题 2516 每种字符至少取 K 个 | 滑动窗口
  • 【项目经验分享】深度学习自然语言处理技术毕业设计项目案例定制
  • 学生信息管理系统开发实战:掌握多数据模型关联关系的设计和使用
  • 「iOS」——KVC
  • 使用 pypdf 给 PDF 添加目录书签
  • 搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(四)-搜索
  • 基于Hive和Hadoop的图书分析系统
  • nodejs逐字读取文件示例
  • 防火墙详解(三)华为防火墙基础安全策略配置(命令行配置)
  • 如何恢复被删除的 GitLab 项目?
  • 前端Vue.js与后端Flask/Django协同开发指南
  • 修改DNS地址有什么影响
  • 【comparator, comparable】小总结
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • Angular2开发踩坑系列-生产环境编译
  • IDEA常用插件整理
  • Iterator 和 for...of 循环
  • js写一个简单的选项卡
  • LintCode 31. partitionArray 数组划分
  • Lucene解析 - 基本概念
  • magento2项目上线注意事项
  • Map集合、散列表、红黑树介绍
  • python学习笔记 - ThreadLocal
  • React系列之 Redux 架构模式
  • 闭包,sync使用细节
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 什么软件可以剪辑音乐?
  • 使用 Docker 部署 Spring Boot项目
  • 一个项目push到多个远程Git仓库
  • ionic入门之数据绑定显示-1
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • ‌[AI问答] Auto-sklearn‌ 与 scikit-learn 区别
  • ‌内网穿透技术‌总结
  • #100天计划# 2013年9月29日
  • ()、[]、{}、(())、[[]]命令替换
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (1)(1.11) SiK Radio v2(一)
  • (1)Jupyter Notebook 下载及安装
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)ssm码农论坛 毕业设计 231126
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (学习总结)STM32CubeMX HAL库 学习笔记撰写心得
  • (转)一些感悟
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • *上位机的定义
  • . ./ bash dash source 这五种执行shell脚本方式 区别