用数据库批量起名字

  起名字是个比较费文字功底的差事,咱们作为一个理科生,当然要扬长避短。下面看看如果利用数据库(oracle)来做是什么效果

一、思路

  首先拿一个常用汉字库,带拼音,笔画数和五行属性;另外再给每个字标记特殊属性,如古典风,琼瑶式;最后随机进行组合,从组合中高效寻找最合适的名字。

二、实现步骤

(1)建表

create table CHINESE_CHAR
(
  chr    VARCHAR2(10),  --汉字
  remark VARCHAR2(2),   --标记:五行;星座,诗经……
  num    NUMBER,        --笔画数
  spell  VARCHAR2(10)   --拼音
);

(2)插入汉字库(略)
(3)固定第二个字为“明”,随机生成第三个字组合在一起

SELECT '苏明'||a.chr chr, '苏明'||b.chr chr, 
       '苏明'||c.chr chr, '苏明'||d.chr chr, 
       '苏明'||e.chr chr, '苏明'||f.chr chr, 
       '苏明'||g.chr chr, '苏明'||h.chr chr, 
       '苏明'||i.chr chr, '苏明'||j.chr chr
  FROM (SELECT chr, ROWNUM rn FROM (SELECT chr FROM chinese_char T ORDER BY dbms_random.value()) WHERE ROWNUM <= 10) a,
       (SELECT chr, ROWNUM rn FROM (SELECT chr FROM chinese_char T ORDER BY dbms_random.value()) WHERE ROWNUM <= 10) b,
       (SELECT chr, ROWNUM rn FROM (SELECT chr FROM chinese_char T ORDER BY dbms_random.value()) WHERE ROWNUM <= 10) c,
       (SELECT chr, ROWNUM rn FROM (SELECT chr FROM chinese_char T ORDER BY dbms_random.value()) WHERE ROWNUM <= 10) d,
       (SELECT chr, ROWNUM rn FROM (SELECT chr FROM chinese_char T ORDER BY dbms_random.value()) WHERE ROWNUM <= 10) e,
       (SELECT chr, ROWNUM rn FROM (SELECT chr FROM chinese_char T ORDER BY dbms_random.value()) WHERE ROWNUM <= 10) f,
       (SELECT chr, ROWNUM rn FROM (SELECT chr FROM chinese_char T ORDER BY dbms_random.value()) WHERE ROWNUM <= 10) g,
       (SELECT chr, ROWNUM rn FROM (SELECT chr FROM chinese_char T ORDER BY dbms_random.value()) WHERE ROWNUM <= 10) h,
       (SELECT chr, ROWNUM rn FROM (SELECT chr FROM chinese_char T ORDER BY dbms_random.value()) WHERE ROWNUM <= 10) i,
       (SELECT chr, ROWNUM rn FROM (SELECT chr FROM chinese_char T ORDER BY dbms_random.value()) WHERE ROWNUM <= 10) j
 WHERE a.rn = b.rn
   AND a.rn = c.rn
   AND a.rn = d.rn
   AND a.rn = e.rn
   AND a.rn = f.rn
   AND a.rn = g.rn
   AND a.rn = h.rn
   AND a.rn = i.rn
   AND a.rn = j.rn;

执行效果:
在这里插入图片描述
  如果这里没有一个合适的,没关系,再执行一次,另外生成100个继续寻找,成千上万个都不是问题!

三、个性定制

  如果希望随机的名字的简单好写,只要增加笔画数的条件,想要几画的就用几画;如果希望某个字属金,那么增加标记的条件,只查属性为金的;如果想要琼瑶式的,那么标记的条件就只查属性为琼瑶式的。下面简单看下琼瑶式的效果:

在这里插入图片描述

  如果想要诗经风格的,可以把整个诗经存入库,每一句存一条记录,然后拿随机出来的名字同诗经中的字进行匹配。如果诗句足够优美顺口,则是一个不错的选择。

四、其它适用场景

  除了可以用于给孩子起名,同理,一样适用于起公司名,店名,网名,物品名等等。不过个人认为最适合作家,写小说时用于人物起名,上百个人物都不是个事。
汉字库:https://download.csdn.net/download/usshe/12852056

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值