当前位置: 首页 > news >正文

mysql建数据库实例_MySQL数据库基础(四)——MySQL数据库创建实例

MySQL数据库基础(四)——MySQL数据库创建实例

一、创建数据库

1、创建数据库

创建数据库,指定数据库的默认字符集为utf8。

create database schoolDB default character set utf8;

连接数据库,客户端必须选择UTF8字符集。

数据库中的三张表分别为学生表(student)、课程表(TSubject)、分数表(TScore)。

ee8758cec38b856d04cb20a66f687be1.png

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)

begin

DECLARE 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)

begin

declare i int;

set i=1;

delete from TStudent;

while num>=i do

insert 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)

BEGIN

DECLARE 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()

begin

DECLARE 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 do

set i2=1;

while Sb_Num>=i2 do

insert 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;

相关文章:

  • mysql是基于关系模型的数据库_MySQL系列:MySQL关系型数据库架构
  • mysql nocount_存储过程之SET NOCOUNT ON/OFF 含义
  • mysql spatial简介_详细介绍mysql索引类型:FULLTEXT、NORMAL、SPATIAL、UNIQUE
  • mysql联立两个表_mysql同时查询两个表
  • mysql 1308_MySQL恢复数据报ERROR 1308 : LEAVE with no matching label
  • macos 在线安装mysql_在MACOSX上安装MYSQL
  • vb mysql 设置数据源_总结 vb与数据库的连接方法
  • h+后台主题ui框架_开源推荐 - EAdmin开箱即用的后台UI框架
  • include 路径_最短路径的算法:Floyd算法
  • 2表关联查询的mysql代码_两个服务器上的两个数据库表进行关联查询(显示列表)...
  • python compare()_Python Speech Compare
  • n阶完全图边和顶点关系。_抽象代数23 群元素的阶和循环群
  • python中文件操作的相关函数是_python 操作windows下目录的相关函数
  • mysql根据当前时间戳更新不好使_Mysql – 尝试更新时间戳列时.它无法更新
  • linux配置pip源_Python pip源配置修改
  • 《剑指offer》分解让复杂问题更简单
  • 「译」Node.js Streams 基础
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • create-react-app项目添加less配置
  • HTML中设置input等文本框为不可操作
  • jquery cookie
  • nodejs调试方法
  • Python学习之路16-使用API
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 前端面试之闭包
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 如何利用MongoDB打造TOP榜小程序
  • 入手阿里云新服务器的部署NODE
  • 消息队列系列二(IOT中消息队列的应用)
  • HanLP分词命名实体提取详解
  • zabbix3.2监控linux磁盘IO
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​configparser --- 配置文件解析器​
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • #QT(一种朴素的计算器实现方法)
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (12)目标检测_SSD基于pytorch搭建代码
  • (9)STL算法之逆转旋转
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (六)软件测试分工
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (小白学Java)Java简介和基本配置
  • (一)Java算法:二分查找
  • .libPaths()设置包加载目录
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET连接MongoDB数据库实例教程
  • .NET序列化 serializable,反序列化
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)