Modul 6 - Databaser
Fra Hiofwiki
Gruppe 7.
Modul 6.
Oppgave 1.
1.Vise alle fylkene i Norge (admin1Code)
- SELECT * FROM admin1Code;
2.Vise hvor mange fylker som finnes i Norge
- SELECT COUNT(*) FROM admin1Code;
3.Vise alle kommunene i Norge (admin2Code)
- SELECT * FROM admin2Code;
4.Vise hvor mange kommuner som finnes i Norge
- SELECT COUNT(*) FROM admin2Code;
5.Vise alle kommunene i Østfold
- SELECT * FROM admin2Code WHERE admin1code=13;
6.Vise alle kommunene i Rogaland
- SELECT * FROM admin2Code WHERE admin1code=14;
7.Vise lengdegrad, breddegrad og innbyggertall for Halden
- SELECT name,latitude,longitude,population FROM geoname WHERE name='Halden';
8.Vise høyde over havet for Tromsø
- SELECT name,elevation FROM geoname WHERE name='Tromsø';
9.Vise navn, innbyggertall og høyde over havet for alle registrerte steder i Østfold
- SELECT name,population,elevation FROM geoname WHERE admin1Code=13;
10.Vise navn, innbyggertall for alle kommuner i Østfold
- SELECT population,a2.name FROM geoname ge,admin2Code a2 WHERE ge.geonameID=a2.geonameID AND a2.admin1Code=13;
11.Vise navn og gjennomsnittlig innbyggertall for alle kommuner i Østfold
- SELECT AVG(ge.population) AS "Gjennomsnittlig innbyggere i Østfold" FROM geoname ge, admin2Code a2 WHERE a2.geonameID=ge.geonameID AND a2.admin1Code=13;
12.Vise det totale innbyggertallet for alle kommuner i Østfold
- SELECT SUM(ge.population) AS "Totale innbyggertall for alle kommuner i Østfold" FROM geoname ge, admin2Code a2 WHERE a2.geonameID=ge.geonameID AND a2.admin1Code=13;
Oppgave2.
package modul6;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.JOptionPane;
public class TestDatabasekobling {
public static void main(String[] args) {
String dbdriver = "com.mysql.jdbc.Driver"; //Databasedriveren
String server = "frigg.hiof.no"; // Navnet på maskinen der serveren er plassert
String database = "norgesdata";// Navnet på databasen
String bruker ="student07"; // brukernavn
String passord="norgesdata"; //passord
String sted = JOptionPane.showInputDialog("Skriv inn et stedsnavn i Norge: ");
Connection kobling = null;
try {
Class.forName(dbdriver).newInstance();
kobling = DriverManager.getConnection("jdbc:mysql://"+ server + "/" + database, bruker, passord);
} catch (Exception ex) {
System.out.println("Feil! Får ikke opprettet kontakt med databasen. ");
System.out.println(ex);
}
String sql = "select name, population, latitude, longitude from geoname where name='" + sted + "'";
Statement stmt =null;
ResultSet res=null;
try {
stmt = kobling.createStatement();
res = stmt.executeQuery(sql);
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
while (res.next()){
String navn = res.getString("name");
int pop = res.getInt("population");
double lgrad = res.getDouble("latitude");
double bgrad = res.getDouble("longitude");
JOptionPane.showMessageDialog(null, "Stedsnavn: " + navn +
"\nInnbyggertall: " + pop + "\nL-grad: " + lgrad +
"\nB-grad: " + bgrad);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
Gruppe 8
Oppgave 1
1. Vise alle fylkene i Norge (admin1Code)
SELECT * FROM admin1Code;
2. Vise hvor mange fylker som finnes i Norge
SELECT COUNT(*) FROM admin1Code;
3. Vise alle kommunene i Norge (admin2Code)
SELECT * FROM admin2Code;
4. Vise hvor mange kommuner som finnes i Norge
SELECT COUNT(*) FROM admin2Code;
5. Vise alle kommunene i Østfold
SELECT * FROM admin2Code WHERE admin1Code=13;
6. Vise alle kommunene i Rogaland
SELECT * FROM admin2Code WHERE admin1Code=13;
7. Vise lengdegrad, breddegrad og innbyggertall for Halden
SELECT name, population, latitude, longitude, FROM geoname WHERE name='Halden';
8. Vise høyde over havet for Tromsø
SELECT name, elevation FROM geoname WHERE name='Tromsø';
9. Vise navn, innbyggertall og høyde over havet for alle registrerte steder i Østfold.
SELECT name, population, elevation FROM geoname WHERE admin1Code=13;
10. Vise navn, innbyggertall for alle kommuner i Østfold
SELECT a2.name, population FROM geoname gn, admin2Code a2 WHERE gn.geonameID=a2.geonameID AND a2.admin1Code=13;
11. Vise gjennomsnittlig innbyggertall for kommunene i Østfold
SELECT AVG(gn.population) FROM geoname gn, admin2Code a2 WHERE gn.geonameID=a2.geonameID AND a2.admin1Code=13;
12. Vise det totale innbyggertallet for alle kommuner i Østfold
SELECT SUM(gn.population) FROM geoname gn , admin2Code a2 WHERE gn.geonameID=a2.geonameID AND a2.admin1Code=13;
Oppgave 2
public static void main(String[] args) {
/**
* Programmet tar utgangspunt i kommunenavn og ikke stedsnavn... For variasjons skyld :)
*/
String dbdriver = "com.mysql.jdbc.Driver";
String server = "frigg.hiof.no";
String database = "norgesdata";
String bruker ="student07";
String passord="norgesdata";
String input = JOptionPane.showInputDialog("Skriv inn et kommunenavn her:");
Connection kobling = null;
try {
Class.forName(dbdriver).newInstance();
kobling = DriverManager.getConnection("jdbc:mysql://"+ server + "/" + database, bruker, passord);
} catch (Exception ex) {
System.out.println("Ingen forbindelse til databasen. ");
System.out.println(ex);
}
String sql = "SELECT a2.name, population, longitude, latitude FROM geoname gn, admin2Code a2 WHERE gn.geonameID=a2.geonameID AND gn.name = '" + input + "'";
Statement stmt =null;
ResultSet res=null;
try {
stmt = kobling.createStatement();
res = stmt.executeQuery(sql);
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
while (res.next()){
String navn = res.getString("name");
int innbyggere = res.getInt("population");
double bredde = res.getDouble("latitude");
double lengde = res.getDouble("longitude");
JOptionPane.showMessageDialog(null, "Data for " + navn + ":\nInnbyggere: " + innbyggere + "\nLengdegrad: " + lengde + "\nBreddegrad: " + bredde);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
