MySQL数据库基础(四)——MySQL数据库创建实例
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,MySQL数据库基础(四)--MySQL数据库创建实例一、创建数据库1、创建数据库创建数据库,指定数据库的默认字符集为utf8。create database schoolDB default cha
千家信息网最后更新 2024年11月11日MySQL数据库基础(四)——MySQL数据库创建实例
MySQL数据库基础(四)--MySQL数据库创建实例
一、创建数据库
1、创建数据库
创建数据库,指定数据库的默认字符集为utf8。
create database schoolDB default character set utf8;
连接数据库,客户端必须选择UTF8字符集。
数据库中的三张表分别为学生表(student)、课程表(TSubject)、分数表(TScore)。
2、创建学生表
CREATE TABLE `TStudent` ( `StudentID` varchar(15) NOT NULL, `Sname` varchar(10) DEFAULT NULL, `sex` char(1) DEFAULT NULL, `cardID` varchar(20) DEFAULT NULL, `Birthday` date DEFAULT NULL, `Email` varchar(40) DEFAULT NULL, `Class` varchar(20) DEFAULT NULL, `enterTime` datetime DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3、创建课程表
create table TSubject(subJectID nvarchar(10),subJectName nvarchar(30),BookName nvarchar(30),Publisher nvarchar(20))ENGINE=InnoDB DEFAULT CHARSET=utf8;
4、创建分数表
create table TScore(StudentID nvarchar(15),subJectID nvarchar(10),mark decimal)ENGINE=InnoDB DEFAULT CHARSET=utf8;
二、数据库信息的生成
1、插入课程表信息
insert into TSubject values ('0001','计算机网络','奠基计算机网络','清华出版社');insert into TSubject values ('0002','数据结构','大话数据结构','人邮出版社');insert into TSubject values ('0003','JAVA开发','JAVA企业级开发','人邮出版社');
2、创建产生学生姓名的函数
create function CreateName()RETURNS varchar(3)beginDECLARE LN VARCHAR(300);DECLARE MN VARCHAR(500);DECLARE FN VARCHAR(500);DECLARE LN_N INT;DECLARE MN_N INT;DECLARE FN_N INT;SET LN='李王张刘陈杨黄赵周吴徐孙朱马胡郭林何高梁郑罗宋谢唐韩曹许邓萧冯曾程蔡彭潘袁于董余苏叶吕魏蒋田杜丁沈姜范江傅钟卢汪戴崔任陆廖姚方金邱夏谭韦贾邹石熊孟秦阎薛侯雷白龙段郝孔邵史毛常万顾赖武康贺严尹钱施牛洪龚';SET MN='伟刚勇春菊毅俊峰强军平保东文辉力明永健世广志瑗琰韵融园艺咏卿聪澜纯毓悦昭冰爽琬茗羽希宁欣飘育滢馥新利筠柔竹霭凝晓欢霄枫芸菲寒伊亚宜可姬舒义兴良海山仁波宁贵福生龙元全国胜学祥亮政谦亨奇固之岚苑富顺信子杰涛昌成康星光天达安岩中茂进林有坚和彪博诚先敬震振壮会思群豪清飞彬娜静淑惠珠翠雅芝妍茜秋珊莎锦黛青倩婷姣婉娴瑾颖露瑶怡婵雁蓓纨仪荷丹蓉眉君琴蕊薇菁梦素伟刚勇毅俊峰强军平保东文辉力明永健世广志义兴良海山仁波宁贵福生龙元全国胜学祥才发武新利清飞彬富顺信子杰涛昌成康星光天达安岩中茂进林有坚和彪博诚先敬震振壮会思群豪心邦承乐绍功松善厚庆磊民友裕河哲江超浩亮政谦亨奇固之轮翰朗伯宏言若鸣朋斌梁栋维启克伦翔旭鹏泽晨辰士以建家致树炎德行时泰盛雄琛钧冠策腾楠榕风航弘';SET FN='伟刚勇毅俊云莲真环雪荣爱妹霞香月莺媛艳瑞凡佳嘉琼勤珍贞莉桂娣叶璧才发武丽琳轮翰朗伯宏言若鸣朋斌梁栋维启克伦翔旭鹏泽晨辰士以建家致树炎德河哲江超浩璐娅琦晶裕华慧巧美婕馨影荔枝思心邦承乐绍功松善厚庆磊民友玉萍红娥玲芬芳燕彩兰凤洁梅秀娟英行时泰盛雄琛钧冠策腾楠榕风航弘峰强军平保东文辉力明永健世广志义兴良海山仁波宁贵福生龙元全国胜学祥才发武新利清飞彬富顺信子杰涛昌成康星光天达安岩中茂进林有坚和彪博诚先敬震振壮会思群豪心邦承乐绍功松善厚庆磊民友裕河哲江超浩亮政谦亨奇固之轮翰朗伯宏言若鸣朋斌梁栋维启克伦翔旭鹏泽晨辰士以建家致树炎德行时泰盛雄琛钧冠策腾楠榕风航弘';SET LN_N=CHAR_LENGTH(LN);SET MN_N=CHAR_LENGTH(MN);SET FN_N=CHAR_LENGTH(FN);return Concat(substring(LN,ceil(rand()*LN_N),1),substring(MN,ceil(rand()*MN_N),1),substring(FN,ceil(rand()*FN_N),1));end
3、创建添加学生的存储过程
create procedure addStudent(in num int)begindeclare i int;set i=1;delete from TStudent;while num>=i doinsert TStudent values ( LPAD(convert(i,char(5)),5,'0'), CreateName(), if(ceil(rand()*10)%2=0,'男','女'), RPAD(convert(ceil(rand()*1000000000000000000),char(18)),18,'0'),Concat(convert(ceil(rand()*10)+1980,char(4)),'-',LPAD(convert(ceil(rand()*12),char(2)),2,'0'),'-',LPAD(convert(ceil(rand()*28),char(2)),2,'0')), Concat(PINYIN(sname),'@hotmail.com'), case ceil(rand()*3) when 1 then '网络与网站开发' when 2 then 'JAVA' ELSE 'NET' END, NOW());set i=i+1;end while;select * from TStudent;End
插入1000个学生记录。
call addStudent(1000);
4、创建汉字转拼音的函数
--创建汉字转拼音的函数使用的表
CREATE TABLE `pinyin` ( `letter` char(1) NOT NULL, `chinese` char(1) NOT NULL, PRIMARY KEY (`letter`)) ENGINE=MyISAM DEFAULT CHARSET=gbk;
--插入数据
INSERT INTO `pinyin` VALUES ('A','驁'),('B','簿'),('C','錯'),('D','鵽'),('E','樲'),('F','鰒'),('G','腂'),('H','夻'),('J','攈'),('K','穒'),('L','鱳'),('M','旀'),('N','桛'),('O','漚'),('P','曝'),('Q','囕'),('R','鶸'),('S','蜶'),('T','籜'),('W','鶩'),('X','鑂'),('Y','韻'),('Z','咗');CREATE FUNCTION PINYIN(str CHAR(255))RETURNS char(255)BEGINDECLARE hexCode char(4);DECLARE pinyin varchar(255);DECLARE firstChar char(1);DECLARE aChar char(1);DECLARE pos int;DECLARE strLength int;SET pinyin = '';SET strLength = CHAR_LENGTH(LTRIM(RTRIM(str)));SET pos = 1;SET @str = (CONVERT(str USING gbk));WHILE pos <= strLength DO SET @aChar = SUBSTRING(@str,pos,1); SET hexCode = HEX(@aChar); IF hexCode >= "8140" AND hexCode <= "FEA0" THEN SELECT letter into firstChar FROM pinyin WHERE chinese >= @aChar LIMIT 1; ELSE SET firstChar = @aChar; END IF; SET pinyin = CONCAT(pinyin,firstChar); SET pos = pos + 1;END WHILE; RETURN UPPER(pinyin);END
5、创建插入学生成绩的存储过程
create procedure fillScore()beginDECLARE St_Num INT;DECLARE Sb_Num INT;DECLARE i1 INT;DECLARE i2 INT;set i1=1;set i2=1;delete from TScore;select count(*) into St_Num from TStudent;select count(*) into Sb_Num from TSubject;while St_Num>=i1 doset i2=1;while Sb_Num>=i2 doinsert TScore values (LPAD(convert(i1,char(5)),5,'0'),LPAD(convert(i2,char(4)),4,'0'),ceil(50+rand()*50));set i2=i2+1;END WHILE;set i1=i1+1;END WHILE;End
插入学生成绩
call fillScore();
三、学生成绩表的查看
select a.*,b.*,c.* from TStudent a join TScore b on a.studentid=b.studentid join TSubject c on b.subjectid=c.subjectid limit 50;
数据
数据库
学生
全国
出版社
函数
成绩
星光
课程
课程表
仁波
信子
克伦
富顺
成康
文辉
梁栋
炎德
明永
义兴
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
酒店管理数据库课设答辩问题
青草服务器码
圣士网络技术
商机在线网络技术
服务器运维管理软件有哪些
优惠券规则数据库设计
机架服务器怎么变成个人电脑
2008 创建域服务器
佛山大数据库安全
263发件服务器
王牌竞速哪个服务器上海人多
软件开发工程考研学校
射频软件开发工程师
网络安全重大风险防范
计算机网络技术带来的便利
北京同博网络技术
方舟服务器管理器安装失败
网络安全大会 9月18
单位挂网游服务器被发现
潮汕侨批数据库官网
网页服务器数据保存多长时间
装配式网络技术售后保障
渡口网络安全黑板报
服务器如何接无线网
ibm服务器怎样释放滑索
网络安全班会发言稿500字
多金互联网科技
sql设计一个员工数据库
webconfig配置数据库
服务器上iis管理器在哪里