全部产品
云市场

运算符概述

更新时间:2020-03-30 14:54:35

运算符一般用于连接运算数或参数之类的单个数据项且返回结果。从语法上讲,运算符出现在运算数之前、之后或两个运算数之间均可。一般用特殊字符或关键字表示运算符,例如,除法运算符用斜杠(/)表示。本章讨论非逻辑(非布尔)运算符,这些运算符本身不能用作查询或子查询的 WHEREHAVING 条件。

本章将详细介绍以下运算符:

一元和二元运算符

运算符可分为两大类:

  • 一元运算符:一元运算符仅对一个运算数进行运算。一元运算符常用格式:
    1. 运算符 运算数
  • 二元运算符:二元运算符顾名思义是对两个运算数进行运算。二元运算符常用格式:
    1. 运算数1 运算符 运算数2
    其他具有特殊格式的运算符可接受两个以上的运算数。如果为运算符提供了空运算数, 则结果始终为空。唯一不遵循此规则的是串联(||)运算符。

运算符优先级

优先级会影响 OceanBase 数据库在同一表达式中评估不同运算符的顺序。在评估包含多个运算符的表达式时,OceanBase 会先评估优先级更高的运算符,然后再评估优先级较低的运算符,优先级相等时,在表达式中从左到右对相等的运算符求值。下表列出了 SQL 运算符中从高到低的优先级。同一行上列出的运算符具有相同的优先级。

运算符 运算方式
+、-(作为一元运算符)、PRIOR、CONNECT_BY_ROOT 身份、否定、层次结构中的位置。
*、/ 乘法、除法。
+、-(作为二进制运算符)、|| 加、减、串联。
条件表达式在数据库评估完运算符后再进行评估 详情请参阅文档 条件优先

在以下示例中,由于乘法的优先级高于加法,因此数据库首先将 2 乘以 3,然后再将结果加到 1。

  1. 1+2*3

您也可以在表达式中使用括号来限制运算符优先级。OceanBase 将先对括号内的表达式求值,再对括号外部的表达式求值。

SQL 还支持集合运算符(UNIONUNION ALLINTERSECTMINUS),集合运算符会合并查询返回的行集,而不是单个数据项。所有集合运算符都具有相同的优先级。