编辑
2025-09-28
SQLite
00

SQLite 提供了丰富的内置函数,这些函数可以在 SQL 查询中直接使用,大大增强了数据处理和操作的能力。本文将深入探讨 SQLite 内置函数的各个方面,包括其分类、用法、特性以及最佳实践。

SQLite 内置函数概述

SQLite 内置函数是预定义的功能,可以在 SQL 语句中直接调用。这些函数涵盖了广泛的功能,从简单的数学运算到复杂的字符串处理和日期操作。内置函数的使用可以显著简化查询逻辑,提高查询效率。

核心函数

核心函数是最常用的基本函数:

  1. typeof(X):返回参数的数据类型。
SQL
SELECT typeof(123); -- 返回 'integer'
  1. coalesce(X,Y,...):返回第一个非 NULL 参数。
SQL
SELECT coalesce(NULL, 'default'); -- 返回 'default'
  1. nullif(X,Y):如果 X 等于 Y,返回 NULL;否则返回 X。
SQL
SELECT nullif(5, 5); -- 返回 NULL
  1. random():返回一个随机整数。
SQL
SELECT random();
编辑
2025-09-28
SQLite
00

触发器其实开发中基本没用到,到是运维中用到不少。触发器是数据库中的一种特殊类型的存储过程,它会在特定的数据库事件发生时自动执行。本文将深入探讨 SQLite 触发器的各个方面,包括其概念、语法、类型、使用场景以及最佳实践。

什么是触发器?

触发器是一种数据库对象,它与表关联并在指定的数据库事件(如插入、更新或删除)发生时自动执行。触发器可以在这些事件之前或之后执行,用于实现复杂的业务规则、维护数据完整性、记录变更历史等。

SQLite 触发器的类型

SQLite 支持以下类型的触发器:

  1. BEFORE 触发器:在指定事件之前执行。
  2. AFTER 触发器:在指定事件之后执行。
  3. INSERT 触发器:在插入操作时触发。
  4. UPDATE 触发器:在更新操作时触发。
  5. DELETE 触发器:在删除操作时触发。

创建测试数据

SQL
-- 1. 创建用户表 CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT NOT NULL, age INTEGER NOT NULL, salary DECIMAL(10,2), created_at DATETIME DEFAULT CURRENT_TIMESTAMP, last_modified DATETIME DEFAULT CURRENT_TIMESTAMP ); -- 2. 创建用户日志表 CREATE TABLE user_logs ( id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER, action TEXT NOT NULL, action_date DATETIME DEFAULT CURRENT_TIMESTAMP, details TEXT, FOREIGN KEY (user_id) REFERENCES users(id) );
编辑
2025-09-28
SQLite
00

视图是数据库中的一个强大功能,它可以简化复杂查询,提高数据安全性,并为用户提供一个更加抽象和易于理解的数据模型。本文将深入探讨 SQLite 视图的各个方面,包括其定义、创建、使用以及最佳实践。

什么是视图?

视图是一个虚拟表,其内容由查询定义。它不包含数据本身,而是基于一个 SQL 查询动态生成数据。视图可以包含一个或多个表的所有行或列的子集,也可以包含从多个表中导出的数据。

视图的优势

  1. 简化复杂查询:视图可以封装复杂的 SQL 查询,使其易于重用。
  2. 提供数据安全性:视图可以限制用户对底层表的访问。
  3. 数据抽象:视图可以提供一个与物理数据模型不同的逻辑数据模型。
  4. 数据一致性:通过视图确保不同应用程序使用相同的数据检索逻辑。
  5. 向后兼容性:当底层数据结构发生变化时,视图可以保持应用程序接口的稳定。
编辑
2025-09-28
SQLite
00

索引是数据库中用于加速数据检索操作的数据结构。正确使用索引可以显著提高查询性能,尤其是在大型数据集上。本文将深入探讨 SQLite 索引的各个方面,包括其类型、创建、使用以及最佳实践。

什么是索引?

索引是一种数据结构,用于加速数据库的数据检索操作。它类似于书籍的目录,允许数据库引擎快速定位所需的数据,而无需扫描整个表。

SQLite 中的索引类型

SQLite 支持几种类型的索引:

  1. 单列索引:在一个列上创建的索引。
  2. 复合索引:在多个列上创建的索引。
  3. 唯一索引:不允许索引列有重复值的索引。
  4. 部分索引:只索引满足特定条件的行。
  5. 表达式索引:基于表达式的结果创建的索引。

创建索引

基本语法

SQL
CREATE INDEX index_name ON table_name (column_name);

创建单列索引

SQL
CREATE INDEX idx_lastname ON employees (lastname);

image.png

编辑
2025-09-28
SQLite
00

约束是数据库中用于维护数据完整性和一致性的规则。它们在创建表时定义,并在插入、更新或删除数据时强制执行。SQLite 支持多种类型的约束,每种都有其特定的用途和重要性。

什么是约束?

约束是应用于表中列的规则,用于限制可以插入到表中的数据类型。它们有助于确保数据的准确性和可靠性。SQLite 支持以下类型的约束:

  • PRIMARY KEY
  • UNIQUE
  • NOT NULL
  • CHECK
  • DEFAULT
  • FOREIGN KEY