返回

SQLite 学习:查询操作指南(一)

Android

SQLite作为一款轻量级关系型数据库管理系统,因其便携性、易用性和高效性而广受欢迎。在SQLite中,查询操作是数据检索的核心。本次学习笔记将重点介绍SQLite中查询操作的各种用法和技巧,帮助你熟练掌握查询操作,从而高效地从数据库中提取所需数据。

1. 简单查询语句

SQLite中的查询操作主要通过SELECT语句来实现。SELECT语句的基本语法如下:

SELECT column_list
FROM table_name
WHERE condition;

其中,column_list指定要检索的列,table_name指定要查询的表,WHERE condition指定查询条件。如果省略WHERE condition,则查询将检索表中的所有数据。

2. WHERE 子句

WHERE子句用于指定查询条件,它可以帮助你从表中筛选出满足特定条件的数据。WHERE子句的基本语法如下:

WHERE column_name operator value;

其中,column_name指定要比较的列,operator指定比较运算符,value指定要比较的值。

SQLite支持多种比较运算符,包括等于(=)、不等于(<>)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、LIKE和NOT LIKE。

3. 操作符

SQLite支持多种操作符,除了比较运算符外,还包括逻辑运算符、算术运算符和字符串运算符等。

逻辑运算符用于连接两个或多个查询条件,包括AND、OR和NOT。AND运算符表示两个条件都必须满足,OR运算符表示其中一个条件满足即可,NOT运算符表示条件不满足。

算术运算符用于对数字进行计算,包括加(+)、减(-)、乘(*)、除(/)和取模(%)。

字符串运算符用于比较或连接字符串,包括等于(=)、不等于(<>)、连接(||)和LIKE。

4. 条件查询

条件查询是通过WHERE子句来实现的。你可以使用WHERE子句来指定查询条件,从而从表中筛选出满足特定条件的数据。

例如,以下查询将从"customers"表中检索所有年龄大于25岁的客户信息:

SELECT *
FROM customers
WHERE age > 25;

5. 通配符

通配符是一种特殊字符,可以匹配任何字符或字符串。SQLite支持两种通配符:百分号(%)和下划线(_)。

百分号(%)可以匹配任何数量的字符,包括零个字符。例如,以下查询将从"products"表中检索所有名称以"A"开头的产品信息:

SELECT *
FROM products
WHERE name LIKE 'A%';

下划线(_)可以匹配任何单个字符。例如,以下查询将从"customers"表中检索所有姓名包含"a"字母的客户信息:

SELECT *
FROM customers
WHERE name LIKE '%a%';

6. 排序

你可以使用ORDER BY子句对查询结果进行排序。ORDER BY子句的基本语法如下:

ORDER BY column_name [ASC|DESC];

其中,column_name指定要排序的列,ASC表示升序排序,DESC表示降序排序。

例如,以下查询将从"customers"表中检索所有客户信息,并按照年龄升序排序:

SELECT *
FROM customers
ORDER BY age ASC;

7. 限制

你可以使用LIMIT子句来限制查询结果的数量。LIMIT子句的基本语法如下:

LIMIT number;

其中,number指定要返回的结果数量。

例如,以下查询将从"products"表中检索前10条产品信息:

SELECT *
FROM products
LIMIT 10;

8. 聚合函数

聚合函数用于对数据进行汇总计算。SQLite支持多种聚合函数,包括SUM、COUNT、AVG、MIN和MAX。

SUM函数用于计算指定列的总和。例如,以下查询将计算"products"表中所有产品的总价格:

SELECT SUM(price)
FROM products;

COUNT函数用于计算指定列的记录数。例如,以下查询将计算"customers"表中所有客户的总数:

SELECT COUNT(*)
FROM customers;

AVG函数用于计算指定列的平均值。例如,以下查询将计算"products"表中所有产品的平均价格:

SELECT AVG(price)
FROM products;

MIN函数用于计算指定列的最小值。例如,以下查询将计算"products"表中所有产品的最低价格:

SELECT MIN(price)
FROM products;

MAX函数用于计算指定列的最大值。例如,以下查询将计算"products"表中所有产品的最高价格:

SELECT MAX(price)
FROM products;

9. 子查询

子查询是指在一个查询中嵌套另一个查询。子查询可以用于从其他表中检索数据,并将其作为外层查询的查询条件。

子查询的基本语法如下:

SELECT column_list
FROM table_name
WHERE condition
(SELECT column_list
FROM table_name
WHERE condition);

例如,以下查询将从"customers"表中检索所有购买了"iPhone"产品的客户信息:

SELECT *
FROM customers
WHERE customer_id IN (
    SELECT customer_id
    FROM orders
    WHERE product_id = 'iPhone'
);

10. 视图

视图是一种虚拟表,它不是实际存储在数据库中的,而是从其他表中派生出来的。视图可以帮助你简化查询操作,并提高查询效率。

创建视图的基本语法如下:

CREATE VIEW view_name AS
SELECT column_list
FROM table_name
WHERE condition;

例如,以下查询将创建一个名为"active_customers"的视图,该视图包含所有状态为"active"的客户信息:

CREATE VIEW active_customers AS
SELECT *
FROM customers
WHERE status = 'active';

你可以在视图上执行查询操作,就像在普通表上执行查询操作一样。例如,以下查询将从"active_customers"视图中检索所有客户信息:

SELECT *
FROM active_customers;

结语

SQLite的查询操作功能强大,能够满足各种数据检索需求。通过熟练掌握WHERE子句、操作符、条件查询、通配符、排序、限制、聚合函数、子查询和视图等知识,你将能够高效地从SQLite数据库中提取所需数据。