SQLite - SELECT 查询

你好,未来的数据库大师们!今天,我们将一起探索SQLite的神奇世界,深入了解强大的SELECT查询。别担心,如果你以前从未写过一行代码——我会作为你这次冒险的友好向导。在本课结束时,你将能够像专业人士一样查询数据库!

SQLite - SELECT Query

理解基础

在我们深入细节之前,让我们先了解一下SELECT查询的作用。想象你有一个装满信息的宝箱(那就是你的数据库),你想找到特定的物品。SELECT查询就像你的藏宝图——它帮助你找到并检索你想要的确切信息。

你的第一个SELECT查询

让我们从一个简单的例子开始。假设我们有一个名为students的表,包含idnameage列。以下是如何从该表中检索所有信息的示例:

SELECT * FROM students;

这个查询告诉SQLite:“嘿,给我students表中的所有(*)信息。”就像说:“打开宝箱,给我看所有的宝贝!”

选择特定的列

现在,如果我们只想看到学生的名字呢?我们可以更具体一些:

SELECT name FROM students;

这个查询就像说:“我只想要看到宝箱中的名字标签,请!”

使用WHERE添加条件

有时,我们希望更加挑剔。假设我们想找到所有18岁的学生:

SELECT * FROM students WHERE age = 18;

这个查询增加了一个条件。就像告诉你的助手:“在宝箱中找到所有属于18岁的人的物品。”

高级SELECT技术

对结果排序

想要按特定顺序查看结果?没问题!让我们按年龄从低到高列出我们的学生:

SELECT * FROM students ORDER BY age ASC;

ASC代表升序。如果你想要相反的顺序,你会使用DESC(降序)。

限制结果

有时,我们只想看到一些结果。也许我们对前5个最老的学生感兴趣:

SELECT * FROM students ORDER BY age DESC LIMIT 5;

这个查询结合了排序和限制。就像说:“给我宝箱中5个最老的宝贝。”

设置输出列宽度

当在终端或命令行界面使用SQLite时,你可能会注意到有时输出看起来有点乱。别担心!我们可以通过设置列宽来整理它们。

以下是如何操作的:

.width 10 20 5
SELECT id, name, age FROM students;

这会将第一列的宽度设置为10个字符,第二列设置为20个,第三列设置为5个。就像整理你的宝箱,让一切都整齐地 fits!

架构信息

有时,你可能会忘记你的宝箱(表)中有哪些宝贝(列)。SQLite有一个方便的命令来查看:

.schema students

这将显示你的students表的结构,包括所有的列和它们的类型。就像有了你的宝箱地图!

把所有知识结合起来

让我们将一些概念结合到一个更复杂的查询中:

SELECT name, age
FROM students
WHERE age > 18
ORDER BY name ASC
LIMIT 10;

这个查询表示:“展示年龄超过18岁的学生的姓名和年龄,按姓名排序,但只显示前10个。”

常见的SQLite SELECT方法

下面是一个常见SQLite SELECT方法的快速参考表:

方法 描述 示例
SELECT 从一个或多个表中检索数据 SELECT * FROM table_name;
WHERE 基于条件过滤记录 SELECT * FROM table_name WHERE condition;
ORDER BY 对结果集进行排序 SELECT * FROM table_name ORDER BY column_name;
LIMIT 指定返回的最大行数 SELECT * FROM table_name LIMIT number;
DISTINCT 仅返回不同的(独特的)值 SELECT DISTINCT column_name FROM table_name;
GROUP BY 将具有相同值的行分组 SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;
HAVING 为分组指定搜索条件 SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) > value;
JOIN 从两个或多个表中组合行 SELECT * FROM table1 JOIN table2 ON table1.column_name = table2.column_name;

记住,熟能生巧!不要害怕尝试这些查询。每次你运行一个查询,你都在更好地导航你的数据宝箱。

在我多年的教学经验中,我发现学习SQLite的最好方式是动手实践。所以,这里给你一个小作业:创建一个关于你最喜欢的书籍或电影的数据库,并尝试编写查询来找到关于它们的有趣信息。你可能会为你发现的东西感到惊讶!

愉快地查询,未来的数据探险家!记住,每个伟大的数据库管理员都是从你现在的地方开始的。继续练习,保持好奇心,很快你将成为数据领域的主宰!

Credits: Image by storyset