Skip to main content

SQLite SELECT-从单个表查询数据

SELECT语句是SQL中最常用的语句之一。SQLite SELECT语句提供SQL标准中SELECT语句的所有功能。

SELECT语句的简单用法

可以使用SELECT语句执行以下简单计算:

SELECT  1 + 1;

试试看

SQLite SELECT simple calculation

可以在SELECT语句中使用多个表达式,如下所示:

SELECT 
10 / 5,
2 * 4 ;

试试看

SQLite SELECT example

使用SELECT语句查询表中的数据

我们经常使用SELECT语句从一个或多个表中查询数据。SELECT语句的语法如下所示:

SELECT DISTINCT column_list
FROM table_list
JOIN table ON join_condition
WHERE row_filter
ORDER BY column
LIMIT count OFFSET offset
GROUP BY column
HAVING group_filter;

SELECT语句是SQLite中最复杂的语句。为了更容易理解每个部分,我们将把SELECT语句分解为多个易于理解的教程。

在本教程中,我们将重点介绍SELECT语句的最简单形式,它允许您从单个表中查询数据。

SELECT column_list
FROM table;

即使SELECT子句出现在FROM子句之前,SQLite也会先计算FROM子句,然后再计算SELECT子句,因此:

使用分号(;)终止声明。

SQLite选择示例

让我们看看示例数据库中的tracks表。

“轨迹”表包含列和行。它看起来像一个电子表格。

Tracks Table data

要从tracks表中获取数据,例如trackid、track name、composer和unit price,可以使用以下语句:

SELECT
trackid,
name,
composer,
unitprice
FROM
tracks;

试试看

在SELECT子句中指定要获取数据的列表列名,在FROM子句中指定tracks表。SQLite返回以下结果:

Tracks Table partial data

要从所有列中获取数据,请在SELECT子句中指定tracks表的列,如下所示:

SELECT
trackid,
name,
albumid,
mediatypeid,
genreid,
composer,
milliseconds,
bytes,
unitprice
FROM
tracks;

试试看

对于一个包含许多列的表,查询将非常长,以至于键入数据非常耗时。为了避免这种情况,您可以使用星号(*),它是表中所有列的缩写,如下所示:

SELECT * FROM tracks;

试试看

现在查询变得更短、更清晰。

然而…

您应该使用星号(*)仅用于测试目的,而不是在实际的应用程序开发中。

因为…

开发应用程序时,应该控制SQLite返回给应用程序的内容。假设一个表有3列,使用星号(*)从所有三列中检索数据。

如果有人删除了一列,您的应用程序将无法正常工作,因为它假定返回了三列,并且处理这三列的逻辑将被破坏。

如果有人添加了更多的列,应用程序可能会工作,但它获得的数据比需要的多,这会在数据库和应用程序之间产生更多的I/O开销。

因此,在使用SELECT语句时,尽量避免使用星号(*)作为一种好习惯。

在本教程中,您学习了如何使用SQLite SELECT语句的简单形式从单个表中查询数据。