U201614577_CS1603_龙际全_前两次1
需积分: 0 155 浏览量
更新于2022-08-08
收藏 1.46MB DOCX 举报
在这个实践报告中,主要涉及了SQL语言的使用,包括数据建模、数据更新、查询以及数据库管理的一些高级特性。以下是具体的知识点解析:
1. **数据建模**:
- 使用SQL语句创建数据库表,如USER、LABEL、MBLOG、B_L、FOLLOW、FRIENDS、SUB、THUMB和TOPDAY。每个表都有明确的字段定义,包含主键和外键,用于维护数据的一致性和完整性。
- 主键是表中唯一标识一条记录的字段,如USER中的UID,而外键则是引用其他表的主键,如MBLOG中的UID和B_L中的BID、LID。
2. **数据更新**:
- 增加记录:使用`INSERT INTO`语句向表中添加新的数据行。
- 删除记录:使用`DELETE FROM`语句删除满足特定条件的记录。
- 修改记录:使用`UPDATE`语句更新表中已存在的数据。
3. **批处理操作**:
- 插入新表:通过`INSERT INTO SELECT`语句将满足条件的记录批量插入到新表中,例如,将关注3号用户的用户信息插入到FANS_3表。
4. **数据导入导出**:
- 学习如何使用DBMS提供的功能将数据导出到文件,再从文件导入到数据库,这通常涉及到`BACKUP`和`RESTORE`命令,或者是使用工具如SQL Server Management Studio的导出/导入向导。
5. **观察性实验**:
- 不设置主键的后果:在无主键的关系中,可能会导致数据冗余和不一致,删除和修改操作可能无法达到预期效果。
6. **触发器**:
- 触发器是一种特殊的存储过程,它在特定的数据库操作(如INSERT、UPDATE、DELETE)发生时自动执行,用于实现业务规则,例如防止用户给自己点赞。
7. **SQL查询**:
- 使用`SELECT`语句进行复杂查询,如:
- 查询特定用户关注的其他用户信息,使用`JOIN`操作连接USER和FOLLOW表。
- 查找未被点赞的博文,利用子查询和LEFT JOIN排除已被点赞的记录。
- 根据日期和城市筛选进入过头条的博文,结合WHERE和JOIN子句。
- 查找订阅所有分类的用户,利用集合操作(如IN)和子查询。
- 分组和聚合函数(COUNT)用于统计城市或出生年份的用户数。
8. **其他高级查询**:
- 使用`CASE`语句和`UNION`操作实现复杂的逻辑条件(出生年份在特定范围之外)。
- 复合分组(GROUP BY)和嵌套的聚合函数(COUNT)用于统计每个城市每个出生年份的用户数。
- `ORDER BY`子句用于排序查询结果,确保输出符合需求的顺序。
这个实践报告覆盖了数据库管理和SQL语言的基础和高级应用,提供了丰富的练习机会,有助于理解数据库系统的工作原理和实际操作技巧。