SQL Tutorium Documentation

Werbung
SQL Tutorium Documentation
Release 1.1.0
Sandro Tonon
23.06.2015
Inhaltsverzeichnis
1
Inhalte:
1.1 SQL Developer . . . . . . . . . . . .
1.2 SQL Befehle ausführen . . . . . . .
1.3 Zweitaccount . . . . . . . . . . . . .
1.4 SQL in ein JAVA Programm einbetten
1.5 Allgemeines . . . . . . . . . . . . .
1.6 FAQ . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
6
7
7
10
10
i
ii
SQL Tutorium Documentation, Release 1.1.0
Das ist die Informations-Seite für das Praktikum in Datenbanksysteme der HTWG Konstanz. Hier werden die Basics
des SQL Developers, wie man Befehle ausführt und Allgemeines erklärt.
Inhaltsverzeichnis
1
SQL Tutorium Documentation, Release 1.1.0
2
Inhaltsverzeichnis
KAPITEL 1
Inhalte:
1.1 SQL Developer
Mit dem SQL Developer werden die Tabellen und Daten auf dem SQL-Server der HTWG angelegt. Im Folgenden ein
kleines Tutorial wie man sich mit dem SQL Developer auf dem Server anmeldet.
Abb. 1.1: SQL Developer Startbildschirm
1.1.1 Verbindung anlegen
Warnung: Damit man Zugriff auf den Datenbanken-Server hat, muss zu erst eine Verbindung zum VPN der
HTWG hergestellt werden!
3
SQL Tutorium Documentation, Release 1.1.0
Um eine Verbindung mit dem Server herzustellen, muss zunächst eine neue Verbindung angelegt werden. Dies geschieht indem man unter “Verbindungen” auf “neue Verbindung...” (oder das grüne Plus-Zeichen) klickt:
Abb. 1.2: SQL Developer - Neue Verbindung
Dadurch öffnet sich ein Dialogfenster, in dem man die Verbindungsdaten eingeben muss. Dort muss folgendes eingetragen werden:
1)
2)
3)
4)
5)
Verbindungsname:
Benutzername:
Kennwort:
Hostname:
SID (DB-Name):
Der gewünschte Verbindungsname
dbsys + gewählte-Nr. (z.B. dbsys10) -> siehe TN-Liste
wie Benutzername
oracle12c.in.htwg-konstanz.de
ora12c
Durch Klick auf “Test” können die Einstellungen getestet werden. Wenn dabei keine Fehlermeldung erscheint, sind die
Einstellungen korrekt. Durch Klick auf “Speichern” wird die Verbindung gespeichert. Um das Fenster zu schließen,
muss auf “Abbrechen” geklickt werden.
1.1.2 Verbindung herstellen
Um sich nun mit dem Server zu verbinden, muss auf die gerade erstellte Verbindung ein Rechtsklick gemacht und
“Anmelden” ausgewählt werden:
Daraufhin wird die Verbindung zum Server hergestellt. Außerdem wird automatisch ein Skript mit dem Verbindungsnamen als Name angelegt. Hier können die SQL-Befehle reingeschrieben und ausgeführt werden (näheres dazu in
SQL Befehle ausführen).
1.1.3 Passwort ändern
Nachdem die Verbindung erfolgreich hergestellt wurde sollte das Passwort des jeweiligen DBSys-Users geändert
werden.
4
Kapitel 1. Inhalte:
SQL Tutorium Documentation, Release 1.1.0
Abb. 1.3: SQL Developer - Verbindungsdaten
Abb. 1.4: SQL Developer - Anmelden
1.1. SQL Developer
5
SQL Tutorium Documentation, Release 1.1.0
Dazu einfach in folgendes SQL-Statement eingeben (und die entsprechenden Daten anpassen):
ALTER USER dbsysXX
IDENTIFIED BY "altesPasswort(dbsysXX)"
REPLACE "neuesPasswort"
Anschließend müssen die Änderungen auch in den Verbindungseinstellungen angepasst und sich erneut angemeldet
werden.
1.2 SQL Befehle ausführen
Im SQL Developer können Befehle unterschiedlich ausgeführt werden:
• Alle Befehle / Gesamtes Skript ausführen
• Einzelnen Befehl ausführen
1.2.1 Alle Befehle / Gesamtes Skript ausführen
Um alle SQL-Statements des Dokumentes bzw. das gesamte Skript auszuführen, kann einfach die “F5”-Taste gedrückt
oder der “Skript ausführen”-Button gedrückt werden:
Abb. 1.5: SQL Developer - Gesamtes Skript ausführen
1.2.2 Einzelnen Befehl ausführen
Um einen einzelnes SQL-Statement auszuführen reicht es, wenn der Cursor in dem entsprechendem SQL-Statement
ist und Strg+Eingabe (Windows, MAC: ctrl+Eingabe) gedrückt wird. Somit läuft nicht immer das gesamte Skript
durch, stattdessen können einzenle Befehle schnell ausgeführt und getestet werden.
6
Kapitel 1. Inhalte:
SQL Tutorium Documentation, Release 1.1.0
Abb. 1.6: SQL Developer - Einzelnes SQL-Statement ausführen
1.3 Zweitaccount
Für Teil 2 des Praktikums wird ein zweiter Benutzer als “Kunde” benötigt.
Um den zweiten Account anzulegen, muss eine Verbindung, wie im Abschnitt “Verbindung anlegen”, erstellt werden.
Dazu muss ein Account gefunden werden, der noch nicht benutzt wird. Das kann geprüft werden, in dem einfach das
Standard-Passwort (dbsysXX) eingegeben wird. Wenn das Passwort akzeptiert wird, ist der Account noch frei.
Nun kann einfach zwischen den Verbindungen hin und her gewechselt werden:
Somit ist schnelles Umschalten zur/von Kunden-Ansicht möglich.
1.4 SQL in ein JAVA Programm einbetten
Für den Aufgabenteil 4 wird der entsprechende Treiber benötigt:
Download Treiber.
Dieser muss in Netbeans / Eclipse als externe Library eingebunden werden.
Anhand von Beispielen soll nun gezeigt werden, wie man die Verbindung herstellt und SQL-Statements ausführt
werden.
Bemerkung: Es ist sehr empfehlenswert die SQL-Statements zuerst im SQL Developer auszuführen und zu testen,
das kann viel Fehlersucherei vermeiden!
1.4.1 Insert-Statement
Das erste Beispiel zeigt, wie man Daten in die Tabelle einfügt. Wichtig beim ausführen ist hierbei, dass man mit dem
VPN verbunden ist. Außerdem müssen natürlich Benutzername und Passwort richtig ersetzt werden.
1.3. Zweitaccount
7
SQL Tutorium Documentation, Release 1.1.0
Abb. 1.7: SQL Developer - Verbindung wechseln
import java.sql.*;
public class Template {
public static void main(String args[]) {
String name = "dbsysXX";
String passwd = "passwort";
Connection conn = null;
Statement stmt = null;
try {
// Treiber laden
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
// String für DB-Connection
String url = "jdbc:oracle:thin:@oracle12c.in.htwg-konstanz.de:1521:ora12c";
// Verbindung erstellen
conn = DriverManager.getConnection(url, name, passwd);
// Transaction Isolations-Level setzen
conn.setTransactionIsolation(conn.TRANSACTION_SERIALIZABLE);
conn.setAutoCommit(false);
stmt = conn.createStatement();
// INSERT-Query
StringBuilder sb = new StringBuilder();
sb.append("INSERT INTO ferienwohnung VALUES ('Name', 'Deutschland', 2)");
// Query ausführen - einfügen
String myInsertQuery = sb.toString();
stmt.executeUpdate(myInsertQuery);
8
Kapitel 1. Inhalte:
SQL Tutorium Documentation, Release 1.1.0
stmt.close();
conn.commit();
conn.close();
} catch (SQLException se) {
System.out.println("SQL Exception occurred while establishing connection to DBS: \n"
+ se.getMessage());
try {
conn.rollback();
} catch (SQLException e) {
e.printStackTrace();
}
System.exit(-1);
}
}
}
1.4.2 Select-Statement
Das zweite Beispiel zeigt, wie man ein Select-Statement ausführt. Hierbei wird angenommen, dass es die Spalten
FName, Landname und Anz_Zimmer gibt.
import java.sql.*;
public class Template {
public static void main(String args[]) {
String name = "dbsysXX";
String passwd = "passwort";
Connection conn = null;
Statement stmt = null;
ResultSet rset = null;
try {
// Treiber laden
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
// String für DB-Connection
String url = "jdbc:oracle:thin:@oracle12c.in.htwg-konstanz.de:1521:ora12c";
// Verbindung erstellen
conn = DriverManager.getConnection(url, name, passwd);
// Transaction Isolations-Level setzen
conn.setTransactionIsolation(conn.TRANSACTION_SERIALIZABLE);
conn.setAutoCommit(false);
stmt = conn.createStatement();
// SELECT-Query
StringBuilder sb = new StringBuilder();
sb.append("SELECT * FROM ferienwohnung");
String mySelectQuery = sb.toString();
rset = stmt.executeQuery(mySelectQuery);
1.4. SQL in ein JAVA Programm einbetten
9
SQL Tutorium Documentation, Release 1.1.0
// "Tabellen"-Ansicht bauen
System.out.printf("Name
|
");
System.out.printf("Land
| Zimmer\n");
System.out.println("----------------------------------");
while (rset.next()) {
System.out.printf(rset.getString("Fname") + " | ");
System.out.printf(rset.getString("Landname") + " | "
+ rset.getInt("Anz_Zimmer") + " | ");
System.out.println("");
}
stmt.close();
conn.commit();
conn.close();
} catch (SQLException se) {
System.out.println("SQL Exception occurred while establishing connection to DBS: \n"
+ se.getMessage());
try {
conn.rollback();
} catch (SQLException e) {
e.printStackTrace();
}
System.exit(-1);
}
}
}
1.5 Allgemeines
Allgemeine Hinweise für das Praktikum:
Bemerkung: Es ist am einfachsten, den Code sinnvoll auf verschiedene Dateien zu verteilen!
• Für das Praktikum ist der geschriebene Code wichtig! “Skills” im SQL Developer-Rumklicken sind nicht ausreichend!
• Code aus fremden Quellen muss markiert und verstanden werden!
1.6 FAQ
Hier werden die am häufig gestelltesten Fragen beantwortet. Wenn Du eine Frage hast, kannst Du sie mir gerne via
Mail vorschlagen!
10
Kapitel 1. Inhalte:
Herunterladen