SQLite3常用函数

本文将介绍SQLite3数据库中的一些常用函数。

abs(value)函数,返回参数value的绝对值,如下面的代码。

SQLite3
select abs(123), abs(-123);

执行代码会返回两个123。

hex(data)函数,返回参数data的十六进制文本,如下面的代码。

SQLite3
select hex('abc');

执行代码会返回'616263'。

round(value,precision)函数,返回参数value指定,参数precision指定小数精度的位数,默认为0,多于的位数会四舍五入;函数总是会返回一个浮点数,下面的代码演示了round()函数的基本应用。

SQLite3
select round('123.456'),round('123.456',2);

执行代码会返回123.0和123.46。

以下是与空值判断相关的函数:

  • coalesce(param1,param2,...)函数,返回第一个非null参数。所有参数为null时返回null。
  • ifnull(param1,param2)函数,param1非null返回param1,否则返回param2。
  • nullif(param1,param2)函数,两个参数相等返回null,否则返回第一个参数;两个参数都是null同样返回null值。

下面的代码演示了这几个函数的基本应用。

SQLite3
select coalesce(null,null,3), ifnull(1,2), nullif(1,1);

执行代码会返回3、1、null。可以修改函数的参数来观察返回结果。

random()函数,返回64位有符号随机整数。数据范围从-9223372036854775808到+9223372036854775807。下面的代码演示了random()函数的应用。

SQLite3
select random(), (abs(random())%10);

请注意第二个返回结果,会显示一个0到9的随机数。如果需要指定一个随机数范围,可以使用公式“(abs(random())%(最大值-最小值))+最小值”计算,但结果不包含最大值,如下面的代码,会返回5到9的随机数。

SQLite3
select (abs(random())%(10-5))+5;

randomblob(size)函数,返回指定尺寸(字节)的随机BLOB数据。zeroblob(size)函数,创建指定尺寸(字节)的BLOB,字节值都设置为0。下面的代码演示了这两个函数的应用。

SQLite3
select hex(randomblob(10)), hex(zeroblob(10));

本例,第一输出每次会不一样,而第二个输出则是'00000000000000000000'。