实验楼sql进阶之简化数据操作提升性能(window)

背景


成绩管理系统中,当有同学的分数被修改时,需要通过触发器将成绩表中的这条更新记录存到新的表 modifymark 中。同时需要创建一个存储过程用来显示数学课的全部学生的成绩,并按分数降序排列。另外,现需要为数据库新增一个用户,并为他分配在数据库 gradesystem 下所有表的 select 权限。

有四个表

  • 学生表(student):学生 sid 、学生姓名sname和性别gender

  • 课程表(course):课程 cid 和课程名cname

  • 成绩表(mark):成绩 id 、学生 id 、课程 id 和分数score
  • 成绩更新表(modifymark):成绩 id (m_mid)、学生 id (m_sid)、课程 id(m_cid) 、分数(m_score)和更新时间(m_time)。

目标

  • 1.MySQL 服务处于运行状态

    实验楼sql进阶之简化数据操作提升性能(window)_第1张图片

  • 2.下载运行 createdb2.sql 文件,完成数据库的建立
    实验楼sql进阶之简化数据操作提升性能(window)_第2张图片

    实验楼sql进阶之简化数据操作提升性能(window)_第3张图片

  • 3.创建触发器 trigger_modify 实现当 mark 表有分数被修改时,将更新后的整条数据插入到 modifymark 表中。测试将 Tom 的化学成绩在原来的基础上加3分,查看 modifymark 中是否插入了数据
    tips:
    1是update不是set或者insert
    2获取现在的时间使用now()

    实验楼sql进阶之简化数据操作提升性能(window)_第4张图片
    3测试,更新表中数据,m_mid因为在建表的时候,采用的自增,所以创建构造器的不用复制,现在每插入一条数据,表格中属性m_mid会自增.
    实验楼sql进阶之简化数据操作提升性能(window)_第5张图片
    实验楼sql进阶之简化数据操作提升性能(window)_第6张图片

  • 4.创建存储过程 math_proc 将数学课的全部学生的成绩按降序排列显示。包括课程名(cname) math、学生姓名(sname)以及分数(score)
    实验楼sql进阶之简化数据操作提升性能(window)_第7张图片

  • 5.创建用户 testuser,密码为 123456,并为其分配在数据库 gradesystem 下所有表的 select 权限
    -这里写图片描述

  • 6测试5
    1登陆

  • 实验楼sql进阶之简化数据操作提升性能(window)_第8张图片
    2测试SELECT
    实验楼sql进阶之简化数据操作提升性能(window)_第9张图片
    3测试其他
    这里写图片描述

你可能感兴趣的:(实验楼,sql)