SQL表达式
SQL表达式是一个或者多个值,运算符以及产生一个值的SQL函数的组合。
这些SQL EXPRESSION与公式相似,它们以查询语言编写。
您还可以使用它们来查询数据库以获取一组特定的数据。
SQL表达式
SQL表达式可分为以下几类。
- 布尔型
- 数字
- 日期
让我们尝试通过示例程序来详细了解表达式的类型。
SQL布尔表达式
SQL布尔表达式根据在SQL查询中提到的条件获取数据。
执行查询时,它应该仅获取单个值。
其语法如下。
SELECT column FROM table_name WHERE SINGLE_VALUE_MATCHING_EXPRESSION;
让我们尝试使用带有一些数据的示例表来理解布尔表达式。
EmpId | EmpName | EmpAge | EmpSalary |
---|---|---|---|
1 | John | 32 | 2000 |
2 | Smith | 25 | 2500 |
3 | Henry | 29 | 3000 |
我们将以上面提到的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教程和程序中大量使用这些表达式。