成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

五種主流數(shù)據(jù)庫(kù):常用數(shù)值函數(shù)

數(shù)據(jù)庫(kù) SQL Server
SQL 的主要功能就是對(duì)數(shù)據(jù)進(jìn)行處理和分析。為了提高數(shù)據(jù)處理的效率,SQL 為我們提供了許多預(yù)定義的功能模塊,也就是函數(shù)(Function)。

SQL 的主要功能就是對(duì)數(shù)據(jù)進(jìn)行處理和分析。為了提高數(shù)據(jù)處理的效率,SQL 為我們提供了許多預(yù)定義的功能模塊,也就是函數(shù)(Function)。

數(shù)值函數(shù)通常接收一個(gè)或者多個(gè)數(shù)字類(lèi)型的參數(shù),并且返回一個(gè)數(shù)值結(jié)果。本文比較五種主流數(shù)據(jù)庫(kù)常用數(shù)值函數(shù)的實(shí)現(xiàn)和差異,包括 MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLite。

數(shù)值函數(shù)

函數(shù)功能

MySQL

Oracle

SQL Server

PostgreSQL

SQLite

ABS(x)

計(jì)算x的絕對(duì)值

??

??

??

??

??

CEILING(x)

返回大于或等于x的最小整數(shù)

??

CEIL(x)

??

??

CEIL(x)

FLOOR(x)

返回小于或等于x的最大整數(shù)

??

??

??

??

??

MOD(x, y)

計(jì)算x除以y的余數(shù)

??

??

x % y

??

x % y

ROUND(x, n)

將x四舍五入到n位小數(shù)

??

??

??

??

??

RANDOM()

返回一個(gè)偽隨機(jī)數(shù)

RAND()

DBMS_RANDOM

RAND()

??

??

絕對(duì)值函數(shù)

ABS(x) 函數(shù)計(jì)算輸入?yún)?shù)的絕對(duì)值,例如:

SELECT ABS(-1), ABS(1), ABS(0)
FROM employee
WHERE emp_id = 1;

查詢(xún)返回的結(jié)果如下:

ABS(-1)|ABS(1)|ABS(0)
-------|------|------
      1|     1| 0

取整函數(shù)

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

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

Oracle 不支持 CEILING(x) 函數(shù),Microsoft SQL Server 不支持 CEIL(x) 函數(shù)。查詢(xún)返回的結(jié)果如下:

CEIL(-2)|CEILING(-2)|FLOOR(4.5)
--------|-----------|----------
      -2|         -2| 4

ROUND(x, n) 函數(shù)將 x 四舍五入到 n 位小數(shù),也就是執(zhí)行四舍五入運(yùn)算。例如:

SELECT ROUND(9.456, 1), ROUND(9.456)
FROM employee
WHERE emp_id = 1;

第二個(gè)函數(shù)調(diào)用時(shí)省略了參數(shù) n,表示四舍五入到整數(shù)。Microsoft SQL Server 不能省略參數(shù) n,可以將 ROUND(9.456) 替換成 ROUND(9.456, 0)。查詢(xún)返回的結(jié)果如下:

ROUND(9.456, 1)|ROUND(9.456)
---------------|------------
            9.5| 9

求余函數(shù)

MOD(x, y)函數(shù)計(jì)算 x 除以 y 的余數(shù),也就是執(zhí)行求模運(yùn)算。例如:

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

Oracle、MySQL 以及 PostgreSQL 實(shí)現(xiàn)了 MOD 函數(shù)。查詢(xún)返回的結(jié)果如下:

MOD(5,3)
--------
 2

Microsoft SQL Server 和 SQLite 沒(méi)有提供 MOD 函數(shù),可以使用%運(yùn)算符進(jìn)行求模運(yùn)算:

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

MySQL 和 PostgreSQL 也支持這種語(yǔ)法。查詢(xún)返回的結(jié)果和上面的示例相同。

生成偽隨機(jī)數(shù)

通過(guò)計(jì)算機(jī)生成的隨機(jī)數(shù)都是偽隨機(jī)數(shù),數(shù)據(jù)庫(kù)都提供了生成偽隨機(jī)數(shù)的函數(shù)。

MySQL 使用 RAND 函數(shù)返回一個(gè)大于或等于 0 且小于 1 的隨機(jī)數(shù)。Microsoft SQL Server 也使用 RAND 函數(shù)返回隨機(jī)數(shù),但是隨機(jī)數(shù)的取值范圍為大于 0 且小于 1。例如:

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

對(duì)于 MySQL 而言,在一個(gè)查詢(xún)語(yǔ)句中的多次 RAND 函數(shù)調(diào)用都會(huì)返回不同的隨機(jī)數(shù)。查詢(xún)返回的結(jié)果如下:

RAND() 
-------------------
0.12597889371773124
0.6288336549222783
0.7662316241918427

對(duì)于 Microsoft SQL Server 而言,在一個(gè)查詢(xún)語(yǔ)句中的多次 RAND 函數(shù)調(diào)用返回相同的隨機(jī)數(shù)。查詢(xún)返回的結(jié)果如下:

RAND() 
-------------------
0.47224141500963573
0.47224141500963573
0.47224141500963573

一般來(lái)說(shuō),如果你運(yùn)行上面的示例將會(huì)得到不同的隨機(jī)數(shù)。不過(guò),我們也可以為 RAND 函數(shù)指定一個(gè)隨機(jī)數(shù)種子,重現(xiàn)相同的隨機(jī)數(shù)。例如:

-- MySQL 和 Microsoft SQL Server
SELECT RAND(1);

其中,函數(shù)中的參數(shù) 1 是隨機(jī)數(shù)種子。多次執(zhí)行以上查詢(xún)將會(huì)返回相同的結(jié)果。

Oracle 提供了一個(gè)系統(tǒng)程序包 DBMS_RANDOM,其中的 VALUE 函數(shù)可以用于返回大于或等于 0 且小于 1 的隨機(jī)數(shù)。例如:

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

查詢(xún)返回的結(jié)果如下:

VALUE 
----------------------------------------
0.18048925385153716390255039523196767411
0.3353631757935088547857071602303392595
0.3412188906823928592522036537134902456

對(duì)于 Oracle,每次調(diào)用 RAND 函數(shù)都會(huì)返回不同的隨機(jī)數(shù)。

提示:Oracle 系統(tǒng)程序包 DBMS_RANDOM 中還提供了其他生成隨機(jī)數(shù)和隨機(jī)字符串的函數(shù),以及設(shè)置隨機(jī)數(shù)種子的方法,可以查看其官方文檔。

PostgreSQL 提供了 RANDOM 函數(shù),可以返回一個(gè)大于或等于 0 且小于 1 的隨機(jī)數(shù)。例如:

-- PostgreSQL
SELECT RANDOM()
FROM employee
WHERE emp_id <= 3;

查詢(xún)返回的結(jié)果如下:

random 
------------------
0.1523788485137807
0.2580784959938427
0.0528612944722024

對(duì)于 PostgreSQL,每次調(diào)用 RANDOM 函數(shù)都會(huì)返回不同的隨機(jī)數(shù)。如果想要重現(xiàn)相同的隨機(jī)數(shù),可以使用 SETSEED 函數(shù)。例如,重復(fù)執(zhí)行以下兩個(gè)語(yǔ)句可以得到相同的隨機(jī)數(shù):

-- PostgreSQL
SELECT SETSEED(0);
SELECT RANDOM();

SQLite 也提供了 RANDOM 函數(shù),可以返回一個(gè)大于或等于-263 且小于或等于 263-1 的隨機(jī)整數(shù)。例如:

-- SQLite
SELECT RANDOM()
FROM employee
WHERE emp_id <= 3;

查詢(xún)返回的結(jié)果如下:

RANDOM() 
--------------------
3344080139226703236
-4444734262945592004
8384000175497818543

對(duì)于 SQLite,每次調(diào)用 RANDOM 函數(shù)都會(huì)返回不同的隨機(jī)數(shù)。SQLite 不支持隨機(jī)數(shù)種子設(shè)置,無(wú)法重現(xiàn)相同的隨機(jī)數(shù)。

責(zé)任編輯:華軒 來(lái)源: SQL編程思想
相關(guān)推薦

2024-03-05 15:26:03

日期函數(shù)數(shù)據(jù)庫(kù)MySQL

2024-05-07 14:18:18

數(shù)據(jù)庫(kù)SQLMySQL

2024-01-31 16:46:24

SQL數(shù)據(jù)庫(kù)

2011-09-21 11:21:00

NoSQL

2021-02-01 10:17:14

編程C語(yǔ)言計(jì)算機(jī)

2011-03-01 09:10:19

開(kāi)源數(shù)據(jù)庫(kù)

2022-02-17 11:03:33

數(shù)據(jù)庫(kù)基礎(chǔ)語(yǔ)法用法

2010-04-15 15:52:12

Oracle數(shù)據(jù)庫(kù)

2011-05-16 10:29:44

HandlerSockNoSQL

2011-07-13 09:58:15

HBase

2018-07-30 09:06:46

大數(shù)據(jù)Hadoop數(shù)據(jù)架構(gòu)

2020-11-23 16:42:38

數(shù)據(jù)庫(kù)MySQL技術(shù)

2010-03-05 16:03:30

Python連接數(shù)據(jù)庫(kù)

2011-04-14 09:27:37

內(nèi)存數(shù)據(jù)庫(kù)

2011-07-06 16:36:40

Redis

2011-05-30 09:27:35

NoSQL評(píng)測(cè)

2023-11-13 15:36:24

開(kāi)源數(shù)據(jù)庫(kù)

2023-09-15 16:03:59

向量數(shù)據(jù)庫(kù)開(kāi)源

2021-01-13 15:13:07

Python開(kāi)發(fā) 工具

2022-06-10 09:00:00

數(shù)據(jù)庫(kù)分布式數(shù)據(jù)庫(kù)集群
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 毛片免费观看 | 精产国产伦理一二三区 | h在线看| 久久综合爱 | 九九热国产精品视频 | 91一区二区 | 中国一级特黄真人毛片 | 精品九九九 | 午夜久久久 | 毛片com| 四虎影院欧美 | 国产在线视频在线观看 | 精品一区在线免费观看 | 6080亚洲精品一区二区 | 欧美激情一区二区三区 | 欧美激情国产精品 | 天天操夜夜拍 | 国产伊人精品 | 一区二区在线免费观看 | 成人欧美一区二区三区在线观看 | 日韩在线看片 | 欧美国产一区二区三区 | 黄网站免费在线 | 一级毛片高清 | 一级免费在线视频 | 日韩免| 午夜在线小视频 | 中文字幕日韩三级 | 久久精品国产99国产精品 | 亚洲视频一区在线 | 国产精品福利在线 | 精品视频免费 | 亚洲毛片在线 | av网站免费| 特级生活片 | 一区二区三区四区av | 99爱国产 | 成人做爰www免费看视频网站 | 国产精品久久久乱弄 | 亚洲午夜小视频 | 中文字幕91av |