数据库MySQL(课下作业)

一、作业要求

  • 下载附件中的world.sql.zip, 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECDB,导入world.sql,提交导入成功截图
  • 编写程序,查询世界上超过“你学号前边七位并把最后一位家到最高位,最高位为0时置1”(比如学号20165201,超过3016520;学号20165208,超过1016520)的所有城市列表,提交运行结果截图
  • 编写程序,查询世界上的所有中东国家的总人口
  • 编写程序,查询世界上的平均寿命最长和最短的国家

二、作业步骤

1.下载并导入world.sql

  • 下载附件后,在Navicat for MySQL中的你已建立的数据库右击,点击运行SQL文件

  • 点击这里,找到sql文件

  • 然后点击开始,再F5刷新一下,就成功导入sql文件了

2.编程查询城市

  • 使用where语句实现城市的筛选、查找

  • 查询成功截图

3.编程查询总人口

  • 依然使用where语句,设定地区为“中东”

  • 计算成功截图

4.编程查询国家

  • 使用order语句,将数据按“平均寿命”排序后,用rs.first()rs.last()rs.next()控制游标的方法找到最大、最小值

  • 核心代码
try {
            sql=con.createStatement();
            rs = sql.executeQuery(sqlStr);
            String name1,name2;
            rs.first();                                  //游标移动到第一行
            float f=rs.getFloat(8);
            while (f==0.0){
                rs.next();                             //如果数据为空,游标移动到下一行
                f=rs.getFloat(8);
            }
            name1=rs.getString(2);
            System.out.println("世界上的平均寿命最短的国家是:"+name1);
            rs.last();                               //游标移动到最后一行
            name2=rs.getString(2);
            System.out.println("世界上的平均寿命最长的国家是:"+name2);
            con.close();
        }
        catch(SQLException e) {
            System.out.println(e);
        }
  • 结果截图

三、作业中的问题及解决

问题1:查询国家平均寿命时,存在空数据,在表的最前面,影响结果

解决1:使用while循环,判断数据是否为空,若是,则游标下移,直到数据不为空

问题2:使用制表符打印国家信息时,出现制表符被吃掉的问题

尚未解决:上网查阅、询问同学后还未解决,还在摸索中

四、码云链接

五、作业感想

  • 因为之前已经建立好了数据库连接,而且也有一些源代码,所以做起来还是比较顺手的,也使我对数据库的使用和一些语法的运用更加熟练,只是还存在一些小问题,我会继续努力的。

猜你喜欢

转载自www.cnblogs.com/wyf20175217/p/10791887.html