SQLite SELECT 语句
SELECT语句用于从 SQLite 数据库中查询数据。它是最常用的 SQL 语句之一,可以根据条件选择表中的一个或多个列。
1. 基本 SELECT 语法
SELECT column1, column2, ...
FROM table_name
WHERE condition;
column1, column2, ...:要查询的列。如果查询所有列,可以使用*。table_name:要查询数据的表名。condition:可选的过滤条件,用于限制查询的记录。
2. 查询所有列
语法
SELECT * FROM table_name;
* 表示查询所有列的数据。
示例:查询所有用户数据
SELECT * FROM users;
这条语句会返回 users 表中所有列和所有记录。
3. 查询指定列
语法
SELECT column1, column2, ... FROM table_name;
你可以指定查询某些列。
示例:查询用户的 name 和 age
SELECT name, age FROM users;
这条语句只会返回 users 表中的 name 和 age 列。
4. 使用 WHERE 子句进行条件过滤
WHERE 子句用于指定过滤条件,可以基于列值进行筛选。
语法
SELECT column1, column2, ...
FROM table_name
WHERE condition;
示例:查询年龄大于 30 的用户
SELECT name, age FROM users WHERE age > 30;
这将返回 age 大于 30 的所有用户的 name 和 age。
更多条件操作
=:等于>:大于<:小于>=:大于或等于<=:小于或等于<>或!=:不等于BETWEEN ... AND ...:范围查找IN (...):匹配多个值LIKE:模糊匹配IS NULL:查找空值
5. 使用 ORDER BY 排序
ORDER BY 子句用于对查询结果进行排序,可以按升序(ASC)或降序(DESC)排序。
语法
SELECT column1, column2, ...
FROM table_name
ORDER BY column_name [ASC | DESC];
ASC:升序(默认)。DESC:降序。
示例:按年龄升序查询用户
SELECT name, age FROM users ORDER BY age ASC;
这会按照 age 列的升序返回所有用户。
示例:按年龄降序查询用户
SELECT name, age FROM users ORDER BY age DESC;
这会按照 age 列的降序返回所有用户。
6. 使用 LIMIT 限制查询结果
LIMIT 子句用于限制查询返回的记录数。
语法
SELECT column1, column2, ...
FROM table_name
LIMIT number;
示例:返回前 5 条用户数据
SELECT name, age FROM users LIMIT 5;
这会返回 users 表中的前 5 条记录。
7. 聚合函数
SQLite 提供了多种聚合函数,如 COUNT(), SUM(), AVG(), MAX(), MIN() 等。
示例:查询用户总数
SELECT COUNT(*) FROM users;
这会返回 users 表中的记录数。
示例:查询用户的平均年龄
SELECT AVG(age) FROM users;
这会返回 users 表中所有用户的平均年龄。
8. 使用 GROUP BY 子句分组
GROUP BY 用于将查询结果按某一列分组,并可以与聚合函数结合使用。
语法
SELECT column, AGGREGATE_FUNCTION(column)
FROM table_name
GROUP BY column;
示例:按年龄分组并统计每个年龄段的用户数
SELECT age, COUNT(*) FROM users GROUP BY age;
这会按 age 列将用户分组,并统计每个年龄段的用户数量。
9. 使用 JOIN 连接多个表
SQLite 支持多种连接操作,如 INNER JOIN, LEFT JOIN, RIGHT JOIN(RIGHT JOIN 不被 SQLite 支持),可以将多个表的数据结合起来查询。
示例:使用 INNER JOIN 查询订单及用户信息
假设有两个表 users 和 orders,orders 表包含 user_id 列,用于关联 users 表的 id。
SELECT users.name, orders.order_id
FROM users
INNER JOIN orders ON users.id = orders.user_id;
这条语句会返回所有有订单的用户的姓名和订单 ID。
10. 在 Python 中使用 SELECT
在 Python 中,你可以使用 sqlite3 库执行 SELECT 语句。
示例:查询所有用户数据
import sqlite3
# 连接到数据库
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()
# 执行 SELECT 查询
cursor.execute("SELECT name, age FROM users")
# 获取所有结果
rows = cursor.fetchall()
for row in rows:
print(row)
# 关闭连接
conn.close()
总结
- 基本查询:使用
SELECT查询表中的数据。 - WHERE 子句:用于添加查询条件。
- ORDER BY:用于排序查询结果。
- LIMIT:用于限制查询结果的数量。
- 聚合函数:用于计算如总数、平均值等。
- JOIN 操作:用于连接多个表查询数据。
- GROUP BY:用于分组和聚合查询。
更多详细内容请关注其他相关文章。