Datenbankanfragen mit SQL. Dipl.-Ing. D. Gerst Frühjahr 2005

Größe: px
Ab Seite anzeigen:

Download "Datenbankanfragen mit SQL. Dipl.-Ing. D. Gerst Frühjahr 2005"

Transkript

1 Datenbankanfragen mit SQL Dipl.-Ing. D. Gerst Frühjahr 2005

2 1 KOMPONENTEN DER SPRACHE GRUNDELEMENTE ZEICHEN LITERALE SCHLÜSSELWORTE DATENTYPEN PRÄDIKATE AGGREGATFUNKTIONEN ARITHMETISCHE UND BOOL SCHE OPERATOREN 3 2 DATENDEFINITION (DDL) ERZEUGEN LOGISCHER OBJEKTE ERZEUGEN VON TABELLEN ERZEUGEN VON SICHTEN ÄNDERN VON LOGISCHEN OBJEKTEN LÖSCHEN LOGISCHER OBJEKTE 5 3 DATENMANIPULATION (DML) DIE INSERT-ANWEISUNG DIE UPDATE-ANWEISUNG DIE DELETE-ANWEISUNG DIE EINFACHE SELECT-ANWEISUNG GRUNDFORM WHERE-KLAUSEL GROUP BY... HAVING - KLAUSEL ORDER BY-KLAUSEL DIE KOMPLEXE SELECT-ANWEISUNG KARTESISCHES PRODUKT NATÜRLICHER VERBUND GLEICHHEITSVERBUND ALIAS UND UMBENENNUNG ÄUßERE VERKNÜPFUNGEN KOMBINATION UNABHÄNGIGER ABFRAGEN VEREINIGUNG (UNION) DURCHSCHNITT (INTERSECT) DIFFERENZ (EXCEPT) VERSCHACHTELTE ABFRAGEN 10 4 DATENKONTROLLE (DCL) DIE GRANT-ANWEISUNG DIE REVOKE-ANWEISUNG WEITERE ANWEISUNGEN 11 1

3 1 Komponenten der Sprache 1.1 Grundelemente Als Grundelemente einer nichtprozeduralen Sprache bezeichnet man im allgemeinen: Zeichen Zeichen sind die einfachsten Elemente einer Sprache. Zum Zeichensatz von SQL gehören Großbuchstaben A, B,..., Z Kleinbuchstaben a, b,..., z Ziffern 0, 1,..., 9 Sonderzeichen (incl. Leerzeichen) % _, ( ) < >. : = Literale Literale umfassen alphanumerische Konstanten (Zeichenketten) und numerische Konstanten (Ganz-, Festpunkt-, und Gleitkommazahlen mit oder ohne Vorzeichen). Zeichenketten stehen immer zwischen zwei Apostrophen Schlüsselworte Schlüsselworte sind reservierte Begriffe, die eine fest vorgegebene Bedeutung haben und deshalb nicht als Namen verwendet werden dürfen. Der SQL-Standard definiert folgende Schlüsselworte: ALL AND ANY AS ASC AUTHORIZATION AVG BEGIN BETWEEN BY CHAR CHARACTER CHECK CLOSE COBOL COMMIT CONTINUE COUNT CRATE CURRENT CURSOR DEC DECIMAL DECLARE DELETE DESC DISTINCT DOUBLE END ESCAPE EXED EXISTS FETCH FLOAT FOR FORTRAN FOUND FROM GO GOTO GRANT GROUP HAVING IN INDICATOR INSERT INT INTEGER INTO IS LANGUAGE LIKE MAX MIN MODULE NOT NULL NUMERIC OF ON OPEN OPTION OR ORDER PASCAL PLI PRECISION PRIVILEGES PROCEDURE PUBLIC REAL ROLLBACK SCHEMA SECTION SELECT SET SMALLINT SOME SQL SQLCODE SQLERROR SUM TABLE TO UNION UNIQUE UPDATE USER VALUES VIEW WHENEVER WHERE WITH WORK Die meisten DBMS bieten systemspezifische Erweiterungen dieser Liste an. 1.2 Datentypen Jede Spalte einer Tabelle muß einen Datentyp haben. Die in SQL standardisierten Datentypen können weiter klassifiziert werden in: Numerische Datentypen INTEGER oder INT - (2 31 1) <= x <= 2 31 SMALLINT - (2 15 1) <= x <= 2 15 DECIMAL (m, [n]) mindestens m Stellen, davon n nach dem Komma NUMERIC (m, [n]) exakt m Stellen, davon n nach dem Komma FLOAT (n) Fließkomma mit n Stellen REAL FLOAT mit systemabhängigem n DOUBLE PRECISION REAL mit größerem n 2

4 Alphanumerische Datentypen CHARACTER (n) oder CHAR (n) CHARACTER VARYING (n) oder CHAR VARYING (n) oder VARCHAR (n) Zeichenketten mit fester Länge n Zeichenketten mit variabler Länge bis maximal n Zeichen Zeit- und Datumsangaben DATE Datum TIME Uhrzeit TIMESTAMP Datum und Zeit INTERVALL Zeitintervalle Zeit- und Datumsdatentypen sind erst mit SQL2 standardisiert worden, so daß viele Systeme noch ihre eigenen Formate benutzen. Mit SQL2 besteht zudem die Möglichkeit, eigene Datentypen als DOMAIN s zu definieren und zu benutzen. Dadurch können Standarddatentypen mit Voreinstellungen und Bedingungen verknüpft werden. 1.3 Prädikate Prädikate sind logische Bedingungen, die als Ergebnis TRUE, FALSE und UNKNOWN liefern können. Zu den Prädikaten zählen alle Vergleichsoperatoren sowie die andere Operatoren (BETWEEN, IN, LIKE, NULL...) auf die im Kapitel 3 ausführlicher eingegangen werden soll. 1.4 Aggregatfunktionen Aggregatfunktionen werden auf ausgewählte Daten einer Spalte angewendet. Die folgenden fünf Funktionen werden immer unterstützt: AVG MAX MIN SUM COUNT Mittelwert (Average) Maximum Minimum Summe Anzahl 1.5 Arithmetische und Bool sche Operatoren Unäre arithmetische Operatoren sind + und als Vorzeichen. Binäre arithmetische Operatoren sind +, -, und / als Addition, Subtraktion, Multiplikation und Division. Meist wird auch der Operator II zur Verkettung von Zeichenketten unterstützt. Als Bool sche Operatoren können AND, OR und NOT für Konjunktion, Disjunktion und Negation verwendet werden. Die Wahrheitstabellen unter Einbeziehung des Ergebnisses UNKNOWN sollen hier noch einmal dargestellt werden: AND T U F OR T U F NOT T T U F T R R R T F U U U F U R U U U U F F F F F R U F F T 3

5 2 Datendefinition (DDL) Die meisten Systeme erlauben es, direkt den physikalischen Speicherbereich in Form von Partitionen, Clustern o.ä. zu beeinflussen. Darauf soll hier jedoch nicht weiter eingegangen werden, da diese Manipulationen nicht von unerfahrenen Anwendern vorgenommen werden sollten. Alle aufgeführten Anweisungen beschränken sich deshalb auf die Definition von logischen DB-Objekten. Zur Datendefinition zählen das Erzeugen, Verändern und Löschen von Objekten. 2.1 Erzeugen logischer Objekte Logische Objekte sind Datenbanken, Kataloge und Schemata sowie Tabellen und Sichten (Views) mit Spalten und Zeilen. Die Begriffe Katalog und Schema sind erst mit SQL2 eingeführt worden und gewinnen mit zunehmender Nutzung von physisch und logisch verteilten Datenbanken durch unterschiedliche Nutzergruppen an Bedeutung. Der Schwerpunkt soll deshalb auf Tabellen und Views liegen. An dieser Stelle muß auch der Begriff der Persistenz (Dauerhaftigkeit) von Objekten erwähnt werden, der in engem Zusammenhang mit dem Begriff der Session (Sitzung) steht. Die eigentlichen Daten werden nur in den sogenannten persistenten Basistabellen gespeichert. Aus diesen können abgeleitete Tabellen erzeugt werden, z.b. als Ergebnis einer Abfrage. In der Regel sind diese temporär, gehen also am Ende einer Session verloren. Views sind ebenfalls abgeleitete Tabellen, mit der Besonderheit, daß ihre Ableitungsvorschrift persistent in der Datenbank gespeichert wird Erzeugen von Tabellen Die SQL-Anweisung zum Erzeugen von Tabellen lautet: CREATE TABLE tabelle ( spaltenname Datentyp [NOT NULL],... ) Für jede Spalte sind Bezeichnung und Typ anzugeben, zusätzlich kann mit NOT NULL festgelegt werden, daß die Spalte keine unbestimmten NULL-Werte beinhalten darf, was z.b. bei Schlüsselspalten erforderlich ist Erzeugen von Sichten Die SQL-Anweisung zum Erzeugen von Sichten lautet: CREATE VIEW Sicht [(Spaltenname,...)] AS Select-Anweisung [WITH CHECK OPTION] Die Angabe der Spaltenbezeichnungen ist optimal. Fehlt diese, werden die Bezeichnungen aus den ausgewählten Tabellen übernommen. Die optimale Angabe von WITH CHECK OPTION hat nur bei veränderbaren Sichten Auswirkungen und überprüft, ob die vorzunehmende Änderung noch im Sichtbereich liegt. 4

6 2.2 Ändern von logischen Objekten Das Verändern von logischen Objekten ist im wesentlichen nur für Tabellen möglich. Deshalb soll hier auch nur die entsprechende SQL-Anweisung aufgeführt werden: ALTER TABLE tabelle ADD COLUMN spaltendefinition ALTER COLUMN spaltenname SET DEFAULT... DROP DEFAULT DROP COLUMN spaltenname Mögliche Veränderungen bestehen also darin, Spalten hinzuzufügen, deren Standardeinstellungen zu ändern oder Spalten ganz zu löschen. 2.3 Löschen logischer Objekte Logische Objekte können vollständig (d.h. sowohl die Beschreibung als auch die beinhalteten Daten!) aus einer Datenbank gelöscht werden. Für Tabellen und Sichten lauten die SQL- Anweisungen: DROP TABLE tabelle bzw. DROP VIEW sicht Beim Löschen von Sichten werden keine Daten gelöscht, da es sich ja nur um abgeleitete (virtuelle) Tabellen handelt. 5

7 3 Datenmanipulation (DML) Die dem SQL-Sprachanteil Data Manipulation Language (DML) zugehörigen Anweisungen sind die am häufigsten verwendeten Anweisungen. Sie ermöglichen die Beeinflussung aller gespeicherten Daten. Grundlegende Operationen sind dabei Erzeugen, Verändern, Auswählen und Löschen. 3.1 Die INSERT-Anweisung Mit der INSERT-Anweisung können Daten in Tabellen eingetragen werden. Dabei können sowohl komplette Zeilen als auch nur Teile von Zeilen mit Werten belegt werden. Die einfache Form der INSERT-Anweisung lautet: INSERT INTO Tabelle [(Spaltenliste)] VALUES (Werteliste); Mit dieser Anweisung kann eine Zeile ganz oder teilweise mit Werten gefüllt werden. Die Datentypen der Werte in der Werteliste müssen mit denjenigen der zugehörigen Spalte übereinstimmen. Eine weitere Form der INSERT-Anweisung lautet: INSERT INTO Tabelle [(Spaltenliste)] SELECT-Anweisung; Die Angabe von VALUES wird hier durch das Ergebnis einer Auswahlabfrage ersetzt, so daß mit einer Anweisung mehrere Zeilen mit Werten gefüllt werden können. Voraussetzung ist natürlich, daß bereits Tabellen existieren, aus denen selektiert werden kann. Aus Gründen der Redundanzminderung sollten so auch nur temporäre Tabellen aufgebaut werden. 3.2 Die UPDATE-Anweisung Mittels der UPDATE-Anweisung können vorhandene Daten in Tabellen modifiziert werden. Die allgemeine Form lautet: UPDATE Tabelle SET Spalte=Ausdruck,[Spalte2=Ausdruck2,..] [WHERE Bedingung]; In den durch die Bedingung ausgewählten Zeilen werden die Werte in den angegeben Spalten aufgrund der Ausdrücke neu berechnet bzw. zugewiesen und eingetragen. Es kann nur eine Tabelle geändert werden. 3.3 Die DELETE-Anweisung Mit der DELETE-Anweisung werden Zeilen aus einer Tabelle gelöscht. Die allgemeine Form lautet: DELETE FROM Tabelle [WHERE Bedingung]; Die Bedingung gibt an, welche Zeilen aus der Tabelle gelöscht werden. Fehlt diese Bedingung, werden alle Zeilen einer Tabelle gelöscht! 6

8 3.4 Die einfache SELECT-Anweisung Die wohl wichtigste SQL-Anweisung ist die SELECT-Anweisung. Mit ihrer Hilfe können aus einer vorhandene Tabelle Datenwerte neu zusammengestellt werden. Das Ergebnis ist wiederum eine Tabelle. Es sollen zunächst einfache Abfragen betrachtet werden, die sich auf die Auswahl von Daten aus einer Tabelle beschränken Grundform Die allgemeine Form der SELECT-Anweisung lautet: SELECT [ALL DISTINCT] Auswahlliste FROM Tabelle [WHERE Bedingung] [GROUP BY Spaltenliste [HAVINGBedingung]] [ORDER BY Spaltenliste [ASC DESC]]; Die einfachste, jedoch selten gebräuchliche SELECT-Anweisung lautet also: SELECT * FROM Tabelle; Das Ergebnis ist ein Duplikat der Tabelle. Wird DISTINCT angegeben, werden nur die Datensätze ausgewählt, die nicht doppelt bzw. mehrfach vorkommen. Interessant werden Auswahlabfragen durch die Fülle an Klauseln, die mit ihnen eingesetzt werden können. Auf diese einzelnen Klauseln soll nachfolgend etwas detaillierter eingegangen werden WHERE-Klausel Mit Hilfe der in der WHERE-Klausel anzugebenden Bedingungen können die auszuwählenden Zeilen bestimmt werden. Zur Formulierung von Bedingungen können wiederum verschiedene Operatoren, die sg. Prädikate( 1.3), eingesetzt werden. Zu den wichtigsten Prädikaten zählen: alle Vergleichsoperatoren = gleich <> ungleich > größer als < kleiner als >= größer gleich <= kleiner gleich Besonderheit: Vergleich mit unbestimmten (NULL-)Werten immer mit Schlüsselwort IS, also IS NULL oder IS NOT NULL alle logischen Operatoren ( 1.5) AND Konjunktion OR Disjunktion NOT Negation IN und BETWEEN zur Festlegung von Wertebereichen IN (Werteliste) BETWEEN Anfang AND Ende LIKE zur Mustersuche in Zeichenketten mit den Sonderzeichen % beliebige Zeichenfolge _ beliebiges Einzelzeichen Im SQL2-Standard werden noch eine Reihe weiterer Prädikate definiert, die in der Praxis jedoch durch Kombinationen der oben angegebenen ersetzt werden können oder selten gebraucht werden. 7

9 3.4.3 GROUP BY... HAVING - Klausel Die GROUP BY-Klausel dient dem Zusammenfassen von ausgewählten Datensätzen. Die bereits in einer WHERE-Klausel angegebene Bedingung kann durch den Einsatz von HAVING nochmals spezialisiert werden. Sehr sinnvoll ist der Einsatz der GROUP BY-Klausel im Zusammenhang mit dem Gebrauch von Aggregatfunktionen ( 1.4), da diese dann auf die gebildeten Gruppen operieren ORDER BY-Klausel Die ORDER BY-Klausel dient zum Sortieren ausgewählter Datensätze. Das Sortieren kann aufsteigend (ASC) oder absteigend (DESC) erfolgen. Sortiert werden kann nach den Einträgen in mehreren Spalten, die durch ihren Namen oder ihre Position in der Spaltenliste identifiziert werden können. 3.5 Die komplexe SELECT-Anweisung Als komplexe SELECT-Anweisung wird hier eine Auswahlabfrage bezeichnet, die Daten aus mehreren Tabellen zusammenstellt. Die Verknüpfungen von Tabellen werden allgemein als JOIN bezeichnet, wobei mehrere Arten unterschieden werden. Die allgemeine Form einer komplexen SELECT-Anweisung entspricht der einer einfachen, nur daß die Tabelle durch eine Tabellenliste bzw. den Verbund (join) von Tabellen ersetzt wird: SELECT [ALL DISTINCT] Auswahlliste FROM Tabellenliste Tabellenverbund [WHERE Bedingung] [GROUP BY Spaltenliste [HAVINGBedingung]] [ORDER BY Spaltenliste [ASC DESC]]; Die einfachste Form einer komplexen Abfrage lautet somit: SELECT * FROM Tabelle1, Tabelle2; Das Ergebnis dieser Abfrage ist das kartesische Produkt der beiden Tabellen, welches mit natürlichem Verbund und allen sogenannten Theta-Joins zu den inneren Verknüpfungen (INNER JOIN) von Tabellen gehören Kartesisches Produkt Eine andere Möglichkeit, das kartesische Produkt oder auch den CROSS JOIN zweier Tabellen zu erzeugen, ist die Anweisung: SELECT * FROM Tabelle1 CROSS JOIN Tabelle2; Durch die Angabe der Schlüsselworte CROSS JOIN wird das Ergebnis betont, ansonsten sind die Anweisungen äquivalent. Das Ergebnis ist eine Tabelle die alle Spalten beider Tabellen aufweist und in der jede Zeile von Tabelle1 mit jeder Zeile von Tabelle2 kombiniert worden ist. Das kartesische Produkt ist somit die Abfrage, die es erlaubt, beliebige Informationen in einer Datenbank zueinander in Beziehung zu setzen Natürlicher Verbund Beim kartesischen Produkt werden Spalten mit gleichen Bezeichnungen in beiden Tabellen auch doppelt in die Ergebnistabelle übernommen. Meist handelt es sich hier jedoch um Spalten, die z.b. in Tabelle1 als Primärschlüssel und in Tabelle2 als Fremdschlüssel für Einträge aus Tabelle1 angelegt worden sind. Diese Art des Verbundes wird als natürlicher Verbund oder NATURAL JOIN bezeichnet. Spalten mit gleichem Namen werden auf Gleichheit überprüft und nur einmal ausgegeben. Die Formulierung lautet: SELECT * Spaltenliste FROM Tabelle1 NATURAL JOIN Tabelle2; 8

10 3.5.3 Gleichheitsverbund Eine alternative Formulierung, die die Verbundbedingung in der WHERE-Klausel berücksichtigt, lautet: SELECT * Spaltenliste FROM Tabelle1, Tabelle2 WHERE Tabelle1.Spalte = Tabelle2.Spalte; Im Unterschied zum NATURAL JOIN werden hier jedoch die eigentlich gleichen Spalten doppelt ausgegeben, falls dies in der Spaltenliste nicht unterbunden wird. Der Vorteil ist, daß Beziehungen für Spalten mit unterschiedlichen Namen angegeben werden können. Ist die Beziehung wie hier gezeigt die Gleichheit der Spalten, spricht man auch von einem EQUI JOIN, wird allgemein ein Vergleichsoperator verwendet, spricht man von einem THETA JOIN Alias und Umbenennung In der gezeigten EQUI JOIN Anweisung werden die Spalten einer Tabelle durch den Ausdruck Tabelle.Spalte identifiziert. Dies ist in jeder Anweisung zulässig oder sogar erforderlich. Innerhalb einer Anweisung können auch Aliasnamen für Tabellen vergeben, sowie die Spalten der Ergebnistabelle benannt werden. Eine solche Anweisung lautet z.b.: SELECT t.spalte1 AS neuspalte1,... FROM Tabelle1 [AS] t, Tabelle2 [AS] s WHERE t.spalte1 <= s.spalte3 ; Aliasnamen für Tabellen (z.b. als Abkürzung) werden also in der FROM-Klausel vergeben und müssen dann in allen anderen Klauseln der Anweisung benutzt werden. Das Schlüsselwort AS kann dabei optional benutzt werden. Eine Umbenennung von ausgewählten Spalten erfolgt immer durch Angabe des Schlüsselwortes AS und des neuen Namens in der Spaltenliste Äußere Verknüpfungen Bei den äußeren Verknüpfungen handelt es sich um den Verbund von Tabellen, wobei Zeilen aus Tabellen in das Ergebnis übernommen werden, die nicht den Verbundbedingungen genügen. Allgemein spricht man von OUTER JOIN, wobei noch zwischen vollständigem (FULL), linkem (LEFT) und rechtem (RIGHT) OUTER JOIN unterschieden wird. Die Anweisung lautet: SELECT * Spaltenliste FROM Tabelle1 [FULL RIGHT LEFT] OUTER JOIN Tabelle2 WHERE... Ein vollständiger äußerer Verbund besteht aus dem inneren Verbund und den übrig gebliebenen Zeilen aus beiden Tabellen, die dann jeweils mit NULL-Werten kombiniert werden. Bei einem linken äußeren Verbund werden nur die Restzeilen von Tabelle1 berücksichtigt, bei einem rechten die Restzeilen von Tabelle2. 9

11 3.6 Kombination unabhängiger Abfragen Die Ergebnisse von mehreren Auswahlabfragen könne durch Mengenoperationen zu einem Ergebnis zusammengefaßt werden. Auf zwei Mengen können die Operationen Vereinigung, Durchschnitt und Differenz angewendet werden, die ihre Widerspiegelung in den SQL- Schlüsselworten UNION, INTERSECT und EXCEPT finden. Voraussetzung ist immer, daß die Spaltenanzahl in beiden Auswahlabfragen gleich ist und die Datentypen der korrespondierenden Spalten übereinstimmen. Falls die Ausgabe sortiert erfolgen soll, muß die ORDER BY-Klausel in Auswahlabfrage2 angegeben werden Vereinigung (UNION) Die allgemeine Formulierung zur Vereinigung von zwei Datenmangen lautet: Auswahlabfrage1 UNION [ALL] Auswahlabfrage2; Die optionale Angabe von ALL führt dazu, daß mehrfach vorhandene Zeilen auch mehrfach ausgegeben werden Durchschnitt (INTERSECT) Die Anweisung, um den Durchschnitt zweier Datenmengen zu ermitteln, lautet: Auswahlabfrage1 INTERSECT Auswahlabfrage2; Das Ergebnis ist eine Auswahl von Zeilen, die in beiden Abfragen vorhanden sind Differenz (EXCEPT) Die Anweisung für den Durchschnitt zweier Datenmengen lautet: Auswahlabfrage1 EXCEPT Auswahlabfrage2; Als Ergebnis entsteht die Menge aller Zeilen aus Abfrage1, ausgenommen diejenigen, die auch in Abfrage2 enthalten sind. Im Gegensatz zu Vereinigung und Durchschnitt sind hier die beiden Abfragen nicht mehr vertauschbar. In manchen DBMS wird auch das Schlüsselwort MINUS verwendet. 3.7 Verschachtelte Abfragen Auswahlabfragen können im Prinzip in beliebiger Tiefe verschachtelt werden, wobei wieder alle Prädikate und Mengenoperationen angewendet werden können. Die Formulierung solcher SUBQUERIES erfordert jedoch viel Erfahrung und Überblick über die jeweilige Datenbankstruktur und soll somit auch nicht mehr Gegenstand dieses Scriptes sein, welches ja als Einführung in die Thematik gedacht ist. Um eine Vorstellung zu vermitteln, hier ein einfaches Beispiel: SELECT Spaltenliste FROM Tabelle1 WHERE Ausdruck Operator ( SELECT Aggregatfunktion(Spalte) FROM Tabelle2 WHERE Bedingung ) UNION SELECT Spaltenliste FROM Tabelle3 WHERE Bedindung ORDER BY Spalte DESC; 10

12 4 Datenkontrolle (DCL) Die dritte große Gruppe von SQL-Anweisungen dienen im wesentlichen zur Verwaltung der Benutzerrechte eines DBMS. Im Vordergrund stehen dabei die Aspekte Datenschutz (Zugriffsrechte) und Datensicherheit (Konsistenz). Mit SQL2 ist der Vorrat dieser Anweisungen erweitert worden, was sicher auch im Zusammenhang mit der zunehmenden Bedeutung von Datenbanken und deren Einsatz in großen Unternehmen mit der daraus resultierenden Anzahl und Struktur von Benutzern steht. Im Rahmen dieses Scriptes soll auf die Problematik aber nur am Rande eingegangen werden, indem die wichtigsten Anweisungen zusammengefaßt werden. 4.1 Die GRANT-Anweisung Mit Hilfe der GRANT-Anweisung können an Benutzer eines DBMS globale Rechte vergeben werden. Die anweisung lautet: GRANT Rechte ON Datenbankobjekt TO Benutzer WITH GRANT OPTION Mögliche globale Rechte sind z.b. CONNECT, RESOURCE und DBA, lokale Rechte sind SELECT, DELETE, INSERT und UPDATE. Wird WITH GRANT OPTION angegeben, darf der Benutzer seine Rechte an andere Benutzer weitergeben. 4.2 Die REVOKE-Anweisung Die REVOKE-Anweisung entzieht den Benutzern die vergebenen Rechte. Allgemein lautet sie: REVOKE [GRANT OPTION FOR] Rechte ON Datenbankobjekt FROM Benutzer RESTRICT CASCADE; Wird CASCADE angegeben, werden die Rechte auch allen Benutzern entzogen, die diese vom angegebenen Benutzer erhalten hatten. 4.3 Weitere Anweisungen Auf weitere Anweisungen, etwa zur Transaktionskontrolle und dem Sperren von Objekten, soll hier nicht mehr eingegangen werden. 11

13 5 Literaturverzeichnis [1] Marsch J., Fritze J.: SQL: Eine praxisorientierte Einführung Vieweg 1993, 3. verb. Auflage 1995 [2] Melton J., Simon A.R.: Understanding the new SQL: a complete guide Morgan Kaufmann Publishers, Inc [3] Petkovic D.: SQL die Datenbanksprache McGraw-Hill 1990 [4] Viescas, J.: SQL: Die relationale Datenbanksprache Vieweg 1989 [5] Date C.J.: A Guide to the SQL Standard Addison-Wesley

Abfragen (Queries, Subqueries)

Abfragen (Queries, Subqueries) Abfragen (Queries, Subqueries) Grundstruktur einer SQL-Abfrage (reine Projektion) SELECT [DISTINCT] {* Spaltenname [[AS] Aliasname ] Ausdruck} * ; Beispiele 1. Auswahl aller Spalten SELECT * ; 2. Auswahl

Mehr

Übersicht der wichtigsten MySQL-Befehle

Übersicht der wichtigsten MySQL-Befehle Übersicht der wichtigsten MySQL-Befehle 1. Arbeiten mit Datenbanken 1.1 Datenbank anlegen Eine Datenbank kann man wie folgt erstellen. CREATE DATABASE db_namen; 1.2 Existierende Datenbanken anzeigen Mit

Mehr

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de 08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren

Mehr

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle Einführung in SQL insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle Quelle Wikipedia, 3.9.2015 SQL zur Kommunikation mit dem DBMS SQL ist

Mehr

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7 1 Data Definition Language (DDL)... 2 1.1 Tabellen erstellen... 2 1.1.1 Datentyp...... 2 1.1.2 Zusätze.... 2 1.2 Tabellen löschen... 2 1.3 Tabellen ändern (Spalten hinzufügen)... 2 1.4 Tabellen ändern

Mehr

Es geht also im die SQL Data Manipulation Language.

Es geht also im die SQL Data Manipulation Language. 1 In diesem Abschnitt wollen wir uns mit den SQL Befehlen beschäftigen, mit denen wir Inhalte in Tabellen ( Zeilen) einfügen nach Tabelleninhalten suchen die Inhalte ändern und ggf. auch löschen können.

Mehr

SQL als Zugriffssprache

SQL als Zugriffssprache SQL als Zugriffssprache Der Select Befehl: Aufbau Select- und From-Klausel Where-Klausel Group-By- und Having-Klausel Union Join-Verbindung Order-By-Klausel Der Update-Befehl Der Delete-Befehl Der Insert-Befehl

Mehr

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel Anwendungsentwicklung Datenbanken SQL Stefan Goebel SQL Structured Query Language strukturierte Abfragesprache von ANSI und ISO standardisiert deklarativ bedeutet was statt wie SQL beschreibt, welche Daten

Mehr

U 8 SQL. = Structured Query Language (heute auch Standard Query Language) ALLGEMEIN:

U 8 SQL. = Structured Query Language (heute auch Standard Query Language) ALLGEMEIN: U 8 SQL = Structured Query Language (heute auch Standard Query Language) ALLGEMEIN: - Abfragesprache für relationale Datenbanken, die plattformübergreifend verwendet wird - Vereinfachte Verwendung über

Mehr

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt

Mehr

4. Datenbanksprache SQL

4. Datenbanksprache SQL 4. Datenbanksprache SQL Standard-Sprache für das Arbeiten mit relationalen Datenbanken: Structured Query Language Datendefinition: Anlegen, Ändern und Löschen von Datenbankstrukturen Datenmanipulation:

Mehr

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis. SQL Lehr- und Forschungseinheit Datenbanken und Informationssysteme Ziele Grundlagen von SQL Beziehung zur relationalen Algebra SELECT, FROM, WHERE Joins ORDER BY Aggregatfunktionen Lehr- und Forschungseinheit

Mehr

Inhaltsverzeichnis. Einleitung

Inhaltsverzeichnis. Einleitung vn Inhaltsverzeichnis Einleitung Kapitel 1: Eine Einführung in relationale Datenbanken 7 Was ist eine relationale Datenbank? 9 Verknüpfen der einzelnen Tabellen 10 Die Reihenfolge der Zeilen ist beliebig

Mehr

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13 Auf einen Blick Vorwort... 13 Teil 1 Vorbereitung Kapitel 1 Einleitung... 17 Kapitel 2 SQL der Standard relationaler Datenbanken... 21 Kapitel 3 Die Beispieldatenbanken... 39 Teil 2 Abfrage und Bearbeitung

Mehr

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle. Seminar 2 SQL - DML(Data Manipulation Language) und DDL(Data Definition Language) Befehle. DML Befehle Aggregatfunktionen - werden auf eine Menge von Tupeln angewendet - Verdichtung einzelner Tupeln yu

Mehr

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

Mehr

SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage.

SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage. SELECT-FROM SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage. Inhaltsverzeichnis 1 Der grundlegende Aufbau 2 Doppelte

Mehr

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13 Auf einen Blick Vorwort 13 Teil 1 Vorbereitung Kapitel 1 Einleitung 17 Kapitel 2 SQL - der Standard relationaler Datenbanken 21 Kapitel 3 Die Beispieldatenbanken 39 Teil 2 Abfrage und Bearbeitung Kapitel

Mehr

DB1. DB SQL-DQL 1 Mario Neugebauer

DB1. DB SQL-DQL 1 Mario Neugebauer DB1 DB1-12 041-SQL-DQL 1 Mario Neugebauer Einführung Informationsmodellierung Relationales Datenbankmodell Datenbanksprache SQL Einführung Daten-Abfrage-Sprache - DQL Daten-Definitions-Sprache - DDL Daten-Manipulations-Sprache

Mehr

ACCESS SQL ACCESS SQL

ACCESS SQL ACCESS SQL ACCESS SQL Datenbankabfragen mit der Query-Language ACCESS SQL Datenbankpraxis mit Access 34 Was ist SQL Structured Query Language Bestehend aus Datendefinitionssprache (DDL) Datenmanipulationssprache

Mehr

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1) Vorlesung #3 SQL (Teil 1) Fahrplan Wiederholung/Zusammenfassung Relationales Modell Relationale Algebra Relationenkalkül Geschichte der Sprache SQL SQL DDL (CREATE TABLE...) SQL DML (INSERT, UPDATE, DELETE)

Mehr

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis Daniel Warner SQL Das Praxisbuch Mit 119 Abbildungen Franzis Inhaltsverzeichnis Teil I - Einleitung 15 1 Einleitung 17 1.1 Zum Aufbau des Buchs 17 1.2 Hinweise zur Buch-CD 18 1.3 Typografische Konventionen

Mehr

Schnellübersichten. SQL Grundlagen und Datenbankdesign

Schnellübersichten. SQL Grundlagen und Datenbankdesign Schnellübersichten SQL Grundlagen und Datenbankdesign 5 Datenbanken 2 6 Tabellen erstellen und verwalten 3 7 Daten einfügen, aktualisieren, löschen 4 8 Einfache Datenabfragen 5 9 Schlüsselfelder und Indizes

Mehr

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Grundlagen von SQL Informatik 2, FS18 Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Markus Dahinden 13.05.18 1 Grundlagen von SQL (Structured Query Language)

Mehr

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47 SQL-Sprachvielfalt DML Data Manipulation Language: Daten einfügen, ändern und löschen DQL Data Query Language: Daten abfragen DDL Data Definition Language: Tabellen und andere Strukturelemente erzeugen,

Mehr

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp 5/14/18 Grundlagen von SQL (Structured Query Language) Datenbanksprache Befehle Datenbanken und Tabellen erstellen/verändern Daten manipulieren (eingeben, ändern, löschen) Datenbank durchsuchen (Queries

Mehr

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) SQL DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) DML(Data Manipulation Language) SQL Abfragen Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro

Mehr

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15 Vorwort..................................................... 13 Kapitel 1 Einleitung.......................................... 15 Kapitel 2 SQL der Standard relationaler Datenbanken... 19 2.1 Die Geschichte................................

Mehr

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung Wiederholung VU Datenmodellierung VL Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

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

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT SQL SQL SELECT Anweisung Mit der SQL SELECT-Anweisung werden Datenwerte aus einer oder mehreren Tabellen einer Datenbank ausgewählt. Das Ergebnis der Auswahl ist erneut eine Tabelle, die sich dynamisch

Mehr

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

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15 Vorwort 13 Kapitel 1 Einleitung 15 Kapitel 2 SQL-der Standard relationaler Datenbanken... 19 2.1 Die Geschichte 19 2.2 Die Bestandteile 20 2.3 Die Verarbeitung einer SQL-Anweisung 22 2.4 Die Struktur von

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 fett und in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche

Mehr

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken Rückblick Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken Data Definition Language zur Schemadefinition (z.b. CREATE TABLE zum Anlegen von Tabellen) Data

Mehr

Create-Table-Befehl. CREATE TABLE Tabellenname ( { Spalte { Datentyp Gebietsname } [ Spaltenbedingung [ ] ] Tabellenbedingung }

Create-Table-Befehl. CREATE TABLE Tabellenname ( { Spalte { Datentyp Gebietsname } [ Spaltenbedingung [ ] ] Tabellenbedingung } Create-Table-Befehl CREATE TABLE Tabellenname ( { Spalte { Datentyp Gebietsname } [ Spaltenbedingung [ ] ] Tabellenbedingung } [, ] ) Liste der wichtigsten Datentypen in SQL INTEGER INT SMALLINT NUMERIC(x,y)

Mehr

Datenmanipulation in SQL (1): Subselect:

Datenmanipulation in SQL (1): Subselect: Datenmanipulation in SQL (1): Unter Datenmanipulation wird sowohl der lesende Zugriff auf die Daten (Select Statement) als auch die Änderung von Daten (Insert, Delete, Update) subsummiert. Wir beginnen

Mehr

[ SQL] Wissen, das sich auszahlt

[  SQL] Wissen, das sich auszahlt [www.teia.de SQL] Wissen, das sich auszahlt INHALT SEITE 12 [I] 1] Einführung in SQL und relationale Datenbanken 12 14 16 18 11 1.1 1.2 Einführung Die Structured Query Language (SQL) Tabellen Mehrere Tabellen

Mehr

SQL Data Manipulation Language (DML) und Query Language (QL)

SQL Data Manipulation Language (DML) und Query Language (QL) Innsbruck Information System University of Innsbruck School of Management Information Systems Universitätsstraße 15 6020 Innsbruck SQL Data Manipulation Language (DML) und Query Language (QL) Universität

Mehr

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 12, 30.5.2016 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Datendefinition (DDL) in SQL Datentypen character (n),

Mehr

Microsoft Access 2010 SQL nutzen

Microsoft Access 2010 SQL nutzen Microsoft Access 2010 SQL nutzen Welche Bestellungen hat Kunde x aufgegeben? Welche Kunden haben noch nie bestellt? Wer hat welche Bestellungen von welchen Kunden aufgenommen? S(tructured)Q(uery)L(anguage)

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

SQL: Weitere Funktionen

SQL: Weitere Funktionen Vergleich auf Zeichenketten SQL: Weitere Funktionen LIKE ist ein Operator mit dem in Zeichenketten andere Zeichenketten gesucht werden; zwei reservierte Zeichen mit besonderer Bedeutung sind hier % (manchmal

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

Datenbanken im WI-Unterricht mit

Datenbanken im WI-Unterricht mit Datenbanken im WI-Unterricht mit Inhaltsverzeichnis 1 ER-Modell - Entity Relationship Modell 1 1.1 Entitäten................................................. 2 1.2 Relationen................................................

Mehr

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 7a: Structured Query Language (SQL) MySQL 5.0 (enthalten in: http://www.apachefriends.org/de/xampp.html)

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. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL Früherer Name: SEQUEL SQL: Structured Query Language Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative Anfragesprache Teile von SQL Vier große Teile:

Mehr

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL Datenmodifikation mit SQL Folie 45 SQL - Datenmodifikation Einfügen INSERT INTO Relation [(Attribut, Attribut,...)] VALUES (Wert, Wert,...) INSERT INTO Relation [(Attribut, Attribut,...)] SFW-Anfrage Ändern

Mehr

Praktische SQL-Befehle

Praktische SQL-Befehle Praktische SQL-Befehle Datenbanksysteme I WiSe 2018/2019 Todor Ivanov DB1 WS2018 1 Praktische SQL-Befehle Nested Selects Inserts Updates Views Triggers Constraints Functions Voraussetzung: Laptop + MySQL/

Mehr

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) SQL DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) DML(Data Manipulation Language) SQL Abfragen Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro

Mehr

Datenbankabfragen und Datenmanipulation

Datenbankabfragen und Datenmanipulation Datenbankabfragen und Datenmanipulation Datenbankabfragen auf einer Tabelle...1 SELECT Abfrage...1 Projektion...2 Wertausdrücke...3 Numerische Wertausdrücke...3 Zeichenkettenwertausdrücke...3 Datums und

Mehr

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) DDL ist Teil von SQL (Structured

Mehr

Management of Information Systems. Tutorat: Session 3 Einführung in SQL

Management of Information Systems. Tutorat: Session 3 Einführung in SQL Management of Information Systems Tutorat: Session 3 Einführung in SQL 2 Setup 1. XAMPP-Console starten in C:\xampp\ 1. Apache starten bis erscheint 2. MySQL starten bis erscheint 3. An den Rechnern im

Mehr

dbis Praktikum DBS I SQL Teil 2

dbis Praktikum DBS I SQL Teil 2 SQL Teil 2 Übersicht Fortgeschrittene SQL-Konstrukte GROUP BY HAVING UNION / INTERSECT / EXCEPT SOME / ALL / ANY IN / EXISTS CREATE TABLE INSERT / UPDATE / DELETE 2 SELECT Syntax SELECT FROM [WHERE [GROUP

Mehr

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language Datenbanksysteme Kapitel 5: SQL Data Manipulation Language Prof. Dr. Peter Chamoni Mercator School of Management Lehrstuhl für Wirtschaftsinformatik, insb. Business Intelligence Prof. Dr. Peter Chamoni

Mehr

SQL. erfolgreich Madrid Amsterdam An imprint of Pearson

SQL. erfolgreich Madrid Amsterdam An imprint of Pearson 10 01101110 John-Harry 01110 Wieken 0110 0110 0110 10 01101 011 01110 0110 010 011011011 0 10 01111010 01101 011011 0110 0110 01110 011011101 01101 0110 010 0101 10 011011101 0101 0110 010 010 0110 01101110

Mehr

Kapitel 8: Zugriffskontrolle

Kapitel 8: Zugriffskontrolle Kapitel 8: Zugriffskontrolle 8. Zugriffskontrolle 8. Datenbanken enthalten häufig vertrauliche Informationen, die nicht jedem Anwender zur Verfügung stehen dürfen. Außerdem wird man nicht allen Anwendern

Mehr

Die Anweisung create table

Die Anweisung create table SQL-Datendefinition Die Anweisung create table create table basisrelationenname ( spaltenname 1 wertebereich 1 [not null],... spaltenname k wertebereich k [not null]) Wirkung dieses Kommandos ist sowohl

Mehr

Datenbanken. Zusammenfassung. Datenbanksysteme

Datenbanken. Zusammenfassung. Datenbanksysteme Zusammenfassung Datenbanksysteme Christian Moser Seite 1 vom 7 12.09.2002 Wichtige Begriffe Attribut Assoziation API Atomares Attribut Datenbasis DBMS Datenunabhängigkeit Datenbankmodell DDL DML DCL ER-Diagramm

Mehr

SQL. Datendefinition

SQL. Datendefinition SQL Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer oder logischer Natur sein. Das folgende Kapitel beschäftigt sich mit der

Mehr

PRG2 Folien Zicari Teil 5. Einführung in Datenbanken SS 2007

PRG2 Folien Zicari Teil 5. Einführung in Datenbanken SS 2007 PRG2 Folien Zicari Teil 5 Einführung in Datenbanken SS 2007 Prof. Dott. Ing. Roberto Zicari Johann Wolfgang Goethe-Universität Frankfurt am Main PRG2 V-1 Fachbereich Informatik und Mathematik SQL SQL =

Mehr

Bibliografische Informationen digitalisiert durch http://d-nb.info/995021198

Bibliografische Informationen digitalisiert durch http://d-nb.info/995021198 Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT INTO) 95 5 Daten abfragen (SELECT) 99 6 Daten aus mehreren Tabellen abfragen (JOIN) 143 7 Unterabfragen

Mehr

Datenbanksysteme Teil 6 MySQL DML Die SELECT-Anweisung. Stefan Maihack Dipl. Ing. (FH) Datum:

Datenbanksysteme Teil 6 MySQL DML Die SELECT-Anweisung. Stefan Maihack Dipl. Ing. (FH) Datum: Datenbanksysteme Teil 6 MySQL DML Die SELECT-Anweisung Stefan Maihack Dipl. Ing. (FH) Datum: 28.10.2005 1 einfachste SELECT-Anweisung Alle Inhalte einer Tabelle holen: SELECT * FROM land; 2 DML - SELECT

Mehr

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) SQL DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) DML(Data Manipulation Language) SQL Abfragen Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro

Mehr

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1 Kapitel 9 Embedded SQL Vorlesung Datenbanken 1 Embedded SQL (siehe auch [Date00]) Arbeitsweise ähnlich PL/SQL, allerdings: Normale Programmiersprache mit eingestreuten SQL-Befehlen und anderen Befehlen

Mehr

SQL. Allgemeines CREATE TABLE DROP TABLE ALTER TABLE INSERT INTO UPADTE DELETE SELECT

SQL. Allgemeines CREATE TABLE DROP TABLE ALTER TABLE INSERT INTO UPADTE DELETE SELECT Allgemeines DROP TABLE ALTER TABLE INSERT INTO UPADTE DELETE SELECT Gute Tabellen sollen nun in eine DB auf den Rechner. Verwenden dazu DBMS ite. Verwenden Datenbanksprache (structured query language).

Mehr

Tabellen verknüpfen: Joins

Tabellen verknüpfen: Joins SQL2-1 - Tabellen verknüpfen: Joins Bisher haben wir Tabellen mittels Unterabfragen verknüpft d. h. eine Spalte einer anderen Tabelle kann ein Selektionskriterium liefern. Wie kann man aber eine "echte"

Mehr

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird. Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,

Mehr

DB-Datenbanksysteme. DB SQL-DML 1 Mario Neugebauer

DB-Datenbanksysteme. DB SQL-DML 1 Mario Neugebauer DB-Datenbanksysteme DB-13 043-SQL-DML 1 Mario Neugebauer Einführung Informationsmodellierung Relationales Datenbankmodell Datenbanksprache SQL Einführung Daten-Abfrage-Sprache - DQL Daten-Definitions-Sprache

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

Datenmanipulation in SQL. Select Anweisung

Datenmanipulation in SQL. Select Anweisung Datenmanipulation in SQL Unter Datenmanipulation wird sowohl der lesende Zugriff auf die Daten (Select Statement) als auch die Änderung von Daten (Insert, Delete, Update) subsummiert. Wir beginnen mit

Mehr

Datenschutz: Zugriffsrechte in SQL

Datenschutz: Zugriffsrechte in SQL 12. Datenschutz: Zugriffsrechte in SQL 12-1 12. Datenschutz: Zugriffsrechte in SQL 12-2 Inhalt Datenschutz: Zugriffsrechte in SQL 1. Anforderungen, Allgemeines 2. Die SQL-Befehle GRANT und REVOKE 3. Sichten

Mehr

6. Datendefinition in SQL

6. Datendefinition in SQL 6. Datendefinition in SQL Datendefinition Schema, Datentypen, Domains Erzeugen von Tabellen (CREATE TABLE) Schemaevolution: Ändern/Löschen von Tabellen Sichtkonzept (Views) CREATE VIEW / DROP VIEW Problemfälle

Mehr

Dieter Staas Das Einsteigerseminar SQL

Dieter Staas Das Einsteigerseminar SQL 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Dieter Staas Das Einsteigerseminar SQL Vorwort 15 Einleitung 17 Lernen

Mehr

12. Datenschutz: Zugriffsrechte in SQL Datenschutz: Zugriffsrechte in SQL

12. Datenschutz: Zugriffsrechte in SQL Datenschutz: Zugriffsrechte in SQL 12. Datenschutz: Zugriffsrechte in SQL 12-1 Datenschutz: Zugriffsrechte in SQL 12. Datenschutz: Zugriffsrechte in SQL 12-2 Inhalt 1. Anforderungen, Allgemeines 2. Die SQL-Befehle GRANT und REVOKE 3. Sichten

Mehr

Relationales Datenbanksystem Oracle

Relationales Datenbanksystem Oracle Relationales Datenbanksystem Oracle 1 Relationales Modell Im relationalen Modell wird ein relationales Datenbankschema wie folgt beschrieben: RS = R 1 X 1 SC 1... R n X n SC n SC a a : i=1...n X i B Information

Mehr

Oracle 10g Einführung

Oracle 10g Einführung Kurs Oracle 10g Einführung Teil 5 Einführung Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 16 Seite 1 von 16 Agenda 1 Tabellen und Views erstellen 2 Indizes

Mehr

6. Datendefinition in SQL

6. Datendefinition in SQL 6. Datendefinition in SQL Datendefinition Schema, Datentypen, Domains Erzeugen von Tabellen (CREATE TABLE) Schemaevolution: Ändern/Löschen von Tabellen Sichtkonzept (Views) CREATE VIEW / DROP VIEW Problemfälle

Mehr

Einführung in die Spezialisierungsrichtungen

Einführung in die Spezialisierungsrichtungen Einführung in die Spezialisierungsrichtungen SQL Dr. Matthias Baumgart 23. November 2012 Einführung Logische Datenbankorganisation Die logische Datenbankorganisation erfolgt in drei Schritten: 1 Aufstellen

Mehr

VIEWS UND WEITERE TABELLEN-OPERATIONEN

VIEWS UND WEITERE TABELLEN-OPERATIONEN KAPITEL 9 VIEWS UND WEITERE TABELLEN-OPERATIONEN 9.1 Vereinbarung und Einsatz von Views 9.1.1 Einrichtung von Views Die CREATE VIEW-Anweisung Von Ausnahmen abgesehen ist es wie wir zuvor erläutert haben

Mehr

Seminar 1 SQL Abfragen DML. MatrNr Name Vorname Age Gruppe Schmidt Hans Meisel Amelie

Seminar 1 SQL Abfragen DML. MatrNr Name Vorname  Age Gruppe Schmidt Hans Meisel Amelie Seminar 1 SQL Abfragen DML Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro 21 331 1235 Meisel Amelie meisel@cs.ro 22 331 1236 Krause Julia krause@cs.ro 21 332 1237 Rasch

Mehr

Datenbanksysteme 2013

Datenbanksysteme 2013 Datenbanksysteme 2013 Kapitel 8: Datenintegrität Vorlesung vom 14.05.2013 Oliver Vornberger Institut für Informatik Universität Osnabrück Datenintegrität Statische Bedingung (jeder Zustand) Dynamische

Mehr

Datenmanagement I SoSe 2006 Aufgabenblatt 4

Datenmanagement I SoSe 2006 Aufgabenblatt 4 Datenmanagement I SoSe 2006 Aufgabenblatt 4 June 11, 2009 Versuchen Sie, einige der Anfragen zu formulieren (ab Punkt 6), die im Tutorium stehen, das hier zu finden ist: http://wwwiti.cs.uni-magdeburg.de/iti_db/lehre/dm/tut/tutorium.html.

Mehr

Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5

Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5 Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov. 2007 Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5 Aufgabe 1: SQL-Queries Datenbanksysteme I a) Geben Sie

Mehr

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs Datenbanken SQL Insert, Update, Delete, Drop Krebs Inhalt 1. Datensätze einfügen: INSERT 2. Datensätze verändern: UPDATE 3. Datensätze löschen: DROP vs. DELETE Beispiel Datenbank Schule Klasse P_Klasse

Mehr

Übungsaufgaben mit Lösungen

Übungsaufgaben mit Lösungen Abt. Wi.-Inf. II Wirtschaftsinformatik II: SQL 1 Übungsaufgaben mit Lösungen 1) Ausgabe sämtlicher Spalten der Tabelle DEPARTMENT. SELECT * FROM DEPARTMENT 2) Ausgabe aller Projektnummern und Projektnamen.

Mehr

Relationale Datenbanksprachen

Relationale Datenbanksprachen Relationale Datenbanksprachen SQL-Kern Weitere Sprachkonstrukte von SQL SQL-Versionen Andreas Heuer, Gunter Saake Datenbanken I 9-1 Sprachen und ihre Grundlagen Grundlagen Kommerzielle Sprachen ISBL SQL

Mehr

Marcus Throll, Oliver Bartosch. Einstieg in SQL. Verstehen, einsetzen, nachschlagen. Galileo Press

Marcus Throll, Oliver Bartosch. Einstieg in SQL. Verstehen, einsetzen, nachschlagen. Galileo Press Marcus Throll, Oliver Bartosch Einstieg in SQL Verstehen, einsetzen, nachschlagen Galileo Press Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT

Mehr

SQL ist eine relational vollständige Datenbanksprache.

SQL ist eine relational vollständige Datenbanksprache. SQL-Abfragen 1. Einleitung SQL ist eine relational vollständige Datenbanksprache. SQL steht für Structured Query Language. Der englische Ausdruck Query steht für Abfrage. SQL wurde in den siebziger Jahren

Mehr

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Datendefinition (DDL) in SQL Anlegen einer Tabelle create

Mehr

Erzeugung und Veränderung von Tabellen

Erzeugung und Veränderung von Tabellen Datenbanken - Objekte Erzeugung und Veränderung von Tabellen Objekt Tabelle View Sequence Index Synonym Basiseinheit zum Speichern; besteht aus Zeilen und Spalten; Logische Repräsentation; kann Teilmengen

Mehr

select DISTINCT Name, ort From Verkauf; selektiert Name und Ort von Tabelle Verkauf - DISTINCT steht dass keine Zeile mehrfach vorkommt

select DISTINCT Name, ort From Verkauf; selektiert Name und Ort von Tabelle Verkauf - DISTINCT steht dass keine Zeile mehrfach vorkommt Some SQL Queries % you can use them with the project Buch/Verlag select Name, ort From Verkauf; selektiert Name und Ort von Tabelle Verkauf select DISTINCT Name, ort From Verkauf; selektiert Name und Ort

Mehr

Datenbanksysteme Kapitel 2: SQL Data Definition Language

Datenbanksysteme Kapitel 2: SQL Data Definition Language Datenbanksysteme Kapitel 2: SQL Data Definition Language Prof. Dr. Peter Chamoni Mercator School of Management Lehrstuhl für Wirtschaftsinformatik, insb. Business Intelligence Prof. Dr. Peter Chamoni -

Mehr

Oracle SQL. Seminarunterlage. Version vom

Oracle SQL. Seminarunterlage. Version vom Seminarunterlage Version: 12.16 Version 12.16 vom 12. Oktober 2017 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language) Einführung in SQL 1. Grundlagen Structured Query Language Viele Dialekte Unterteilung: i. DDL (Data Definition Language) ii. iii. DML (Data Modifing Language) DRL (Data Retrival Language) 1/12 2. DDL Data

Mehr