我想我们都同意,SQL中没有比SELECT语句更常见的语句了。这就像SQL的“Hello World”是我们学习的东西,它向我们介绍了SQL。
最基本的是,我们使用SELECT语句从数据库表中检索数据。这包括指定我们希望在结果中包含哪些列。
尽管有这个功能,但我们可能会遇到这样的情况:我们希望从给定的表中选择除少数外的所有列和行。尽管它可能不像您想象的那样常见,但您一定会在数据库操作中遇到这样的实例。
在本教程中,我们将学习如何使用各种SQL技术选择除特定行和列之外的所有行和列。
注意:出于演示目的,我们使用MySQL version 8和Sakila示例数据库。您可以在官方网站下载样例数据库,并按照提供的步骤进行导入。
您还可以使用您认为合适的任何其他数据集。
例1:选择除1列外的所有列
“select except”的常见任务之一是需要选择表中除一个列外的所有列。
让我们以Sakila示例数据库为例。假设我们希望检索“film”表中除了“description”列之外的所有列。
我们可以使用如下查询来实现:
选择
film_id,
标题,
release_year,
rental_rate,
长度,
special_features
从
电影;
是的,就是这样。此方法需要指定表中除“description”列外的所有列。
例2:除了Multiple Ones
同样的情况也适用于需要排除多个列的情况。您可以将它们从SELECT查询中排除。
例如,让我们从“film”表中排除description和“special_features”。我们可以运行以下查询:
选择
film_id,
标题,
release_year,
rental_rate,
长度
从
电影;
这将返回“film”表中除了“description”和“special_features”列之外的所有列。
示例3:排除一行
在其他情况下,可能需要排除一行。在这种情况下,我们可以使用WHERE子句利用SQL条件过滤。
例如,假设我们希望排除“rental_rate”大于4.0的记录。
我们可以这样使用查询:
选择
film_id,
标题,
release_year,
rental_rate,
长度
从
电影
在哪里
rental_rate