数据库系统
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 图书管理系统
不再更新