王者荣耀英雄装备数据库SQL操作综合练习题

配套数据库脚本:0520.txt;数据表:hero、skill、item、hero_item;XX代表两位学号;语法适配MySQL。

一、基础建库、约束、索引操作题(原题4小题 → 扩充12小题,每题6分,总分72分)

1. 创建数据库GameXX(XX为2位学号),所有属性采用默认设置。(6分)

Sql语句:


    

2. 在GameXX数据库执行0520.txt脚本导入全部数据表与测试数据,打开hero英雄表并截图粘贴下方。(6分)

操作说明:执行SQL文件后查询hero全表数据,截图粘贴区域:

3. 为hero表position(位置)字段添加DEFAULT默认约束,默认值为'战士'。(6分)

Sql语句:


    

4. 在item装备表name装备名称列创建唯一性非聚集索引un_item_nameXX(XX为2位学号)。(6分)

Sql语句:


    

5. 创建数据库BackupXX,用于备份英雄数据,默认字符集utf8mb4。(6分)

Sql语句:


    

6. 打开skill技能表,查询所有法师英雄对应的全部技能数据,将查询结果截图粘贴。(6分)

操作截图粘贴区域:

7. 为item表price价格字段设置DEFAULT默认约束,默认值为0。(6分)

Sql语句:


    

8. 在hero_item关联表hero_id字段创建普通索引idx_heroidXX。(6分)

Sql语句:


    

9. 删除备份数据库BackupXX。(6分)

Sql语句:


    

10. 为skill表skill_name技能名称添加唯一性约束,同一英雄不可存在同名技能。(6分)

Sql语句:


    

11. 在hero表gold_price金币价格字段创建普通索引idx_goldXX。(6分)

Sql语句:


    

12. 移除item表name字段上的唯一性索引un_item_nameXX。(6分)

Sql语句:


    

二、多表查询实操题(原题5小题 → 扩充15小题,每题8分,总分120分)

(1)查询所有「法师」位置英雄的id、姓名、称号、金币价格。(8分)

Sql语句:


    

(2)查找姓「李」的英雄,按攻击力降序取前3名,输出英雄id、姓名、攻击力。(8分)

Sql语句:


    

(3)统计每个职业(position)英雄的平均生命值、平均攻击力,输出职业、平均血量、平均攻击。(8分)

Sql语句:


    

(4)查询英雄id=4(李白),筛选出攻击力高于李白平均攻击力的所有英雄名单。(8分)

Sql语句:


    

(5)查询金币价格13888及以上的高价英雄,使用查询结果生成新数据表heroXX_high。(8分)

Sql语句:


    

(6)查询所有刺客英雄对应的全部技能信息,输出英雄名、技能名、技能描述。(8分)

Sql语句:


    

(7)查询装备价格大于2000的装备,按冷却缩减cd_reduction降序排列,取前5件装备。(8分)

Sql语句:


    

(8)统计每件装备被多少英雄选为核心装备(is_core=1),输出装备名、核心选用人数。(8分)

Sql语句:


    

(9)查询拥有3个核心装备的英雄,输出英雄id、英雄姓名、核心装备数量。(8分)

Sql语句:


    

(10)查询生命值hp大于3500的战士英雄,将查询结果生成新数据表heroXX_tank。(8分)

Sql语句:


    

(11)统计每个英雄拥有的技能总数,输出英雄姓名、技能数量,仅展示技能数≥3的英雄。(8分)

Sql语句:


    

(12)查询装备「魔女斗篷」,输出所有出过这件装备的英雄姓名、英雄位置。(8分)

Sql语句:


    

(13)查询所有冷却缩减大于0的装备,计算这批装备的平均冷却缩减数值。(8分)

Sql语句:


    

(14)查询攻击力加成attack_bonus>100的装备,找出使用过该类装备的刺客英雄姓名。(8分)

Sql语句:


    

(15)查询称号包含「战神」「剑仙」关键词的英雄,生成新数据表heroXX_title。(8分)

Sql语句:


    

三、视图创建操作题(原题1小题 → 扩充3小题,每题6分,总分18分)

(1)创建视图view_hero_maxXX(XX为2位学号):统计每个职业最高攻击力英雄,列名使用中文:英雄编号、英雄姓名、职业、最大攻击力。(6分)

Sql语句:


    

(2)创建视图view_skill_infoXX:关联hero与skill表,中文列:英雄名称、技能名称、技能描述,仅展示法师英雄技能。(6分)

Sql语句:


    

(3)创建视图view_core_itemXX:统计每个英雄的核心出装(is_core=1),中文列:英雄姓名、装备名称、装备价格。(6分)

Sql语句:


    

四、拓展增删改选做题(不计入总分,每题10分)

拓展1:删除所有辅助英雄的非核心出装记录(is_core=0)。

Sql语句:


    

拓展2:更新全部刺客英雄攻击力attack数值+10。

Sql语句: