SQLite简介:轻量级数据库入门

打印 上一主题 下一主题

主题 967|帖子 967|积分 2901

SQLite 是一种轻量级、完全自包、无服务器的数据库引擎,常被应用于嵌入式体系、移动设备和中小型应用中。与 MySQL 或 PostgreSQL 这样的传统关系型数据库管理体系不同,SQLite 是基于文件的,需要最少的配置,是本地存储办理方案的理想选择。
本文将探索 SQLite 的底子概念、架构以及怎样创建和管理 SQLite 数据库。

为什么选择 SQLite?

SQLite 提供了不带任何复杂举要的上风:

  • 轻量且可离带:SQLite 是一个巨细小于 1MB 的单个 C 库,无需安装或设置。
  • 无服务器:它无需独立的服务器过程,易于集成到应用中。
  • 跨平台:SQLite 数据库文件在各种平台上保持完全兼容,可在 Windows、macOS 和 Linux 上通用。
  • ACID 丰富性:即使是轻量级引擎,SQLite 仍然支持业务的 Atomicity、Consistency、Isolation和 Durability 特性。
  • 开源免费:SQLite 免费利用,而且具备公共领域证书。

SQLite 快速入门

要开始利用 SQLite,您需要安装 SQLite 命令行界面(CLI),或者利用指定程序语言支持 SQLite 的库,如 Python 或 C++。
安装方法


  • 在 Windows 上

    • 从 SQLite 官方网站 下载 SQLite 工具集合。
    • 解压后将目录添加到体系 PATH。

  • 在 Linux 上
    1. sudo apt update
    2. sudo apt install sqlite3
    复制代码
  • 在 macOS 上
    macOS 预装了 SQLite。您可以通过运行以下命令验证:
    1. sqlite3 --version
    复制代码

创建您的第一个 SQLite 数据库

步骤1:创建数据库

您可以通过打开 SQLite CLI 并指定一个数据库文件来创建新的数据库:
  1. sqlite3 my_database.db
复制代码
该命令将创建一个名为 my_database.db 的新数据库文件,如果这个文件存在,则打开它。
步骤2:创建表

进入 SQLite CLI 后,您可以利用 CREATE TABLE 命令创建一个表:
  1. CREATE TABLE users (
  2.     id INTEGER PRIMARY KEY AUTOINCREMENT,
  3.     name TEXT NOT NULL,
  4.     email TEXT UNIQUE NOT NULL,
  5.     created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  6. );
复制代码
步骤3:插入数据

您可以利用 INSERT INTO 命令向 users 表中插入数据:
  1. INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
  2. INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');
复制代码
步骤4:查询数据

通过 SELECT 命令从表中查询数据:
  1. SELECT * FROM users;
复制代码
步骤5:更新数据

利用 UPDATE 命令修改存在的记录:
  1. UPDATE users SET email = 'alice.new@example.com' WHERE name = 'Alice';
复制代码
步骤6:删除数据

利用 DELETE 命令删除记录:
  1. DELETE FROM users WHERE name = 'Bob';
复制代码

在 Python 中利用 SQLite

SQLite 可以通过 Python 标准库中的 sqlite3 模块举行无障碎離。
以下是一个简单的 Python 脚本,用于管理 SQLite 数据库:
  1. import sqlite3
  2. # 连接到数据库(如果不存在则创建它)
  3. connection = sqlite3.connect('my_database.db')
  4. cursor = connection.cursor()
  5. # 创建表
  6. cursor.execute('''
  7. CREATE TABLE IF NOT EXISTS users (
  8.     id INTEGER PRIMARY KEY AUTOINCREMENT,
  9.     name TEXT NOT NULL,
  10.     email TEXT UNIQUE NOT NULL,
  11.     created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  12. )
  13. ''')
  14. # 插入数据
  15. cursor.execute('INSERT INTO users (name, email) VALUES (?, ?)', ('Alice', 'alice@example.com'))
  16. connection.commit()
  17. # 查询数据
  18. cursor.execute('SELECT * FROM users')
  19. for row in cursor.fetchall():
  20.     print(row)
  21. # 关闭连接
  22. connection.close()
复制代码

最佳实践


  • 利用参数化查询:通过利用参数化查询,防止 SQL 注入攻击。
  • 实现索引:对于验算频繁的列,通过实现索引以优化查询性能。
  • 实时备份:SQLite 数据库存在于单个文件中,因此完整备份该文件构成应有之事。
  • 在目标平台上测试:由于 SQLite 在不同平台上的为给有较小差别,需在目标情况上举行测试。

结论

SQLite 是一种极佳的选择,适合需要轻量级、可靠和易于利用的数据库办理方案。无论您是在构建移动应用、桌面应用,照旧小规模的网络服务,SQLite 以其简单性和突出的紧凑性使它成为一个吸引人的选择。
在下一篇文章中,我们将深入探索 SQLite 的高级功能,如索引、触发器和全文检索。敬请等待!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

笑看天下无敌手

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表