跳转至

数据库系统

2020-2021春夏 黄忠东


lab1 DBMS安装和使用

  • 完成日期: 2021/3/5

挺简单的,一步步做,我觉得命令行挺好用的


lab2 SQL数据定义和操作

  • 完成日期: 2021/3/5

实验要求

  • 建立数据库。
  • 数据定义: 表的建立/删除/修改; 索引的建立/删除;视图的建立/删除
  • 数据更新: 用 insert/delete/update命令插入/删除/修改表数据。
  • 数据查询: 单表查询,多表查询, 嵌套子查询等。
  • 视图操作:通过视图的数据查询和数据修改

感想

跟着MySQL必知必会做,不会就查,难度不大


lab3 数据完整性

  • 完成日期: 2021/3/19

实验要求

  • 定义若干表,其中包括primary key, foreign key 和check的定义。
  • 让表中插入数据,考察primary key如何控制实体完整性。
  • 删除被引用表中的行,考察foreign key 中on delete 子句如何控制参照完整性。
  • 修改被引用表中的行的primary key,考察foreign key 中on update 子句如何控制参照完整性。
  • 修改或插入表中数据,考察check子句如何控制校验完整性。
  • 定义一个trigger, 并通过修改表中数据考察触发器如何起作用。

感想

触发器有点难,一直错,往上很多都是后验触发器,写个先验的好难,MySQL语法和SQL语法还是不同的。

问题记录

  • before insert触发器里面不要用insert,不然会循环调用触发器,要用set
  • set中要用逗号分隔
  • SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT = '一位同学一个学期不可以借三本书!';可以用来抛出错误

lab4 数据库安全

  • 完成日期: 2020/3/20

实验要求

  • 建立表,考察表的生成者拥有该表的哪些权限。
  • 使用SQL 的grant 和revoke命令对其他用户进行授权和权力回收,考察相应的作用。
  • 建立视图,并把该视图的查询权限授予其他用户,考察通过视图进行权限控制的作用。
  • 建立新的角色,并为其赋予权限(create table,view,procedure等),给用户添加角色

感想

不难, 甚至有些简单

问题记录

反引号和单引号作用不同,反引号一般用于标识符,比如表名、用户名等,单引号用于字符串。


lab5 图书管理系统

不再更新