本段内容为实验3解答-sql2.sql,提供了对特定数据库操作问题的SQL解决方案,涉及查询优化和数据检索技巧。
通过本实验使学生掌握多表查询、子查询以及基本数据操作。
二. 实验内容
使用实验一建立的银行贷款数据库和表,完成以下查询:
1-4是多表查询和子查询:
1. 经济性质为“国营”的法人在上海的银行贷款的信息,列出法人代码、银行代码和贷款日期。分别用多表连接和子查询两种方式实现。
2. 查询在“建设银行上海分行”贷过款的法人名称,分别使用多表连接和子查询两种方式实现。
3. 查询在“工商银行北京A支行”贷款金额前三名(包括并列的情况)的法人的法人代码、法人名称和经济性质。采用多表连接和子查询两种方法完成。
4. 在“工商银行北京B支行”中,找到贷款且贷款金额高于此银行平均贷款金额的法人信息。列出法人代码、贷款日期及贷款金额。
5-11是数据操作查询:
5. 向银行表里添加如下数据:银行编号为B321B;名称:建设银行上海B分行;电话为空。
6. 在法人表中插入以下内容:法人编码E11, 法人名:新法人; 注册资金: 2350万元; 经济性质使用默认值。
7. 删除银行编号为B321B的记录。
8. 移除所有在2000年之前的贷款数据,根据最小一次贷款金额筛选。
9. 剔除从当前日期算起超过十年的贷款信息。
10. 删去法人名称是“爱贝乐玩具有限公司”且借款额小于十万的所有记录。分别使用子查询和多表连接两种方法来实现。
11. 将经济性质为“私营”的法人在工商银行上海支行的贷款金额都加5万元,采用子查询和多表联接两种方式完成。
另外,请从实验一创建的学生数据库中进行以下操作:
12-15是关于多表查询与子查询的内容;
16-20涉及数据的操作任务。
具体为:
1. 查询计算机系年龄大于全校平均年龄的学生姓名及年龄。
2. 找出所有超过本专业平均年纪的计算机科学专业的学生,列出他们的名字和年级。
3. 从数据库中找出成绩低于整体平均分的计算机系学生的学号、姓名。
4. 将不及格且分数最低的成绩提高到60分(仅限于“数据库基础”这门课)。
5. 修改所有不及格的‘数据库’课程的学生的成绩至合格线60分。
6. 清除计算机网络相关课程的所有选修记录。
7. 删除Vb考试成绩最后两名学生的vb考试记录。
8. 对低于60分的“数据库基础”科目的学生,增加10%分数;对于在60到80之间的学生成绩提高至多6%,而对那些在85到95之间的人则加4%。其他情况不做修改。
9. 如果课程开始于第一、二或三学期,则为该科目添加一分的学分,如果始于第四至第六学期,则增加两份;其余情况下加三分。
10. 使用子查询完成以下任务:确定男生中年龄最大的学生姓名及所在系别。
11. 列出选修数据库基础的学生名单及其所属院系名称。
12. 提供所有选择第6个学期课程学生的学号、名字以及学院信息。
13. 展示男生所修的科目名目。
14. 显示年龄最小的学生所选课目的名字。
三.实验报告
请将上述查询的结果体现在实验报告中,并对在操作过程中遇到的问题及其解决方案进行整理和分析,最终提出结论或个人见解。