一、作业要求
- 下载附件中的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:使用制表符打印国家信息时,出现制表符被吃掉的问题
尚未解决:上网查阅、询问同学后还未解决,还在摸索中
四、码云链接
五、作业感想
- 因为之前已经建立好了数据库连接,而且也有一些源代码,所以做起来还是比较顺手的,也使我对数据库的使用和一些语法的运用更加熟练,只是还存在一些小问题,我会继续努力的。