SQL数据库字段的默认随机值

SQL数据库字段的默认随机值,第1张

create

table

t(

id

uniqueidentifier

not

null

default(

newid()))

--guid不会重复,36位字符+字母+数字

--全数字

create

table

t(

id

char(10)

not

null

default(

right('0000000000'+rtrim(abs(checksum(newid())))+rtrim(abs(checksum(newid()))),16)))

在mysql中随机生成一些范围内的整数,可以借助mysql提供的二个函数来实现。

它们是floor()与rand()函数,下面分别介绍下。

1、floor(f)

返回一个不大于f的最大整数

2、rand(),rand(n)

返回一个随机浮点值 v ,范围在 0 到1 之间 (即, 其范围为 0 ≤ v ≤ 10)。若已指定一个整数参数 N ,则它被用作种子值,用来产生重复序列。

若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() (j – i + 1))。

例如, 在7到 12 的范围(包括7和12)内得到一个随机整数,使用语句:

SELECT FLOOR(7 + (RAND() 6));

在Oracle中的DBMS_RANDOM程序包中封装了一些生成随机数和随机字符串的函数 其中常用的有以下两个

DBMS_RANDOM VALUE函数

该函数用来产生一个随机数 有两种用法

产生一个介于 和 之间(不包含 和 )的 位精度的随机数 语法为

DBMS_RANDOM VALUE RETURN NUMBER;

这种用法不包含参数

产生一个介于指定范围之内的 位精度的随机数 语法为

DBMS_RANDOM VALUE(low IN NUMBER high IN NUMBER) RETURN NUMBER;

这种用法包含两参数 参数low用来指定要生成的随机数的下限 参数high指定上限 生成的随机 请注意生成的随机数有可能等于下限 但绝对小于上限 即“low<=随机数

举个例子: 要产生一个 到 之间的数可以这样写: DBMS_RANDOM VALUE( )

DBMS_RANDOM STRING函数

该函数产生一个随机字符串 语法为

DBMS_RANDOM STRING (opt IN CHAR len IN NUMBER) RETURN VARCHAR ;

参数len指定生成的字符串的长度

参数opt指定生成的字符串的样式 允许的取值及其表示的含义如下表所示

取值 含义 ‘u’或’U’ 返回一个由大写字母组成的字符串 ‘l’或’L’ 返回一个由小写字母组成的字符串 ‘a’或’A’ 返回一个由大写字母和小写字母组成的字符串 ‘x’或’X’ 返回一个由大写字母和数字组成的字符串 ‘p’或’P’ 返回一个由任意的可打印字符组成的字符串 lishixinzhi/Article/program/Oracle/201311/19036

SQL Server本身就是一个完善的数据库,提供可视化编程,后台完成所有拖放处理 *** 作,不管有没有数据都可以使用,不需要编译。

一个比较合理的数据库设计应该考虑数据的交互性和挖掘能力、处理效率以及日志记录。

建立数据表,注意以下几点:

表建立的时候要有主键和索引,表与表之间要能使用主键相联系,举例说在A表里我做完一次记录要生成一个单号,B表里面是依据单号来做下一个流程,而不是依据记录的每一条数据

取名尽量使用英文+下划线,SQL Server里对汉字需要转码,影响工作效率,按照他的默认编码方式 *** 作有助于提高数据处理速度

建立数据表的列数不要太多,用编码规则来建立逻辑

注意字段存储空间,限制字段长度,少用注释和image

存储过程尽量简洁实用

建立视图,为了别的客户端使用,尽量建立视图,做好完整的数据分析,别的接口程序或者客户端直接就可以拿去使用。做视图注意几点:

多个表 *** 作写在一个视图里,不要嵌套太多视图

连接查询要适当的筛选

跨服务器 *** 作视图,要建立服务器链接表,尽量使用内网链接,把服务器链接表做成查询视图,放在本地服务器数据库里,这样就等同本地 *** 作

视图之间保留连接字段作为主要索引

建立计划作业,有计划地进行数据同步更新和备份标识工作,注意事项:

备份数据尽量放数据库里同步复制

计划任务避开工作高峰期

建立存储过程,记录 *** 作日志,把日志以数据表的形式存储,注意事项:

存储过程对本表 *** 作,不要交互太多表

精简参数数量,注意参数存储空间

对记录修改删除、更新标记的时候尽量使用时间来索引

建立关系图,给表与表之间建立直接关系,整理整体挖掘数据性能。

建立计划更新任务,优化数据库整体性能。

/

  MySQL 随机取记录

  

  @param $t 表

  @param $c ID列,默认为id

  @param $n 取多少个

  @param $w 条件语句

  @param $f bool 是否强制以多维数组形式返回,默认false

  @return array 取1个直接返回结果数组(除非$f为true),取>1个返回多维数组,用foreach取出

 /

function rand_row($t , $c = 'id' , $n = '1', $w = '' , $f = false) {

$m=new mysqli(mysqli信息,自行查找php文档);

if (!empty($w)) {

$w = ' AND '$w;

}

$sql = "SELECT  FROM `{$t}` WHERE {$c} >= (SELECT floor(RAND()  (SELECT MAX({$c}) FROM `{$t}`))) {$w} ORDER BY {$c} LIMIT {$n};";

$xq  = $m->query($sql);

$r   = array();

while ($x = $m->fetch_array($xq)) {

$r[] = $x;

}

if ($f == false && count($r) == 1) {

return $r[0];

} else {

return $r;

}

}

以上就是关于SQL数据库字段的默认随机值全部的内容,包括:SQL数据库字段的默认随机值、在mysql 数据库如何添加随机数字、oracle数据库生成随机数的函数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9710032.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存