Sql 简明教程

SQL - Expressions

What is SQL Expression?

SQL 表达式是由一个或多个值、运算符和 SQL 函数组成的组合,它们都将计算出一个值。这些 SQL 表达式(们)类似于公式,且它们使用查询语言编写。您还可以使用它们来针对数据库查询一组特定的数据。

表达式在 SQL 查询的 WHERE 子句中使用。正如您可能已经知道,WHERE 子句指定为了筛选数据库表中的记录而需要满足的一个条件。此条件由单个或多个表达式组成。这些表达式进一步分为三类 -

  1. Boolean Expressions

  2. Numeric Expressions

  3. Date and time Expressions

让我们在本章中详细讨论这三个表达式中的每一个。

Syntax

考虑以下包含一些表达式的 SELECT 语句的基本语法 -

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

SQL Boolean Expressions

SQL 布尔表达式是仅返回布尔数据类型的 SQL 表达式。这些表达式可以是两种类型 -

  1. 使用 SQL 比较运算符检查两个值是否相等的布尔表达式。这里,这些值的相等性是一个条件。

  2. 布尔表达式还可以包含与 SQL 逻辑运算符配对的一个值。在这种情况下,指定的逻辑起着条件的作用。

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

Syntax

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

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

Example

考虑包含以下记录的 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;

Output

输出将显示为:

ID

NAME

AGE

ADDRESS

SALARY

7

Muffy

24

Indore

10000.00

SQL Numeric Expressions

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

Syntax

以下是语法 -

SELECT numerical_expression as OPERATION_NAME
FROM table_name
WHERE NUMERICAL EXPRESSION ;

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

Example

下面是一个显示 SQL 数值表达式用法的简单示例 −

SELECT 15 + 6;

Output

检索的输出表为 −

21

Example

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

SELECT COUNT(*) FROM CUSTOMERS;

Output

输出显示如下 −

7

SQL Date Expressions

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

Syntax

以下是语法 -

SELECT column_name(s)
FROM table_name
WHERE DATE EXPRESSION ;

Example

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

SELECT CURRENT_TIMESTAMP;

Output

输出表显示为 −

Current_Timestamp

2009-11-12 06:40:23

Example

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

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';

Output

输出表显示为 −

ORDER_ID

CUSTOMER_ID

DATE

ORDER_AMOUNT

ITEM_COUNT

103

4

2008-05-20 00:00:00

2060

3