Modul 6 - Databaser

Fra Hiofwiki

Gå til: navigasjon, søk

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();
       }
       
       
       
   }