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

news2024/11/28 20:48:24

目录

  • 1 MySQL 生成随机ID
    • 1.1 生成 唯一的随机ID:UUID()
    • 1.2 生成随机数:RAND()
      • 1.2.1 RAND():返回一个介于0和1之间的随机浮点数
      • 1.2.2 FLOOR(RAND() * 100):返回一个介于0和99之间的随机整数
      • 1.2.3 LPAD(FLOOR(RAND() * 99999999), 8, '0'):返回一个8位的随机字符串
  • 2 Oracle 生成随机ID
    • 2.1 生成 唯一的随机ID:SYS_GUID()
    • 2.2 生成随机数
      • 2.2.1 DBMS_RANDOM.VALUE(low, high): 生成一个介于low和high之间的随机数值。
      • 2.2.2 DBMS_RANDOM.STRING(format, length): 生成一个指定格式和长度的随机字符串。

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

参考案例:

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; 

但是查出来的是乱码:
在这里插入图片描述
原因: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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1392561.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

行为型设计模式——中介者模式

中介者模式 中介者模式主要是将关联关系由一个中介者类统一管理维护,一般来说,同事类之间的关系是比较复杂的,多个同事类之间互相关联时,他们之间的关系会呈现为复杂的网状结构,这是一种过度耦合的架构,即…

【上分日记】第380场周赛(数位dp+ KMP + 位运算 + 二分 + 双指针 )

文章目录 前言正文1.3005. 最大频率元素计数2.3007.价值和小于等于 K 的最大数字3.3008. 找出数组中的美丽下标 II 总结尾序 前言 本场周赛,博主也只写出两道题(前两道, hhh菜鸡勿喷),第三道涉及位运算 ,数位dp,第四道涉及KMP。 下…

c语言[]优先级大于*优先级

本博文源于笔者正在学习的c语言[]优先级大于*优先级.在定义二维数组时&#xff0c;a1与[]号结合后&#xff0c;谁的优先级更高&#xff0c;是本博文探讨的话题 博文来源 想要看看*与[]谁的优先级更高 博文代码 #include<stdio.h> #include<stdlib.h> int main(…

OAuth 2.0 - 微信登录

一、概述 1、什么是OAuth 2.0 OAuth (Open Authorization) 是一个关于授权 (athorization) 的开放网络标准。 允许用户授权第三应用访问他们存储在另外的服务提供者上的信息&#xff0c;而不需要将用户名和密码提供给第三方。OAuth在全世界得到广泛应用&#xff0c;目前的版本…

R语言【paleobioDB】——pbdb_orig_ext():绘制随着时间变化而出现的新类群

Package paleobioDB version 0.7.0 paleobioDB 包在2020年已经停止更新&#xff0c;该包依赖PBDB v1 API。 可以选择在Index of /src/contrib/Archive/paleobioDB (r-project.org)下载安装包后&#xff0c;执行本地安装。 Usage pbdb_orig_ext (data, rank, temporal_extent…

核对表:基本数据类型CHECKLIST:Fundmental Data

核对表&#xff1a;基本数据类型CHECKLIST:Fundmental Data 数值概论 代码中避免使用神秘数值吗&#xff1f; 代码考虑了除零错误吗&#xff1f; 类型转换很明显吗&#xff1f; 如果在一条语句中存在两个不同类型的变量&#xff0c;那么这条语句会像你期望的那样求值吗&#x…

JMeter 相关的面试题

1、什么是 JMeter&#xff1f; 它是一个开源的负载和性能测试工具&#xff0c;用于对软件、Web应用程序、API、数据库等进行压力测试。 2、JMeter 的优势是什么&#xff1f; JMeter具有以下优势&#xff1a; 开源免费&#xff1a;JMeter是开源工具&#xff0c;无需付费使用。…

使用 Elasticsearch 和 LlamaIndex 进行高级文本检索:句子窗口检索

2023 年是检索增强生成 (RAG) 的一年&#xff0c;人们探索了许多用例&#xff0c;并使用该技术开发了数百种产品。 从 Q/A 聊天机器人到基于上下文的代理&#xff0c;RAG 的使用一直是 LLM 申请快速增长的主要因素。 支持不断发展的社区以及 Langchain 和 LlamaIndex 等强大框架…

vue-cli解决跨域

在vue.config.js中 找到devServer 在devServer中创建proxy代理 proxy:{ path&#xff08;路径中包含这个path就会导航到target的目标接口&#xff09;&#xff1a;{ target:"目标接口" } } 例&#xff1a; 1 同源策略只针对于浏览器&#xff0c;代理服务器到后端接…

如何选择适合的乔拓云小程序付费服务

在数字化时代&#xff0c;微信小程序已经成为商家与客户互动的重要平台。乔拓云小程序作为一款便捷的微信小程序&#xff0c;不仅提供免费的基本功能&#xff0c;还为商家提供了多种付费增值服务和广告投放选择&#xff0c;以满足不同需求。本文将为您揭秘乔拓云小程序的费用明…

SpringBoot多环境配置与添加logback日志

1、多环境配置 一个项目会有多个运行环境 所以SpringBoot提供了可以适应多个环境的配置文件 每个文件对应一个端口号 application-dev.yml 开发环境 端口8090 application-test.yml 测试环境 端口8091 application-prod.yml 生产环境 端口8092 在application中选择使用哪个…

中国社会科学院与新加坡社科院大学联合培养博士——如何就读在职博士

说到了在职博士&#xff0c;可能会大家就会觉得这不就是字面意思嘛&#xff1f;还用什么懂不懂的&#xff0c;在职博士的意思不就是&#xff0c;在职就是上班&#xff0c;博士就是博士&#xff0c;意思就是上班读的博士&#xff0c;当然是对的啊&#xff0c;但是知道字面意思之…

如何成为一个有趣的程序员

要成为一个有趣的程序员&#xff0c;你可以从以下几个方面着手&#xff1a; 专业技能与独特视角&#xff1a; 深入掌握至少一种编程语言&#xff0c;并了解其背后的原理和应用场景。不断学习新的编程技术、框架或工具&#xff0c;并尝试将其应用于实际项目中&#xff0c;展示你…

【基础数据结构】二叉树的基本性质

例题1 单值二叉树 如果二叉树每个节点都具有相同的值&#xff0c;那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时&#xff0c;才返回 true&#xff1b;否则返回 false。 示例 1&#xff1a; 输入&#xff1a;[1,1,1,1,1,null,1] 输出&#xff1a;true示例 2&#xf…

Spring MVC学习——解决请求参数中文乱码

解决请求参数中文乱码问题 1.POST请求方式解决乱码问题 在web.xml里面设置编码过滤器 <filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><…

计算机组成原理-程序中断方式完整流程

文章目录 程序中断方式完整流程例题小结 程序中断方式完整流程 首先CPU通过执行IO指令来启动外部设备&#xff0c;此时外部设备可以开始做准备工作了&#xff08;准备CPU想要的数据或者信息&#xff09;&#xff0c;在外部设备准备过程中&#xff0c;CPU可以继续执行原程序的内…

C++初阶类与对象(一):学习类与对象、访问限定符、封装、this指针

入门知识已经梳理完毕了&#xff0c;接下来就进入到面型对象的部分学习了 文章目录 1.面向过程和面向对象初步认识2.类的引入3.类的定义3.1类的结构3.2类的两种定义方式3.2.1声明和定义全部放在类体中3.2.2声明和定义分开 3.3成员变量命名规则的建议 4.类的访问限定符及封装4.1…

python贪吃蛇游戏

为了实现这个游戏&#xff0c;需要用到Python的pygame模块&#xff0c;它是一个专门用于开发游戏的模块&#xff0c;提供了很多方便的功能&#xff0c;比如窗口、图形、音效、事件处理等。 用pygame来创建一个窗口&#xff0c;设置游戏的背景色&#xff0c;画出蛇和食物&#…

73.网游逆向分析与插件开发-背包的获取-物品数据的初步数据分析

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;72.网游逆向分析与插件开发-背包的获取-项目需求与需求拆解-CSDN博客 然后首先找切入点&#xff1a; 通过药物来当切入点&#xff0c;药物比较好使用&#xff0c;然后鼠标放到药物上它有名字、种类、…

C++I/O流——(4)格式化输入/输出(第二节)

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 含泪播种的人一定能含笑收获&#xff…