SQLite 学习:查询操作指南(一)
2023-10-28 15:01:21
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数据库中提取所需数据。