SQLServer基本知识四—— MySQL数据库搭建实例
发布时间:2023-05-29 11:17:24 所属栏目:MySql教程 来源:
导读:MySQL数据库基础(四)——MysqL数据库创建实例
一、创建数据库
1、创建数据库
创建数据库,指定数据库的默认字符集为utf8。
create database schoolDB default character set utf8;
连接数据库,客
一、创建数据库
1、创建数据库
创建数据库,指定数据库的默认字符集为utf8。
create database schoolDB default character set utf8;
连接数据库,客
|
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) 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_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)); 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; 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; (编辑:驾考网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
