SQL - 表达式



什么是 SQL 表达式?

SQL 表达式是由一个或多个值、运算符和 SQL 函数组合而成,这些函数都计算为一个值。这些 SQL 表达式就像公式一样,它们是用查询语言编写的。您也可以使用它们来查询数据库以获取特定数据集。

表达式用于 SQL 查询的 WHERE 子句中。您可能已经知道,WHERE 子句指定需要满足的条件,以便从数据库表中过滤记录。此条件包含单个或多个表达式。这些表达式进一步分为三种类型 -

  • 布尔表达式
  • 数值表达式
  • 日期和时间表达式

让我们在本节中详细讨论每个表达式。

语法

考虑包含一些表达式的 SELECT 语句的基本语法,如下所示 -

SELECT column1, column2, columnN
FROM table_name
WHERE [CONDITION|EXPRESSION];

SQL 布尔表达式

SQL 布尔表达式是返回布尔数据类型作为结果的 SQL 表达式。这些表达式可以分为两种类型 -

  • 使用 SQL 比较运算符检查两个值是否相等的布尔表达式。此处,这些值的相等性是一个条件。
  • 布尔表达式还可以包含一个值与 SQL 逻辑运算符配对。在这种情况下,指定的逻辑充当条件。

它们返回 TRUE、FALSE 或 UNKNOWN 作为结果。如果满足条件,则这些表达式返回 TRUE;否则返回 FALSE。当表达式中的任何一个操作数为 NULL 值时,将返回 UNKNOWN。

语法

以下是布尔表达式的语法 -

SELECT column1, column2, columnN 
FROM table_name 
WHERE BOOLEAN EXPRESSION;

示例

考虑具有以下记录的 CUSTOMERS 表 -

ID 姓名 年龄 地址 工资
1 Ramesh 32 艾哈迈达巴德 2000.00
2 Khilan 25 德里 1500.00
3 kaushik 23 科塔 2000.00
4 Chaitali 25 孟买 6500.00
5 Hardik 27 博帕尔 8500.00
6 Komal 22 海得拉巴 4500.00
7 Muffy 24 因多尔 10000.00

以下查询是一个简单的示例,显示了 SQL 布尔表达式的用法 -

SELECT * FROM CUSTOMERS WHERE SALARY = 10000;

输出

输出将显示为 -

ID 姓名 年龄 地址 工资
7 Muffy 24 因多尔 10000.00

SQL 数值表达式

SQL 数值表达式由两个操作数和一个 SQL 算术运算符组成。这些表达式用于在任何查询中执行任何数学运算。因此,操作数必须始终是数字,返回值也始终为数字。

语法

以下是语法 -

SELECT numerical_expression as OPERATION_NAME
FROM table_name
WHERE NUMERICAL EXPRESSION ;

此处,numerical_expression 用于数学表达式或任何公式。

示例

以下是一个简单的示例,显示了 SQL 数值表达式的用法 -

SELECT 15 + 6;

输出

检索到的输出表为 -

21

示例

有几个内置函数,如 avg()、sum()、count() 等,用于执行针对表或特定表列的聚合数据计算。

SELECT COUNT(*) FROM CUSTOMERS;

输出

输出显示如下 -

7

SQL 日期表达式

SQL 日期表达式用于将与日期相关的值与当前系统日期和时间值进行比较。例如,在制造公司中,可以通过在 WHERE 子句中使用日期表达式来按年对制造的物品进行分类。从一年中的第一天到最后一天进行计数,将检索每个项目的计数;一旦收集到所需的信息,公司就可以将其用于自身目的。

语法

以下是语法 -

SELECT column_name(s)
FROM table_name
WHERE DATE EXPRESSION ;

示例

在此示例中,我们尝试使用 CURRENT_TIMESTAMP 简单地检索系统的当前时间戳。

SELECT CURRENT_TIMESTAMP;

输出

输出表显示为 -

Current_Timestamp
2009-11-12 06:40:23

示例

考虑 ORDERS 表中的以下客户订单记录

订单 ID 客户 ID 日期 订单金额 商品数量
102 3 2009-10-08 00:00:00 3000 4
100 3 2009-10-08 00:00:00 1500 2
101 2 2009-11-20 00:00:00 1560 7
103 4 2008-05-20 00:00:00 2060 3

现在让我们检索 2008 年 6 月 1 日之前的记录

SELECT * FROM ORDERS WHERE DATE < '2008/06/01';

输出

输出表显示为 -

订单 ID 客户 ID 日期 订单金额 商品数量
103 4 2008-05-20 00:00:00 2060 3
广告