Operators&Funtions 使用说明

说明

KVSQL是一款SQL合约执行引擎,可以运行符合范围的SQL语句,目标支持了部分常见运算符以及函数功能。以及在区块链的特殊场景下,并非所有功能都能够正常使用,部分函数被KVSQL限制以保障SQL智能合约执行的沙箱环境的安全。

限制功能主要包括如下:

  • 随机数

  • 部分浮点数函数

Operators

Name

Description

&

Bitwise AND

>

Greater than operator

>>

Right shift

>=

Greater than or equal operator

<

Less than operator

<>,!=

Not equal operator

<<

Left shift

<=

Less than or equal operator

<=>

NULL-safe equal to operator

%,MOD

Modulo operator

*

Multiplication operator

Addition operator

Minus operator

Change the sign of the argument

/

Division operator

=

Assign a value (as part of aSETstatement, or as part of theSETclause in aUPDATEstatement)

=

Equal operator

^

Bitwise XOR

AND, &&

Logical AND

BETWEEN … AND …

Whether a value is within a range of values

BINARY

Cast a string to a binary string

CASE

Case operator

DIV

Integer division

IN()

Whether a value is within a set of values

IS

Test a value against a boolean

IS NOT

Test a value against a boolean

IS NOT NULL

NOT NULL value test

IS NULL

NULL value test

LIKE

Simple pattern matching

NOT,!

Negates value

NOT BETWEEN … AND …

Whether a value is not within a range of values

NOT IN()

Whether a value is not within a set of values

NOT LIKE

Negation of simple pattern matching

NOT REGEXP

Negation of REGEXP

OR,

REGEXP

Whether string matches regular expression

RLIKE

Whether string matches regular expression

XOR

Logical XOR

~

Bitwise inversion

Flow Control Functions

Name

Description

CASE

Case operator

IF()

If/else construct

IFNULL()

Null if/else construct

NULLIF()

Return NULL if expr1 = expr2

CASE value WHEN compare_value THEN result [WHEN compare_value THEN result …] [ELSE result] END

需要注意的是,以上四种语句中的结果表达式的类型不同时,会将所有的表达式返回类型统一。这一点与mySQL存在差异。

Numeric Functions and Operators

Name

Description

%,MOD

Modulo operator

*

Multiplication operator

Addition operator

Minus operator

Change the sign of the argument

/

Division operator

ABS()

Return the absolute value

CEIL()

Return the smallest integer value not less than the argument

CEILING()

Return the smallest integer value not less than the argument

CONV()

Convert numbers between different number bases

CRC32()

Compute a cyclic redundancy check value

DEGREES()

Convert radians to degrees

DIV

Integer division

FLOOR()

Return the largest integer value not greater than the argument

MOD()

Return the remainder

PI()

Return the value of pi

RADIANS()

Return argument converted to radians

ROUND()

Round the argument

SIGN()

Return the sign of the argument

SQRT()

Return the square root of the argument

TRUNCATE()

Truncate to specified number of decimal places

Date and Time Functions

Name

Description

CURDATE()

Return the current date

CURRENT_DATE(),CURRENT_DATE

Synonyms for CURDATE()

CURRENT_TIME(),CURRENT_TIME

Synonyms for CURTIME()

CURRE NT_TIMESTAMP(),CURRENT_TIMESTAMP

Synonyms for NOW()

CURTIME()

Return the current time

UTC_DATE()

Return the current UTC date

UTC_TIME()

Return the current UTC time

UTC_TIMESTAMP()

Return the current UTC date and time

String Functions and Operators

Name

Description

CONCAT()

Return concatenated string

FORMAT()

Return a number formatted to specified number of decimal places

LIKE

Simple pattern matching

LOWER()

Return the argument in lowercase

NOT LIKE

Negation of simple pattern matching

NOT REGEXP

Negation of REGEXP

REGEXP

Whether string matches regular expression

RLIKE

Whether string matches regular expression

TRIM()

Remove leading and trailing spaces

UPPER()

Convert to uppercase

Cast Functions and Operators

不支持json类型的转换与被转换;不支持指定字符集

Name

Description

BINARY

Cast a string to a binary string

CAST()

Cast a value as a certain type

CONVERT()

Cast a value as a certain type

Bit Functions and Operators

Name

Description

&

Bitwise AND

>>

Right shift

<<

Left shift

^

Bitwise XOR

BIT_COUNT()

Return the number of bits that are set

~

Bitwise inversion

Aggregate Functions

Name

Description

AVG()

Return the average value of the argument

BIT_AND()

Return bitwise AND

BIT_OR()

Return bitwise OR

BIT_XOR()

Return bitwise XOR

COUNT()

Return a count of the number of rows returned

COUNT(DISTINCT)

Return the count of a number of different values

GROUP_CONCAT()

Return a concatenated string

MAX()

Return the maximum value

MIN()

Return the minimum value

STDDEV_POP()

Return the population standard deviation

STDDEV_SAMP()

Return the sample standard deviation

SUM()

Return the sum

VAR_POP()

Return the population standard variance

VAR_SAMP()

Return the sample variance