JavaWeb第20天MySQL练习:聚合函数、数据库备份恢复与分组查询

需积分: 0 2 下载量 175 浏览量 更新于2024-06-30 收藏 280KB DOCX 举报
"JavaWeb第20天的MySQL作业答案,涵盖了数据库设计约束、SQL聚合函数的使用、数据库备份与恢复以及分组查询操作。" 在JavaWeb开发中,数据库设计是至关重要的一步,它确保了数据的有效性和一致性。在本作业中,我们关注了数据库表字段的各种约束,包括: 1. 主键约束:主键是表中一个或一组字段,用于唯一标识每条记录。在创建表时,可以通过在字段描述处声明指定字段为主键。例如,可以创建一个`id`字段并设置为主键,确保每条记录都有唯一的标识。 2. 自动增长:对于整数类型的主键,可以设置为自动增长,这样每次插入新记录时,该字段的值会自动递增,无需手动输入。 3. 非空约束:非空约束确保字段不能有NULL值,强制用户提供有效数据。例如,`NOT NULL`关键字可以用于创建非空字段。 4. 唯一性约束:这种约束确保字段的值在表中是唯一的,但可以允许NULL。可以使用`UNIQUE`关键字来实现。 5. 外键约束:外键是引用另一个表的主键,用于建立和维护两个表之间的关联。这有助于保持数据的一致性,并支持级联操作,如删除或更新。 接下来,我们学习了SQL聚合函数的使用,这些函数在处理大量数据时非常有用: - `COUNT(*)`:计算表中的记录行数,无论字段是否为NULL。 - `SUM(column_name)`:计算指定列的数值总和。 - `MAX(column_name)`:找出指定列的最大值。 - `MIN(column_name)`:找出指定列的最小值。 - `AVG(column_name)`:计算指定列的平均值。 举例来说,你可以用以下SQL语句查询不同分类的商品数量、总价、平均价格和价格范围: ```sql SELECT COUNT(*), SUM(price), AVG(price), MAX(price), MIN(price) FROM products WHERE category_id = 'c001'; ``` 此外,我们还了解了如何使用SQLYOG工具进行数据库的备份和恢复。备份数据库时,只需右键点击数据库,选择“备份/导出”,指定导出路径并保存为.sql文件。恢复数据库则通过“从SQL转储文件导入数据库”,指定要执行的SQL文件来完成。 最后,我们学习了使用`GROUP BY`和`HAVING`子句进行分组查询。`GROUP BY`用于根据一个或多个字段对数据进行分组,而`HAVING`则用于在分组后过滤数据,类似于`WHERE`但作用于分组后的结果。例如,以下语句可以统计每个分类的商品数量: ```sql SELECT category_id, COUNT(*) FROM products GROUP BY category_id HAVING COUNT(*) > 10; ``` 这个查询将返回那些至少有11条记录的分类及其对应的商品数量。 这个作业涵盖了数据库设计的基本要素和SQL查询的实用技巧,是JavaWeb开发中数据库操作的重要实践。