在设计图书书店数据库的customers客户表时,记录一些花了时间的成果。

首先创建客户表

drop table if exists customers;
create table customers(customerid     BIGINT(20)            UNSIGNED NOT NULL AUTO_INCREMENT,customername         varchar(50)     not null COMMENT'用户昵称',cpassword            varchar(100)    not null COMMENT '用户密码',crealname            varchar(20)     DEFAULT '' COMMENT '真实姓名',customersex          TINYINT(4)      UNSIGNED DEFAULT '0' COMMENT '性别(0男; 1女)',customerbirthdate    date            not null COMMENT'用户生日',cphone               varchar(20)     DEFAULT'' COMMENT'手机号',cemail               varchar(50)     NOT NULL COMMENT'用户邮箱',caddress             varchar(255)    NOT NULL COMMENT'用户地址',customerlevel        int             DEFAULT 1 COMMENT'客户等级',create_time          DATETIME        DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (customerid)#,constraint PK_TB_customers primary key(CustomerId, CustomerName)
);

/****************************************************函数**********************************************************/
随机生成密码

DROP FUNCTION if exists f1;
delimiter $$
CREATE FUNCTION f1() RETURNS varchar(50) DETERMINISTIC
BEGINDECLARE chars_str varchar(100) DEFAULT '#abcdefghi&jklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!*';DECLARE return_str varchar(255) DEFAULT '';DECLARE i INT DEFAULT 0;DECLARE n INT DEFAULT 10;WHILE i<n DOSET return_str =concat(return_str,substring(chars_str,FLOOR(1+RAND()*62),1));SET i=i+1;END WHILE;RETURN return_str;
END $$
delimiter ;
#SELECT f1();

随机生成邮箱

DROP FUNCTION if exists generate_email;
delimiter $$
CREATE FUNCTION `generate_email`( ) RETURNS char(100) CHARSET utf8 DETERMINISTIC
BEGINDECLARE chars_str varCHAR(100) DEFAULT '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';DECLARE emailType VARCHAR(100) DEFAULT '@gmail.com,@yahoo.com,@msn.com,@hotmail.com,@aol.com,@ask.com,@live.com,@qq.com,@0355.net,@163.com,@163.net,@263.net,@3721.net,@yeah.net,@googlemail.com,@126.com,@sina.com,@sohu.com,@yahoo.com.cn';DECLARE return_str varchar(255) DEFAULT '';DECLARE i INT DEFAULT 0;DECLARE n INT DEFAULT 6;WHILE i<n DOSET return_str =concat(return_str,substring(chars_str,FLOOR(1+RAND()*62),1));SET i=i+1;END WHILE;RETURN concat(return_str,SUBSTRING_INDEX(SUBSTRING_INDEX(emailType,',',FLOOR(1+RAND()*19)),',',-1));
END $$
delimiter ;
#SELECT generate_email(); 

创建随机生成手机号函数 generatePhone

DROP FUNCTION if exists generatePhone;
delimiter $$
CREATE  FUNCTION `generatePhone`() RETURNS char(11) CHARSET utf8 DETERMINISTIC
BEGINDECLARE head VARCHAR(200) DEFAULT '134,135,136,137,138,139,147,150,151,152,157,158,159,182,183,184,187,188,130,131,132,145,155,156,185,186,199,133,153,180,181,189';DECLARE content CHAR(10) DEFAULT '0123456789';    DECLARE phone CHAR(11) DEFAULT substring(head, 1+(FLOOR(1 + (RAND() * 3))*4), 3);    DECLARE i int DEFAULT 1;DECLARE len int DEFAULT LENGTH(content);WHILE i<9 DOSET i=i+1;SET phone = CONCAT(phone, substring(content, floor(1 + RAND() * len), 1));END WHILE;RETURN phone;
end$$
delimiter ;
-- 查询随机手机号 select generatePhone(); 

随机生成地址函数

DROP FUNCTION if exists generate_address;
delimiter $$
CREATE FUNCTION `generate_address`( ) RETURNS varchar(250) DETERMINISTIC
BEGINDECLARE province varCHAR(100) DEFAULT '';DECLARE city varCHAR(100) DEFAULT '';declare county varchar(100) default '';DECLARE street varCHAR(100) DEFAULT '';DECLARE return_str varchar(255) DEFAULT '';DECLARE i INT DEFAULT 0;DECLARE n INT DEFAULT 6;declare area varchar(255) DEFAULT '';declare area1 varchar(255) DEFAULT '';declare area2 varchar(255) DEFAULT '';declare area3 varchar(255) DEFAULT '';declare ances varchar(255);DECLARE address varchar(255) DEFAULT '';declare parent varchar(255) DEFAULT '';declare addresslevel int;set area=(select areaid from kms2020.city  where level=1 order by rand() limit 1);set province=(select areaname from kms2020.city where areaid=area);set addresslevel=(select level from kms2020.city where areaid=area);if (addresslevel=1) then #set ances=(select ancestor from kms2020.city where areaname=address); set ppid=SUBSTRING_INDEX(SUBSTRING_INDEX(ances,'#',FLOOR(1+RAND()*3)),'#',-1);set area1=(select areaid from kms2020.city  where parentnodeid=area order by rand() limit 1);set city=(select areaname from kms2020.city  where areaid=area1);set area2=(select areaid from kms2020.city  where parentnodeid=area1 order by rand() limit 1);set county=(select areaname from kms2020.city  where areaid=area2);set area3=(select areaid from kms2020.city  where parentnodeid=area2 order by rand() limit 1);set street=(select areaname from kms2020.city  where areaid=area3);end if;if length(concat(return_str,province,city,county,street))>0 thenRETURN concat(return_str,province,city,county,street,floor(1+rand()*300),'号');end if;
END $$
delimiter ;
select generate_address(); 

####################模拟随机生成customers表#############################

DROP FUNCTION if exists fn2;
delimiter $$
CREATE FUNCTION fn2() RETURNS int DETERMINISTIC
BEGINDECLARE $num INT DEFAULT 40;   ###一下子执行200条,generate_address()函数无返回,多次少数执行DECLARE $i INT DEFAULT 0;DECLARE rand_surname TEXT DEFAULT    /* 共有504个姓氏,564个字。*/'赵钱孙李周吴郑王冯陈诸卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮卡齐康伍余元卜顾孟平黄和穆萧尹姚邵堪汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董粱杜阮蓝闵席季麻强贾路娄危江童颜郭梅盛林刁钟徐邱骆高夏蔡田樊胡凌霍虞万支柯咎管卢莫经房裘缪干解应宗丁宣贲邓郁单杭洪包诸左石崔吉钮龚程嵇邢滑裴陆荣翁荀羊於惠甄魏家封芮羿储靳汲邴糜松井段富巫乌焦巴弓牧隗山谷车侯宓蓬全郗班仰秋仲伊宫宁仇栾暴甘钭厉戎祖武符刘景詹束龙叶幸司韶郜黎蓟薄印宿白怀蒲台从鄂索咸籍赖卓蔺屠蒙池乔阴郁胥能苍双闻莘党翟谭贡劳逄姬申扶堵冉宰郦雍却璩桑桂濮牛寿通边扈燕冀郏浦尚农温别庄晏柴翟阎充慕连茹习宦艾鱼容向古易慎戈廖庚终暨居衡步都耿满弘匡国文寇广禄阙东殴殳沃利蔚越夔隆师巩厍聂晁勾敖融冷訾辛阚那简饶空曾毋沙乜养鞠须丰巢关蒯相查后荆红游竺权逯盖后桓公万俟司马上官欧阳夏侯诸葛闻人东方赫连皇甫尉迟公羊澹台公冶宗政濮阳淳于单于太叔申屠公孙仲孙轩辕令狐钟离宇文长孙慕容鲜于闾丘司徒司空亓官司寇仉督子车颛孙端木巫马公西漆雕乐正壤驷公良拓拔夹谷宰父谷粱晋楚闫法汝鄢涂钦段干百里东郭南门呼延归海羊舌微生岳帅缑亢况后有琴梁丘左丘东门西门商牟佘佴伯赏南宫墨哈谯笪年爱阳佟第五言福';DECLARE rand_name TEXT DEFAULT        /*名的随机范围401个常用汉字。*/'秀娟英梦华慧巧美娜静淑惠珠翠雅芝玉萍红娥雪玲芬月艳佳雯玥柔昭珍娣格叶桂贞芳燕黛彩菊兰洁春凤云荣素冰霞晨莲梅琳珊妍茜秋青倩锦婉娴莹芙真环爱娅荷菲心妹香莺媛瑞凡嘉琼勤莉璧璐楠琦晶莎婷姣瑾颖露瑶怡婵雁蓓纨仪丹蓉眉君琴蕊林滢寒薇菁岚苑婕馨瑗琰韵融园艺彦咏卿聪澜宁敏花霄蕾紫初阳纯函欣枫沛碧呈荔枝漫家彤妮丽思婧影诗祥毓姿悦爽琬宜姬采羽茗舒希橘萱杉克飘帛文馥竹曦灵筠霭凝晓芸琛欢亚伊帆蔚茹冬曼桃彬优弦琪菡歆璇鹤涵昕钰鑫桐鸿俊栀柏璟正旭依梓凌雨甜恬清加一诚晨信振泽斌骞初然裕潍震运安畅驰骏材天谷延弘烁铭濡贤腾龙宇强涛帝胤鸿辰钊嘉谛华年柔凯家康星海礼允良权锋坤福奇博俊皓祥锐起成韦楷休栋颜荣枫国柏郁尧盛暄逸祯锟槐祜树林升杰禧鹏鑫琛卓哲恒轩邦文梓爵喆彬翰帆澄芃睿子晓杞翱锦桀日浩寅佑伟阳平鹤晖峰吉刚勇毅军保东力兴义辉明永健世广志山仁波宁贵生元全胜学才发武新利清飞富顺昌光达岩中茂进有坚和彪先敬壮会思群豪心承乐绍功松善厚庆磊民友河江超亮政谦亨固之轮朗伯宏言若鸣朋梁维启克伦翔旭士以建致炎德行时泰雄钧冠策楠榕风航';DECLARE surname varchar(2) ;    /*姓*/        DECLARE name1 CHAR(1) ;    DECLARE name2 VARCHAR(1) ;DECLARE name VARCHAR(14) ;    /*名*/DECLARE rand bigint(4);WHILE $i<$num DOselect FLOOR(1 +RAND()*564) into rand;if(rand<=444) then SELECT SUBSTRING(rand_surname,FLOOR(1 +RAND()*444),1) INTO surname;    #姓elseif(rand>444 and rand%2=1)  then SELECT SUBSTRING(rand_surname,rand,2) INTO surname; end if;IF (FLOOR(RAND()*2)+1=1 and char_length(surname)=1) THENSELECT SUBSTRING(rand_name,FLOOR(RAND()*445 +1),1) INTO name1; SELECT name1 INTO name; #名ELSESELECT SUBSTRING(rand_name,FLOOR(RAND()*445 +1),1) INTO name1;SELECT SUBSTRING(rand_name,FLOOR(RAND()*445 +1),1) INTO name2; #名SELECT CONCAT(name1,name2) INTO name;#名END IF;if(char_length(name)>=1) then    INSERT INTO customers(customername,cpassword,customersex,customerbirthdate,cphone,cemail,caddress,customerlevel,create_time) VALUES (CONCAT(surname,name),f1(),FLOOR(RAND()*2),from_unixtime(unix_timestamp('1900-01-01')+floor(rand()*(unix_timestamp('2019-03-18')-unix_timestamp('1900-01-01')+1)),'%Y-%m-%d'),generatePhone(),generate_email(),generate_address(),floor(1+rand()*100),from_unixtime(unix_timestamp('2018-01-01')+floor(rand()*(current_date()-unix_timestamp('2018-01-01')+1)),'%Y-%m-%d %h:%i:%s')); #, SET $i=$i+1;end if;END WHILE;RETURN $i;
END $$
delimiter ;
SELECT fn2(); -- 执行此函数 生成数据
select * from customers;

MySQL随机生成customers表姓名,密码,性别,出生日期,电话,邮箱,收货地址,客户等级创建账号时间(function函数)相关推荐

  1. java实现三个数字的随机组合_JAVA编程实现随机生成指定长度的密码功能【大小写和数字组合】...

    本文实例讲述了java编程实现随机生成指定长度的密码功能.分享给大家供大家参考,具体如下: import java.util.random; public class passwordcreate { ...

  2. python定义函数,随机生成6位的密码(字母数字随机组合,包含大小写)

    定义函数pwd(),随机生成6位的密码(字母数字随机组合,包含大小写),要求在主模块中调用该函数,并输出. import randomdef pwd():all_char = '0123456789q ...

  3. python随机生成12位数字_Python随机生成带特殊字符的密码

    在日常运维中,如果涉及到用户管理,就一定会用到给用户设置密码的工作,其实吧,平时脑子里觉得设置个密码没什么,但要真让你随手敲一个12位带特殊字符的随机密码,也是很痛苦的事,如果让你敲10个这样的随机密 ...

  4. Mysql 随机生成整数

    佐氵谙 于 2021-06-17 17:54:10 发布 6030  收藏 5 分类专栏: MySQL 版权 华为云开发者联盟 该内容已被华为云开发者联盟社区收录 加入社区 MySQL 专栏收录该内容 ...

  5. python随机生成密码字符串_Python随机生成带特殊字符的密码

    在日常运维中,如果涉及到用户管理,就一定会用到给用户设置密码的工作,其实吧,平时脑子里觉得设置个密码没什么,但要真让你随手敲一个12位带特殊字符的随机密码,也是很痛苦的事,如果让你敲10个这样的随机密 ...

  6. 新零售系统mysql设计(会员等级表 客户表 收货地址表)二次修改

    作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主 文章目录 sql 会员等级表 数据 客户表 数据 收货地址表 数据 会员等级表(解析) 字段解析: 类型大小 ...

  7. 零售商贩mysql表设计:收货地址表 用户表(关联起来)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 sql sql 收货地址表: CREATE TABLE `user_address` (`id` int(11) NOT N ...

  8. 通讯录中每个通讯者的信息包括编号、姓名、性别、电话、E-mail地址;采用单链表结构存储

    通讯录中每个通讯者的信息包括编号.姓名.性别.电话.E-mail地址:采用单链表结构存储,实现以下功能: 1.通讯录的建立 2.通讯者信息的插入 3.通讯者信息的查询 4.通讯者信息的删除 5.通讯录 ...

  9. mysql收货地址表_收货地址表结构 以及创建修改流程

    创建收货地址的过程中, 一共涉及到三张表 一张为PostalAddress  contact_mech    party_contact_mech 创建的流程  调用createPartyPostal ...

  10. mysql收货地址表_企业内容管理系统-收货地址表 - 数据库设计 - 数据库表结构 - 果创云...

    -- 数据库大全:企业内容管理系统-收货地址表 -- 来源:YesApi.cn CREATE TABLE `yesapi_ey_shop_address` ( `id` bigint(20) unsi ...

最新文章

  1. MySQL数据备份之mysqldump使用
  2. android input 点击事件失效,在textinputedittext android上不会触发onclick事件
  3. 插入,选择,归并,快速排序
  4. Ie html button消失,input 按钮在IE下显现不一致的兼容问题
  5. 【渝粤教育】广东开放大学 物业实务 形成性考核 (24)
  6. java 伴随矩阵_C#计算矩阵的逆矩阵方法实例分析
  7. ASP.NET 安全认证(二)——灵活运用deny与allow 及保护.htm等文件
  8. Java基础-String、StringBuffer、StringBuilder的区别
  9. 【Elasticsearch】Elasticsearch 导入 导出 命令行工具
  10. Django - Ajax - 参数
  11. C语言堆栈入门 —— 堆和栈的区别
  12. 编译链接错误:对‘vtable for xxxx’未定义的引用
  13. QCC3003项目实战:BlueMotor6 AGHFP CVC 蓝牙对讲耳机
  14. 免费的录屏软件,来试试这一款软件吧!
  15. vscode python第三方库自动补全_vscode python 第三方库的智能提示
  16. matlab 有限元 图书,MATLAB有限元分析与应用
  17. SVN `Clean up`时报错如何处理
  18. Clojure 语言在 2020 年的现状
  19. 小米开源框架MACE 源码阅读笔记 1
  20. 图片按日期批量导入WPS表格

热门文章

  1. 如何搭建IPv6测试你的APP
  2. 派对屋3000效果器怎样调试_卡拉OK前级效果器如何调试?
  3. 将m3u8格式转化为想要的格式
  4. 计算机怎么转到超级用户,电脑系统管理员权限怎么设置为超级管理员权限
  5. C语言编程规范(个人整理)
  6. 电子行报告:从海外龙头发展历程看国内半导体设备企业投资价值
  7. 高并发系统中库存热点的解决方案
  8. Neo4j 图数据科学应用 - 图目录和图投影(二)
  9. java导出多个excel,以压缩包下载
  10. DataMatrix识别及定位项目笔记(2)——基于QT+libdmtx-0.7.5的DataMatrix解码及定位