SQL表达式

时间:2020-02-23 14:32:27  来源:igfitidea点击:

SQL表达式是一个或者多个值,运算符以及产生一个值的SQL函数的组合。
这些SQL EXPRESSION与公式相似,它们以查询语言编写。
您还可以使用它们来查询数据库以获取一组特定的数据。

SQL表达式

SQL表达式可分为以下几类。

  • 布尔型
  • 数字
  • 日期

让我们尝试通过示例程序来详细了解表达式的类型。

SQL布尔表达式

SQL布尔表达式根据在SQL查询中提到的条件获取数据。
执行查询时,它应该仅获取单个值。
其语法如下。

SELECT column 
FROM table_name 
WHERE SINGLE_VALUE_MATCHING_EXPRESSION;

让我们尝试使用带有一些数据的示例表来理解布尔表达式。

EmpIdEmpNameEmpAgeEmpSalary
1John322000
2Smith252500
3Henry293000

我们将以上面提到的Employee表为例。

查询示例:

SELECT EmpName FROM Employee WHERE EmpId = 1;

上面的查询将产生单个值,对于我们的查询为" John"。
SQL布尔表达式应与主键一起使用,以使您始终只能获得一个结果。
如果嵌套的SQL选择查询是必需的。

select posts.title, posts.author_id from posts, authors 
where posts.author_id = authors.id and 
posts.author_id = (select id from authors where name = 'hyman');

上面的查询将返回所有帖子名称和ID,其中作者名为hyman。
此处的嵌套SQL查询应始终仅返回一行,否则您将收到错误消息,因为"子查询返回的行数超过了1"。

SQL数字表达式

SQL数值表达式用于在SQL查询中执行数学运算。
其语法如下:

SELECT NUMERICAL_EXPRESSION as OPERATION_NAME
FROM table_name

NUMERICAL_EXPRESSION是将在SQL查询中使用的函数的数学公式。

让我们尝试通过一个例子来理解数值表达式。

SELECT count(*) FROM Employee; -- 3

上面的查询将结果为3,因为COUNT()函数将基于WHERE子句中的条件提供行的总数。
例如,从雇员中选择empsalary> 2400;的count(
)将返回2。

还有其他函数,例如sum(),avg(),min(),max()等。
这些函数用于数学运算。
让我们再看一些有关SQL数值表达式的示例代码片段。

SELECT sum(EmpSalary) as "Salary" FROM Employee; -- 7500
select min(EmpSalary) from Employee; -- 2000
select max(EmpSalary) from Employee; -- 3000
select sum(EmpSalary) from Employee; -- 7500
select avg(EmpSalary) from Employee; -- 2500.0000

SQL日期表达式

SQL日期表达式产生datetime值。

让我们尝试通过一些sql语句了解Date表达式。

SELECT CURRENT_TIMESTAMP; -- 2016-01-20 10:32:37

-- For MYQSL
SELECT now(); -- 2016-01-20 10:32:57

-- For SQL Server
SELECT GetDate();

-- For Oracle DB
select sysdate from Dual; -- 20-JAN-18

以上查询将导致系统当前时间。
请注意,每个关系数据库供应商都有获取当前日期和时间戳记值的特定方法,因此,一个数据库中的一个功能在另一个数据库中不起作用的可能性很小。

这些都用于SQL表达式,我们将在以后的SQL教程和程序中大量使用这些表达式。