SQL 表达式

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 NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

下面的查询是一个简单的示例,展示了SQL布尔表达式的用法:

SELECT * FROM CUSTOMERS WHERE SALARY = 10000;

输出

输出将会显示为:

ID NAME AGE ADDRESS SALARY
7 Muffy 24 Indore 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

日期表达式

日期表达式用于将与当前系统日期和时间值相关的日期值进行比较。例如,在制造公司中,可以使用日期表达式在WHERE子句中对每年生产的物品进行分拣。从一年的第一天到最后一天进行计数,将检索到每个物品的数量;一旦收集到所需信息,公司可以根据自己的目的使用这些信息。

语法

以下是语法 –

SELECT column_name(s)
FROM table_name
WHERE DATE EXPRESSION ;

示例

在这个示例中,我们尝试使用CURRENT_TIMESTAMP简单地获取系统的当前时间戳。

SELECT CURRENT_TIMESTAMP;

输出

输出表格如下所示:

Current_Timestamp   
---  
2009-11-12 06:40:23   

示例

考虑在一个订单表中的以下客户订单记录:

ORDER_ID | CUSTOMER_ID | DATE | ORDER_AMOUNT | ITEM_COUNT
—|—|—|—|—
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';

输出

输出表格显示如下:

ORDER_ID CUSTOMER_ID DATE ORDER_AMOUNT ITEM_COUNT
103 4 2008-05-20 00:00:00 2060 3

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程