Die SQL-Select-Anweisung
|
|
|
- Louisa Raske
- vor 10 Jahren
- Abrufe
Transkript
1 Die SQL-Select-Anweisung Holger Jakobs Inhaltsverzeichnis 1 Einleitung 1 2 Auswertungsreihenfolge 5 3 Abfragen auf eine Tabelle einfache Abfrage Abfrage mit Projektion Abfrage mit Selektion Selektion und Projektion Aggregat-Funktionen Ähnlichkeitssuche Abfragen mit mehreren Tabellen 7 5 Verknüpfung von Relationen mit sich selbst 9 6 Unterabfragen Subquery mit IN und = Subquery mit ALL, ANY und SOME Vereinigungsmengenbildung 11 8 Natürlicher Verbund mit ON- oder USING-Klausel 12 9 Korreliertes Subquery Bedingte Ausdrücke 15 1 Einleitung Die Structured Query Language SQL ist in erster Linie eine Abfragesprache wie der Name schon sagt (query = Abfrage). Darüber hinaus dient sie auch der Datenveränderung, 1
2 1 EINLEITUNG SELECT ALL * [ ] { } attribute-list DISTINCT functions FROM table-name [ alias ] [, table-name [ alias ] ]... { } table-name [ [ NATURAL ] [ LEFT RIGHT ] JOIN table-name ]... [ WHERE condition ] Auswahl von passenden Tupeln [ GROUP BY column-name [, column-name ]... [ HAVING condition ] ] [ ORDER BY column-spec [ ASC DESC ] [,... ] ] Festlegen der Quell-Tabellen Auswahl von passenden Gruppen Sortierung des Ergebnisses Abbildung 1: Ausschnitt aus der SQL-Select-Syntax also dem Einfügen, Ändern und Löschen von Daten (DML = data manipulation language) sowie Erzeugung von Datenbanken, d. h. der Beschreibung der Relationen (Tabellen) mit ihren Attributen (Spalten) und ihren Beziehungen untereinander (DDL = data definition language). Hier soll zunächst die Abfragefunktion, die mit dem SELECT-Kommando ausgeführt wird, erläutert werden. Dieses Kommando ist einerseits das komplexeste, andererseits aber auch das am häufigsten benutzte. Einen Auszug aus der Syntax finden Sie in Abbildung 1. SQL ist Groß- und Kleinschreibung egal wie den meisten Sprachen aus derselben Zeit. Aus Gründen der Übersichtlichkeit werden die SQL-Schlüsselwörter in diesem Text groß geschrieben, so dass man sie von den Namen der Tabellen und Spalten leicht unterscheiden kann. Innerhalb von Zeichenketten werden Groß- und Kleinschreibung natürlich unterschieden. Das SELECT-Kommando wird sowohl beim interaktiven Arbeiten mit SQL, als auch beim Programmieren mit SQL (embedded SQL, JDBC) verwendet. Mit dem SELECT-Kommando können alle drei Relationen-Operationen (Selektion, Projektion und Verbund) ausgeführt werden. SQL-Kommandos können sich über mehrere Zeilen erstrecken (das Zeilenende hat keine Bedeutung), sie werden meist mit einem Semikolon abgeschlossen. Operator Bedeutung = ist gleich > größer als >= größer oder gleich < kleiner als <= kleiner oder gleich <> ungleich Durch die Auswahl der Spalten, die man statt des Sterns hinter dem Schlüsselwort SELECT angibt, erzeugt man eine Projektion. Statt Spaltennamen der verwendeten Tabellen können auch Funktionen und Operationen verwendet werden, z. B. CURRENT_TIME für die ak- 2
3 1 EINLEITUNG tuelle Zeit, sogenannte Aggregatfunktionen (siehe Abschnitt 3.5 auf Seite 6) oder mathematische Ausdrücke z. B. anzahl + 3. Die WHERE-Klausel dient zur Einschränkung des Suchergebnisses auf Tupel (Zeilen), die eine bestimmte Bedingung erfüllen, also eine Selektion. Oft werden dabei Attributwerte mit festen Werten oder Ergebnissen von Funktionen wie CURRENT_TIME verglichen. Die üblichen Operatoren sind vorhanden, siehe Tabelle. Auch Mengenvergleiche sind möglich über den Operator IN (mathematisch für ist Element von ), z. B. WHERE name IN ('Fritz', 'Anna', 'Uta'). Die Menge kann dabei wie hier direkt hingeschrieben werden oder auch Ergebnis einer weiteren SELECT-Abfrage sein, was als Unterabfrage oder Subquery bezeichnet wird (siehe auch Abschnitt 6 auf Seite 10). Wie man in obigem Beispiel sieht, sind Zeichenketten in einfache Hochkommas zu schreiben. Auch Datums- und Zeitwerte werden als Zeichenketten an die Datenbank geschickt und kommen als solche auch von dort zurück, so dass man die Abfrage aller Einträge mit einem bestimmten Datum so schreibt: WHERE datum=' ' Außer mit festen Werten wird auch oft mit dem NULL-Wert verglichen, d. h. es wird geprüft, ob ein bestimmtes Attribut einen oder keinen Wert hat. Dies geschieht mit der Klausel attributname IS NULL bzw. attributname IS NOT NULL. Dabei muss darauf geachtet werden, dass ein Vergleich mittels des Gleichheitszeichens hier immer falsche Ergebnisse liefert völlig unabhängig vom tatsächlichen Wert des Attributs, d. h. die Verwendung des Schlüsselworts IS ist bei Vergleichen mit NULL vorgeschrieben. Es sollen zwei Relationen vorliegen: Student (MatrNr, Name, Fach, Semester) und Hört (MatrNr, VorlesungNr) Relationenalgebra SQL-SELECT-Statement 1. Student [Fach='Physik'] SELECT * FROM student WHERE fach='physik'; 2. Student [Name, Fach] SELECT name, fach FROM student; 3. Student Hört SELECT * FROM student, hört; 4. Student Hört SELECT * FROM student s, hört h WHERE s.matrnr=h.matrnr; SELECT * FROM student JOIN hört USING (matrnr); SELECT * FROM student s JOIN hört h ON s.matrnr=h.matrnr; SELECT * FROM student NATURAL JOIN hört; 1. ist eine Selektion, bei der alle Spalten (*) der Relation ausgewählt werden, aber nur bestimmte Tupel (WHERE fach='physik'). 2. ist eine Projektion, bei der alle Tupel der Relation ausgewählt werden (keine WHERE- Klausel), aber nur bestimmte Attribute (Name, Fach). 3. ist ein einfacher Verbund, bei dem alle Studenten-Tupel mit allen Hört-Tupeln verknüpft werden. Die Ergebnistabelle ist sehr groß hat wenig Aussagekraft (praxisirrelevant). 3
4 1 EINLEITUNG 4. Meist wird daher der natürliche Verbund verwendet, bei dem die Gleichheit von je einem Attribut gefordert wird. In der Schreibweise der Relationenalgebra wird nicht deutlich, wie die Verknüpfung genau aussieht, d. h. es wird i. a. über das gleichnamige Attribut (bzw. alle gleichnamigen Attribute) verknüpft. Bei SQL gibt es mehrere Möglichkeiten, den natürlichen Verbund darzustellen. Entweder wird eine Bedingung zum einfachen Join angegeben (S.MatrNr=H.MatrNr), was die klassische Schreibweise ist, oder es wird statt des Kommas das Schlüsselwort JOIN verwendet, welches einen der Zusätze USING oder ON benötigt. Hinter USING steht eine Liste aller Attribute, die inhaltlich gleich sein müssen, hinter ON eine Bedingung. Weiterhin gibt es die Möglichkeit, NATURAL JOIN zu schreiben, wodurch eine Gleichheitsbedingung für alle Attribute erzeugt wird, die in beiden Tabellen vorkommen. Diese letzte Variante ist mittlerweile die gängiste geworden. Sehr oft werden Selektion, Projektion und Verbund kombiniert verwendet. Es ist bei SQL nicht vorgesehen, die Ergebnisrelation temporär zu speichern und anschließend mit dieser weiterzuarbeiten. Man muss immer ausgehend von den in der Datenbank vorliegenden Tabellen oder externen Sichten alle Operationen auf einmal durchführen. Tatsächlich ist dies auch der bessere Ansatz, weil man bei gespeicherten Ergebnissen erstens viel Speicherplatz benötigen und außerdem mit historischen Daten arbeiten würde. Trotzdem können manche Datenbanken über den Standard hinaus temporäre Tabellen anlegen, die beim Abmelden automatisch gelöscht werden. Für häufig benötigte Abfragen kann man zudem Sichten auf die Daten speichern, die aber als Abfragevorschrift und nicht als Daten abgelegt werden sogenannte Views. Außerdem kann überall dort, wo die Syntax eine Tabelle erfordert (typischerweise hinter FROM) auch eine beliebig komplexe Unterabfrage (siehe Abschnitt 6 auf Seite 10 eingesetzt werden, der dann allerdings ein Aliasname gegeben werden muss. Eine Tabelle mit den Matrikelnummern und Vorlesungsnummern aller Physikstudenten in Vorlesungsnummernreihenfolge kann man mit folgendem SQL-Kommando bekommen: SELECT matrnr, vorlesungnr FROM student NATURAL JOIN hört WHERE fach='physik' ORDER BY vorlesungnr; oder SELECT matrnr, vorlesungnr FROM student JOIN hört USING (matrnr) WHERE fach='physik' ORDER BY vorlesungnr; 4
5 3 ABFRAGEN AUF EINE TABELLE 2 Auswertungsreihenfolge Die einzelnen Klauseln eines SQL-Kommandos werden immer in einer bestimmten Reihenfolge ausgewertet, die nicht mit der Reihenfolge im Kommando übereinstimmt: FROM WHERE GROUP BY HAVING SELECT ORDER BY definiert die Ausgangstabellen selektiert die Zeilen, die der Bedingung genügen gruppiert Zeilen auf der Basis gleicher Werte in Spalten selektiert Gruppen, die der Bedingung genügen projiziert Spalten sortiert Zeilen auf der Basis von Spaltenwerten. 3 Abfragen auf eine Tabelle 3.1 einfache Abfrage Eine ganz einfache Abfrage zeigt den gesamten Inhalt einer Tabelle: SELECT * FROM spieler; Es werden also keine expliziten Spaltennamen angegeben, sondern statt dessen ein Stern. Der Tabellenname wird hinter FROM genannt. 3.2 Abfrage mit Projektion SELECT spielnr, spielname, vorname FROM spieler; Um nicht alle Spalten zu bekommen, gibt man die gewünschten Spaltennamen hinter SELECT an. Diese Operation nennt man Projektion. 3.3 Abfrage mit Selektion SELECT * FROM spieler WHERE spielnr > 10; Um nicht alle Zeilen zu bekommen, gibt man eine WHERE-Klausel mit einer Bedingung an, die die gewünschten Tupel auswählt. Diese Operation nennt man Selektion. Die Bedingung kann ein Vergleich sein zwischen einem Spaltenwert und einem Literal (wie hier im Beispiel mit dem integer-literal 10) oder zwischen zwei Spaltenwerten. Darüber hinaus sind weitere Bedingungen möglich einzige Voraussetzung ist, dass hierbei ein boolescher Wert dargestellt wird. 3.4 Selektion und Projektion Selektion und Projektion werden sehr häufig miteinander kombiniert: SELECT spielnr, spielname, vorname FROM spieler WHERE spielnr > 10; 5
6 3.5 Aggregat-Funktionen 3 ABFRAGEN AUF EINE TABELLE Name SUM(Attribut) COUNT (*) COUNT (Attribut) COUNT (DISTINCT Attribut) AVG (Ausdruck) MIN (Ausdruck) MAX (Ausdruck) Bedeutung Summe aller Werte Anzahl der Tupel in der Gruppe Anzahl der Tupel mit Wert ungleich NULL in der Gruppe Anzahl der verschiedenen Werte des Attributs in der Gruppe arithmetisches Mittel aller Werte kleinster Wert größter Wert Tabelle 1: Tabelle der Aggregatfunktionen 3.5 Aggregat-Funktionen Aggregat-Funktionen fassen Werte zusammen. Werden sie ohne GROUP BY-Klausel verwendet, so wird nur ein einziges Tupel ausgegeben. In Verbindung mit einer GROUP BY-Klausel wird für jede Gruppe ein Tupel ausgegeben. In Tabelle 1 sind die Aggregatfunktionen aufgeführt. Die Funktionen COUNT, MIN und MAX sind auf alle Arten von Attributen anwendbar, SUM und AVG nur auf numerische Ausdrücke. Bei COUNT kann man entweder ein beliebiges Attribut oder einen Stern (*) als Parameter angeben das Ergebnis ist gleich, sofern alle Tupel einen Wert in dem genannten Attribut haben. Haben einige Tupel dagegen keinen Wert (also einen sogenannten NULL-Wert nicht zu verwechseln mit dem Zahlenwert 0), so werden sie nicht mitgezählt. Möchte man nur die Anzahl der verschiedenen Werte haben, so kann man das Wort DISTINCT mit im Parameter angeben. Beispiel: SELECT COUNT (DISTINCT abt_nr) FROM mitarbeiter; gibt aus, wievielen verschiedenen Abteilungen die Mitarbeiter zugeordnet sind. Ohne DISTINCT würde die Anzahl der Mitarbeiter (= Anzahl der Tupel) ausgegeben. Lediglich wenn es Mitarbeiter gibt, bei denen keine Abteilungsnummer eingetragen ist, würden diese nicht mitgezählt. Aggregat-Funktionen können auch in HAVING-Klauseln verwendet werden. Beispiel, das die Namen der Orte ausgibt, in denen genau zwei Spieler wohnen: SELECT ort FROM spieler GROUP BY ort HAVING COUNT (*) = 2; Ein weiteres Beispiel für den Einsatz einer Aggregatfunktion mit Bezug auf die Kundenund Rechnungstabellen (siehe Abbildung 2 auf Seite 8) wäre folgendes: SELECT KName, RNr, RDatum, SUM(Anzahl * APreis) AS RBetrag FROM kunden NATURAL JOIN rechnungen NATURAL JOIN rzeilen NATURAL JOIN artikel; Zeige Kundennamen, die Rechnungsnummern, Rechnungsdatum und Rechnungsbetrag. 6
7 4 ABFRAGEN MIT MEHREREN TABELLEN 3.6 Ähnlichkeitssuche Die Rechenoperation SUM (Anzahl * APreis) wird ausgeführt und die Spalte wird mit dem Namen RBetrag angezeigt. Zu jeder Rechnungszeile wird also der zugehörige Artikelpreis aus der Artikeltabelle geholt. Alle vier Tabellen werden miteinander über einen natürlichen Verbund verknüpft. Überall dort, wo in der Tabellenabbildung eine Verbindungslinie ist, kann man auch das NATURAL JOIN zwischen die Tabellennamen schreiben. Man kann hier deutlich sehen, dass es wenig sinnvoll wäre, die Rechnungsbeträge bei den Rechnungen zu hinterlegen, weil sie sich aus den einzelnen Rechnungspositionen (Zeilen) leicht errechnen lassen Ähnlichkeitssuche SQL bietet die Möglichkeit, nach Zeichenketten auch mit Jokerzeichen (Wildcards) zu suchen. Als Ersatzsymbol für eine beliebige Zeichenkette von 0 oder mehr Zeichen Länge wird das Zeichen '%' verwendet. Man muss allerdings bei Vergleich statt des Zeichens = das Wort LIKE verwenden. Beispiel: SELECT * FROM spieler WHERE ort LIKE '%e%'; gibt alle Angaben zu Spielern aus, die in Orten wohnen, deren Name ein 'e' enthält. Möchte man innerhalb eines LIKE-Vergleichs nach dem Zeichen '%' selbst suchen, muss man es quoten. Das geschieht folgendermaßen:... LIKE '%!%%' escape '!'; sucht nach einer Zeichenkette, die irgendwo das Zeichen '%' enthält. Das Zeichen '_' steht für genau ein beliebiges Zeichen.... LIKE '_U_' sucht also nach einer Zeichenkette mit genau drei Zeichen, von denen das mittlere ein 'U' ist. Im Standard gibt es über das recht schwache LIKE hinaus auch noch die Klausel SIMILAR TO, die etwas in Richtung reguläre Ausdrücke hin weiter entwickelt wurde, ohne deren bereits nach POSIX genormte Syntax zu übernehmen. Bei SIMILAR TO können alternative Zeichenketten durch einen senkrechten Strich getrennt werden, die Wiederholungsfaktoren Stern und Pluszeichen funktionieren wie bei regulären Ausdrücken, ebenso kann man mit runden Klammern gruppieren und in eckigen Klammern Zeichenmengen darstellen. Leider gibt es die Klausel SIMILAR TO nicht bei allen Datenbanksystemen; dafür gibt es in manchen darüber hinaus noch wahlweise die regulären Ausdrücke nach POSIX. 4 Abfragen mit mehreren Tabellen Um Daten aus mehreren Tabellen in einer Abfrage darzustellen, verwendet man eine Verbundoperation. Um den Verbund (Join) näher zu erläutern, hier einige Beispiele. Wir gehen davon aus, dass es folgende Tabellen gibt: Artikel Kunden (ANR, ABezeich, APreis) (KNR, KName, KOrt) 1) In der betrieblichen Praxis ist das ein wenig anders, weil sich Preise nach Rechnungsstellung ändern können, die alten Rechnungen aber weiterhin auf den damaligen Preis lauten. Daher werden bei Rechnungsstellung die Preise meist in die Rechnung kopiert. Ein Rechnungsbetrag als Summe aus allen Positionen wird aber dennoch nicht gespeichert, weil das redundant wäre. 7
8 4 ABFRAGEN MIT MEHREREN TABELLEN Kunden Artikel 1 KNR KName KOrt ANR ABezeich APreis 1 N Rechnungen RNR KNR RDatum LDatum Rechnungs zeile 1 N RNR N ANR Anzahl Abbildung 2: grafische Tabellendarstellung Kunden & Rechnungen Rechnungen (RNR, KNR, RDatum, LDatum) RZeilen (RNR, ANR, Anzahl) Wie in der Abbildung 2 zu sehen ist, sind Informationen über Artikel (Artikelnummer, Artikelbezeichnung, Artikelpreis), über Kunden (Kundennummer, Kundenname, Kundenort), Rechnungen der Kunden (Rechnungsnummer, Kundennummer, Rechnungsdatum, Lieferdatum) und Rechnungszeilen (Rechungsnummer, Artikelnummer, Anzahl) vorhanden. Hierzu nun einige Standardabfragen mit Erläuterung. ˆ Da das Verknüpfungsattribut zwischen den beiden Tabellen in beiden Tabellen gleich heißt und es keine weiteren gleichnamigen Attribute gibt, schreibt man am einfachsten SELECT KNR, KName, RDatum FROM Kunden NATURAL JOIN Rechnungen Die Spalte KNR existiert im Ergebnis nur einmal, weil die beiden KNR-Spalten der Ausgangstabellen automatisch zusammengefasst werden. Eine Variante wäre SELECT K.KNR, KName, RDatum FROM Kunden K, Rechnungen R WHERE K.KNR = R.KNR; Zeige die Kundennummer (die aus der Kundentabelle, aber die aus der Rechnungstabelle ist wegen der WHERE-Bedingung ohnehin identisch), den Kundennamen, das Rechnungsdatum von den Kunden mit den Rechnungen, wobei die Kundennummer aus beiden Tabellen gleich sein muss. Andernfalls würden ja auch Werte aus Rechnungen angezeigt, die gar nicht zu dem Kunden gehören. Die Kundentabelle bekommt 8
9 5 VERKNÜPFUNG VON RELATIONEN MIT SICH SELBST SELECT R1.*, R2.* FROM R R1, R R2; Aliasnamen alle Spalten aus R2 alle Spalten aus R1 Ausgangsrelation Ergebnisrelation R A B R x R R1.A R1.B R2.A R2.B Abbildung 3: Verbund-Operation einer Relation mit sich selbst den Aliasnamen K, die Rechnungstabelle den Namen R, damit man bei der WHEREund der SELECT-Klausel nicht den ganzen, langen Namen angeben muss. ˆ SELECT RDatum, LDatum, ABezeich, Anzahl FROM Rechnungen NATURAL JOIN RZeilen NATURAL JOIN Artikel Auch hier werden die Tabellen wieder über alle gleichnamigen Spalten verbunden, so dass man einfach mehrere NATURAL JOIN-Verbindungen hintereinander durchführen kann. Und wieder die Variante SELECT RDatum, LDatum, ABezeich, Anzahl FROM Rechnungen, RZeilen, Artikel WHERE R.RNR = Z.RNR and Z.ANR = A.ANR; Zeige das Rechnungdatum, das Lieferdatum und die Artikelbezeichnung von allen Rechnungen mit ihren Zeilen. Die Bezeichnung des Artikels muss aus der Artikeltabelle geholt werden daher wird ein Verbund über drei Tabellen nötig. 5 Verknüpfung von Relationen mit sich selbst Bei einer Verbund-Operation kann auch eine Relation mit sich selbst verknüpft werden. Dann müssen allerdings Aliasnamen für die Relationen gewählt werden, um die Spalten eindeutig bezeichnen zu können. Obiges Beispiel ist natürlich nicht sonderlich interessant. Ein praktischer Anwendungsfall der Verknüpfung einer Relation mit sich selbst wäre folgender: Es liegt eine Tabelle mit Büchern vor: Bücher (Titel, Autor, Preis). Es soll nun ermittelt werden, welche Bücher billiger sind als das Buch SQL vom Autor Hoffmann : 9
10 6 UNTERABFRAGEN SELECT b1.* FROM buecher b1, buecher b2 WHERE b2.titel='sql' AND b2.autor='hoffmann' AND b1.preis < b2.preis ORDER BY b1.preis; Der hier vorliegende Verbund ist ein θ-verbund (theta). Die Relation Bücher wird zweimal verwendet: mit den Aliasnamen b1 und b2. Es entsteht also eine neue Relation als Kreuzprodukt der Relation Bücher mit sich selbst. Durch die erste Zeile der WHERE-Klausel werden alle Tupel ausgewählt, die das Buch SQL von Hoffmann in den b2-spalten enthalten. Außerdem muss der Preis in der b1-spalte kleiner sein als der Preis in der b2- Spalte. Jetzt sind in den b1-spalten alle Bücher übrig, die billiger sind als das SQL-Buch von Hoffmann. Es wird nach dem b1-preis sortiert. Es werden alle b1-spalten angezeigt. 6 Unterabfragen Oft möchte man in einer WHERE-Klausel einen Attributwert nicht mit einem festen Wert oder einer festen Menge vergleichen, sondern mit dem Ergebnis einer anderen Datenbank- Abfrage. Diese untergeordnete Datenbank-Abfrage nennt man dann Unterabfrage oder Subquery. Es gibt mehrere Varianten, wie man sie einsetzen kann, denn sie ist nicht nur in Vergleichen erlaubt, sondern überall dort, wo eine Tabelle vorkommen kann. 6.1 Subquery mit IN und = Grundsätzlich ist das Ergebnis einer Abfrage eine Menge, so dass man auch Mengenoperatoren verwenden muss, beispielsweise den ist Element von -Operator ( ) namens IN: SELECT * FROM artikel WHERE anr IN (SELECT anr FROM auftraege); Es wird bei jedem einzelnen Tupel der Hauptabfrage geprüft, ob der Wert des Attributs anr im Ergebnis der Unterabfrage vorkommt. Die meisten Datenbanksysteme lassen nur Unterabfragen mit 1 Spalte zu. Natürlich kann man auch die Artikel herausfinden, die in keinem Auftrag vorkommen. Dazu wird die Operation ist kein Element von (/ ) verwendet, also heißt es jetzt NOT IN: SELECT * FROM artikel WHERE anr NOT IN (SELECT anr FROM auftraege); Sollte das Ergebnis der Unterabfrage nur ein einziges Tupel sein, so kann man den Vergleich auch mit dem Operator = machen. Hier wird dann nicht streng zwischen einem Element und einer Menge mit einem Element unterschieden; mit IN würde es natürlich auch funktionieren. SELECT * FROM sportler WHERE zeit = (SELECT MIN(zeit) FROM sportler); Hinter dem IN-Operator kann man eine Menge auch explizit durch Aufzählung angeben, d. h. ohne Unterabfrage: SELECT spielnr FROM spieler WHERE ort IN ('Krefeld', 'Meerbusch'); 10
11 7 VEREINIGUNGSMENGENBILDUNG 6.2 Subquery mit ALL, ANY und SOME 6.2 Subquery mit ALL, ANY und SOME Bei Subqueries mit = muss ein einziger Wert herauskommen, bei Subqueries mit IN wird nur auf Existenz des Wertes in der Tabelle geprüft (Mengenoperation ist Element von, ). Mit ALL und ANY bzw. SOME sind dagegen auch die anderen Vergleichsoperationen möglich, d. h. man kann fragen, ob ein Wert größer ist als mindestens einer (ANY oder SOME) oder größer als alle (ALL) Werte, die in der Unterabfrage ermittelt wurden. Beispiel 1: Wer aus Abteilung A verdient mehr als alle aus Abteilung B? SELECT persnr FROM personal WHERE abt='a' AND gehalt > all (SELECT gehalt FROM personal WHERE abt='b'); Beispiel 2: Welcher Manager verdient weniger als irgendein Nicht-Manager? SELECT persnr FROM personal WHERE job='manager' AND gehalt < ANY (SELECT gehalt FROM personal WHERE job <> 'Manager'); 7 Vereinigungsmengenbildung Bei einem natürlichen Verbund von Tabellen werden diejenigen Tupel unberücksichtigt gelassen, bei denen das join-attribut NULL-Werte enthält bzw. der Wert in einer der Tabellen nicht vorkommt. Beispiel: Aus der Vereinsdatenbank sollen alle Spieler mit der Anzahl ihrer Strafen ermittelt werden. Das klassische SELECT-Kommando (ohne NATURAL JOIN) sieht so aus und erzeugt: SELECT s.spielnr, spielname, COUNT(*) FROM spieler s, strafen st WHERE s.spielnr = st.spielnr GROUP BY s.spielnr, spielname; spielnr spielname expr 6 Peters 1 8 Neuhaus 1 27 Kohl 2 44 Becker Maurer 1 Wie man sieht, kommen alle Spieler, die noch keine Strafe erhalten haben, in der Tabelle gar nicht vor. Das liegt daran, dass nur die Tupel ausgegeben werden, bei denen die beiden Spielernummern gleich sind. Kommt eine Spielernummer in einer Tabelle nicht vor oder hat sie einen NULL-Wert, wird das Tupel nicht ausgegeben. Also muss man es nachträglich wieder dazuholen, was man durch ein zweites SELECT- Kommando macht. Die Ergebnistabelle der beiden SELECT-Kommandos werden dann anschließend zu einer Tabelle zusammengefügt. Da dies eine Mengenoperation ist, wird die Operation UNION (Vereinigung) genannt. Für obiges Beispiel sieht das so aus wie in Abbildung 4 auf der nächsten Seite gezeigt. 11
12 8 NATÜRLICHER VERBUND MIT ON- ODER USING-KLAUSEL SELECT s.spielnr, spielname, COUNT(*) FROM spieler s, strafen st WHERE s.spielnr = st.spielnr GROUP BY s.spielnr, spielname UNION SELECT spielnr, spielname, 0 FROM spieler WHERE spielnr not in (SELECT spielnr FROM strafen); spielnr spielname expr 2 Elfers 0 6 Peters 1 7 Wiegand 0 8 Neuhaus 1 27 Kohl 2 28 Kohl 0 39 Bischof 0 44 Becker Maurer usw. Abbildung 4: Vereinigungsmengenbildung mit UNION Diese Art von Verbund wird Outer Join gegenüber dem normalen Inner Join genannt. Die beiden mit UNION zu vereinigenden Tabellen müssen in ihrem Aufbau, d. h. in Anzahl und Typen der Spalten, übereinstimmen. Beide SELECTs sind vollständig, nur eine ORDER BY-Klausel darf lediglich ganz am Ende enthalten sein und gilt dann für das gesamte SELECT. Eine bessere Möglichkeit ist der sogenannte NATURAL LEFT JOIN bzw. NATURAL RIGHT JOIN, der es ermöglicht, direkt alle Tupel der linken bzw. rechten Tabelle in die Ergebnistabelle zu übernehmen, auch wenn es kein korrespondierendes Tupel in der anderen Tabelle gibt. Das schreibt man dann so: SELECT spielnr, spielname, COUNT(betrag) FROM spieler NATURAL LEFT JOIN strafen GROUP BY spielnr, spielname; Außer dem Left Outer Join und dem Right Outer Join gibt es noch den Full Outer Join, bei dem außer den Tupeln des Inner Join alle Tupel aus beiden Tabellen verwendet werden, denen kein Tupel aus der jeweils anderen Tabelle zugeordnet werden kann. Diese Art von Outer Join ist bei den einigen Systemen nur über UNION erreichbar (obwohl der Standard es vorsieht) und kommt in der Praxis nicht sehr häufig vor. 8 Natürlicher Verbund mit ON- oder USING-Klausel Soll ein Join nicht über die Gleichheit aller gleichnamigen Attribute stattfinden, so ist statt der Klausel NATURAL [ LEFT/RIGHT ] JOIN lediglich [ LEFT/RIGHT ] join zu schreiben und dahinter eine ON- oder eine USING-Klausel anzugeben. In einer USING-Klausel steht eine geklammerte Liste all der gleichnamigen Attribute, auf Grund derer der Verbund stattfinden soll. Beispiel: 12
13 8 NATÜRLICHER VERBUND MIT ON- ODER USING-KLAUSEL SELECT s.spielnr, datum, betrag FROM spieler s LEFT JOIN strafen st ON s.spielnr = st.spielnr AND datum < ' '; SELECT s.spielnr, datum, betrag FROM spieler s LEFT JOIN strafen st ON s.spielnr = st.spielnr WHERE datum < ' '; spielnr datum betrag 2 NULL NULL NULL NULL NULL NULL 28 NULL NULL 39 NULL NULL NULL NULL 83 NULL NULL 95 NULL NULL 100 NULL NULL 104 NULL NULL 112 NULL NULL spielnr datum betrag Abbildung 5: Vergleich zweier ähnlicher Verbund-Abfragen SELECT w.spielnr, teamnr, liga, gewonnen-verloren FROM wettkaempfe w JOIN teams USING (teamnr); Hier werden die Tabellen wettkaempfe und teams über das Attribut teamnr verbunden; ohne die USING-Klausel (statt dessen dann mit NATURAL JOIN) würde die Werte-Gleichheit sowohl beim Attribut teamnr als auch bei spielnr notwendig, um ein Tupel der Ergebnistabelle zu generieren. Bei Verwendung von USING wird genauso wie bei NATURAL JOIN für jedes gleichnamige Attribut in den beiden Tabellen ein einziges Attribut in der Ergebnistabelle erzeugt. Daher muss der Zugriff auf dieses Attribut unqualifiziert erfolgen (ohne Angabe des Tabellen- oder Aliasnamens). In einer ON-Klausel steht eine Bedingung wie in einer WHERE-Klausel. Die Bedingung kann auch aus mehreren Teilen bestehen, die mit den üblichen Operatoren AND, OR, NOT verknüpft werden. Nur Tupel, die der Gesamtbedingung genügen, gelangen in die Ergebnistabelle. Bei Outer Joins werden die Tupel für den Inner Join durch die ON-Klausel limitiert; alle 13
14 9 KORRELIERTES SUBQUERY 1. mit normalem Subquery SELECT spielnr, spielname FROM spieler WHERE spielnr IN (SELECT spielnr FROM strafen); 3. mit Natural Join SELECT DISTINCT spielnr, spielname FROM spieler NATURAL JOIN strafen; 2. mit klassischem natürlichen Verbund: SELECT DISTINCT s.spielnr, spielname FROM spieler s, strafen st WHERE s.spielnr=st.spielnr; 4. mit korreliertem Sub-Query: SELECT spielnr, spielname FROM spieler s WHERE exists (SELECT * FROM strafen st WHERE s.spielnr=st.spielnr); Tabelle 2: Vier Arten einer korrelierten Unterabfrage nicht passenden gelangen ggf. in den Outer Join -Teil der Ergebnistabelle. Der Unterschied zwischen einer Bedingung in der ON- und der WHERE-Klausel ist, dass die Bedingung in der ON-Klausel für den Join Gültigkeit haben muss, in der WHERE-Klausel für die Tupel nach der Durchführung aller Joins der Abfrage. Hierzu zwei Abfragen zum Vergleich, die völlig unterschiedliche Ergebnisse liefern, siehe Abbildung 5 auf der vorherigen Seite. Im ersten SELECT werden alle Strafen aller Spieler aufgelistet, wobei die ON-Klausel alle diejenigen Spieler/Strafen-Kombinationen ausschließt, wo das Datum der Strafe vor 2009 liegt. Diese Spieler gelten hier als unbestraft, kommen also in den Outer Join -Part des Left Join, erscheinen somit im Ergebnis. Im zweiten SELECT werden alle Strafen mit den Spielernummern aufgelistet. Nach Ausführung des Join werden alle Strafen vor 2009 mit der WHERE-Klausel entfernt. Diese WHERE- Klausel entfernt aber auch alle Tupel, die beim Datum einen NULL-Wert enthalten. Daher werden alle Tupel, die aus dem Outer Join -Part stammen, entfernt. Würde man den Zusatz OR datum IS NULL dazuschreiben, um diese Tupel zu retten, würden aber dennoch einige Tupel fehlen: Die Spieler, die eine Strafe ab bekommen haben, kommen mit diesen Strafen in den Inner Join -Part, werden aber nach dem Join von der WHERE-Klausel entfernt, so dass sie im Ergebnis fehlen, während sie in er allerersten Version im Outer Join -Part als unbestrafte Spieler auftauchen. 9 Korreliertes Subquery Die Anzeige aller Spielernamen, die schon einmal eine Strafe erhalten haben, kann man auf vier Arten erreichen (siehe Tabelle 2). Die Besonderheit des korrelierten Subquery ist, dass in der Unterabfrage auf die Tabelle des übergeordneten SELECT zurückgegriffen wird. Dazu wird ein Aliasname der Tabelle aus der Hauptabfrage in der Unterabfrage verwendet. Die meisten Abfragen sind ohne korrelierte Unterabfragen durchführbar. Da bei jedem 14
15 10 BEDINGTE AUSDRÜCKE Tupel der Hauptabfrage immer die komplette Unterabfrage erneut durchgeführt werden muss, ist die korrelierte Unterabfrage auch besonders aufwendig und daher langsam. Man sollte sie also nach Möglichkeit vermeiden. 10 Bedingte Ausdrücke Um bei Abfragen Werte in verschiedene Klassen einteilen zu können, gibt es CASE. Wenn wir die Strafen in geringe, mittlere und große Strafen einteilen möchten, schreiben wir eine Abfrage so: SELECT spielnr, CASE WHEN betrag < 50 THEN 'wenig' WHEN betrag BETWEEN 50 AND 100 THEN 'mittel' ELSE 'viel' END FROM strafen; Die COALESCE-Funktion kann mehrere Argumente haben und liefert das erste Argument zurück, dessen Wert nicht NULL ist. Hierdurch kann man in Tabellen vorhandene NULL- Werte in Ausgaben durch eine passende Zeichenkette ersetzen. Bei allen Spielern ohne Titel bleibt die dritte Spalte nicht leer, sondern enthält die Zeichenkette ohne Titel. SELECT spielnr, spielname, COALESCE (titel, 'ohne Titel') FROM spieler; Die NULLIF-Funktion ist die Umkehrung von COALESCE. Hier wird NULL zurückgegeben, wenn eine Spalte einen bestimmten Wert enthält. Steht also die Zeichenkette ohne Titel in der Spalte, wird jetzt NULL ausgegeben. SELECT spielnr, spielname, NULLIF (titel, 'ohne Titel') FROM spieler; 15
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
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
Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.
Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten
Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.
SELECT - Der Grundbefehl zur Auswahl von Daten Die SELECT-Anweisung fragt Daten aus einer Datenbank ab und stellt diese in einer virtuellen Tabelle zur Verfügung. Diese virtuelle Tabelle, eine Menge von
Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster
Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.
Berechnungen in Access Teil I
in Access Teil I Viele Daten müssen in eine Datenbank nicht eingetragen werden, weil sie sich aus anderen Daten berechnen lassen. Zum Beispiel lässt sich die Mehrwertsteuer oder der Bruttopreis in einer
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
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
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
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 ([email protected]) Art der Info Technische Background Info (April 2002) Quelle Aus dem NF9i-Kurs, NF9i-Techno-Circle der Trivadis und Oracle9i Data Warehousing
Abfragen: Grundbausteine
Abfragen: Grundbausteine Abfragen sollen gezielt Teile der Information wiedergeben. Das Ergebnis einer solchen Operation ist eine. Der Aufbau der Ergebnistabelle wird durch zwei Grundverfahren festgelegt:
SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck
SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Fahren fort mit SQL Befehlen. Bilden Relationenalgebra auf SQL ab. So Umsetzung von Anfragen an die DB (bzw. Tabellen) möglich. SELECT
Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.
Einführung SQL 2010 Niko Becker Mit unseren Übungen zu ACCESS können Sie Aufbau und Struktur einer relationalen Datenbank kennenlernen. Wir zeigen Ihnen wie Sie Tabellen, Formulare und Berichte erstellen
In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.
In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht
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
Suche schlecht beschriftete Bilder mit Eigenen Abfragen
Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere
Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken
Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 7 Übung zur Vorlesung Grundlagen: Datenbanken im WS13/14 Henrik Mühe ([email protected]) http://www-db.in.tum.de/teaching/ws1314/dbsys/exercises/
Access [basics] Gruppierungen in Abfragen. Beispieldatenbank. Abfragen gruppieren. Artikel pro Kategorie zählen
Abfragen lassen sich längst nicht nur dazu benutzen, die gewünschten Felder oder Datensätze einer oder mehrerer Tabellen darzustellen. Sie können Daten auch nach bestimmten Kriterien zu Gruppen zusammenfassen
1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
Excel Pivot-Tabellen 2010 effektiv
7.2 Berechnete Felder Falls in der Datenquelle die Zahlen nicht in der Form vorliegen wie Sie diese benötigen, können Sie die gewünschten Ergebnisse mit Formeln berechnen. Dazu erzeugen Sie ein berechnetes
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-
7. Übung - Datenbanken
7. Übung - Datenbanken Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: DBS a Was ist die Kernaufgabe von Datenbanksystemen? b Beschreiben Sie kurz die Abstraktionsebenen
SQL - Übungen Bearbeitung der Datenbank Personal (1)
Bearbeitung der Datenbank Personal (1) 1. Abfragen einer einzigen Tabelle 1.1. Zeigen Sie alle Informationen an, die über die Kinder der Mitarbeiter gespeichert sind. 1.2. Zeigen Sie aus der Tabelle stelle
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
mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank
mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man
Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang
sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche
Auswertung erstellen: Liste mit E-Mail-
Anleitung Auswertung erstellen: Liste mit E-Mail-Adressen Auswertung erstellen: Liste mit E-Mail- Adressen Das Beispiel Sie möchten für den Versand eines Newletters per E-Mail eine Liste der in mention
Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage
Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei
2.1 Briefkopf Klicken Sie im Menü Einstellungen auf den Button Briefkopf. Folgendes Formular öffnet sich:
Installation 1 Installation 1 2 Einstellungen 1 2.1 Briefkopf 1 2.2 Logo 2 2.3 Zusatztext 2 2.4 Fußzeile 2 2.5 Mehrwertsteuer (Umsatzsteuer) 3 2.6 Rechnungsnummer 4 2.7 Drucken 4 2.8 Einheiten 5 3 Artikelverwaltung
Views in SQL. 2 Anlegen und Verwenden von Views 2
Views in SQL Holger Jakobs [email protected], [email protected] 2010-07-15 Inhaltsverzeichnis 1 Wozu dienen Views? 1 2 Anlegen und Verwenden von Views 2 3 Schreibfähigkeit von Views 3 3.1 Views schreibfähig
Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER
Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit
Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten
Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während
Zeichen bei Zahlen entschlüsseln
Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren
Professionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
Datensicherung. Beschreibung der Datensicherung
Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten
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.
Primzahlen und RSA-Verschlüsselung
Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also
Wir basteln einen Jahreskalender mit MS Excel.
Wir basteln einen Jahreskalender mit MS Excel. In meinen Seminaren werde ich hin und wieder nach einem Excel-Jahreskalender gefragt. Im Internet findet man natürlich eine ganze Reihe mehr oder weniger
Schritt 1 - Registrierung und Anmeldung
Schritt 1 - Registrierung und Anmeldung Anmeldung: Ihre Zugangsdaten haben Sie per EMail erhalten, bitte melden Sie sich mit diesen auf www.inthega-datenbank.de an. Bitte merken Sie sich die Zugangsdaten
4. BEZIEHUNGEN ZWISCHEN TABELLEN
4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe
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.
Einfügen von Bildern innerhalb eines Beitrages
Version 1.2 Einfügen von Bildern innerhalb eines Beitrages Um eigene Bilder ins Forum einzufügen, gibt es zwei Möglichkeiten. 1.) Ein Bild vom eigenem PC wird auf den Webspace von Baue-die-Bismarck.de
Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.
Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen
Abfrage-Befehle in MySQL -diverse Funktionen -
Abfrage-Befehle in MySQL -diverse Funktionen - Berechnungen mit MySQL -Einführung Ich liebe Funktionen! Es sollen die Projektbezeichnung, der Auftragswert, die Mehrwertsteuer und der Bruttobetrag für jedes
Anleitung zum Anlegen und Bearbeiten einer News in TYPO3 für www.fk-havelland-mitte.de
WEBandIT.net - Anleitung zum Anlegen und Bearbeiten einer News in TYPO3 für www.fk-havelland-mitte.de Die Internet-Seite wird intern durch das Programm TYPO3 verwaltet. Eine Anmeldung ist nur durch Zugangsdaten
Urlaubsregel in David
Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5
Anleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
Der Kalender im ipad
Der Kalender im ipad Wir haben im ipad, dem ipod Touch und dem iphone, sowie auf dem PC in der Cloud einen Kalender. Die App ist voreingestellt, man braucht sie nicht laden. So macht es das ipad leicht,
Viele Bilder auf der FA-Homepage
Viele Bilder auf der FA-Homepage Standardmäßig lassen sich auf einer FA-Homepage nur 2 Bilder mit zugehörigem Text unterbringen. Sollen es mehr Bilder sein, muss man diese als von einer im Internet
Lineare Gleichungssysteme
Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen
Funktion Erläuterung Beispiel
WESTFÄLISCHE WILHELMS-UNIVERSITÄT WIRTSCHAFTSWISSENSCHAFTLICHE FAKULTÄT BETRIEBLICHE DATENVERARBEITUNG Folgende Befehle werden typischerweise im Excel-Testat benötigt. Die Beispiele in diesem Dokument
FlowFact Alle Versionen
Training FlowFact Alle Versionen Stand: 29.09.2005 Rechnung schreiben Einführung Wie Sie inzwischen wissen, können die unterschiedlichsten Daten über verknüpfte Fenster miteinander verbunden werden. Für
Objektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote
Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote Zweck dieser Anleitung ist es einen kleinen Überblick über die Funktion Last Minute auf Swisshotelportal zu erhalten. Für das erstellen
SEMINAR Modifikation für die Nutzung des Community Builders
20.04.2010 SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung ecktion SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung Bevor Sie loslegen
Funktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH
Funktionsbeschreibung Lieferantenbewertung von IT Consulting Kauka GmbH Stand 16.02.2010 odul LBW Das Modul LBW... 3 1. Konfiguration... 4 1.1 ppm... 4 1.2 Zertifikate... 5 1.3 Reklamationsverhalten...
Anlegen eines DLRG Accounts
Anlegen eines DLRG Accounts Seite 1 von 6 Auf der Startseite des Internet Service Centers (https:\\dlrg.de) führt der Link DLRG-Account anlegen zu einer Eingabemaske, mit der sich jedes DLRG-Mitglied genau
Was meinen die Leute eigentlich mit: Grexit?
Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?
2.1 Erstellung einer Gutschrift über den vollen Rechnungsbetrag
1. Einführung Manchmal ist es notwendig, dem Kunden eine Gutschrift zu einer bestimmten Rechnung, über einzelne Positionen oder auch völlig frei von einer Basis-Rechnung zu erstellen. Die verschiedenen
Labor 3 - Datenbank mit MySQL
Labor 3 - Datenbank mit MySQL Hinweis: Dieses Labor entstand z.t. aus Scripten von Prof. Dr. U. Bannier. 1. Starten des MySQL-Systems MySQL ist ein unter www.mysql.com kostenlos erhältliches Datenbankmanagementsystem.
Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof
Bedienungsanleitung für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Matthias Haasler Version 0.4 Webadministrator, email: [email protected] Inhaltsverzeichnis 1 Einführung
Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)
Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...
How to do? Projekte - Zeiterfassung
How to do? Projekte - Zeiterfassung Stand: Version 4.0.1, 18.03.2009 1. EINLEITUNG...3 2. PROJEKTE UND STAMMDATEN...4 2.1 Projekte... 4 2.2 Projektmitarbeiter... 5 2.3 Tätigkeiten... 6 2.4 Unterprojekte...
Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. www.blogger.com ist einer davon.
www.blogger.com Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. www.blogger.com ist einer davon. Sie müssen sich dort nur ein Konto anlegen. Dafür gehen Sie auf
1 BEDIENUNGSANLEITUNG
1 BEDIENUNGSANLEITUNG 1.1 Kunde In diesem Fenster können die Stammdaten des Kunden eingetragen werden oder es kann eine Änderung der Stammdaten durchgeführt werden. Zusätzlich kann man auch Kunden nach
Erklärung zum Internet-Bestellschein
Erklärung zum Internet-Bestellschein Herzlich Willkommen bei Modellbahnbau Reinhardt. Auf den nächsten Seiten wird Ihnen mit hilfreichen Bildern erklärt, wie Sie den Internet-Bestellschein ausfüllen und
Hilfedatei der Oden$-Börse Stand Juni 2014
Hilfedatei der Oden$-Börse Stand Juni 2014 Inhalt 1. Einleitung... 2 2. Die Anmeldung... 2 2.1 Die Erstregistrierung... 3 2.2 Die Mitgliedsnummer anfordern... 4 3. Die Funktionen für Nutzer... 5 3.1 Arbeiten
Kurzanleitung. Toolbox. T_xls_Import
Kurzanleitung Toolbox T_xls_Import März 2007 UP GmbH Anleitung_T_xls_Import_1-0-5.doc Seite 1 Toolbox T_xls_Import Inhaltsverzeichnis Einleitung...2 Software Installation...2 Software Starten...3 Das Excel-Format...4
Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Seite 1 von 5
Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Seite 1 von 5 Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Hinweise Der Aufgabensatz
Erstellen von x-y-diagrammen in OpenOffice.calc
Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei
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.
teischl.com Software Design & Services e.u. [email protected] www.teischl.com/booknkeep www.facebook.com/booknkeep
teischl.com Software Design & Services e.u. [email protected] www.teischl.com/booknkeep www.facebook.com/booknkeep 1. Erstellen Sie ein neues Rechnungsformular Mit book n keep können Sie nun Ihre eigenen
SQL. Fortgeschrittene Konzepte Auszug
SQL Fortgeschrittene Konzepte Auszug Levels SQL92 Unterteilung in 3 Levels Entry Level (i.w. SQL89) wird von nahezu allen DBS Herstellern unterstützt Intermediate Level Full Level SQL DML 2-2 SQL92 behebt
Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen
Austausch- bzw. Übergangsrozesse und Gleichgewichtsverteilungen Wir betrachten ein System mit verschiedenen Zuständen, zwischen denen ein Austausch stattfinden kann. Etwa soziale Schichten in einer Gesellschaft:
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
EINFACHES HAUSHALT- KASSABUCH
EINFACHES HAUSHALT- KASSABUCH Arbeiten mit Excel Wir erstellen ein einfaches Kassabuch zur Führung einer Haushalts- oder Portokasse Roland Liebing, im November 2012 Eine einfache Haushalt-Buchhaltung (Kassabuch)
ELO Print&Archive so nutzen Sie es richtig
ELO Print&Archive so nutzen Sie es richtig Die Einrichtung Ihres ersten Dokumententyps Im folgenden Beispiel möchten wir Ihnen genauer erläutern, wie Sie das neue Modul ELO Print&Archive, das automatisch
Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5
Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Aufgabe 1: Projektion Datenbanksysteme I π A1,...,A n (π B1,...,B
Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung
Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In
Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
Informationsblatt Induktionsbeweis
Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln
Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik
Beispielaufgaben Informationssysteme erstellt von Fabian Rump zur IS Vorlesung 2009/10 1 Multiple Choice Aussage richtig falsch Eine SQL-Abfrage beginnt immer mit dem Schlüsselwort SELECT Eine Datenbank
Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube 30 78462 Konstanz
combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Einbindung externer FiBu-/Warenwirtschaftsdaten Einbindung externer FiBu-/Warenwirtschaftsdaten - 2 - Inhalt Ausgangssituation
Handbuch Fischertechnik-Einzelteiltabelle V3.7.3
Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3
Internet Kurs. Suchmaschinen
Internet Kurs Suchmaschinen M. Stalder Internetkurs M. Stalder 1 / 6 Suchmaschinen Suchmaschinen haben sich in letzter Zeit immer mehr zu einem unverzichtbaren Hilfsmittel entwickelt. Das Internet bietet
Abfragen in Access. Die einfache Auswahlabfrage aus einer einzigen Tabelle
Um gezielte Informationen - auch aus verschiedenen Tabellen einer Datenbank - zu erhalten, benutzt man Abfragen. Man kann dort die Tabellen einer Datenbank miteinander verknüpfen und erhält somit die gewünschten
Anbindung an easybill.de
Anbindung an easybill.de Stand: 14. Dezember 2011 2011 Virthos Systems GmbH www.pixtacy.de Einleitung Pixtacy verfügt ab Version 2.3 über eine Schnittstelle zu dem Online-Fakturierungsprogramm easybill.de.
Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.
Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,
«/Mehrere Umfragen in einer Umfrage durchführen» Anleitung
QuickStart «/Mehrere Umfragen in einer Umfrage durchführen» Anleitung Mehrere Umfragen in einer Umfrage durchführen Mögliches Szenario oder wann Sie davon Gebrauch machen können Sie führen regelmässig
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
Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten
Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.
Kapitel 3 Frames Seite 1
Kapitel 3 Frames Seite 1 3 Frames 3.1 Allgemeines Mit Frames teilt man eine HTML-Seite in mehrere Bereiche ein. Eine Seite, die mit Frames aufgeteilt ist, besteht aus mehreren Einzelseiten, die sich den
Festplatte defragmentieren Internetspuren und temporäre Dateien löschen
Festplatte defragmentieren Internetspuren und temporäre Dateien löschen Wer viel mit dem Computer arbeitet kennt das Gefühl, dass die Maschine immer langsamer arbeitet und immer mehr Zeit braucht um aufzustarten.
Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.
Briefe Schreiben - Arbeiten mit Word-Steuerformaten Ab der Version 5.1 stellt die BüroWARE über die Word-Steuerformate eine einfache Methode dar, Briefe sowie Serienbriefe mit Hilfe der Korrespondenzverwaltung
Waimea Phone Monitor. Handbuch. Anzeige von eingehenden Anrufen auf Telefonanlagen mit TAPI-Interface
Waimea Phone Monitor Handbuch Anzeige von eingehenden Anrufen auf Telefonanlagen mit TAPI-Interface Ermittlung des Namens und anderer Informationen aus einer beliebigen ODBC-Datenbank auf Basis der Telefonnummer
Anleitung zum GEPA EXCEL Import Tool
Anleitung zum GEPA EXCEL Import Tool Mit diesem Tool können Sie Ihren GEPA Warenkorb (Weltläden und Gruppen) mit Hilfe von Excel-Listen, die Sie aus Ihrer Warenwirtschaft generieren oder händisch erstellen,
Inkrementelles Backup
Inkrementelles Backup Im Gegensatz zu einer kompletten Sicherung aller Daten werden bei einer inkrementellen Sicherung immer nur die Dateien gesichert, die seit der letzten inkrementellen Sicherung neu
Datenbanken Kapitel 2
Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,
