学生信息数据库的创建
创作时间:
作者:
@小白创作中心
学生信息数据库的创建
引用
CSDN
1.
https://m.blog.csdn.net/qq_63781342/article/details/144331629
需求分析
学生信息数据库用于存储学生相关信息,包括学生所在院系、学生基础信息、老师信息、学生总成绩、学生各学科成绩以及专业课基础信息。系统需要构建不同用户角色,并为每个角色分配不同的权限,以维护整个数据库。例如,班主任负责维护学生总成绩,各科老师管理各科成绩表及专业基础表,学生用户可以填写和查看自己的基础信息。
关系模型分析
表结构设计
学生基本信息表
基本信息字段 | 数值类型 | 约束 |
---|---|---|
id | int | primary key |
name | varchar(20) | not null |
gender | set('male','female') | null |
age | int | null |
number | varchar(20) | unique |
join_time | date | null |
phone | varchar(20) | null |
教师基本信息表
基本信息字段 | 数值类型 | 约束 |
---|---|---|
id | int | primary key |
name | varchar(20) | not null |
gender | set('male','female') | null |
phone | varchar(20) | null |
subject | set('math','chine','english') | null |
专业基本信息表
基本信息字段 | 数值类型 | 约束 |
---|---|---|
id | int | primary |
name | varchar(20) | not null |
total | int | not null |
department | varchar(20) | not null |
学科基本信息表
基本信息字段 | 数值类型 | 约束 |
---|---|---|
id | int | primary key |
name | set('english','math','china') | null |
time | int | default |
total | int | not |
teacher | varchar(20) | null |
总成绩表
基本信息字段 | 数值类型 | 约束 |
---|---|---|
id | int | primary key |
std_id | int | foreign key |
score | float | not null |
ranking | int | not null |
各科成绩表
基本信息字段 | 数值类型 | 约束 |
---|---|---|
id | int | primary key |
std_id | int | foreign key |
suj_id | int | foreign key |
score | float | not null |
数据库物理设计与实现
创建数据库并使用
create database if not exists student_database charset utf8mb4;
use student_database;
创建数据表
学生表
create table student_table(
id int primary key,
name varchar(20) not null,
gender set('female','male'),
age int,
number varchar(20) unique,
join_time date,
phone varchar(20)
);
教师表
create table teacher_table(
id int primary key,
name varchar(20) not null,
gender set('male','female'),
phone varchar(20),
subject set('math','english','china')
);
专业表
create table major_table(
id int primary key,
name varchar(20) not null,
total int not null,
department varchar(20) not null
);
学科表
create table subject_table(
id int primary key,
name set('english','math','china'),
time int default 48,
total int,
teacher varchar(20)
);
成绩表
总成绩表
create table total_score_table(
id int primary key,
std_id int,
score float not null,
ranking int not null,
constraint fk_std_id foreign key (std_id) references student_table(id)
);
各科成绩表
create table score_table(
id int primary key,
std_id int,
sub_id int,
score float,
constraint fk_std_new_id foreign key (std_id) references student_table(id),
constraint fk_sub_id foreign key (sub_id) references subject_table(id)
);
创建用户并进行授权
用户管理相关语法
查询用户
select * from mysql.user;
创建用户
create user 'user_a'@'localhost' identified by 'old_mima';
修改用户密码
alter user 'user_a'@'localhost' identified by 'new_mima';
删除用户
drop user 'user_a'@'localhost';
权限管理相关语法
查询权限
show grants for 'root'@'localhost';
授予权限
#创建新用户
create user 'user_a'@'localhost' identified by 'old_mima';
#授予权限
grant all privileges on student_database.student_table to 'user_a'@'localhost';
撤销权限
remove all privileges on student_database.student_table from 'user_a'@'localhost';
创建相应角色
使用不同角色插入数据来模拟数据库的使用与维护
学生
此处应该创建多个学生来进行学生基础信息表的维护,但是所使用的命令相近,因此仅创建一个作为演示。
创建
create user 'student'@'localhost' identified by 'student';
授权
grant all privileges on student_database.student_table to 'student'@'localhost';
老师
此处老师也仅适用一个进行演示
create user 'teacher'@'localhost' identified by 'teacher';
GRANT ALL PRIVILEGES ON student_database.teacher_table TO 'teacher'@'localhost';
GRANT ALL PRIVILEGES ON student_database.subject_table TO 'teacher'@'localhost';
GRANT ALL PRIVILEGES ON student_database.score_table TO 'teacher'@'localhost';
班主任
创建角色
create user 'master'@'localhost' identified by 'master';
授予权限
班主任授予全部数据表的权限,可以直接使用*代替
grant all privileges on student_database.* to 'master'@'localhost';
数据库的使用
学生
使用student用户登录,发现student_database中仅仅可以使用student_table
老师
使用teacher用户登录,可以使用student_database中的teacher_table,score_table和subject_table三个表
班主任
使用master用户登录,可以使用student_database中的所有表
热门推荐
八百里瓯江忆船帮
济南三天两夜保姆级旅游攻略详细文字版
济南十大必吃美食,舌尖上的济南
吃狗肉被行政拘留,该如何维护自身合法权益?
粗粮主食有哪些?粗粮主食的种类大全
收银员工作如何管理客户
【完美装修攻略】实木家具水太深?黑胡桃、橡木、山毛榉......一篇看懂!
股票上涨时的购买时机如何把握?这种把握时机的方法有哪些风险?
剖宫产是什么?手术方式、适应症、风险和恢复时间全解析
普陀山礼佛全攻略:各寺院祈福特色详解
房颤分级诊疗再添新著 专家建议65岁以上、肥胖等高危人群定期筛查
心房颤动:患者为何把简单的疾病拖延复杂了(专版)
卤味的灵魂三宝:盐、葱、姜,这样用才对味!
酒后难受?9个实用的缓解方法
央媒发声 冯骥解读3A游戏新标准 国产游戏要崛起了!
银行的金融科技发展战略:创新驱动与服务升级
【世界防治结核病日】终结结核流行,共同守护我们自由健康的呼吸
医院治疗费、备班制度与诈骗判罚详解
航天技术一度领先美国的苏联,为何没实现载人登月?背后原因复杂
生日祝福英文:避免5个常见错误,写出专业又真挚的祝福语
八字命理中的天时地利人和
办公软件怎么语音输入
天然气燃烧的化学方程式是什么 有哪些作用
C语言函数入门:定义、使用与内存管理
分封制会引发动乱,刘邦在铲除异姓王后,为什么还要分封同姓王?
雷军的商业哲学:解密小米模式的三大基因
澳洲留学选择哪些STEM专业更具优势
《吞噬星空》新章节震撼来袭:罗峰斩获神秘武器,分身之谜揭晓,天才选拔战火热开启!
基于ESP32的遥控关灯系统制作教程
乌龟日常清洁与饲养全攻略