MySQL 案例

您所在的位置:网站首页 mysql表单的最大数据量怎么计算 MySQL 案例

MySQL 案例

2023-03-14 02:36| 来源: 网络整理| 查看: 265

MySQL 案例-教学管理信息系统 一、数据库设计及创建二、向表中插入数据、修改数据三、完成以下查询设计及SQL代码四、完成如下数据库应用设计

一、数据库设计及创建

对教学管理信息系统,在需求分析阶段,收集到以下信息。 学生的信息:学生的学号、姓名、性别、出生日期、电话(11位)、所在学院、年级、籍贯、民族;学院的信息:学院名称、地址、办公室电话(格式为4位区号-8位电话号码)、联系人、学院简介、所在校区(呈贡/东陆);课程信息:课程号、课程名称、开课学期、周学时、学分、课程性质(选修/必修)、上课教师。此外还有每个学生选修课程的成绩信息。

需求:(1)根据以上信息,请各个同学独立设计一个教学管理数据库,用于存储学生信息、课程信息、学生选课信息及学生所在的学院信息。请用表格的方式,列出你所设计的数据库中各表的字段名,含义,数据类型,宽度。要求:数据库名称、表名称及字段名称均用英文字符定义。

以下为需求(1)解决方案

数据库:StudentScoreDB

字段名含义数据类型宽度studentNo学号字符型10name姓名字符型20gender性别字符型2birthday出生日期日期型——telnumber电话(11位)字符型11college所在学院字符型50grade年级字符型6place籍贯字符型20natiom民族字符型30

学院信息表:CollegeTb

字段名含义数据类型宽度college学院名称字符型40address地址字符型50telnumber办公室电话(格式为4位区号-8位电话号码)字符型13contacts联系人字符型20introduction学院简介字符型50campus所在校区(呈贡/东陆)字符型4

课程信息表:CourseTb

字段名含义数据类型宽度courseNo课程号字符型6courseName课程名称字符型40term开课学期字符型5weekNumber周学时数值型——credit学分数值型——courseType课程性质(选修/必修)字符型5teacher上课教师字符型20

选课信息表:ScoreTb

字段名含义数据类型宽度studentNo学号字符型10courseNo课程号字符型6term开课学期字符型5score成绩数值型—— 需求(2)请写出创建数据库的SQL语句代码。要求指定字符集为简体中文,指定字符集的校对规则,使数据库能够处理中文。

方案: 创建数据库:StudentScoreDB

create database if not exists StudentScoreDB default character set GB2312 default collate GB2312_chinese_ci; show databases; use StudentScoreDB; 需求(3)请写出创建数据库中各表的SQL语句代码。要求以下5点: ①为表定义字段,字段名称用英文字符,为字段选择合适的数据类型(宽度)。 ②为各表定义合适的主键约束。 ③为表定义合适的外键,并定义参照完整性约束。 ④为存储课程信息的表设计一个合理的用户自定义约束。 ⑤设置存储学生信息的表的学院字段的默认值为你所在的学院。

方案: 创建学生信息表:StudentTb

create table StudentTb ( studentNo char(10) primary key comment '学号', name varchar(20) not null comment '姓名', gender char(2) not null check(gender in ('男','女')) comment '性别', birthday date comment '出生日期', telnumber char(11) comment '电话', college varchar(50) default '工商管理与旅游管理' comment '所在学院', grade char(6) comment '年级', place varchar(20) comment '籍贯', natiom varchar(30) default '汉' comment '民族' ) ;

创建学院信息表:CollegeTb

create table CollegeTb ( college varchar(40) primary key comment '学院名称', address varchar(50) comment '地址', telnumber char(13) comment '办公室电话', contacts varchar(20) comment '联系人', introduction varchar(50) comment '学院简介', campus char(4) check(campus in ('呈贡','东陆')) comment '所在校区' ) ;

创建课程信息表:CourseTb

create table CourseTb ( courseNo char(6) primary key comment '课程号', courseName varchar(40) not null comment '课程名称', term char(5) comment '开课学期', weekNumber tinyint comment '周学时', credit tinyint comment '学分', courseType char(4) check(courseType in ('选修', '必修')) comment '课程性质', teacher varchar(20) comment '上课教师' );

创建选课信息表:ScoreTb

create table ScoreTb ( studentNo char(10) not null comment '学号', courseNo char(6) not null comment '课程号', term char(5) comment '开课学期', score float check(score>=0 and score=80 and e.studentNo=s.studentNo and e.courseNo=c.courseNo; 需求:(4)如果要在数据库中查找所有比你所在的学院的所有同学年龄小的同学,该如何设计查询,请写出代码。

方案:

select * from StudentTb where datediff(CURDATE(),birthday)


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3