本文将详细介绍 SQLite 中的子查询,并提供一些实际的测试数据和示例。本文将深入探讨子查询的概念、类型、用法,并通过具体的例子来展示其在实际应用中的强大功能。
首先,让我们创建一些测试表和数据来演示子查询的使用。我们将创建一个简单的员工管理系统,包含员工、部门和项目三个表。
SQL-- 创建部门表
CREATE TABLE departments (
dept_id INTEGER PRIMARY KEY,
dept_name TEXT NOT NULL,
location TEXT
);
-- 创建员工表
CREATE TABLE employees (
emp_id INTEGER PRIMARY KEY,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
dept_id INTEGER,
salary REAL,
hire_date TEXT,
FOREIGN KEY (dept_id) REFERENCES departments(dept_id)
);
-- 创建项目表
CREATE TABLE projects (
project_id INTEGER PRIMARY KEY,
project_name TEXT NOT NULL,
start_date TEXT,
end_date TEXT,
dept_id INTEGER,
FOREIGN KEY (dept_id) REFERENCES departments(dept_id)
);
-- 插入部门数据
INSERT INTO departments (dept_id, dept_name, location) VALUES
(1, 'IT', 'New York'),
(2, 'HR', 'Los Angeles'),
(3, 'Finance', 'Chicago'),
(4, 'Marketing', 'San Francisco');
-- 插入员工数据
INSERT INTO employees (emp_id, first_name, last_name, dept_id, salary, hire_date) VALUES
(1, 'John', 'Doe', 1, 75000, '2020-01-15'),
(2, 'Jane', 'Smith', 2, 65000, '2019-05-20'),
(3, 'Mike', 'Johnson', 1, 80000, '2018-03-10'),
(4, 'Emily', 'Brown', 3, 72000, '2021-02-01'),
(5, 'David', 'Lee', 4, 68000, '2020-11-15'),
(6, 'Sarah', 'Wilson', 2, 62000, '2019-09-01'),
(7, 'Tom', 'Davis', 1, 78000, '2017-07-22'),
(8, 'Lisa', 'Anderson', 3, 70000, '2022-01-10');
-- 插入项目数据
INSERT INTO projects (project_id, project_name, start_date, end_date, dept_id) VALUES
(1, 'CRM Upgrade', '2022-01-01', '2022-06-30', 1),
(2, 'Employee Training Program', '2022-03-15', '2022-12-31', 2),
(3, 'Financial Reporting System', '2022-02-01', '2022-11-30', 3),
(4, 'Product Launch Campaign', '2022-04-01', '2022-09-30', 4),
(5, 'Network Infrastructure Upgrade', '2022-05-01', '2022-10-31', 1);
这些测试数据为我们提供了一个基础,可以用来演示各种子查询的使用场景。
在数据库应用中,日期和时间的处理是一个常见而又关键的任务。SQLite 提供了一系列强大的内置函数来处理日期和时间,使得开发者能够轻松地进行时间相关的数据操作和计算。本文将深入探讨 SQLite 日期和时间函数的各个方面,包括其基本概念、主要函数、使用技巧以及最佳实践。
SQLite 没有专门的日期和时间存储类型。相反,它使用以下方式存储日期和时间:
这种灵活性使得 SQLite 能够适应各种日期时间表示方式,但也要求开发者在使用时更加谨慎。
聚合函数是 SQL 中非常重要的一类函数,它们能够对一组值进行计算,并返回单一结果。这些函数在数据分析、报表生成和复杂查询中扮演着关键角色。本文将深入探讨 SQLite 聚合函数的各个方面,包括其定义、类型、用法、高级特性以及最佳实践。
聚合函数是对一组值执行计算并返回单个结果的函数。它们通常用于数据汇总、统计分析和报表生成。聚合函数在处理大量数据时特别有用,可以快速提供数据的概览和洞察。
SQLite 提供了以下标准聚合函数:
SQLite 提供了丰富的内置函数,这些函数可以在 SQL 查询中直接使用,大大增强了数据处理和操作的能力。本文将深入探讨 SQLite 内置函数的各个方面,包括其分类、用法、特性以及最佳实践。
SQLite 内置函数是预定义的功能,可以在 SQL 语句中直接调用。这些函数涵盖了广泛的功能,从简单的数学运算到复杂的字符串处理和日期操作。内置函数的使用可以显著简化查询逻辑,提高查询效率。
核心函数是最常用的基本函数:
SQLSELECT typeof(123); -- 返回 'integer'
SQLSELECT coalesce(NULL, 'default'); -- 返回 'default'
SQLSELECT nullif(5, 5); -- 返回 NULL
SQLSELECT random();