Datenbanksysteme SQL

Größe: px
Ab Seite anzeigen:

Download "Datenbanksysteme SQL"

Transkript

1 Datenbanken und Informationssysteme Technikerschule TS Kursunterlagen Datenbanksysteme SQL Autor: Bernhard Bausch Versionsverzeichnis Version: Datum: Revisionsgrund: Version Erste Ausgabe Version Ergänzung SQL-Befehlsübersicht Version Semesterkorrekturen Version Semesterkorrektur Datenbank_SQL1.3.doc Seite 1/37

2 Inhalt 1 SQL-Befehlsübersicht Mit SQL-Anweisungen Daten definieren, eingeben und verwalten Datenbank anlegen, öffnen, schliessen und löschen Datenbank anlegen Datenbank löschen Tabellen erstellen und löschen Tabellen erstellen Tabellen löschen Daten in Tabellen eingeben (neuer Datensatz) Eine Tabellenzeile vollständig eingeben Werte in bestimmte Spalten einer Datenzeile eingeben Daten aktualisieren Daten löschen Ein Tabellenfeld nachträglich einfügen, ändern oder löschen Neue Spalte mit ADD einfügen Vorhandene Spalten mit MODIFY ändern Vorhandene Spalten mit DROP löschen Tabellen- und Spaltennamen ändern Der SELECT-Befehl im SQL Alle Zeilen einer Tabelle anzeigen Spalten auswählen Inhaltlich gleiche Zeilen von der Ausgabe ausschliessen Zeilen mit Bedingungen auswählen Operatoren Spalten mit NULL-Werten Abfragen Zeilen mit verbundenen Bedingungen suchen und anzeigen Logische Operatoren Aggregatfunktionen Rechenoperationen durchführen Mit Funktionen arbeiten Numerische Funktionen Datumsoperatoren und Datumsfunktionen Zeichenketten-, Umwandlungs- und anderer Funktionen Umwandlungsfuntionen... Fehler! Textmarke nicht definiert. 3.8 Prädikate Operator LIKE Operator BETWEEN Operator IN Daten aus mehreren Tabellen abfragen (Joins) Kartesisches Produkt aus zwei Tabellen bilden Logische Verbingungen mit Equi-Join herstellen Andersnamen bzw. Alias-Bezeichner für Tabellen vereinbaren Synonyme Tabellen-Bezeichner Alias-Bezeichner definieren OUTER- oder LEFT-, RIGHT-Join Verknüpfungen innerhalb der gleichen Tabelle (Self-Joins) Bedingungen in SELECT-Unterabfragen formulieren (Subqueries) Regeln für den Einsatz von Unterabfragen Unterabfragen mit relationale Operatoren Unterabfrage mit ALL und ANY Operator ALL Operator ANY Unterabfragen mit IN und EXISTS Datenbank_SQL1.3.doc Seite 2/37

3 5.4.1 Operator IN Operator EXISTS Synchronisierte Unterabfragen Unterabfragen im Befehl INSERT Unterabfragen im Befehl UPDATE Select-Unterabfrage in der WHERE-Klausel SELECT-Unterabfrage in der SET-Klausel Daten sortieren und gruppieren Daten Sortieren Zeilen gruppieren Gruppen bedingungsabhängig auswählen mit HAVING Ergebnisausgaben verbinden mit UNION, INTERSECT, EXCEPT Operator UNION Operator INTERSECT Operator EXCEPT/MINUS Sichten verwenden VIEW erstellen View ausgeben View löschen Mit VIEWS Daten aktualisieren Datenbank optimieren Einfachindex erstellen Index löschen Zusammengesetzten Index vereinbaren Indexeintragungen überprüfen und reparieren Die referentielle Integrität einer Datenbank erhalten Daten schützen und sichern Transaktionsorientiert arbeiten ODBC-Schnittstelle zum Zugriff auf Datenbanken einsetzen Datenbank_SQL1.3.doc Seite 3/37

4 1 SQL-Befehlsübersicht In der Praxis unterscheidet man sowohl bei den hierarchischen (z.b IMS von IBM), den Netzwerk- (z.b. IDMS von Cullinet) als auch bei den relationalen Datenbanksystemen zwei Gruppen von Datenbankanweisungen. DDL Data Definition Language (Definitionssprache) Dazu zählen alle Datenbankanweisungen, mit denen die logische Struktur der Datenbank bzw. der Tabellen der Datenbank beschrieben bzw. verändert wird. Hierzu gehören folgende Befehle: CREATE TABLE: CREATE VIEW: GRANT neue Basistabellen erstellen Definieren einer logischen Tabelle Benutzerberechtigungen vergeben DML Data Manipulation Language (Datenmanipulationssprache) Dazu zählen alle Anweisungen an das Datenbanksystem, die dazu dienen, die Daten zu verarbeiten. Hierzu gehören folgende Befehle: SELECT: DELETE: UPDATE: INSERT: Daten aus der Datenbank lesen Zeilen einer Tabelle löschen Zeilen einer Tabelle ändern Zeilen einer Tabelle hinzufügen Bei den hierarchischen und den Netzwerk-Datenbanken ist der Sprachumfang der DDL und DML gross. Selbst bei der Erstellung einfacher Anwendungen ist ein relativ grosser Aufwand erforderlich, bis die dazugehörige Datenbank definiert ist und die DML-Programme geschrieben und gestestet sind. die Sprache SQL dagegen besteht aus nur wenigen einfachen Befehlen, die sowohl den DDL- als auch den DML-Teil abdecken. Datenbank_SQL1.3.doc Seite 4/37

5 2 Mit SQL-Anweisungen Daten definieren, eingeben und verwalten Für das Einrichten und Verwalten von Datenbanken und Tabellen werden eine Reihe von Anweisungen benötigt, mit denen Sie: Eine Datenbank mit ihren Tabellen anlegen, Daten in die Tabellen eingeben und abrufen sowie Tabellen ändern und löschen Die meisten SQL-Anweisungen können in allen SQL-basierten Datenbanksystemen eingesetzt werden. Trotz Standardisierung besitzt aber jedes Datenbanksystem eigene Ausprägungen von SQL-Befehlen. Das gleiche gilt auch für die Datentypen, mit denen Spalten definiert werden. Einige Unterschiede werden kurz erläutert. 2.1 Datenbank anlegen, öffnen, schliessen und löschen Datenbank anlegen Der Befehl CREATE DATABASE Datenbankname erstellt eine Datenbank mit ihren zugehörigen Systemtabellen. Mit dieser SQL-Anweisung wird der Rahmen für die spätere Einrichtung der Tabellen geschaffen. Wenn Sie sich nach der Anweisung CREATE DATABASE das Verzeichnis anschauen, in dem die Datenbank aufgebaut worden ist, so finden Sie dort bereits eine Vielzahl von Dateien vor. Es handelt sich um die Systemtabellen, auch Systemkatalog oder Data Dictionary genannt. In ihm werden alle Informationen über die logische Struktur der Datenbank gesammelt. Er enthält unter anderem Informationen darüber, welche Tabellen eine Datenbank enthält, wie viel Datensätze vorhanden sind, wie die Spalten einer Tabelle heissen und mit welchen Datentypen die Spalten definiert sind. Bei jeder SQL-Anweisung informiert sich das System zunächst in diesen Systemtabellen, bevor es die Anweisung durchführt. Sie können die in den Systemtabellen gespeicherten Informationen jederzeit abrufen und sich damit eine Übersicht über die Inhalte der Datenbank verschaffen. In ORACLE wird bei der Installation des Systems für das Data Dictionary eine eigene Datenbank mit dem Namen oracle angelegt Datenbank löschen Mit dem Befehl DROP DATABASE Datenbankname wird dort eine Datenbank gelöscht, wo ein System mehrere Datenbanken verwaltet. Vor dem löschen muss die entsprechende Datenbank mit dem Befehl CLOSE DATABASE geschlossen werden. Das Löschen der Datenbank bedeutet, dass sie mit allen dazugehörigen Objekten entfernt wird. Bei der Access JET-Datenbank, wo die ganze Datenbank eine einzige Datei ist, muss die entsprechende Datei gelöscht werden. Datenbank_SQL1.3.doc Seite 5/37

6 2.2 Tabellen erstellen und löschen Tabellen erstellen Mit der SQL-Anweisung "CREATE TABLE Tabellenname" wird eine neue Tabelle angelegt. Hinter dem Tabellennamen sind in Klammern die Spaltennamen, jeweils mit Datentyp und Längenangabe, zu definieren. Die einzelnen Spaltenbeschreibungen werden mit Kommata getrennt. Die Liste der Spaltennamen muss von runden Klammern umschlossen sein. CREATE TABLE Persdat ( Pd_ID INTEGER NOT NULL, Pd_Name CHAR(25), Pd_VName CHAR(25), Pd_Geschlecht CHAR(1), Abt_ID SMALLINT, Pd_Eintritt DATE, Pd_Gehalt DOUBLE ) DOUBLE ist Access-Spezifische; SQL wäre DECIMALE(8,2) Die Spaltenbedingung NOT NULL weist in diesem Beispiel auf eine Schlüsselspalte hin, legt aber nur fest, dass unbedingt Werte eingegeben werden müssen. Eine weitere Spaltenbedingung ist der UNIQUE-Index, welcher überwacht, dass, im Zusammenhang mit Schlüsselspalten, die in der bezeichneten Datenspalte eingegebenen Werte eindeutig sind. Dies ist die einfache Form eines CREATE TABLE-Befehls. Die erweiterte Form dieser Anweisung bezieht sich zum grössten Teil auf die Definition der Integritätsregeln (wie UNIQUE-Index), auf welche wir später noch eingehen. Die allgemeine Syntax der erweiterten Form dieser Anweisung ist von System zu System leicht unterschiedlich. In der Regel bietet eine relationale Datenbank ein Tool an, das die Erstellung der Tabellen mit SQL-Befehlen hinfällig macht. Erstellen Sie eine weitere Tabelle: CREATE TABLE MGehalt (Pd_ID INTEGER NOT NULL, Mg_Jahr SMALLINT, Mg_Monat SMALLINT, Mg_Gehalt DOUBLE) Tabellen löschen Mit der Anweisung "DROP TABLE Tabellennamen" wird eine Tabelle mit den darin gespeicherten Daten aus der Datenbank und in den Systemtabellen gelöscht. Tabelle erstellen: CREATE TABLE Ueb (uebnr INTEGER, uebbez CHAR(20)) Tabelle löschen: DROP TABLE Ueb Bei verschiedenen Systemen kann man die Tabellen auch auf Betriebssystemebene löschen. Bei Tabellen einer Datenbank riskieren Sie aber damit, dass die Integrität der Datenbank zerstört wird. Datenbank_SQL1.3.doc Seite 6/37

7 2.3 Daten in Tabellen eingeben (neuer Datensatz) Mit der INSERT-Anweisung können Daten in einer Tabelle erfasst werden. Mit der Anweisung INSERT INTO tabellennamen VALUES() geben Sie Werte zeilenweise ein Eine Tabellenzeile vollständig eingeben INSERT INTO Persdat VALUES ( 99, 'Willemann', 'Hans', 'M', 3, ' ',4500) Datumswerte werden von Datenbank zu Datenbank sehr unterschiedlich behandelt. In der Klammer hinter VALUES werden die Werte in der Reihenfolge der Tabellenstruktur aufgeführt. Dabei ist zu beachten, dass die angegebenen Werte mit den vereinbarten Datentypen in den Tabellen übereinstimmen. Zeichenketten, Datumswerte und Zeitwerte werden in Hochkommata (') eingeschlossen. UEBUNG: Geben Sie folgende Datensätze in die Tabelle Persdat ein: INSERT INTO Persdat VALUES ( 55, 'Hurter', 'Karl', 'M', 1, ' ',6800) INSERT INTO Persdat VALUES ( 56, 'Frauental', 'Heidi', 'W', 2, ' ',3200) INSERT INTO Persdat VALUES ( 57, 'Meyer', 'Karl', 'M', 3, ' ',5200) INSERT INTO Persdat VALUES ( 58, 'Bolliger', 'Verena', 'W', 3, ' ',2500) Legen Sie eine Tabelle Ueb an. Die Tabelle verfügt über die Spalten : Ub_ID INTEGER Not Null Ub_Bez CHAR(20) Tragen Sie dann folgende Werte in die Tabelle ein: 3 Katolog 10 Handbuch 15 Sachbuch Werte in bestimmte Spalten einer Datenzeile eingeben Wenn Sie Werte nur in bestimmte Spalten einer Tabellenzeile eingeben wollen, müssen Sie hinter dem Tabellennamen zusätzlich die Namen der Spalten benennen, in denen die Daten gespeichert werden sollen. INSERT INTO Persdat(Pd_Id, Pd_Name) VALUES(3,'Müller') So werden in Persdat nur Werte in den Spalten Pd_ID und Pd_Name gespeichert. Datenbank_SQL1.3.doc Seite 7/37

8 2.4 Daten aktualisieren Mit der Anweisung "UPDATE Tabellennamen SET" werden Daten bedingungsabhängig geändert UPDATE Ueb SET Ub_ID = 25, Ub_Bez = 'Lernfibel' WHERE Ub_ID = 3 Im Anschluss an das Schlüsselwort UPDATE wird die zu ändernde Tabelle benannt. Hinter SET werden den zu ändernden Spalten die neuen Werte zugewiesen. Die Bedingung hinter WHERE definiert die Zeile, in der die Änderung durchgeführt werden soll. In diesem Beispiel wird in der Tabelle Ueb, in der Spalte Ub_ID, der Datensatz mit der Ub_ID = 3, auf 25 verändert und der Inhalt von Feld Ub_bez mit "Lernfibel" überschrieben. Achtung: Wird bei einem UPDATE-Befehl die WHERE-Bedingung weggelassen, so werden alle Zeilen der Tabelle geändert. Uebung: Werte in einer Spalte können auch erhöht werden. In der Tabelle ueb sollen alle Werte in der Spalte Ub_ID um 10 erhöht werden. Ergänzen sie folgenden Eintrag in der Tabelle Persdat: Alle Eintragungen gelten nur für Pd_ID = 3 Pd_Vname = Claudia Pd_Geschlecht = W Abt_ID = 2 Pd_Eintritt = Pd_Gehalt = 4500 Erfassen Sie folgende Daten in der Tabelle MGehalt 2.5 Daten löschen Daten werden mit der Anweisung DELETE FROM Tabellennamen aus einer Tabelle entfernt. Mit dem Zusatz WHERE erfolgt wiederum die Zeilenauswahl. DELETE FROM Ueb WHERE Ub_ID = 35 Achtung: Ohne WHERE-Klausel werden alle Daten von Ueb gelöscht. Datenbank_SQL1.3.doc Seite 8/37

9 2.6 Ein Tabellenfeld nachträglich einfügen, ändern oder löschen. Mit der Anweisung ALTER TABLE Tabellenname werden in vorhandenen Tabellenstrukturen neue Spalten eingefügt, vorhandene Spalten geändert oder gelöscht Neue Spalte mit ADD einfügen Hinter dem Schlüsselwort ALTER TABLE wird die Tabelle genannt, deren Struktur geändert werden soll. Mit dem Zusatz ADD wird das System angewiesen, eine oder mehrere Spalten einzufügen. Die einzufügenden Spalten werden mit Namen und Datentypen definiert. Die Tabelle ueb soll um die Tabellenspalte Ub_Menge und Ub_Te ergänzt werden: Access: Neue Datenfelder müssen einzeln definiert werden ALTER TABLE Ueb ADD Ub_Menge DOUBLE ALTER TABLE Ueb ADD Ub_Te Char(20) DB2/2 In diesen Datenbanken wenden keine Klammern bei Spaltenfunktionen verwendet. ALTER TABLE Ueb ADD Ub_Menge Decimal(8,2), ADD Ub_Te Char(20) Oracle/Informix ALTER TABLE Ueb ADD (Ub_Menge Decimal(8,2), Ub_Te Char(20)) Vorhandene Spalten mit MODIFY ändern Mit dem Zusatz MODIFY wird das System angewiesen, einer vorhandenen Spalte einen anderen Datentyp zuzuweisen. Die Spalte wird mit Ihrem Namen benannt und der neue Datentyp wird danach definiert. Beispiel: In der Spalte Ub_Menge soll der Datentyp von NUMERIC in SMALLINT geändert werden, Access kennt diesen Befehl nicht: ALTER TABLE Ueb MODIFY (Ub_Menge = SMALLINT) Diese Anweisung läuft nur in Oracle und Informix Vorhandene Spalten mit DROP löschen Mit dem Zusatz DROP wird das System angewiesen, eine vorhandene Spalte zu löschen. Die Spalte wird mit ihrem Namen angesprochen. Oracle kennt den Zusatz DROP nicht. ALTER TABLE Ueb DROP Ub_Menge Tabellen- und Spaltennamen ändern In Informix und Oracle können Sie mit dem Datenbankbefehl RENAME Tabellen nachträglich umbenennen. Access kennt diesen Befehl nicht. RENAME TABLE Ueb TO Ueb1 In Informix können Sie mit RENAME nachträglich auch Spaltennamen ändern: RENAME COLUMN Ueb1.Ub_Bez TO Ub_Bezeichnung Datenbank_SQL1.3.doc Seite 9/37

10 3 Der SELECT-Befehl im SQL Wenn die erforderlichen Daten in einer Datenbank gespeichert sind, können Sie auf verhältnismässig einfache Weise die gewünschten Informationen aus der Datenbank gewinnen. Das Suchen und Anzeigen gespeicherter Werte gehört zu den wichtigsten Fähigkeiten eines Datenbanksystems. In einer Abfrage muss stets angegeben werden, aus welchen Spalten und aus welcher Tabelle Daten abgerufen werden sollen. 3.1 Alle Zeilen einer Tabelle anzeigen SELECT leitet die Anweisung ein, mit der Daten in der Datenbank gesucht und angezeigt werden. Hinter SELECT werden die Namen der auszuwählenden Spalten angegeben. Der Stern * hinter dem Schlüsselwort veranlasst die Anzeige aller Tabellenspalten in der Reihenfolge, in der die Spalten mit CREATE TABLE angelegt worden sind. Hinter dem Zusatz FROM wird der Name der Tabellen genannt, aus der die Daten gewonnen werden sollen. SELECT * FROM Adressen 3.2 Spalten auswählen Meistens werden nur die Daten bestimmter Spalten benötigt. Mit der Auflistung der gewünschten Spaltennamen hinter dem Schlüsselwort SELECT wird die Anzeige auf die namentlich genannten Spalten beschränkt. Die Ausgabe erfolgt dabei in der Reihenfolge, in der die Spaltennamen hinter SELECT angeordnet wurden. SELECT Adr_Vorname, Adr_Nachname FROM Adressen Mit dem Zusatz AS kann man die einzelnen Spalten benennen. Dies ist dann notwendig, wenn z.b. in einem Sub-Select eine Spalte zweimal verwendet wird. SELECT Adr_Vorname AS Vorname, Adr_Nachname AS Name FROM Adressen 3.3 Inhaltlich gleiche Zeilen von der Ausgabe ausschliessen Manchmal möchte man lediglich wissen, welche Werte überhaupt in einer Spalte stehen, nicht aber, wie oft sie vorhanden sind. Dazu ergänzt man die SELECT-Anweisung um den Zusatz DISTINCT. Mit DISTINCT wird die Mehrfachausgabe inhaltlich gleicher Ausgaben unterdrückt. DISTINCT kann nur eingesetzt werden, wenn sich die Abfrage auf nur eine Spalte bezieht. SELECT DISTINCT Adr_Anrede From Adressen 3.4 Zeilen mit Bedingungen auswählen Bei den meisten Abfragen sollen aus der Gesamtzahl der in einer Tabelle vorhandenen Zeilen nur ganz bestimmte Zeilen gesucht und angezeigt werden. Dazu ist es notwendig, eine Suchbedingung zu vereinbaren. Die Bedingung wird eingeleitet durch die Klausel WHERE. Darauf folgt der Bedingungsausdruck, der sich wie folgt aufbaut: WHERE Spaltennamen Vergleichsoperator Vergleichswert SELECT Adr_Vorname, Adr_Nachname, ATyp_ID FROM Adressen WHERE ATyp_ID = 2 Datenbank_SQL1.3.doc Seite 10/37

11 3.4.1 Operatoren Operatoren sind Symbole für eine auszuführende Operation. Mit SQL können verschiedene Arten von Operatoren eingesetzt werden. In diesem Abschnitt verwenden wir nur Basisoperatoren, die auch Vergleichsoperatoren oder relationale Operatoren genannt werden: Operator Bedeutung = gleich < kleiner als > grösser als <> ungleich <= kleiner gleich >= grösser gleich Besteht der Vergleichswert aus einer Zeichenkette oder einem Datum, so muss er in Hochkommata eingeschlossen werden. Bei Zeichenketten genügt bereits ein Buchstabe, um die Zeilenauswahl zu definieren: Bitte beide Varianten probieren SELECT Adr_Nachname FROM Adressen WHERE Adr_Nachname < 'M' SELECT Adr_Nachname FROM Adressen WHERE Adr_Nachname > 'M' In dieser Abfrage wird der erste Buchstaben des Namens mit den Textkonstanten verglichen. Der Vergleichswert gibt somit an, wie viele Stellen des Namens zum Vergleich herangezogen werden. Ein stellenweises Abfragen ist bei numerischen Spalten und Spalten mit Datumswerten nicht möglich. Hier wird jeweils der gesamte Wert eines Spaltenfeldes in den Vergleich einbezogen. Zum Beispiel werden bei "WHERE gehalt > 5000" alle Zeilen mit einem Wert über 5000 angezeigt Spalten mit NULL-Werten Abfragen Tabellenspalten, in denen keine Werte gespeichert sind, haben den Wert NULL. Der Wert NULL entspricht weder der Zahl 0 noch einer Zeichenfolge mit Leerzeichen. Der Wert NULL kann abgefragt werden. Bitte beide Varianten probieren SELECT Adr_Nachname, Adr_Anrede FROM Adressen WHERE Adr_Anrede IS NULL SELECT Adr_Nachname, Adr_Anrede FROM Adressen WHERE Adr_Anrede IS NOT NULL Zeilen mit verbundenen Bedingungen suchen und anzeigen Eine Bedingung kann sich aus mehreren Teilbedingungen zusammensetzen. Bedingungen können durch die Operatoren UND und ODER zu einem komplexen Bedingungsausdruck verknüpft werden. UND wird in SQL durch AND, ODER durch OR ausgedrückt. SELECT Adr_Vorname, Adr_Nachname, Adr_Anrede, ATyp_ID FROM Adressen WHERE Adr_Anrede = 'Frau' AND ATyp_ID = 2 Versuchen Sie dieselbe Abfrage mir OR und Sie werden sehr unterschiedliche Auswertungen erhalten. Datenbank_SQL1.3.doc Seite 11/37

12 3.4.4 Logische Operatoren Logischer Operator AND OR Beispiel Anrede = 'Frau' AND Adresstyp = 2 Anrede = 'Frau' OR Adresstyp = 2 Auswirkung Es werden die Datenzeilen angezeigt, in denen beide Einzelbedingungen erfüllt sind: Angezeigt werden alle Frauen mit Adresstyp 2 Es werden die Datenzeilen ausgegeben, die entweder die erste oder die zweite Bedingung erfüllen: Angezeigt werden alle Frauen sowie alle die dem Adresstyp 2 entsprechen (also auch Männer). NOT NOT Anrede = 'Frau' Es werden die Datenzeilen ausgegeben, die die Bedingung nicht erfüllen. Hier werden also nur die Männer ausgegeben. Die Verknüpfung erfolgt nach folgenden Regeln: AND-Verbindung Teilbedingung 1 Teilbedingung 2 Gesamtbedingung erfüllt erfüllt erfüllt nicht erfüllt nicht erfüllt nicht erfüllt erfüllt nicht erfüllt nicht erfüllt nicht erfüllt erfüllt nicht erfüllt OR-Verbindung Teilbedingung 1 Teilbedingung 2 Gesamtbedingung erfüllt erfüllt erfüllt nicht erfüllt nicht erfüllt nicht erfüllt erfüllt nicht erfüllt erfüllt nicht erfüllt erfüllt erfüllt Bedeutung von Klammern Bei zusammengesetzten Bedingungsausdrücken kann die Reihenfolge der Auswertung durch Klammern beeinflusst werden. Klammerinhalte werden immer zuerst bearbeitet. Beispiel 1. Bedingung: Die Person muss eine Frau sein und 2. Bedingung: Die Person muss in Bern wohnen oder 3. Bedingung: Die Person muss in Zürich wohnen Das Bedingungsgefüge ist so formuliert, dass die erste Bedingung unbedingt erfüllt sein muss. Von der zweiten und dritten Bedingung braucht dagegen nur eine Bedingung erfüllt zu sein. Die letzteren Bedingungen sind also durch OR zu verknüpfen und in ihrer Gesamtheit durch AND mit der Geschlechtsbedingung zu verbinden. Die SQL-Anweisung lautet: SELECT Adr_Anrede, Adr_Vorname, Adr_Nachname,Adr_Ort FROM Adressen WHERE Adr_Anrede = 'Frau' AND (Adr_Ort = 'Zürich' Or Adr_Ort = 'Bern') Geben Sie zum Vergleich die Anweisung wie folgt ein. SELECT Adr_Anrede, Adr_Vorname, Adr_Nachname,Adr_Ort FROM Adressen WHERE Adr_Anrede = 'Frau' AND Adr_Ort = 'Zürich' Or Adr_Ort = 'Bern' SELECT Adr_Anrede, Adr_Vorname, Adr_Nachname,Adr_Ort FROM Adressen WHERE Adr_Anrede = 'Frau' OR Adr_Ort = 'Zürich' AND Adr_Ort = 'Bern' Aus diesen Beispielen heraus sehen Sie, dass AND höhere Priorität hat bzw. bindet, gleich wie eine Multiplikation gegenüber einer Addition. Datenbank_SQL1.3.doc Seite 12/37

13 3.5 Aggregatfunktionen Aggregatfunktionen (aggregate, deutsch: gesamt), auch Spaltenfunktionen genannt, ermitteln für eine einzelne Tabellenspalte aus einer Gesamtmenge die Summe, den Minimal- oder Maximalwert, den Mittelwert oder die Anzahl. Nachstehende Tabelle gibt eine Übersicht über Aggregatfunktionen und deren Ergebnisse: Funktion: MIN(spaltenname) MAX(spaltenname) COUNT(*) COUNT(DISTINCT spaltenname) SUM(spaltenname) AVG(spaltenname) Ergebnis Minimalwert Maximalwert Anzahl aller vorhandenen Zeilen Anzahl der Zeilen mit unterschiedlichen Werten Kann mit Access nicht verwendet werden. Summe Mittelwert Der durchschnittliche Gehalt wird also wie folgt berechnet SELECT AVG(Pd_Gehalt) FROM Persdat In einer SELECT-Anweisung mit Aggregatfunktionen (und ohne Gruppenbildung) können keine weiteren Spaltenwerte bzw. Spalten ohne Aggregatfunktionen angezeigt werden. Folgende Anweisung macht also keinen Sinn SELECT Pd_Name, MAX(Pd_Gehalt) FROM Persdat Beispiele mit Aggregatfunktionen: SELECT MAX(Pd_Name) From Persdat Bei Zeichenketteninhalten wird der höchste Buchstaben nach dem ASCII-Code ermittelt. Das bedeutet, dass das "z" höher ist als das "a" und Sonderzeichen grösser sind als Kleinbuchstaben. SELECT MIN(Pd_Eintritt) FROM Persdat Diese Auswertung wird das Datum der ersten Anstellung hervorbringen. Möchte man den Namen zu diesem Datum anzeigen, müsste der SELECT wie folgt lauten. SELECT Pd_name, Pd_Vname, Pd_Eintritt FROM persdat WHERE Pd_Eintritt = (SELECT MIN(Pd_Eintritt) FROM Persdat) Hier arbeiten wir mit einem SUB-SELECT. Auf die Bedeutung von SUB-SELECT's gehen wir später ein. Da eine Aggregatfunktion immer nur einen gültigen Wert liefert, wird dieser SELECT auch nur einen Namen hergeben, ausser es wurden am gleichen Datum mehrere Personen angestellt. SELECT COUNT(*) As Anzahl_Personen FROM Persdat Mit COUNT() wird festgestellt, wie viele Einträge vorliegen. Wenn Sie die Funktion COUNT() mit dem Stern als Klammerinhalt benutzen, werden alle in der Tabelle enthaltenen Zeilen gezählt. Wenn Sie die Anzahl von Zeilen mit unterschiedlichen Spaltenwerten suchen, müssen Sie in der Klammer entsprechend verfahren. SELECT DISTINCT COUNT(Pd_Eintritt) FROM Persdat In diesem Beispiel werden nur Einträge mit unterschiedlichen Datumswerten gezählt. Weitere Einschränkungen werden über die WHERE-Klausel geregelt. Datenbank_SQL1.3.doc Seite 13/37

14 In einer einzigen Abfrage können auch mehrere Aggregatfuntionen eingesetzt werden. SELECT COUNT(*), AVG(Pd_Gehalt) FROM Persdat WHERE Pd_Geschlecht = "W" In diesem SELECT wird ermittelt, wie viele Mitarbeiterinnen es gibt und wie hoch ihr Durchschnittsgehalt ist. Beide Aggregatfunktionen beziehen sich auf die gesamte Datenmenge, welche in diesem Fall über die WHERE-Klausel auf die Mitarbeiterinnen eingeschränkt wurde. 3.6 Rechenoperationen durchführen Im SELECT-Befehl kann man Ausdrücke für arithmetische Operationen vereinbaren. Die Ausdrücke werden mit den Rechenoperationen +,-,*,/ und mit den Aggregatfunktionen SUM() und AVG() gebildet. Tabellenunabhängige Rechenoperationen Man kann mit SQL-Anweisungen Rechenoperationen wie mit einem Taschenrechner durchführen. Man muss dabei jedoch immer eine in der Datenbank vorhandene Tabelle ansprechen und wenn man die Ergebnisausgabe auf eine Zeile beschränken will, muss man auch eine WHERE- Bedingung vereinbaren. SELECT 4.9 * 1.9 AS Resultat FROM Persdat WHERE Pd_ID = 3 Ausgabe: 9.31 Mit Werten aus numerischen Spalten rechnen Mit den Werten aus numerischen Tabellenspalten können auch Additionen, Subtraktionen, Divisionen und Multiplikationen durchgeführt werden. SELECT Pd_name, Pd_Gehalt * AS Neues_Gehalt FROM Persdat Die Anzeige diese Auswertung würde die Grundgehälter um 4.5% erhöhen. Es können auch die Ergebnisse von Aggregatfunktionen in Rechenoperationen einbezogen werden. Folgende Anweisungen ermitteln beide mit dem selben Ergebnis das durchschnittliche Monatsgehalt. SELECT AVG(Pd_Gehalt) FROM Persdat SELECT SUM(Pd_Gehalt) / COUNT(*) FROM Persdat Datenbank_SQL1.3.doc Seite 14/37

15 3.7 Mit Funktionen arbeiten In jedem SELECT können Funktionen sowohl in der SELECT-Klausel wie auch in der WHERE- Klausel eingesetzt werden. Eine Funktion liefert immer einen Wert, der entweder im SELECT-Teil angezeigt wird oder im WHERE-Teil als Bedingung verwendet wird Numerische Funktionen Numerische Funktionen sind diverse mathematische Funktionen, die der Manipulation numerischer Werte dienen. Z.B ABS(zahl) Absoluter Wert SQR(zahl) Quadratwurzel RND() Zufallszahl Weitere Funktionen, die sehr Produktspezifisch sind, gibt es für Cosinus, Sinus,Tangens usw Datumsoperatoren und Datumsfunktionen Die Rechenoperatoren + und können mit Datumsspalten zum Addieren und Subtrahieren eingesetzt werden. Es gibt auch Funktionen wie MONTH_BETWEEN(datum,datum) (Oracle) wo man direkt über die Funktion Datumsberechnungen anstellen kann. Datumsfunktionen gehören nicht zum SQL-Standard. In jedem Datenbanksystem finden Sie deshalb andere Funktionen. SELECT Format(# # -1,'dd.mm.yyyy') AS Datum FROM Persdat WHERE Persdat.Pd_ID=3 Dieses erste Beispiel gibt uns den letzten Tag des Monats Februar bekannt und ist eine Datumsberechnung ohne Einbezug von einem Attribut. SELECT INT((NOW() - pd_eintritt)) AS Tage FROM Persdat Dieses zweite Beispiel sagt uns, wie viele Tage alle Mitarbeiter bei der Firma arbeiten. Die Funktion INT() liefert uns Anzahl ganze Tage, weil sie Kommastellen unterdrückt, und die Funktion NOW() liefert uns das aktuelle Datum Zeichenketten-, Umwandlungs- und anderer Funktionen Mit Zeichenketten werden Strings (Textfelder) bearbeitet. Beispiele sind LTRIM() / RTRIM() Löscht linksstehende bzw. rechtsstehende Leerzeichen. TRIM() Wie L- oder RTRIM, löscht leere Zeichen links und rechts. SUBSTR() / MID() Definiert Teile einer Zeichenkette. (Oracle / Access) LENGTH() Gibt die Anzahl Zeichen eines Strings an. INSTR() Nennt die Position eines Zeichens im String Umwandlungsfunktionen Eine Umwandlungsfunktion wandelt eine Zeichenkette in eine Zahl oder ein Datum um und umgekehrt. VAL(String) Wandelt einen String in eine Zahl um. STR(Zahl) Wandelt eine Zahl in einen String um. 3.8 Prädikate Ein Prädikat bezeichnet eine logische Bedingung. Folgende Operatoren sind Prädikate: Alle Vergleichsoperatoren (siehe weiter oben) LIKE-Operator BETWEEN-Operator IN-Operator NULL-Operator (Siehe Unterabfragen) ALL- and ANY-Operator Dito EXIST-Funktion Dito Datenbank_SQL1.3.doc Seite 15/37

16 3.8.1 Operator LIKE Beim Vergleich eines Textfeldes darf nicht der Operator "=" verwendet werden. Wollte man alle Namen die mit einem M anfangen Mittels "WHERE Pd_Name = 'M'" abfragen, so würde kein Namen angezeigt, weil eine Übereinstimmung gesucht würde. Hier muss der Operator LIKE verwendet werden. Ausserdem ist dem System mitzuteilen, dass die übrigen Buchstaben des Textfeldes keine Bedeutung für den Suchvorgang haben. Es müssen Platzhalter bzw. Jokerzeichen für unbekannte oder unerhebliche Zeichen in das Textmuster einbezogen werden. Man unterscheidet folgende Jokerzeichen: % _ steht für eine beliebige Anzahl zeichnen, (Unterstrich) steht für ein einziges Zeichen. SELECT Pd_Name FROM Persdat WHERE Pd_Name LIKE 'M%' Access: LIKE 'M*' Dieser Select sucht alle Mitarbeiter die mit M beginnen. Der Platzhalter % steht für beliebig viele Zeichen hinter dem M. SELECT Pd_Name FROM Persdat WHERE Pd_Name LIKE 'Me_er' Access: LIKE 'Me*er*' In diesem Fall würden alle Meier und Meyer erscheinen, weil der dritte Buchstaben ein beliebiges Zeichen sein kann. Dieser SELECT funktioniert in DB2 nicht, weil dort die gesamte CHAR(25)- Spalte mit allen Leerzeichen berücksichtigt wird Operator BETWEEN Der Operator BETWEEN wird zur Formulierung von Bereichsabfragen eingesetzt. Er kann bei Textspalten, Datumsspalten und bei numerischen Spalten verwendet werden. BETWEEN wählt die Daten aus, die sich zwischen einem unteren und oberen Grenzwert befinden. SELECT Adr_NachnameFROM Adressen WHERE Adr_Nachname BETWEEN 'S' AND 'Z' Dieser SELECT gibt alle Namen ab dem Buchstaben S aus. SELECT Pd_Name, Pd_Eintritt FROM Persdat WHERE YEAR(Pd_Eintritt) BETWEEN 1990 AND 2000 In diesem SELECT werden alle Mitarbeiter, die zwischen dem Jahr 1990 und 2000 angestellt wurden, ausgegeben. Man könnte natürlich auch ohne YEAR()-Funktion arbeiten und direkt ein Datum eingeben Operator IN Der IN-Operator ist vergleichbar mit der Elementabfrage in der Mengenlehre. Er stellt fest, ob der Inhalt der befragten Spalte in einer der angegebenen Mengen enthalten ist. Der Operator IN kann auf Zeichenspalten, Datumsspalten und numerischen Spalten angewendet werden. Hinter dem Schlüsselwort IN werden in runden Klammern die Suchbegriffe einfach hintereinander aufgelistet. SELECT Pd_Name, Pd_Eintritt FROM Persdat WHERE YEAR(Pd_Eintritt) IN (1990, 1995) Dieser SELECT wird alle Mitarbeiter auswählen, die in den beiden angegebenen Jahren angestellt wurden. SELECT Pd_Name, Abt_ID FROM Persdat WHERE Abt_ID IN (2,3) Hier werden alle Mitarbeiter ausgegeben die in den entsprechenden Abteilungen arbeiten. Datenbank_SQL1.3.doc Seite 16/37

17 4 Daten aus mehreren Tabellen abfragen (Joins) 4.1 Kartesisches Produkt aus zwei Tabellen bilden Bei normalisierten Datenbanken müssen häufig zwei und mehr Tabellen abgefragt werden, um die gewünschte Information zu erhalten. Dabei tritt das Problem auf, die an der Abfrage beteiligten Tabellen logisch in der richtigen Weise miteinander zu verknüpfen. Werden Tabellen ohne eine Verknüpfungsvorschrift in einer Abfrage verbunden, so wird bei der Ausführung der Abfrage das kartesische Produkt gebildet. Dabei wird jede nur mögliche Kombination der verschiedenen Zeilen in den Tabellen dargestellt. Das führt dazu, dass Tabellen mit wenigen Records bereits tausende von Datensätze liefern. 4.2 Logische Verbingungen mit Equi-Join herstellen Eine Verknüpfung von Tabellen kann nur dann gelingen, wenn bereits beim Entwurf darauf geachtet wurde, dass sie sich über Schlüsselspalten miteinander verbinden lassen. Dies wird über die Vererbung eines Hauptschlüssels (Primary-Key) in eine andere Tabelle als Fremdschlüssel (Secondary-Key) erreicht. Man bezeichnet diese Verbindung auch als Equi-Join. Abkürzung Equi steht für "Gleichheit" und Join ist mit "Verknüpfung" zu übersetzen. Die Namen der Schlüsselspalten in beiden Tabellen müssen nicht gleich sein. Sind sie gleich, muss der Spaltennamen Qualifiziert werden. Dies geschieht, indem man den Tabellennamen dem Spaltennamen voranstellt. Das folgende Beispiel soll diese Verknüpfung demonstrieren: SELECT Adressen.Adr_ID, Adr_Vorname, Adr_Nachname,US_Stao_Buero, US_Tel_Int FROM Adressen,Userinfo WHERE Adressen.Adr_ID = Userinfo.Adr_ID Als Bindeglied wird die Spalte Adr_ID verwendet, die in beiden Tabellen vorkommt. Da das System so nicht feststellen kann, in welcher Tabelle der Wert gesucht werden soll, muss die Redundanz des Spaltennamens durch Hinzufügen des Tabellennamens aufgehoben werden; der Spaltennamen Adr_ID muss qualifiziert werden. Die Tabellennamen der zu verknüpfenden Tabellen werden alle hinter der FROM-Klausel aufgelistet. Die Equi-Join-Bedingung in der WHERE-Klausel besagt, dass jene Zeilen auszwählen sind, deren Adr_ID's gleich sind. 4.3 Andersnamen bzw. Alias-Bezeichner für Tabellen vereinbaren Bei der Eingabe einer Abfrage kann es lästig werden, wenn man immer wieder lange Tabellennamen wie "fmitglieder" eintasten muss. Deshalb arbeitet man in Joins gerne mit Tabellen- Kurznamen, Andersnamen oder Alternativnamen. Alternativnamen werden auch benötigt, wenn Tabellen auf sich selber zu beziehen sind. Alternativnamen können synonyme Namen oder Alias-Namen sein Synonyme Tabellen-Bezeichner Synonyme Bezeichnungen müssen mit folgender SQL-Anweisung derfiniert werden. CREATE SYNONYM p FOR Persdat Nach erfolgter Eingabe dieses SYNONYM-Befehls können Sie die Daten der Tabelle persdat alternativ wie folgt ansprechen: SELECT * FROM p Die Löschung von Synonymen erfolgt durch die Anweisung: DROP SYNONYM p In der Access wird die synonyme Tabellenbezeichnung nicht unterstützt. Datenbank_SQL1.3.doc Seite 17/37

18 4.3.2 Alias-Bezeichner definieren Es gibt auch die Möglichkeit, Kurzbezeichnungen nur für die Dauer einer Befehlsausführung zu definieren. Wir nennen diese Bezeichner Alias-Bezeichner. Alias-Namen werden in dem FROM-Zusatz des SELECT-Befehls vereinbart. Zwischen dem Tabellennamen und der nachgestellten Alias-Bezeichnung steht nur ein Leerzeichen. Sie können in allen Datenbanksystemen eingesetzt werden. Das weiter oben verwendete Beispiel für einen Equi-Join sieht mit Alias-Bezeichnungen wie folgt aus: SELECT A.Adr_ID, Adr_Vorname, Adr_Nachname,US_Stao_Buero, US_Tel_Int FROM Adressen A,Userinfo U WHERE A.Adr_ID = U.Adr_ID 4.4 OUTER- oder LEFT-, RIGHT-Join Mit einem Inner-Equi-Join sind nicht alle Informationswünsche zu erfüllen. In ihm werden aus einer Tabelle sämtliche Records ausgegeben, denen aus einer anderen Tabelle Records aufgrund übereinstimmender Schlüsselwerte zugeordnet werden. In einem Equi-Join werden also nur Daten die gleiche Werte haben ausgegeben. Nun gibt zusätzlich die Möglichkeit, dass von einer Tabelle sämtliche Records ausgegeben werden und von einer verbundenen Tabelle nur jene Records, wo eine Übereinstimmungen vorhanden ist. Eine solche Verbindung die uns das ermöglicht nennt man OUTER-Join. Beim OUTER-Join ist zwischen der Haupttabelle und der nachgeordneten Tabelle zu unterscheiden. Jene ist die Haupttabelle, aus der sämtliche Records in die Ausgabe übernommen werden sollen und von der nachgeordneten Tabelle werden nur jene Records übernommen die den gleichen Schlüsselwert haben. Beispiel: Im oben bereits erwähnten Beispiel sprechen wir zwei Tabellen an mit unterschiedlichen Daten. In der Tabelle Adressen sind sämtliche Adressen gespeichert die im System vorhanden sind. In der Tabelle Userinfo sind nur jene Adressen vorhanden (Schlüsselwert), die als Mitarbeiteradresse definiert wurde (Adresstyp = 1) In unserem Beispiel ist also Adressen die Haupttabelle und Userinfo ist die nachgeordnete Tabelle. In der OUTER-Join-Abfrage muss nun die nachgeordnete Tabelle als solche kenntlich gemacht werden. Left- und Right-Join sind Access-Speziefische Outer-Joins die definieren, ob die linke oder die rechte Tabelle die nachgeordnete Tabelle ist. Die verschiedenen Datenbanksysteme sind unterschiedlich in der Anwendung des OUTER-Join, deshalb werden hier die wichtigsten vorgestellt. INFORMIX In INFORMIX wird in der FROM-Klausel die Tabelle durch ein vorangestelltes OUTER als nachgeordnete Tabelle gekennzeichnet. Der Outer-Join-Operator darf in einer Anweisung nur einmal verwendet werden. SELECT A.Adr_ID, Adr_Vorname, Adr_Nachname,US_Stao_Buero, US_Tel_Int FROM Adressen A, OUTER Userinfo U WHERE A.Adr_ID = U.Adr_ID Datenbank_SQL1.3.doc Seite 18/37

19 ORACLE In ORACLE wird in der WHERE-Klausel die Outer-Join-Spalte der nachgeordneten Tabelle durch ein nachgestelltes (+) markiert. Gleich wie in INFORMIX darf der Equi-Join-Operator in einer Anweisung nur einmal verwendet werden. SELECT A.Adr_ID, Adr_Vorname, Adr_Nachname,US_Stao_Buero, US_Tel_Int FROM Adressen A, Userinfo U WHERE A.Adr_ID = U.Adr_ID(+) JET-Datenbank (Access) In der JET-Datenbank können Sie JOIN-Operationen mit den Operatoren INNER JOIN, LEFT JOIN und RIGHT JOIN erstellen. INNER JOIN entspricht dem normalen Equi-Join. LEFT JOIN bewirkt, dass aus der links von LEFT JOIN genannten Tabelle auch jene Datensätze angezeigt werden, denen kein Schlüsselwert aus der rechts genannten Tabelle entspricht. Bei RIGHTJOIN ist es die Tabelle auf der rechten Seite. Beispiele: SELECT Adressen.Adr_Firma, Adressen.Adr_Vorname, Adressen.Adr_Nachname, Userinfo.Us_Stao_Buero, Userinfo.Us_Tel_Int FROM Adressen INNER JOIN Userinfo ON Adressen.Adr_ID = Userinfo.Adr_ID; SELECT Adressen.Adr_Firma, Adressen.Adr_Vorname, Adressen.Adr_Nachname, Userifo.Us_Stao_Buero, Userinfo.Us_Tel_Int FROM Adressen LEFT JOIN Userinfo ON Adressen.Adr_ID = Userinfo.Adr_ID Dieses letzte Beispiel macht zwar kein Sinn, weil es in Userinfo weniger Datensätze hat wie in Adressen. Es soll nur den RIHGT JOIN darstellen. SELECT Adressen.Adr_Firma, Adressen.Adr_Vorname, Userinfo.Us_Tel_Int, Userinfo.Us_Stao_Buero, Adressen.Adr_Nachname FROM Adressen RIGHT JOIN Userinfo ON Adressen.Adr_ID = Userinfo.Adr_ID Verknüpfungen innerhalb der gleichen Tabelle (Self-Joins) Logische Verknüpfung von Zeilen innerhalb der gleichen Tabelle nennt man Self-Joins oder Auto- Joins. Vor der Verknüpfung spaltet man die Tabelle mit Alias-Bezeichnungen auf. Self-Joins laufen nicht in der Access Jet-Datenbank. Beispiel: Wir wollen von der Tabelle Persdat wissen, welche männlichen Mitarbeiter das gleiche Gehalt beziehen wie weibliche Mitarbeiter. SELECT ma.pd_gehalt, ma.pd_name, ma.pd_geschlecht, frau.pd_name, frau.pd_gehalt FROM Persdat ma, Persdat frau WHERE ma.pd_geschlecht = 'M' AND frau.pd_geschlecht = 'W' AND ma.pd_gehalt = frau.pd_gehalt Die Join-Analyse zeigt, dass alle Infromationen in der Tabelle Persdat stehen. Deshalb wird die Tabelle durch folgende Angabe in der FROM-Klausel in zwei Untertabellen aufgeteilt: FROM Persdat ma, persdat frau Die logische Zuordnung der Tabellenzeilen zu den Untertabellen erfolgt mit Zuordnungsbedingungen: ma.pd_geschlecht = 'M' frau.pd_geschlecht = 'W' Datenbank_SQL1.3.doc Seite 19/37

20 Übung 1 Erstellen Sie ein Liste der vorhandenen Kundenadressen, mit den dazugehörigen Kontaktpersonen. Attributte: Relationen: Tip: Adr_Firma, Adr_Adresse1, Adr_Plz, Adr_Ort, Kop_Name, Kop_Tel_intern Adressen, Kontaktperson Kunden sind mit dem Adresstyp 3 definiert Übung 2 Erstellen Sie eine Liste, welche pro Person alle zugeordneten Applikationen auflistet. Attributte: Relationen: Tips: Adr_Name, Adr_Vname, Ap_Bez Adressen, Applikationen, Appl_zu_User Namen und Applikation wurden über die Tabelle Appl_zu_User verknüpft Übung 3 Erstellen Sie ein Inventar, das besagt, welche Person in welchem Büro besitzt was für Material. Attributte: Relationen: Tips: Adr_Name, Adr_Vname, Ma_Bez, Us_Stao_Buero Adressen, Userinfo, Mat_Detail, Mat_Art Mat_Detail ist die Verbindung zu Mat_Art Datenbank_SQL1.3.doc Seite 20/37

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem

Mehr

Sructred Query Language

Sructred Query Language Sructred Query Language Michael Dienert 11. November 2010 Inhaltsverzeichnis 1 Ein kurzer Versionsüberblick 1 2 SQL-1 mit einigen Erweiterungen aus SQL-92 2 3 Eine Sprache zur Beschreibung anderer Sprachen

Mehr

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL-Befehlsliste. Vereinbarung über die Schreibweise Vereinbarung über die Schreibweise Schlüsselwort [optionale Elemente] Beschreibung Befehlsworte in SQL-Anweisungen werden in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche Teile

Mehr

Structured Query Language (SQL) 1

Structured Query Language (SQL) 1 Structured Query Language (SQL) 1 1. Grundlagen und Hilfsmittel Structured Query Language, kurz SQL, wurde in den 70er Jahren bei IBM entwickelt, als eine Arbeitsgruppe die erste relationale Datenbank

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. Datenbankabfragen (Query) mit SQL (Structured Query Language) 1 Aufbau des SELECT-Befehls Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. SQL-Syntax: SELECT spaltenliste FROM tabellenname

Mehr

Informatik Datenbanken SQL-Einführung

Informatik Datenbanken SQL-Einführung Informatik Datenbanken SQL-Einführung Gierhardt Inhaltsverzeichnis 1 Vorbemerkungen 1 2 Auswahl-Abfragen mit SELECT 2 2.1 Selektion...................................... 2 2.2 Projektion.....................................

Mehr

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen C3: Structured Query Language Lernziele: Nach der Bearbeitung dieser Lektion haben Sie folgende Kenntnisse erworben: Sie können elementaren

Mehr

SQL. Abfragesprache Datenmanipulation - DML

SQL. Abfragesprache Datenmanipulation - DML SQL Abfragesprache Datenmanipulation - DML SQL DML-Operationen DML = Data Manipulation Language Sprache zur Veränderung der Daten Operationen Daten selektieren Daten einfügen Daten ändern Daten löschen

Mehr

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language: SQL Structured Query Language: strukturierte Datenbankabfragesprache eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken In der SQL-Ansicht arbeiten In

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

Die SQL-Syntax für den Befehl CREATE TABLE sieht folgendermassen aus:

Die SQL-Syntax für den Befehl CREATE TABLE sieht folgendermassen aus: Einführung in MySQL SQL (Structured Query Language) ist eine Computersprache zum Speichern, Bearbeiten und Abfragen von Daten in relationalen Datenbanken. Eine relationale Datenbank kann man sich als eine

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Programmierung 2

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Programmierung 2 SQL SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R IV-1 Beispielrelationen Filiale ( Name Leiter Stadt Einlagen ) Konto ( KontoNr KundenNr FilialName Saldo ) Kredit

Mehr

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1 Fachhochschule Kaiserslautern Fachbereiche Elektrotechnik/Informationstechnik und Maschinenbau Labor Datenbanken Versuch 1 : Die Grundlagen von MySQL ------------------------------------------------------------------------------------------------------------

Mehr

Einführung in SQL Datenbanken bearbeiten

Einführung in SQL Datenbanken bearbeiten Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Entstanden als Wiki-Buch Bibliografische Information Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillierte Angaben

Mehr

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software SQL Tutorial SQL - Tutorial SS 06 Hubert Baumgartner INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt des Tutorials 1 2 3 4

Mehr

SQL-Anweisungen. SELECT (SQL Data Query Language)

SQL-Anweisungen. SELECT (SQL Data Query Language) SQL-Anweisungen SELECT (SQL Data Query Language) SELECT * SELECT * FROM "meine Tabelle"; SELECT feldname1, feldname2 SELECT feldname1, feldname2 FROM meinetabelle ORDER BY feldname2, feldname1 DESC; WHERE

Mehr

Einführung in SQL mit Oracle

Einführung in SQL mit Oracle Seminar Einführung in SQL mit Oracle von Prof. Dr. Rainer Schwenkert Hochschule München c Vervielfältigung nur mit Zustimmung des Autors Themenbereiche SQL-Historie Wichtige DDL- und DML-Anweisungen Der

Mehr

Microsoft Access 2010 SQL nutzen

Microsoft Access 2010 SQL nutzen Microsoft Access 2010 SQL nutzen Welchen Bestellwert haben die einzelnen Bestellposten? Wie ist der durchschnittliche Bestellwert? Wie viel Zeit liegt zwischen dem Bestelldatum und dem Versanddatum? S(tructured)Q(uery)L(anguage)

Mehr

27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services

27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services 531 27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services Im zweiten Teil dieses Buches haben wir die Eigenschaften der Transact-SQL- Sprache in Bezug auf die Bearbeitung von operativen Daten gezeigt.

Mehr

Unterabfragen (Subqueries)

Unterabfragen (Subqueries) Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und

Mehr

Kapitel 3: Datenbanksysteme

Kapitel 3: Datenbanksysteme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2015 Kapitel 3: Datenbanksysteme Vorlesung:

Mehr

Wirtschaftsinformatik. SQL Abfragen und QBE. Unterrichtsskript. Version: 2.0

Wirtschaftsinformatik. SQL Abfragen und QBE. Unterrichtsskript. Version: 2.0 Wirtschaftsinformatik SQL Abfragen und QBE Unterrichtsskript Version: 2.0 Autor: Jonas Lanz Datum: 02.06.2006 FHNW Hochschule für Wirtschaft 2 / 29 Inhaltsverzeichnis 1. Einführung 3 1.1 Relationale Operationen

Mehr

IV. Datenbankmanagement

IV. Datenbankmanagement Wirtschaftsinformatik 2 (PWIN) IV. Datenbankmanagement Kapitel 2: Datenmanipulationssprache SQL Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security 1 Agenda 1.

Mehr

Geordnete Form...36 Erfassung und Speicherung...37 Relationale Datenbanken...37 Einfache Tabellen...37 Objekte und Begriffe relationaler

Geordnete Form...36 Erfassung und Speicherung...37 Relationale Datenbanken...37 Einfache Tabellen...37 Objekte und Begriffe relationaler Inhaltsverzeichnis Einleitung...13 SQL: Die Abfragesprache für Datenbanken...17 Kennzeichnende Merkmale von SQL...17 SQL-Dialekte...18 Kurze Entwicklungsgeschichte...18 SQL/86 oder SQL/1...19 SQL/89 oder

Mehr

Microsoft Access 2010 SQL nutzen

Microsoft Access 2010 SQL nutzen Microsoft Access 2010 SQL nutzen S(tructured)Q(uery)L(anguage)... ist eine strukturierte Abfragesprache für relationale Datenbanken. besteht aus Befehlen, die beschreiben, welche Aktion in der Datenbank

Mehr

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL )

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL ) Technische Universität München WS 2003/04, Fakultät für Informatik Datenbanksysteme I Prof. R. Bayer, Ph.D. Lösungsblatt 6 Dipl.-Inform. Michael Bauer Dr. Gabi Höfling 1.12.2003 SQL-DDL und SQL-Anfragen

Mehr

Stichwortverzeichnis. Iron Werther. Business Intelligence

Stichwortverzeichnis. Iron Werther. Business Intelligence Stichwortverzeichnis Iron Werther Business Intelligence Komplexe SQL-Abfragen am Beispiel eines Online-Shops. Inkl. Testdatenbank mit über zwei Millionen Datensätzen ISBN (Buch): 978-3-446-43580-3 ISBN

Mehr

Datenbankanfragen und -operationen mittels SQL

Datenbankanfragen und -operationen mittels SQL Datenbankanfragen und -operationen mittels SQL Über den verschiedenen Tabellen einer Datenbank werden Operationen ausgeführt, die immer wieder eine Tabelle als Ergebnis zurückgeben. Mathematisch modelliert

Mehr

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,

Mehr

zwei verschiedene Darstellungsformen derselben Abfrage.

zwei verschiedene Darstellungsformen derselben Abfrage. SQL Sprache Die strukturierte Abfragesprache SQL (englisch: Structured Query Language) bildet einen Standard zur Formulierung von Abfragen. Das SQL und das Abfragefenster bilden zwei verschiedene Darstellungsformen

Mehr

Begleitskript. zum PHP/MySQL. Kurs

Begleitskript. zum PHP/MySQL. Kurs Begleitskript zum PHP/MySQL Kurs http://www.online-platform.net Dieser Text unterliegt der GNU General Public License. Er darf als ganzes oder in Auszügen kopiert werden, vorausgesetzt, dass sich dieser

Mehr

Fachbereich Informatik Praktikum 1

Fachbereich Informatik Praktikum 1 Hochschule Darmstadt DATA WAREHOUSE SS2015 Fachbereich Informatik Praktikum 1 Prof. Dr. S. Karczewski Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 14.April.2015 1. Kurzbeschreibung In diesem Praktikum geht

Mehr

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Informationen zur Datenbank 1. Definition 1.1 Datenbank-Basis Eine Datenbank-Basis ist eine Sammlung von Informationen über Objekte (z.b Musikstücke, Einwohner,

Mehr

SQL. SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken.

SQL. SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken. Vorlesungsteil SQL Grundlagen - 1 / 8 - SQL SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken. Auf einem Server (Rechner im Netz, der Dienste

Mehr

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I SQL SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R VII-1 Beispielrelationen Filiale ( Name Leiter Stadt Einlagen ) Konto ( KontoNr KundenNr FilialName Saldo ) Kredit

Mehr

7.5.3. CREATE TABLE-Syntax

7.5.3. CREATE TABLE-Syntax 7.5.3. CREATE TABLE-Syntax 7.5.3.1. Stille Spaltentyp-Änderungen CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tabelle [(create_definition,...)] [tabellen_optionen] [select_statement] create_definition: spalten_name

Mehr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr Raum: LF 230 Bearbeitung: 9.-11. Mai 2005 Datum Gruppe Vorbereitung Präsenz Aktuelle Informationen unter: http://www.is.informatik.uni-duisburg.de/courses/dbp_ss03/ Tabellen in IBM DB2 Tabellen Eine relationale

Mehr

IBM Informix SQL. Seminarunterlage. Version 11.04 vom

IBM Informix SQL. Seminarunterlage. Version 11.04 vom Seminarunterlage Version: 11.04 Version 11.04 vom 27. April 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

Übung 1: Ein Website News-System mit MySQL

Übung 1: Ein Website News-System mit MySQL Übung 1: Ein Website News-System mit MySQL In der Vorübung haben wir bereits mit Hilfe eines ERMs den Datenbankentwurf erstellt und daraus die folgenden Tabellen abgeleitet: Nun muss diese Datenbank in

Mehr

Werner Geers. Berufliche Informatik. Zusatzinformationen ISBN:978-3-427-60080-0. Bestellnr.:60080. by Werner Geers und Bildungsverlag1, Troisdorf

Werner Geers. Berufliche Informatik. Zusatzinformationen ISBN:978-3-427-60080-0. Bestellnr.:60080. by Werner Geers und Bildungsverlag1, Troisdorf Werner Geers Berufliche Informatik ISBN:978-3-427-60080-0 Bestellnr.:60080 Zusatzinformationen 1 ARBEITEN MIT HEIDISQL... 2 1.1 Vorbemerkungen... 2 1.2 Herstellung einer Verbindung zu einem Datenbanksystem...

Mehr

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004) Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der

Mehr

Index. Zahlen. Symbole

Index. Zahlen. Symbole Index Zahlen 1NF (Erste Normalform) 177, 181, 194, 320 321, 340 2NF (Zweite Normalform) 329 335, 340 funktionelle Abhängigkeit 331 3NF (Dritte Normalform) 336 Symbole % (Prozentzeichen) 101, 102 (einfache

Mehr

Kurzreferenz SQL-Server 2008/2012 (1)

Kurzreferenz SQL-Server 2008/2012 (1) FB 4 Wirtschaftsinformatik Prof. Dr. Peter Zschockelt Kurzreferenz SQL-Server 2008/2012 (1) 1 Administration der persönlichen SQL Server 2008 Datenbank Das DBMS MS SQL Server 2008 wie auch 2012 wird im

Mehr

5. Datenabfrage mit SQL 14

5. Datenabfrage mit SQL 14 Informationsbestände analysieren Datenabfrage mit SQL 5. Datenabfrage mit SQL 14 5.1. Einige Infos zu SQL SQL wurde Ende der 70er Jahre in den IBM Labors entwickelt und später als Standard für relationale

Mehr

CARL HANSER VERLAG. Christopher Allen. Oracle PL/SQL für Einsteiger Der Einsatz von SQL und PL/SQL in der Oracle-Datenbank 3-446-21801-7

CARL HANSER VERLAG. Christopher Allen. Oracle PL/SQL für Einsteiger Der Einsatz von SQL und PL/SQL in der Oracle-Datenbank 3-446-21801-7 CARL HANSER VERLAG Christopher Allen Oracle PL/SQL für Einsteiger Der Einsatz von SQL und PL/SQL in der Oracle-Datenbank 3-446-21801-7 www.hanser.de Inhaltsverzeichnis Danksagung...XI Einleitung...XIII

Mehr

Datenbanksprache SQL. Datenbanksprache SQL. 5.1 Anfragesprache SQL-DQL. from-klausel SS 2005

Datenbanksprache SQL. Datenbanksprache SQL. 5.1 Anfragesprache SQL-DQL. from-klausel SS 2005 Webbasierte Informationssysteme SS 2005 8. SQL-Vertiefung Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanksprache SQL Structured Query Language (SQL) - am IBM San Jose Research Laboratory entwickelt

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II Die Structured Query Language SQL Prof. Dr. Nikolaus Wulff SQL Das E/R-Modell lässt sich eins zu eins auf ein Tabellenschema abbilden. Benötigt wird eine Syntax, um Tabellen

Mehr

SQL Performance - Tips Do's & Don'ts

SQL Performance - Tips Do's & Don'ts SQL Performance - Tips Do's & Don'ts S.K. Consulting GmbH, München DB2_SQL_PERF - 1 - Inhaltsverzeichnis I. Richtlinien bei der Verwendung von SQL 1.1. In Programmen "verbotene" SQL- Anweisungen 1.2 SQL

Mehr

PostgreSQL unter Debian Linux

PostgreSQL unter Debian Linux Einführung für PostgreSQL 7.4 unter Debian Linux (Stand 30.04.2008) von Moczon T. und Schönfeld A. Inhalt 1. Installation... 2 2. Anmelden als Benutzer postgres... 2 2.1 Anlegen eines neuen Benutzers...

Mehr

Institut für Informatik

Institut für Informatik Aufgaben für die 14. und 15. zur LV "Grundlagen der Informatik" Thema: Datenbanken ( ERM: Entity-Relationship-Modell und SQL: Structured Query Language ) sowie HTML (Hypertext Markup Language) -------------------------------------------------------------------------------------------------------------------------

Mehr

C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET. Leibniz Universität IT Services Anja Aue

C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET. Leibniz Universität IT Services Anja Aue C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET Leibniz Universität IT Services Anja Aue Experteneinstellungen in Visual Studio Express Extras Einstellungen Experteneinstellungen. Es werden

Mehr

Taschenbuch der Wirtschaftsinformatik und Wirtschaftsmathematik

Taschenbuch der Wirtschaftsinformatik und Wirtschaftsmathematik Taschenbuch der Wirtschaftsinformatik und Wirtschaftsmathematik von Wolfgang König, Heinrich Rommelfanger, Dietrich Ohse, Oliver Wendt, Markus Hofmann, Michael Schwind, Klaus Schäfer, Helmut Kuhnle, Andreas

Mehr

Erste Schritte, um selber ConfigMgr Reports zu erstellen

Erste Schritte, um selber ConfigMgr Reports zu erstellen Thomas Kurth CONSULTANT/ MCSE Netree AG thomas.kurth@netree.ch netecm.ch/blog @ ThomasKurth_CH Erste Schritte, um selber ConfigMgr Reports zu erstellen Configuration Manager Ziel Jeder soll nach dieser

Mehr

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Übung, Sommersemester 2013 29. April 2013 - MySQL 2 Sebastian Cuy sebastian.cuy@uni-koeln.de Aufgaben Anmerkungen Best practice: SQL Befehle

Mehr

In die Zeilen würden die Daten einer Adresse geschrieben werden. Das Ganze könnte in etwa folgendermaßen aussehen:

In die Zeilen würden die Daten einer Adresse geschrieben werden. Das Ganze könnte in etwa folgendermaßen aussehen: 1 Einführung in Datenbanksysteme Fast jeder kennt Excel und hat damit in seinem Leben schon einmal gearbeitet. In Excel gibt es Arbeitsblätter, die aus vielen Zellen bestehen, in die man verschiedene Werte

Mehr

Grundkurs MySQL und PHP

Grundkurs MySQL und PHP Martin Pollakowski Grundkurs MySQL und PHP So entwickeln Sie Datenbanken mit Open-Source-Software vieweg Inhaltsverzeichnis Anwendung und Nutzen von Datenbanken 1 1.1 Was ist eine Datenbank? 1 1.2 Abgrenzung

Mehr

MS-Excel 2003 Datenbanken Pivot-Tabellen

MS-Excel 2003 Datenbanken Pivot-Tabellen The Company Datenbanken Pivot-Tabellen (Schnell-Einführung) Seestrasse 160, CH-8002 Zürich E-Mail: info@iswsolution.ch Autor: F. Frei The Company 2 Inhaltsverzeichnis Inhaltsverzeichnis... 2 Datenbank...

Mehr

Herbstsemester 2009. Datenbanken mit Übungen Kapitel 4: SQL. H. Schuldt. Inhalt

Herbstsemester 2009. Datenbanken mit Übungen Kapitel 4: SQL. H. Schuldt. Inhalt Herbstsemester 2009 Datenbanken mit Übungen Kapitel 4: SQL H. Schuldt Inhalt Datenmanipulationssprache SQL: SQL (Structured Query Language) ist die Standardsprache für die Datendefinition und Datenmanipulation

Mehr

StructuredQueryLanguage(SQL)

StructuredQueryLanguage(SQL) StructuredQueryLanguage(SQL) Themen: ErstelenundÄndernvonTabelen AbfragenvonDaten Einfügen,ÄndernundLöschenvonDaten Erstelennutzerde niertersichten(views) 2012Claßen,Kempa,Morcinek 1/23 SQL Historie System

Mehr

In Tabelle 2.1 sehen Sie das Ergebnis beider Ausführungen auf meiner Maschine.

In Tabelle 2.1 sehen Sie das Ergebnis beider Ausführungen auf meiner Maschine. Kapitel 2 Datenverwaltung durch SQL Server Wir wollen das obige Skript zwei Mal laufen lassen, einmal mit und einmal ohne eingeschalteten Schreibcache der Festplatte. Für eine lokale Festplatte können

Mehr

MySql und PHP. Apache2: Konfigurieren für php4. ...\apache2\conf\httpd.conf aufrufen. Folgende Zeilen einfügen:

MySql und PHP. Apache2: Konfigurieren für php4. ...\apache2\conf\httpd.conf aufrufen. Folgende Zeilen einfügen: MySql und PHP Apache2: Konfigurieren für php4...\apache2\conf\httpd.conf aufrufen Folgende Zeilen einfügen: LoadModule php4_module "c:/php/php4apache2.dll" AddType application/x-httpd-php.php Wichtig!!

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

Mehr

4.1 SQL. Wichtige skalare Datentypen

4.1 SQL. Wichtige skalare Datentypen 4. Basierend auf dem Tupelkalkül und der relationalen Algebra wurden mit dem Aufkommen relationaler DBMS auch spezielle Sprachen entwickelt. SQL ist die derzeit am weitesten verbreitete Anfragesprache

Mehr

SQL-Loader. Prof. Dr. Waldemar Rohde Dipl.-Ing. Jörg Höppner 05.05.2006 1

SQL-Loader. Prof. Dr. Waldemar Rohde Dipl.-Ing. Jörg Höppner 05.05.2006 1 SQL-Loader Prof. Dr. Waldemar Rohde Dipl.-Ing. Jörg Höppner 05.05.2006 1 Beschreibung Definition transferiert Daten aus einer oder mehreren externen Dateien in eine oder mehrere Tabellen einer Oracle-Datenbank.

Mehr

5. SQL: Erstellen von Tabellen. Erzeugen und Löschen von Tabellen. Umgang mit Bedingungen (Constraints) Einfügen und Löschen von Daten

5. SQL: Erstellen von Tabellen. Erzeugen und Löschen von Tabellen. Umgang mit Bedingungen (Constraints) Einfügen und Löschen von Daten 5. SQL: Erstellen von Tabellen Erzeugen und Löschen von Tabellen Umgang mit Bedingungen (Constraints) Einfügen und Löschen von Daten 106 SQL Structured Query Language Historie: Anfänge ca. 1974 als SEQUEL

Mehr

2 7 Erweiterungen. 7.1 Prozess-Kommunikation mit Datenbanken

2 7 Erweiterungen. 7.1 Prozess-Kommunikation mit Datenbanken 2 7 Erweiterungen 7 Erweiterungen 7.1 Prozess-Kommunikation mit Datenbanken Im Buch Einstieg in das Programmieren mit MATLAB wird im Abschnitt 4.8 das Thema Prozess-Kommunikation am Beispiel von MS-Excel

Mehr

Relationale Datenbanken in der Praxis

Relationale Datenbanken in der Praxis Seite 1 Relationale Datenbanken in der Praxis Inhaltsverzeichnis 1 Datenbank-Design...2 1.1 Entwurf...2 1.2 Beschreibung der Realität...2 1.3 Enitiy-Relationship-Modell (ERM)...3 1.4 Schlüssel...4 1.5

Mehr

Kapitel 3 Abfragen mit SQL Seite 1. Abbildung 3.1: Die Datenbank EDV_Kurse

Kapitel 3 Abfragen mit SQL Seite 1. Abbildung 3.1: Die Datenbank EDV_Kurse Kapitel 3 Abfragen mit SQL Seite 1 3 Abfragen mit SQL Um bestimmte Datensätze aus der Datenbank zu gewinnen, verwendest du die»programmiersprache«sql (Structured Query Language). Sie ist derzeit die am

Mehr

17.2 MS-Access Projekte

17.2 MS-Access Projekte 964 Von MS-Access 2000 zum SQL-Server 17.2 MS-Access Projekte MS-Access-Projekte, die die Dateiendung adp besitzen, werden als Front-End-Anwendung verwendet. Für die Back-End-Seite gibt es mehrere Möglichkeiten.

Mehr

Einführung Datenbank

Einführung Datenbank Einführung Datenbank Einführung Datenbank Seite 2 Einführung in die Arbeit mit einer Datenbank Grundbegriffe: Datenbank - Datenbankmanagementsystem Eine Datenbank ist eine systematische strukturierte Sammlung

Mehr

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP.

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP. Ziele: Eine Datenbank anlegen mit SQL Daten eingeben mit SQL Abfragen stellen mit SQL und PHP 1 Datenbankserver Entwickelt von der schwedischen Aktiengesellschaft MySQL Unter GNU General Public License

Mehr

SQL auf iseries. Software Voraussetzungen

SQL auf iseries. Software Voraussetzungen 1 SQL Seite auf iseries Software Voraussetzungen SQL auf iseries Structured Query Language (SQL) ist ein plattformunabhängiger Standard, der unabhängig von Hard- und Software für den Zugriff auf Datenbanken

Mehr

Dokumentation zur Anlage eines JDBC Senders

Dokumentation zur Anlage eines JDBC Senders Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise

Mehr

DB2 SQL, der Systemkatalog & Aktive Datenbanken

DB2 SQL, der Systemkatalog & Aktive Datenbanken DB2 SQL, der Systemkatalog & Aktive Datenbanken Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele Auf DB2 Datenbanken zugreifen DB2 Datenbanken benutzen Abfragen ausführen Den Systemkatalog

Mehr

A) Durchsuchen von Datenbanken im Internet durch Endnote

A) Durchsuchen von Datenbanken im Internet durch Endnote EINLEITUNG/ANWEISUNGEN ZU DIESEM TEXT Wir werden die obere Liste (File/ Edit usw.) benutzen, obwohl die meisten Funktionen auch möglich mit rechtem Mausklick, mit Kombinationen der Tastatur oder mit den

Mehr

Themenblock: Erstellung eines Cube

Themenblock: Erstellung eines Cube Themenblock: Erstellung eines Cube Praktikum: Data Warehousing und Data Mining Einführung relationale Datenbanken Problem Verwaltung großer Mengen von Daten Idee Speicherung der Daten in Form von Tabellen

Mehr

Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.

Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. LIKE (Transact-SQL) SQL Server 2012 Dieser Artikel wurde noch nicht bewertet

Mehr

Word 2007 Serienbriefe erstellen

Word 2007 Serienbriefe erstellen Word 2007 Serienbriefe erstellen Einladung zu... Hannover, d. 01.12.08 Hannover, d. 01.12.08 Emil Müller An der Leine 4 30159 Hannover, d. 01.12.08

Mehr

Gliederung und Einordnung

Gliederung und Einordnung Gliederung und Einordnung 1. Objektorientierte Programmierung mit Object Pascal (5. Studienbrief, Kapitel 5) 9.4. + 16.4. 2. Software-Bausteine am Beispiel der Delphi-Komponenten (5. Studienbrief, Kapitel

Mehr

Cassandra Query Language (CQL)

Cassandra Query Language (CQL) Cassandra Query Language (CQL) Seminar: NoSQL Wintersemester 2013/2014 Cassandra Zwischenpräsentation 1 Gliederung Basic facts Datentypen DDL/DML ähnlich zu SQL Besonderheiten Basic facts CQL kurz für

Mehr

Structured Query Language SQL

Structured Query Language SQL K.-H. Krötzsch Structured Query Language SQL 05.11.-18.11.2002 1. Wichtige Konventionen Zeichenketten, Kommentare, Befehlsende 2. Einfache Abfragen SELECT DISTINCT AS FROM LIMIT oder TOP ORDER BY; ASC

Mehr

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

Mehr

Die SQL-Select-Anweisung

Die SQL-Select-Anweisung Die SQL-Select-Anweisung Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2011-05-25 Inhaltsverzeichnis 1 Einleitung 1 2 Auswertungsreihenfolge 5 3 Abfragen auf eine Tabelle 5 3.1 einfache Abfrage................................

Mehr

Whitepaper. Produkt: combit Relationship Manager 7, address manager 17. Import von Adressen nach Firmen und Kontakte

Whitepaper. Produkt: combit Relationship Manager 7, address manager 17. Import von Adressen nach Firmen und Kontakte combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager 7, address manager 17 Import von Adressen nach Firmen und Kontakte Import von Adressen nach Firmen und Kontakte

Mehr

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt DBS ::: SERIE 5 Die Relation produkt enthält Hersteller, Modellnummer und Produktgattung (pc, laptop oder drucker aller Produkte. Die Modellnummer ist (der Einfachheit halber eindeutig für alle Hersteller

Mehr

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert. Betrifft Autor FIRST, LAST Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Quelle Aus dem NF9i-Kurs, NF9i-Techno-Circle der Trivadis und Oracle9i Data Warehousing

Mehr

VisiScan 2011 für cobra 2011 www.papyrus-gmbh.de

VisiScan 2011 für cobra 2011 www.papyrus-gmbh.de Überblick Mit VisiScan für cobra scannen Sie Adressen von Visitenkarten direkt in Ihre Adress PLUS- bzw. CRM-Datenbank. Unterstützte Programmversionen cobra Adress PLUS cobra Adress PLUS/CRM 2011 Ältere

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

3 FORMELN. 3.1. Formeln erzeugen

3 FORMELN. 3.1. Formeln erzeugen Formeln Excel effektiv 3 FORMELN 3.1. Formeln erzeugen Übungen: Quittung... 136 Kalkulation... 138 Bestellung... 128 Kassenbuch.. 132 Aufmaß... 152 Zum Berechnen verwendet Excel Formeln. Diese sind in

Mehr

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 9c: Datenbankapplikationen Architektur einer Web-Applikation mit Servlets, JSPs und JavaBeans

Mehr

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index!

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index! 1/40 PHP-User-Group Stuttgart 14.01.2009 Warum Datenbanken einen Hals bekommen und was sich dagegen tun lässt. Tuning und Performancesteigerung ohne zusätzliche Hardware. Ein. Loblied auf den Tabellen-Index!

Mehr

DB2 for z/os. Musterlösungen zu den Übungen

DB2 for z/os. Musterlösungen zu den Übungen Musterlösungen zu den Übungen 4. Januar 2013 Eine Ausarbeitung von: cps4it Ralf Seidler Stromberger Straße 36A 55411 Bingen Fon: +49-6721-992611 Fax: +49-6721-992613 Mail: ralf.seidler@cps4it.de Internet

Mehr

Allgemein. Einrichtung. PHOENIX Tool WinUser2PHOENIXUser. Version: 3.5.2 Stand: 2013-04-16

Allgemein. Einrichtung. PHOENIX Tool WinUser2PHOENIXUser. Version: 3.5.2 Stand: 2013-04-16 PHOENIX Tool WinUser2PHOENIXUser Version: 3.5.2 Stand: 2013-04-16 Allgemein Das Tool ermöglicht es, Benutzerinformationen aus dem Windows Active Directory (AD) in den PHOENIX zu importieren. Dabei können

Mehr

Datenadminstrator, Datenbankdesigner, Systemanalytiker (für die logische Sicht zuständig)

Datenadminstrator, Datenbankdesigner, Systemanalytiker (für die logische Sicht zuständig) 1 Grundlagen Begriffe Daten bekannte zutreffende Tatsachen über die Domäne/Miniwelt DBS Einsatz eines DBMS für eine Datenbank, DBS besteht aus folgenden Komponenten: 1. DBMS 2. Datenbank DBMS Software

Mehr

PostGre SQL-Anweisungen in pgadmin

PostGre SQL-Anweisungen in pgadmin PostGre SQL-Anweisungen in pgadmin S(tructured)Q(uery)L(anguage)... ist eine eigenständige Sprache für relationale Datenbanken. bietet Befehle zum Bearbeiten von Daten und Erstellen von Objekten in relationalen

Mehr