🐸 青蛙编程网
首页 / 数据库 / SQLite / 5. 查询基础:SELECT 与 WHERE

5. 查询基础:SELECT 与 WHERE

这是什么:SELECT = 从表里挑出你要的行和列;WHERE 负责挑的条件,配 ORDER BY 排序、LIMIT 限量、LIKE 模糊匹配。

为什么用:查询占了日常 SQL 的八成。好消息是语法和 MySQL 完全通用——你在 MySQL 章学的本事这里原样能用;要留意的只是函数名差异。

如何用:沿用 article 表,把最常用的查询形态全部过一遍。

5.1 基本查询四件套

SELECT title, views FROM article
WHERE views >= 50
ORDER BY views DESC
LIMIT 2;

预期输出:

从零学前端:HTML 入门|130
CSS 才是网页的灵魂|85

语义逐条对照:SELECT 挑列、WHERE 筛行(>= 支持整数比较)、ORDER BY 按阅读量从高到低、LIMIT 只取前 2 行。这些和 MySQL 一字不差。

5.2 LIKE 模糊匹配

SELECT title FROM article WHERE title LIKE '%前端%';

预期输出:

从零学前端:HTML 入门

% 匹配任意多个字符,_ 匹配单个字符——和 MySQL 相同。SQL 默认对大小写不敏感的规则在 SQLite 只对 ASCII 生效,中文无影响。

5.3 常用函数差异对照

这里是 MySQL 转 SQLite 的主要「翻译表」:

你想做的事 MySQL 写法 SQLite 写法
字符串拼接 CONCAT(a, b) a || b
当前时间 NOW() datetime('now', 'localtime')
空值兜底 IFNULL(x, 0) IFNULL(x, 0)(相同)
字符串长度 CHAR_LENGTH(s) LENGTH(s)
四舍五入 ROUND(x, 2) ROUND(x, 2)(相同)
SELECT username || ' <' || email || '>' AS contact FROM user LIMIT 2;

预期输出:

frog <frog@example.com>
panda <panda@example.com>

|| 是 SQLite 唯一的字符串拼接符——没有 CONCAT 函数,这是最常踩的差异。

时间函数小试:

SELECT datetime('now', 'localtime');

预期输出(运行时刻的本地时间):

2026-10-25 21:02:45

5.4 动手改

  1. 查 username 以 f 开头的用户(LIKE)
  2. 把 5.1 的查询改成「阅读量最低的 2 篇」
  3. 用 || 给每篇文章标题加上书名号《》

5.5 小结

  • SELECT / WHERE / ORDER BY / LIMIT / LIKE 与 MySQL 完全通用
  • 拼接用 ||,当前时间用 datetime('now','localtime')
  • 差异主要在函数名,语法本身零成本迁移

下一章:聚合与分组 🐸

📥 下载本章代码

ZIP 内含本章全部代码文件与说明,解压即用,与教程内容同步生成。