五种主流数据库:常用数值函数

域名2025-11-04 07:23:068

SQL 的种主主要功能就是对数据进行处理和分析。为了提高数据处理的流数效率,SQL 为我们提供了许多预定义的据库功能模块,也就是常用函数(Function)。

数值函数通常接收一个或者多个数字类型的数值参数,并且返回一个数值结果。函数本文比较五种主流数据库常用数值函数的种主实现和差异,包括 MySQL、流数Oracle、据库SQL Server、常用PostgreSQL 以及 SQLite。数值

数值函数

函数功能

MySQL

Oracle

SQL Server

PostgreSQL

SQLite

ABS(x)

计算x的函数绝对值

✔️

✔️

✔️

✔️

✔️

CEILING(x)

返回大于或等于x的最小整数

✔️

CEIL(x)

✔️

✔️

CEIL(x)

FLOOR(x)

返回小于或等于x的最大整数

✔️

✔️

✔️

✔️

✔️

MOD(x, y)

计算x除以y的余数

✔️

✔️

x % y

✔️

x % y

ROUND(x, n)

将x四舍五入到n位小数

✔️

✔️

✔️

✔️

✔️

RANDOM()

返回一个伪随机数

RAND()

DBMS_RANDOM

RAND()

✔️

✔️

绝对值函数

ABS(x) 函数计算输入参数的绝对值,例如:

复制SELECT ABS(-1),种主 ABS(1), ABS(0) FROM employee WHERE emp_id = 1;1.2.3.

查询返回的结果如下:

复制ABS(-1)|ABS(1)|ABS(0) -------|------|------ 1| 1| 01.2.3. 取整函数

CEIL(x) 和 CEILING(x) 函数返回大于或等于 x 的最小整数,也就是流数向上取整。FLOOR(x) 函数返回小于或等于 x 的据库最大整数,也就是向下取整。例如:

复制SELECT CEIL(-2), CEILING(-2), FLOOR(4.5) FROM employee WHERE emp_id = 1;1.2.3.

Oracle 不支持 CEILING(x) 函数,亿华云Microsoft SQL Server 不支持 CEIL(x) 函数。查询返回的结果如下:

复制CEIL(-2)|CEILING(-2)|FLOOR(4.5) --------|-----------|---------- -2| -2| 41.2.3.

ROUND(x, n) 函数将 x 四舍五入到 n 位小数,也就是执行四舍五入运算。例如:

复制SELECT ROUND(9.456, 1), ROUND(9.456) FROM employee WHERE emp_id = 1;1.2.3.

第二个函数调用时省略了参数 n,表示四舍五入到整数。Microsoft SQL Server 不能省略参数 n,可以将 ROUND(9.456) 替换成 ROUND(9.456, 0)。查询返回的结果如下:

复制ROUND(9.456, 1)|ROUND(9.456) ---------------|------------ 9.5| 91.2.3. 求余函数

MOD(x, y)函数计算 x 除以 y 的余数,也就是执行求模运算。例如:

复制-- Oracle、MySQL 以及 PostgreSQL SELECT MOD(5,3) FROM employee WHERE emp_id = 1;1.2.3.4.

Oracle、MySQL 以及 PostgreSQL 实现了 MOD 函数。查询返回的结果如下:

复制MOD(5,3) -------- 21.2.3.

Microsoft SQL Server 和 SQLite 没有提供 MOD 函数,可以使用%运算符进行求模运算:

复制-- Microsoft SQL Server、MySQL、PostgreSQL 以及 SQLite SELECT 5 % 3 FROM employee WHERE emp_id = 1;1.2.3.4.

MySQL 和 PostgreSQL 也支持这种语法。查询返回的结果和上面的示例相同。

生成伪随机数

通过计算机生成的随机数都是伪随机数,数据库都提供了生成伪随机数的函数。

MySQL 使用 RAND 函数返回一个大于或等于 0 且小于 1 的随机数。Microsoft SQL Server 也使用 RAND 函数返回随机数,云南idc服务商但是随机数的取值范围为大于 0 且小于 1。例如:

复制-- MySQL 和 Microsoft SQL Server SELECT RAND() FROM employee WHERE emp_id <= 3;1.2.3.4.

对于 MySQL 而言,在一个查询语句中的多次 RAND 函数调用都会返回不同的随机数。查询返回的结果如下:

复制RAND() ------------------- 0.12597889371773124 0.6288336549222783 0.76623162419184271.2.3.4.5.

对于 Microsoft SQL Server 而言,在一个查询语句中的多次 RAND 函数调用返回相同的随机数。查询返回的结果如下:

复制RAND() ------------------- 0.47224141500963573 0.47224141500963573 0.472241415009635731.2.3.4.5.

一般来说,如果你运行上面的示例将会得到不同的随机数。不过,我们也可以为 RAND 函数指定一个随机数种子,重现相同的随机数。例如:

复制-- MySQL 和 Microsoft SQL Server SELECT RAND(1);1.2.

其中,函数中的参数 1 是随机数种子。多次执行以上查询将会返回相同的结果。

Oracle 提供了一个系统程序包 DBMS_RANDOM,其中的 VALUE 函数可以用于返回大于或等于 0 且小于 1 的随机数。例如:

复制-- Oracle SELECT DBMS_RANDOM.VALUE FROM employee WHERE emp_id <= 3;1.2.3.4.

查询返回的结果如下:

复制VALUE ---------------------------------------- 0.18048925385153716390255039523196767411 0.3353631757935088547857071602303392595 0.34121889068239285925220365371349024561.2.3.4.5.

对于 Oracle,b2b供应网每次调用 RAND 函数都会返回不同的随机数。

提示:Oracle 系统程序包 DBMS_RANDOM 中还提供了其他生成随机数和随机字符串的函数,以及设置随机数种子的方法,可以查看其官方文档。

PostgreSQL 提供了 RANDOM 函数,可以返回一个大于或等于 0 且小于 1 的随机数。例如:

复制-- PostgreSQL SELECT RANDOM() FROM employee WHERE emp_id <= 3;1.2.3.4.

查询返回的结果如下:

复制random ------------------ 0.1523788485137807 0.2580784959938427 0.05286129447220241.2.3.4.5.

对于 PostgreSQL,每次调用 RANDOM 函数都会返回不同的随机数。如果想要重现相同的随机数,可以使用 SETSEED 函数。例如,重复执行以下两个语句可以得到相同的随机数:

复制-- PostgreSQL SELECT SETSEED(0); SELECT RANDOM();1.2.3.

SQLite 也提供了 RANDOM 函数,可以返回一个大于或等于-263 且小于或等于 263-1 的随机整数。例如:

复制-- SQLite SELECT RANDOM() FROM employee WHERE emp_id <= 3;1.2.3.4.

查询返回的结果如下:

复制RANDOM() -------------------- 3344080139226703236 -4444734262945592004 83840001754978185431.2.3.4.5.

对于 SQLite,每次调用 RANDOM 函数都会返回不同的随机数。SQLite 不支持随机数种子设置,无法重现相同的随机数。

本文地址:http://www.bhae.cn/html/241b8099678.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

全站热门

电脑自动安装系统完整教程(轻松实现系统自动化安装,提高效率)

【NCTS峰会回顾】云测学院陈霁:测试开发到测试架构之路

细思极恐-你真的会写Java吗?

Java中的JVM字符串性能优化

解读代码错误108苹果电脑的问题与解决方法(探索苹果电脑代码错误108的原因及应对策略)

Springboot优雅停止服务的几种方法

自古帝王多短命,假如皇帝也懂负载均衡算法...

智能化技术助力测试人员“减负”

友情链接

滇ICP备2023000592号-9