学生信息数据库的创建
创作时间:
作者:
@小白创作中心
学生信息数据库的创建
引用
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中的所有表
热门推荐
职场领导力的培养与实践
美股大跌,投资者如何应对?
公路编号识别技巧:从国道到高速公路的编号规则全解析
如何评价拿破仑 拿破仑主要事迹
高空抛物者的三重法律责任
论退休后养老金应该统一的公平性与合理性
法院徽标的深刻内涵与象征意义
当网文遇上AI:创作的未来在哪里?
睫角守宫养护全攻略:新手也能轻松上手!
U盘启动不要搞复杂!掌握这2个技巧就够了,装机维护再不用求人
辽宁各市房价增长趋势分析:大连房地产为何不涨?
【原】蓝妖:秋石斛要这么去种,不仅花量大,而且花期也长
心率135算严重吗?专家解读心动过速的成因与应对
香辣牛腩煲:家常美味的完美呈现
清热解毒药有哪几种
毒素:定义、分类与生物来源
五陵年少金市东,银鞍白马度春风。
广湛高铁湛江湾海底隧道无砟轨道施工如火如荼
云南的民族美食与特色小吃
2024年11月中国玉米供需形势分析
足协“自荐系统”破局旧选拔 是对中国足球的一次“外科手术”
趁“热”收下——这篇夏季高温防暑安全指南
凌烟阁二十四功臣:程知节的生平与传奇
舞蹈老师的职业发展规划指南,如何制定成长路径?
霍光:忠臣还是奸臣的争议与真相
非领导职务和领导职务的区别
以案说法:银行卡境外盗刷,损失谁来担?
投资小知识:AI vs 周期股——谁是未来投资新宠?
王星案重要犯罪嫌疑人“颜十六”到案
工伤认定关键问题解析:48小时期限、调岗与上下班途中事故