MySQL、Oracle 生成随机ID、随机数、随机字符串

这篇具有很好参考价值的文章主要介绍了MySQL、Oracle 生成随机ID、随机数、随机字符串。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 MySQL 生成随机ID

1.1 生成 唯一的随机ID:UUID()

UUID():是由128位的数字组成的全局唯一标识符。每次都生成一个新的随机数。

它通常以32个十六进制数的形式表示,分为5个部分,以连字符分隔。

UUID的长度是36个字符,包括32个十六进制数字和4个连字符。

UUID的标准格式是由 8-4-4-4-12 个十六进制数字组成的,其中每个部分的长度是固定的。

典型UUID,如:
22e2a70a-b1ce-11ee-84af-00ff25f02c26

参考案例:文章来源地址https://www.toymoban.com/news/detail-793400.html

SELECT UUID() AS random_id; -- 返回:22e2a70a-b1ce-11ee-84af-00ff25f02c26
SELECT LENGTH(UUID()); --返回:36

补充:
LENGTH(str) : 返回 字符串长度

1.2 生成随机数:RAND()

1.2.1 RAND():返回一个介于0和1之间的随机浮点数

参考案例:

SELECT RAND() AS random_number; -- 返回:0.005985797388465886

1.2.2 FLOOR(RAND() * 100):返回一个介于0和99之间的随机整数

参考案例:

SELECT FLOOR(RAND() * 100) AS random_integer; -- 返回:98
SELECT FLOOR(RAND() * 1000) AS random_integer; -- 返回:617
SELECT FLOOR(RAND() * 10000) AS random_integer; -- 返回:2115

FLOOR(RAND() * 10的n次方):返回一个[ 0 到 (10的n次方)-1]之间的随机整数

补充:
FLOOR() :返回不大于给定数值的最大整数。FLOOR(4.8) : 返回 4
CEILING() :返回不小于给定数值的最小整数。CEILING(4.1):返回 5
ROUND():返回一个四舍五入到最接近的整数。
例子 ROUND(4.1):返回 4,ROUND(4.8):返回 5

1.2.3 LPAD(FLOOR(RAND() * 99999999), 8, ‘0’):返回一个8位的随机字符串

LPAD(string, length, pad_string):表示从左边填充字符串。
string:原始字符串
length:填充后的字符串长度
pad_string:用于填充的字符或字符串
如果pad_string未写,LPAD函数将会在原始字符串的左边粘贴空格。

参考案例:

SELECT LPAD(FLOOR(RAND() * 999999), 8, '0') AS random_string; -- 返回:00794823
SELECT LPAD(FLOOR(RAND() * 9999999), 8, '0') AS random_string; -- 返回:05299041
SELECT LPAD(FLOOR(RAND() * 99999999), 8, '0') AS random_string; -- 返回:26504930

2 Oracle 生成随机ID

2.1 生成 唯一的随机ID:SYS_GUID()

SYS_GUID():这个全局唯一标识符是一个128位的数字,通常以十六进制字符串的形式表示,长度为 32。

参考案例:

SELECT SYS_GUID() FROM DUAL; 

但是查出来的是乱码:
MySQL、Oracle 生成随机ID、随机数、随机字符串,数据库,mysql,oracle,数据库
原因:SYS_GUID() 返回的结果是一个16字节的二进制值(RAW类型)。

处理方案:
RAWTOHEX():将RAW类型的数据转换为十六进制字符串表示。

SELECT RAWTOHEX(SYS_GUID()) FROM DUAL; -- 返回:D1F80DF570DC419DBA36ABF704E73B31 
SELECT LENGTH(RAWTOHEX(SYS_GUID())) FROM DUAL; -- 返回:32

LOWER():大写 转成 小写

SELECT LOWER(RAWTOHEX(SYS_GUID())) FROM DUAL; -- 返回:8d8a96f220c2443fba4d29303756be24
SELECT LENGTH(LOWER(RAWTOHEX(SYS_GUID()))) FROM DUAL; -- 返回:32

补充:
UPPER():小写 转成 大写

SELECT UPPER('string') FROM DUAL; -- 返回:STRING

注意:MySQL、Oracle 的大写转小写、小写转大写 函数是一样的。

2.2 生成随机数

2.2.1 DBMS_RANDOM.VALUE(low, high): 生成一个介于low和high之间的随机数值。

参考案例:

SELECT DBMS_RANDOM.VALUE FROM DUAL; -- 返回:0.70223750257579254042504448365740539856
SELECT DBMS_RANDOM.VALUE(1, 100) FROM DUAL; -- 返回:51.89475447588778860620040850818551418562
SELECT TRUNC(DBMS_RANDOM.VALUE(1, 100)) FROM dual; -- 返回:85

补充:
TRUNC():将数字的小数部分截去,返回整数。也可以截取字符串类型的数字。

SELECT TRUNC(5555.6666) FROM dual; -- 返回:5555
SELECT TRUNC('5555.6666') FROM dual; -- 返回:5555
SELECT TRUNC('5555.6666',2) FROM dual; -- 返回:5555.66

2.2.2 DBMS_RANDOM.STRING(format, length): 生成一个指定格式和长度的随机字符串。

format : 格式,length : 长度。

具体格式如下:
‘U’:表示生成包含大写字母的随机字符串
‘L’:表示生成包含小写字母的随机字符串
‘A’、‘a’:表示生成包含大写字母、小写字母的随机字符串
‘X’:表示生成包含大写字母、数字的随机字符串
‘P’:表示生成包含可打印字符的随机字符串

参考案例:

SELECT DBMS_RANDOM.STRING('U', 10) FROM DUAL; -- 返回:DBQTMEUFTL
SELECT DBMS_RANDOM.STRING('L', 10) FROM DUAL; -- 返回:hreclcycet
SELECT DBMS_RANDOM.STRING('A', 10) FROM DUAL; -- 返回:qOKsvigiLO
SELECT DBMS_RANDOM.STRING('a', 10) FROM DUAL; -- 返回:UuqsSDrZlJ
SELECT DBMS_RANDOM.STRING('X', 10) FROM DUAL; -- 返回:PMU5MKH557
SELECT DBMS_RANDOM.STRING('P', 10) FROM DUAL; -- 返回:3:2l6G8!On

到了这里,关于MySQL、Oracle 生成随机ID、随机数、随机字符串的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JS - 生成随机数的方法汇总(不同范围、类型的随机数)

    (1)使用 random() 方法可以返回一个介于 0 ~ 1 之间的伪随机数(包括 0,不包括 1)。 (2)下面是一个测试样例 (1)这种最简单,因为和 random 的特点保持一致。只需使用如下公式即可: (2)比如下面生成 [10,15) 范围内的随机浮点数。 因为 random 的特点,要取得这几个区间

    2023年04月08日
    浏览(37)
  • java生成随机数

       bound 必须是正数。 以下代码生成的是 0 到 30 的随机数。 生成区间的随机数:[最小值,最大值] 学的不是技术,更是梦想!!!

    2024年02月07日
    浏览(48)
  • haiku生成随机数

    Haiku 遵循 JAX 的设计,生成的随机数是两个元素组成的列表。其中第一个元素是用于生成伪随机数的状态,第二个元素是用于分发密钥的子键。两个元素分别用于状态和子键,确保在分布式计算或并行计算中,多个随机数生成器的状态可以在一定程度上相互影响,从而提高随

    2024年01月20日
    浏览(48)
  • Flutter 生成随机数

    如何让随机数变化? 我们尝试过的都知道,当你创建出来一个随机数后,调用他他的值是随机的,但是,这时候他的值就会固定住,不管怎么样都是随机出来的那个数,如果想要他每次都不一样的话,我们就想要使用刷新来让他变化了。 我们可以使用这样的方法来使他每次不一

    2024年02月13日
    浏览(29)
  • 生成随机数

    用于产生随机数 boolean nextBoolean() : 返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 boolean 值。 void nextBytes(byte[] bytes) : 生成随机字节并将其置于用户提供的 byte 数组中。 double nextDouble() : 返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之

    2024年02月03日
    浏览(41)
  • 生成随机数——C语言

    在C语言中,可以使用标准库函数 rand() 来生成随机数。需要注意的是, rand() 函数生成的是伪随机数,具体的随机序列取决于种子(seed)的值。 下面是一个简单的示例代码,展示如何在C语言中生成随机数: 在上述代码中,首先包含了 stdio.h 、 stdlib.h 和 time.h 头文件来使用相

    2024年02月12日
    浏览(43)
  • rust怎么生成随机数?

    在 Rust 中,有几种不同的方法可以实现随机数生成。以下是其中几种常见的方法,以及它们的优缺点: 优点: rand crate 是 Rust 中最常用的随机数库,提供了多种随机数生成器和功能。它易于使用,并且具有广泛的社区支持。 缺点: rand crate 生成的随机数是伪随机数,可能不

    2024年02月14日
    浏览(37)
  • 【Linux】随机数的生成

    /dev/random是一个随机数生成器设备文件,用于生成高质量的随机数。它通过收集系统上的环境噪声(例如硬件噪声,磁盘活动等)来产生随机数。由于它只在系统上有足够的环境噪声时才能生成随机数,因此/dev/random生成的随机数是高质量的。 但是,/dev/random的主要缺点是,如

    2024年02月11日
    浏览(36)
  • 【数电实验】随机数生成电路

    1. 设计并实现一个随机数生成电路,每 2 秒 随机生成一个 0~999 之间的数 字,并在数码管上显示生成的随机数。 2. 为系统设置一个复位键,复位后数码管显示“000”,2 秒后再开始每 2 秒 生成并显示随机数,要求使用按键复位。 3. 实验板上输入时钟选择 1kHz 或更高的频率。

    2024年02月08日
    浏览(33)
  • 如何使用Verilog生成随机数

    输入:时钟信号,复位信号,重新加载信号,种子 输出:随机数 输入一个种子32位,输出16位随机数;选取时钟,复位,重新加载种子。 // 使用32个逻辑单元用于D触发器/加法器和8个DSP块用于32x18=32位乘法 module c_rand (   input clk,         // 时钟输入   input rst,        

    2024年02月03日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包