MySQL数据库基础(四)——MySQL数据库创建实例
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,MySQL数据库基础(四)--MySQL数据库创建实例一、创建数据库1、创建数据库创建数据库,指定数据库的默认字符集为utf8。create database schoolDB default cha
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
邮箱服务器设置验证失败什么情况
软件开发与运维培训
软件开发体系结构
有哪些86架构服务器虚拟化技术
对日软件开发邮件常用句型
document 数据库
辽宁直销软件开发
网络安全手抄报简单美观
软件开发售后服务体系介绍
数据库系统概论学习...
数据库中数据表不能更改
华为鸿蒙软件开发者在哪里
杭州聚米网络技术公司
上海w软件开发公司
数据库大于10位的数据
多模块可视化控制服务器的研发
天津先特网络技术有限公司
专注于网络安全人才培养
服务器系统管理员工资
逆袭软件开发
还原sql数据库指令
互联网教育与未来科技深度结合
全国网络安全应急联盟
黑暗时代网络安全吗
辽宁直销软件开发
华东政法的计算机网络安全专业
医疗信息数据库的常见安全威胁
网络安全常识调查
我的世界人多的生存服务器推荐
腾讯虚拟服务器在哪里