SQL von Kopf bis Fuß: [ein Buch zum Mitmachen und Verstehen]
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
Beijing [u.a.]
O'Reilly
2008
|
Ausgabe: | 1. Auflage |
Schriftenreihe: | Head first...
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XXXIII, 571 Seiten Illustrationen |
ISBN: | 9783897217607 3897217600 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV023075006 | ||
003 | DE-604 | ||
005 | 20160419 | ||
007 | t | ||
008 | 080111s2008 a||| |||| 00||| ger d | ||
015 | |a 07,N49,0017 |2 dnb | ||
015 | |a 08,A10,0009 |2 dnb | ||
016 | 7 | |a 986386057 |2 DE-101 | |
020 | |a 9783897217607 |9 978-3-89721-760-7 | ||
020 | |a 3897217600 |9 3-89721-760-0 | ||
024 | 3 | |a 9783897217607 | |
035 | |a (OCoLC)213388821 | ||
035 | |a (DE-599)DNB986386057 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a ger | |
049 | |a DE-M347 |a DE-92 |a DE-859 |a DE-1051 |a DE-Aug4 |a DE-860 |a DE-384 |a DE-863 |a DE-858 |a DE-20 |a DE-523 |a DE-634 |a DE-706 |a DE-11 |a DE-573 |a DE-188 |a DE-473 |a DE-898 |a DE-B768 |a DE-526 | ||
082 | 0 | |a 005.7565 |2 22/ger | |
084 | |a ST 271 |0 (DE-625)143639: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
100 | 1 | |a Beighley, Lynn |d 19XX- |e Verfasser |0 (DE-588)133926443 |4 aut | |
240 | 1 | 0 | |a Head first SQL <dt.> |
245 | 1 | 0 | |a SQL von Kopf bis Fuß |b [ein Buch zum Mitmachen und Verstehen] |c Lynn Beighley |
250 | |a 1. Auflage | ||
264 | 1 | |a Beijing [u.a.] |b O'Reilly |c 2008 | |
300 | |a XXXIII, 571 Seiten |b Illustrationen | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Head first... | |
650 | 0 | 7 | |a Datenbanksprache |0 (DE-588)4123038-3 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Datenbankentwurf |0 (DE-588)4127613-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a SQL |0 (DE-588)4134010-3 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a SQL |0 (DE-588)4134010-3 |D s |
689 | 0 | 1 | |a Datenbanksprache |0 (DE-588)4123038-3 |D s |
689 | 0 | 2 | |a Datenbankentwurf |0 (DE-588)4127613-9 |D s |
689 | 0 | |8 1\p |5 DE-604 | |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016278117&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-016278117 | ||
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk |
Datensatz im Suchindex
DE-BY-863_location | 1000 1340 |
---|---|
DE-BY-FWS_call_number | 1000/ST 271 S70 B422 1340/ST 271 S70 B422st |
DE-BY-FWS_katkey | 319390 |
DE-BY-FWS_media_number | 083101070961 083101268436 |
_version_ | 1806174531178463232 |
adam_text | Der Inhalt (in der t ersicht)
Einfuhrung xxiii
1 Daten und Tabellen: Ein Ortfiir alle Dinge 1
2 Die SELECT-Anweisung: Geschenkter Datenabruf 53
3 DELETE und UPDATE: Veränderung tut gut 119
4 Cleveres Tabellen-Design: Warum normal sein? 159
5 ALTER: Die Vergangenheit umschreiben 197
6 Fortgeschrittenes SELECT: Ihre Daten mit neuen Augen sehen 235
7 Eine Datenbank, viele Tabellen: Aus Ihrer Tabelle herauswachsen 281
8 Joins und Mehr-Tabellen-Operationen: Vereinigen wir uns! 343
9 Unterabfragen: Abfragen in Abfragen 379
10 Outer Joins, Selfjoins und Unions: Neue Manöver 417
11 Constraints, Views und Transaktionen: Viele Köche verderben die Datenbank 455
12 Sicherheit: Ihre Anlagen schützen 493
A Die Top Ten der Themen, die wir nicht behandelt haben 525
B Probieren Sie es selbst 543
C AU Ihre SQL-Werkzeuge 551
Index 559
Der Iriialt (jetzt ausführlich)
Einführung
Ihr Gehirn Und SQL. 5/e versuchen, etwas zu /emen,und Ihr H/m tut sein
Bestes, damit das Gelernte nicht hängen bleibt. Es denkt nämlich: »Wir sollten lieber
ordentlich Platz für wichtigere Dinge lassen, z.B. für das Wissen darüber, welche Tiere
einem gefährlich werden könnten oder dass es eine ganz schlechte Idee ist, nackt
Snowboard zu fahren.« Tja, wie schaffen wir es nun, Ihr Gehirn davon zu überzeugen,
dass Ihr Leben davon abhängt, etwas über SQL zu wissen?
Für wen ist dieses Buch? xxvi
Wir wissen, was Ihr Gehirn denkt xxv
Metakognition xxvii
Machen Sie sich Ihr Hirn untenan xxix
lies mich xxx
Die Fachgutachter xxxii
Danksagungen xxxiii
wti
Daten und Tabellen
IEin Ort für alle Dinge
Hassen Sie es auch, Dinge zu verlieren? Egal ob es ihre
Autoschlüssel, der 25%-Gutschein von Globetrotter oder Ihre Anwendungsdaten sind:
Es gibt nichts Schlimmeres, als nicht dazu in der Lage zu sein, das, was man braucht,
zur Hand zu haben ... wenn man es braucht. Und wenn es um Ihre Anwendungen
geht, gibt es keinen besseren Ort, Ihre wichtigen Informationen zu speichern, als eine
Tabelle. Blättern Sie also um, treten Sie ein und machen Sie einen Spaziergang durch
die Welt der relationalen Datenbanken.
Daten definieren 2
Betrachten Sie Daten in Kategorien 7
Was in einer Datenbank steckt 8
Ihre Datenbank durch die Röntgenbrille 10
Datenbanken enthalten verwandte Daten 12
Tabellen unter der Lupe 13
Übernehmen Sie das Kommando! 17
Die Tabelle einrichten: die CREATE TABLE-Anweisung 19
Eine kompliziertere Tabelle erstellen 20
Wie einfach das Schreiben von SQL doch ist 21
Endlich die Tabelle meine_kontakte erstellen 22
Ihre Tabelle ist fertig 23
Machen Sie Bekanntschaft mit ein paar Datentypen 24
Eine Beschreibung Ihrer Tabelle 28
^^^^^.^ Eine Datenbank oder Tabelle kann nicht neu erstellt werden! 30
^^ ^^ Raus mit der alten Tabelle, rein mit der neuen 32
•e Patenbank dureh ^^ Daten einfügen mit der INSERT-Anweisung 34
ftntgenbrille ^^J
_ ^^^T Die INSEKT-Anweisung erstellen 37
w/53^Nfc^^^^ Variationen zu einer INSERT-Anweisung 41
^S^^6r Spalten ohne Werte 42
J Blicken Sie mit der SELECT-Anweisung in Ihre Tabelle 43
SQL im Gespräch: Geständnis einer NULL 44
Ihre innere NULL beherrschen 45
NOT NULL erscheint in DESC 47
Die Lücken mit DEFAULT füllen 48
Ihr SQL-Werkzeugkasten 50
Die SELECT-AnWeisung
2 Geschenkter Datenabruf
Ist Geben wirklich besser denn Nehmen? Bei Datenban¬
ken ist es nicht unwahrscheinlich, dass Sie genauso oft Daten abrufen wie
einfügen müssen. An dieser Stelle betritt dieses Kapitel die Bühne: Sie treffen
die mächtige SELECT-Anweisung und lernen, wie man Zugang zu den
wichtigen Informationen erhält, die Sie in Ihre Tabellen gesteckt haben. Sie
werden sogar lernen, wie man mit WHERE, AND und OR Daten selektiv abruft
und so vermeidet, Daten anzuzeigen, die man nicht braucht.
Ein Date oder kein Date? 54
Ein besseres SELECT 57
Was ist dieses *? 58
Wie Sie Ihre Datentypen abfragen 64
Mehr Interpunktionsprobleme 65
Ungebundene Anfuhrungszeichen 66
Einfache Anführungszeichen sind Sonderzeichen 67
Daten mit einfachen Anführungszeichen einfügen 68
Bestimmte Spalten auswählen, um das Ergebnis einzugrenzen 73
Schnellere Ergebnisse mit ausgewählten Spalten 73
Ihre Abfragen kombinieren 80
Numerische Werte finden 83
Vergleichsoperatoren 86
Mit Vergleichsoperatoren numerische Daten finden 88
Mit Vergleichsoperatoren Textdaten einfangen 91
Sein ODER nicht sein 93
Der Unterschied zwischen AND und OR 96
f~~Xc bineinX NUL^ fmden mit IS NULL 99
C Stern! ) Zeit sparen mit einem Schlüsselwort: LIKE 1 () 1
^^ O ^s^ ^-^ ^s Der Joker sticht 101
_ ^^B Bereiche wählen mit AND und Vergleichsoperatoren 105
^^^H^^I^^^H Aber es gibt einen besseren Weg 106
^^^^^^^^^^^ Nach dem Date ist man entweder IN ... 109
^^^^^L ...oder NOT IN HO
^F ^P . MehrNOT 111
V, . Ihr SQL-Werkzeugkasten 116
iv
DELETE und UPDATE
3 Veränderung tut gut
Sie ändern häufig Ihre Meinung? Das ist ab jetzt in
Ordnung! Mit den Befehlen, die Sie im Folgenden lernen werden - DELETE
und UPDATE -, sind Sie nicht mehr an Entscheidungen gebunden, die Sie vor
sechs Monaten gefällt haben, als Sie die Daten darüber eingefügt hatten, dass die
Dauerwelle demnächst wieder in sei. Mit UPDATE können Sie Daten ändern, und mit
DELETE werden Sie Daten los, die Sie nicht mehr brauchen. Aber wir geben Ihnen
nicht nur die Werkzeuge. In diesem Kapitel lernen Sie auch, wie Sie gezielt mit Ihren
neuen Kräften umgehen und vermeiden, Daten zu vernichten, die Sie noch brauchen.
Clowns sind gruselig 120
Clowns festhalten 121
Die Clowns sind unterwegs 122
Wie Ihre Clown-Daten eingefügt werden 126
Bonzo, wir haben ein Problem 128
Mit DELETE einen Datensatz loswerden 129
Unsere neue DELETE-Anweisung verwenden 131
DELETE-Regeln 132
Der INSERT-DELETE-Doppelschritt 135
Passen Sie bei Ihren DELETEs auf 140
Der Ärger mit ungenauen DELETEs 144
Daten ändern mit UPDATE 146
UPDATE-Regeln 147
UPDATE ist das neue INSERT/DELETE 148
UPDATE im Einsatz 149
Die Bewegungen der Clowns aktualisieren 150
Aktualisieren Sie Ihre Preise 154
,*¦ v s Wir brauehen nur ein UPDATE 156 ^
j^Q^_An9ditch?n J Ihr SQL-Werkzeugkasten 158 W
V 1
¦
CleVeres Tabellen-Design
4 Warum normal sein?
Sie haben Tabellen erzeugt, ohne ihnen viele Gedanken
ZU schenken. Das war in Ordnung. Sie haben funktioniert. Sie können auf
ihnen SELECTs, INSERTs, DELETEs und UPDATES ausführen. Aber wenn Ihre
Datenmenge wächst, beginnen Sie, auf Dinge zu stoßen, bei denen Sie sich
wünschten, Sie hätte sie anders gemacht, damit jetzt Ihre WHERE-Klauseln
einfacher wären. Und dazu müssen Sie Ihre Tabellen normal machen.
Zwei fischige Tabellen 160
Bei einer Tabelle geht es um Beziehungen 164
Atomare Daten j 68
Atomare Daten und Ihre Tabellen 170
Regeln für atomare Daten 17
Gründe, normal zu sein 174
Die Vorteile normalisierter Tabellen 175
Clowns sind nicht normal 175
Auf halbem Weg zu INF 177
PRIMÄRSCHLÜSSEL-Regeln 178
Sich der NORMALITÄT nähern 181
Gregors Tabelle in Ordnung bringen 182
Unsere alte CREATE TABLE-Anweisung 183
Tabelle
Zeig mir die T£»ä£ 184
Zeitsparende Anweisung 185
CREATE TABLE mit einem PRIMARY KEY 186
1, 2, 3 ... und alles automatisch 188
f s/ ^ **v Einer Tabelle einen PRIMARY KEY hinzufügen 192
r Einen Moment. Ich habe eine Tabelle, die voller ^ ~r.T» ™ . t,t r^ , • t.t ™ • » T »r ., ,,. ,
f Daten ist. Sie können nicht ernsthaft erwarten, da* ) ALTER TABLE und ein neuer PRIMARY KEY 193
„ ( ich wie in Kapitel 1 den Befehl DROP TABLE einsetze „„,,,, .
h^ o V und das ganze Zeug dann neu eintippe, nur um einen 1 Ihr SQL-Werkzeugkasten 194
5» ^ Primärschlüssel für jeden Datensatz zu erzeugen .•
xi
ALTEH
5 Die Vergangenheit umschreiben
Haben Sie sich jemals gewünscht, die Fehler der Vergan¬
genheit korrigieren ZU können? Jetzt haben Sie Gelegenheit dazu. Mit
der ALTER-Anweisung können Sie all die Lektionen, die Sie gelernt haben, auf Tabel¬
len zur Anwendung bringen, die Sie vor Tagen, Monaten oder sogar Jahren entworfen
haben. Besser noch: Sie können es sogar tun, ohne dass das Einfluss auf Ihre Daten
hat. Wenn Sie mit dem Folgenden durch sind, wissen Sie, was normal wirklich bedeu¬
tet, und können es auf alle Ihre Tabellen, alte und neue, anwenden.
Wir müssen Änderungen vornehmen 198
Tabellenveränderungen 203
Extrem-Tabellenumbau 204
Die Tabelle umbenennen 205
Wir müssen einige Pläne machen 207
- Ihre Spalten umfunktionieren 208
y/w/~~) /5/i Strukturelle Veränderungen 209
i^J ^0(y ALTER und CHANGE 210
q Zwei Spalten mit nur einer SQL-Anweisung ändern 211
/2$/7/%/?j0]. Schnell! Löschen Sie diese Spalte 215
^*^ Sy Ein genauer Blick auf die nichtatomare Spalte Wohnort 222
Nach Mustern suchen 223
Ein paar praktische String-Funktionen 224
n der Zeit Ihre —-—^ ^ine neue Spalte mit einer aktuellen füllen 229
rouchtwogen-Tabellein ^ Wie unsere UPDATE/SET-Kombo funktioniert 230
gneten zu verwandein und )
:llenniveau zu heben, von J Ihr SQL-Werkzeugkasten 232
einmal geträumt haben. )
Fortgeschrittenes SELECT
6 Ihre Daten mit neuen Augen sehen
Es ist an der Zeit, Ihrem Werkzeugkasten etwas Finesse hinzu¬
zufügen. Sie wissen bereits, wie man mit SELECT Daten auswählt und WHERE-Klau-
seln einsetzt. Aber manchmal benötigt man mehr Genauigkeit, als sie SELECT und WHERE
bieten. In diesem Kapitel werden Sie lernen, wie Sie Ihre Daten ordnen und gruppieren und
wie Sie auf Ihren Ergebnissen mathematische Operationen durchführen.
Die Videothek Datenhausen baut um 236
Probleme mit unseren aktuellen Tabellen 237
Die bestehenden Daten zuordnen 238
Die neue Spalte füllen 239
UPDATE mit einem CASE-Ausdruck 242
Es scheint, als hätten wir ein Problem 244
Tabellen können unordentlich werden 249
Die ausgewählten Daten sortieren 250
Probieren Sie ein kleines ORDER BY 253
Eine einzelne Spalte ordnen 254
ORDER mit zwei Spalten 257
ZTDEOTHEK ORDER mit mehreren Spalten 258
DATENHAUSEN Eine sortierte fllm-tabeUe 259
Die Reihenfolge mit DESC umkehren 261
tfäHHlll^^^DSHl Das Pfadfinderinnen-Keksverkaufsproblem 263
98MH^E5^^RB SUM kann für uns addieren 265
Mit GROUP BY alle auf einmal addieren 266
AVG mit GROUP BY 267
MIN und MAX 268
| W* f | ^^ Mit COUNT die Tage zählen 269
17 rTrKtf_^^f^rt^V^ Die Anzahl an Ergebnissen limitieren 274
2P-J1 f^VTWtLJr XjL Auf nur den zweiten Platz eingrenzen 275
^rjfuXj^«C^^^Mv*^t^ «^.lhr SQL-Werkzeugkasten 278
Eine Datenbank, viele Tabellen
7 Aus Ihrer Tabelle herauswachsen
Manchmal reicht eine einzige Tabelle einfach nicht mehr
aus. Ihre Daten sind komplexer geworden, und die eine Tabelle, mit der Sie ge¬
arbeitet haben, schafft es nicht mehr. Ihre Tabelle steckt voller redundanter Daten,
die Platz verschwenden und Ihre Abfragen verlangsamen. Sie sind Ihrer einen Tabelle
treu geblieben, solange es möglich war. Aber die Welt ist groß und weit, und manchmal
braucht man mehrere Tabellen, um seine Daten festzuhalten, zu steuern und die
eigene Datenbank unter Kontrolle zu halten.
Ein Date für Norbert 282
Alles ist verloren ... doch, Moment 293
Über eine Tabelle hinausdenken 294
Die Mehr-Tabellen-Clown-Datenbank 295
Das clown_info-Datenbankschema 296
Aus einer Tabelle zwei machen 298
Ihre Tabellen verknüpfen 303
r - * —— I i^in7-i Ihren Fremdschlüssel beschränken 305
£5i^zzz~l_lz£z,i Warum Fremdschlüssel? 306
v Eine Tabelle mit einem Fremdschlüssel erstellen 307
id^v, I -cWvito.ijd o—* Beziehungen zwischen Tabellen 309
=^z_T | 1 Datenmuster: 1:1 309
Datenmuster: Verwendungszwecke für l:l-Tabellen 310
Datenmuster: eins-zu-viele 311
1 i . Datenmuster: nun die m:n-Beziehung;en 312
id^ Tr i— ¦ onjd o—» Datenmuster: Wir brauchen eine Verbindungstabelle 315
ortjd % ~f i ort
^^, Datenmuster: m:n 316
Endlich INF 321
Schlüssel auf mehreren Spalten 322
Kurzform-Notationen 324
Partielle funktioneile Abhängigkeit 325
*** *^^ lalWMtwi Transitive funktionelle Abhängigkeit 326
inUd
interesse ~| 2 Normalform 330
Die 3. Normalform (endlich) 336
Glücklich bis ans Ende ihrer Tage 339
Ihr SQL-Werkzeugkasten 340
Jofns und Mök Tabellen-Oper^öQnen
8 Vereinigen wir uns!
Willkommen in der Mehr-Tabellen-Welt. Es ist wunderbar, dass sie jetzt
mehrere Tabellen in Ihrer Datenbank haben, aber Sie müssen ein paar neue Werkzeuge
und Techniken kennenlernen, damit Sie mit ihnen auch arbeiten können. Mehrere Ta¬
bellen führen schnell zu Verwirrungen, deswegen benötigen Sie Aliase, um Ihre Tabellen
auseinanderzuhalten. Und Joins helfen Ihnen, Ihre Tabellen zu verknüpfen, damit Sie
wieder an all die Daten herankommen, die wir im letzten Kapitel verteilt haben. Machen
Sie sich fertig, es ist Zeit, die Steuerung der Datenbank wieder zu übernehmen.
Immer diese Wiederholungen ... 344
Ihre Tabellen vorab füllen 345
Die »Schwer zu normalisieren«-Misere 347
Die besonderen Interessen (Werte) 348
Interessiert bleiben 349
Alle Interessen aktualisieren 350
Alle Interessen abfragen 351
Viele Wege führen nach Rom 352
CREATE, SELECT und INSEKT (fast) gleichzeitig 352
CREATE, SELECT und INSERT gleichzeitig 353
Was das AS macht... 354
Spaltenaliase 355
Wer braucht schon TabeUenaliase? 356
Alles, was Sie schon immer über Joins wissen wollten ... 357
^y—- N. Der Kartesische Join 358
^kommwdt Weinen H«w» Inneren Join befreien 363
_ V Ergebnistobellen ) Der Inner-Toin im Einsatz: der Equi-Join 364
^^^^^^^^k^^_ O Jl wirklich her! -• J
^^^^^^^^Htfjj^k° jtm—* Der Inner-Join im Einsatz: der Nicht-Equi-Join 367
^^^^B^^fl^^Pjl^H ^er etzte Inner: der Natural-Join 368
^^E§k* ^SBS^^B Vereinte Abfragen? 375
W^B/I^Mß3mSK^^^M Tabellen- und Spaltenaliase im Gespräch 376
^^¦fe^Vf^H^^M Ihr SQL-Werkzeugkasten 377
XV
9 Abfragen in Abfragen
Ja, Hans, mir wäre eine zweiteilige Frage recht. Joins sind wunder¬
bar, aber manchmal müssen Sie Ihrer Datenbank mehrere Fragen stellen. Oder das
Ergebnis einer Abfrage nehmen und als Eingabe für eine andere Abfrage verwen¬
den. An dem Punkt kommen Unterabfragen ins Spiel. Sie helfen Ihnen, doppelte Daten
zu vermeiden, und machen Ihre Abfragen dynamischer. Sie verschaffen Ihnen sogar
Zugang zu diesen exklusiven Backstage-Partys. (Na, nicht wirklich, aber zwei von drei ist
ja keine so schlechte Quote!)
Gregor wird Jobvermittler 380
Gregors Liste erhält mehr Tabellen 381
Gregor nutzt einen Inner-Join 382
Aber er möchte noch andere Abfragen probieren 384
Unterabfragen 386
Zwei Abfragen zu einer kombinieren 387
Als wäre eine Abfrage nicht genug: die Unterabfrage 388
Eine Unterabfrage im Einsatz 389
Regeln für Unterabfragen 391
Unterabfragenaufbauschnellkurs 394
Eine Unterabfrage als SELECT-Spalte 397
Eine Unterabfrage mit einem Natural-Join 398
Eine nicht-korrelierte Unterabfrage 399
SQL im Gespräch: Die beste Form einer Abfrage finden 400
Nicht-korrelierte Unterabfragen mit mehreren Werten 403
BfeMH^^^^ Korrelierte Unterabfragen 408
U£Jg|jgVfl^^^^ Eine (nützliche) korrelierte Unterabfrage mit NOT EXISTS 409
HWlffj^^^^^ EXISTS und NOT EXISTS 410
Gregors Jobvermittlung öffnet die Türen 412
Auf dem Weg zur Party ... 413
x -ÄW3««AbW- Ihr SQL-Werkzeugkasten 414
Outer-Joins, Sei? Jofns und Unions
. Neue Manöver
11 V Nocn kennen Sie die Join-Geschichte nur halb, sie wissen, dass
I A W Cross-Joins alle Zeilen beider Tabellen liefern und Inner-Joins die Zeilen, die einer Bedin-
gung genügen. Was Sie noch nicht kennen, sind Outer-Joins, die Ihnen Zeilen liefern, zu
denen es keine passenden Gegenstücke in der anderen Tabelle gibt, Self-Joins, die (was
ziemlich seltsam erscheint) eine Tabelle mit sich selbst verknüpfen, und Unions, die die
Ergebnisse Ihrer Abfragen kombinieren. Haben Sie das alles einmal gelernt, werden Sie
Ihre Daten immer so abrufen können, wie Sie sie gerade benötigen. (Und auch die Frage
nach der Wahrheit von Unterabfragen haben wir nicht vergessen!)
jU^^^^^^^^^^^^^^^^k ^ Alte Daten aufräumen 41g
/j^^^^^^^^^^^^^^^^^H Hier geht s links und rechts 419
I ^^^^^^^^^^^^^^^^^V I Hier ist ein Left-Outer-Join 420
^^^^^^^^^^^^^^^^^^ / Outer-Joins und mehrere Treffer 425
^^^^^^^^^^^V / Der Right-Outer-Join 426
UNION kann . ^^^^^^^^tJE/ Während Sie mit Outer-Joins gespielt haben ... 429
tCuWisM dieser d«i Wir könnten eine neue Tabelle erstellen 430
stvaraU Ak-W* *» » Wie sich die neue Tabelle einfügt 431
fc rybni»i eny kon bmie«n-
U b_w,hsch_ Ein selbstreferentieller Fremdschlüssel 432
t^y-^- ^^Wu^. Eine Tabelle mit sich selbst verknüpfen 433
^¦/ ^^^^^ Wir brauchen einen Selfjoin 435
| ^^^^^^ I Mehr-Tabellen-Informationen, 2. Weg 436
^^H J ^ e können eine UNION verwenden 437
^ ^^ yr UNION ist beschränkt 438
N beiden Tabellen vorKswien UNION-Regeln im Einsatz 439
l i,i 11 * l UNION ALL 440
¦Bcif.cnnunyn BeMicHnunjen Aus einer UNION eine Tabelle erstellen 441
^^ ^ X 4/ INTERSECT und EXCEPT 442
^^^^^L ^v Mit Joins sind wir fertig, Zeit weiterzugehen ... 443
^^^^^^^k^ J Unterabfragen und Joins im Vergleich 443
^^^^^^^^^^y/___^/ Eine Unterabfrage in einenJoin umwandeln 444
( ^^^BHP^I Ein Self-Join als Unterabfrage 449
d« W/CttT^1 * 9 1 AIU BTt!fKw:3SL Gregors Unternehmen wacht 450
Bfcell ¦ *e in beiden Tabelleiv o
EXCFP^die *•* ** mi,*erio ***»t Dir SOJL-Werkzeugkasten 452
xvii
Onstralnts, VieWs und Transaktionen
Zu viele Köche verderben die Datenbank
I I Ihre Datenbank ist gewachsen und muss jetzt auch von anderen
¦ I Verwendet Werden. Das Problem ist, dass sich einige von ihnen mit SQL vielleicht
nicht so gut auskennen wie Sie. Sie brauchen Möglichkeiten zu verhindern, dass sie fal¬
sche Daten eingeben, Techniken, die erlauben, ihnen nur Teile der Daten zu präsentieren,
und Wege, sie davon abzuhalten, sich gegenseitig auf die Füße zu treten, wenn sie
parallel Daten eingeben. In diesem Kapitel beginnen wir, unsere Daten vor den Fehlern
anderer zu schützen. Willkommen zu Datenbanken in der Defensive, Teil 1.
Gregor hat Hilfskräfte eingestellt 456
Tims erster Tag: Einen neuen Kunden einfügen 457
Tim vermeidet eine NULL 458
Drei Monate später 459
Einen CHECK-Constraint einfügen 460
Das Geschlecht einschränken 461
Franks Job wird lästig 463
Einen View erstellen 465
Views betrachten 466
Was der View tatsächlich macht 467
Was ein View ist 468
Einfügen, Aktualisieren und Löschen mit Views 471
Vorgeben, dass der View eine richtige Tabelle ist 472
__^ Ein View mit CHECK OPTION 475
I Ihr View ist aktualisierbar, wenn ... 476
„ Wenn Sie Ihre Views nicht mehr brauchen 477
Bankhaus -i—u
:LLER PFENNIG I Wenn guten Datenbanken Böses widerfährt 478
WBHBB^^^MI I Was Geldautomaten abläuft 479
^^^^^^^^^^^g I Mehr Ärger am Geldautomaten 480
^^^^^^^HPHBi ri I Es ist kein Traum, es ist eine Transaktion 482
^^^^^m ^^ I I Der klassische ACID-Test 483
^^^^^^^P i^mB^T SQL hilft Ihnen, Transaktionen zu steuern 484
^^^^^^fcdfflVAl I Was im Geldautomaten hätte passieren sollen 485
^^^^^B^^^^BT ^ Unter MySQL mit Transaktionen arbeiten 486
II t / Und jetzt sind Sie dran 487
Ihr SQL-Werkzeugkasten 490
Sicherheit
. Ihre Anlagen schützen
IV Sie haben eine ungeheure Menge an Zeit und Energie in die
I f Erstellung Ihrer Datenbank gesteckt, und sie wären erschüttert, wenn
^^^ dieser etwas passieren würde. Aber Sie mussten auch anderen Personen Zugriff auf Ihre
Daten geben und sorgen sich jetzt, dass diese etwas falsch einfügen oder aktualisieren
könnten oder - noch schlimmer - die falschen Daten löschen könnten. Jetzt werden
Sie lernen, wie Datenbanken und die Objekte darin sicherer gemacht werden und wie Sie
die vollständige Steuerung darüber erhalten, wer was mit Ihren Daten machen darf.
Anwenderprobleme 494
Fehler in der Clown-Datenbank vermeiden 495
Das Benutzerkonto root schützen 497
Einen neuen Benutzer hinzufügen 498
Entscheiden, was genau ein Benutzer braucht 499
Eine einfache GRANT-Anweisung 500
GRANT-Variante 503
Berechtigungen mit REVOKE widerrufen 504
Eine verwendete GRANT OPTION widerrufen 505
REVOKE mit Präzision 506
Das Problem mit geteilten Konten 510
Die Rolle verwenden 512
Rollen löschen 512
Eine Rolle WITH ADMIN OPTION verwenden 514
CREATE USER und GRANT kombinieren 519
Gregors liste wird international 520
Ihr SQL-Werkzeugkasten 522
Wie wäre es mit Gregors Liste in Ihrer Stadt? 524
SQL in Ihren eigenen Projekten 524
root trcMfM «lo* nmr *°Uer ^ muede krank
xix
Was übrig bleibt
ADie Top Ten der Themen,
die wir nicht behandelt haben
Aber selbst jetzt sind noch ein paar Dinge übrig. Es gibt
noch einiges, das Sie wissen sollten. Wir hätten ein schlechtes Gefühl, wenn wir
sie ignorieren würden, auch wenn sie nur eine kurze Erwähnung finden. Bevor
Sie das Buch zuklappen, sollten Sie also einen Blick auf diese kurzen, aber wich¬
tigen SQL-Happen werfen.
Und wenn Sie das hinter sich haben, bleiben wirklich nur noch zwei weitere An¬
hänge ... und der Index ... und vielleicht etwas Werbung ... und dann haben Sie
es wirklich geschafft. Versprochen!
Nr. 1 Ein GUI für Ihr RDBMS 526
Nr. 2 Reservierte Wörter und Sonderzeichen 528
Nr. 3 ALL, ANY und SOME 530
Nr. 4 Mehr zu Datentypen 532
Nr. 5 Temporäre Tabellen 534
Nr. 6 Datentypen umwandeln 535
Nr. 7 Wer bin ich? Wie spät ist es? 536
Nr. 8 Nützliche mathematische Funktionen 537
Nr. 9 Mit Indizes beschleunigen 539
h^^h^^ Nr. 10 PHP/MySQL in 2 Minuten 540
^^^^^^^^| ^^^B Größer ah ^B^MNicrit größeres |^3|~Gräßär gleich
^^H^^^| JJ^ k ^fljÜndeich ^^J Tfcht gleich
MySqLJnstallation
B Probieren Sie es selbst
Ihre gesamten neuen SQL-Fertigkeiten bringen Ihnen
nicht viel, wenn Sie sie nirgendwo anwenden können.
Dieser Anhang enthält Anleitungen für die Installation Ihres MySQL-RDBMS, mit
dem Sie arbeiten können.
Anfangen, und zwar schnell 544
ipWI———MjJil^^^Hff ^k Anleitung und Problembehebung 544
| ^ 7 ^_^_______^ggj2ia__iH Schritte zur Installation von MySQL unter Windows 545
|^ k Schritte zur Installation von MySQL unter Mac OS X 548
l^^l^^^^l ....- _ | ., |.|... * „.^r 1 MySQL itfra H^
Wetkzeug-ÜberUick
All Ihre SQL-Werkzeuge
CHier sind all Ihre SQL-Werkzeuge - das erste Mal an
einem Ort und nur für eine Nacht (ist bloß ein Scherz)!
Das ist eine Zusammenfassung all der SQL-Werkzeuge, die wir behandelt
i— . haben. Nehmen Sie sich einen Moment, um einen Blick darauf zu werfen und
S^^r«** I sich wunderbar zu fühlen - all das haben Sie gelernt!
****** llliii |1 rSfeBB—JH .
i|£^ ^^^tjß^^^Jt^2^ § A 552
¦ feS^täH^^-aä£si — ¦ I v~F 554
^ro-JSj ^^ ^ i-*^~t pSi^^^J
•«jS i^tai-•***„! * Tili/**:-*^^^lf °~M 555
xxi
|
adam_txt |
Der Inhalt (in der t ersicht)
Einfuhrung xxiii
1 Daten und Tabellen: Ein Ortfiir alle Dinge 1
2 Die SELECT-Anweisung: Geschenkter Datenabruf 53
3 DELETE und UPDATE: Veränderung tut gut 119
4 Cleveres Tabellen-Design: Warum normal sein? 159
5 ALTER: Die Vergangenheit umschreiben 197
6 Fortgeschrittenes SELECT: Ihre Daten mit neuen Augen sehen 235
7 Eine Datenbank, viele Tabellen: Aus Ihrer Tabelle herauswachsen 281
8 Joins und Mehr-Tabellen-Operationen: Vereinigen wir uns! 343
9 Unterabfragen: Abfragen in Abfragen 379
10 Outer Joins, Selfjoins und Unions: Neue Manöver 417
11 Constraints, Views und Transaktionen: Viele Köche verderben die Datenbank 455
12 Sicherheit: Ihre Anlagen schützen 493
A Die Top Ten der Themen, die wir nicht behandelt haben 525
B Probieren Sie es selbst 543
C AU Ihre SQL-Werkzeuge 551
Index 559
Der Iriialt (jetzt ausführlich)
Einführung
Ihr Gehirn Und SQL. 5/e versuchen, etwas zu /emen,und Ihr H/m tut sein
Bestes, damit das Gelernte nicht hängen bleibt. Es denkt nämlich: »Wir sollten lieber
ordentlich Platz für wichtigere Dinge lassen, z.B. für das Wissen darüber, welche Tiere
einem gefährlich werden könnten oder dass es eine ganz schlechte Idee ist, nackt
Snowboard zu fahren.« Tja, wie schaffen wir es nun, Ihr Gehirn davon zu überzeugen,
dass Ihr Leben davon abhängt, etwas über SQL zu wissen?
Für wen ist dieses Buch? xxvi
Wir wissen, was Ihr Gehirn denkt xxv
Metakognition xxvii
Machen Sie sich Ihr Hirn untenan xxix
lies mich xxx
Die Fachgutachter xxxii
Danksagungen xxxiii
wti
Daten und Tabellen
IEin Ort für alle Dinge
Hassen Sie es auch, Dinge zu verlieren? Egal ob es ihre
Autoschlüssel, der 25%-Gutschein von Globetrotter oder Ihre Anwendungsdaten sind:
Es gibt nichts Schlimmeres, als nicht dazu in der Lage zu sein, das, was man braucht,
zur Hand zu haben . wenn man es braucht. Und wenn es um Ihre Anwendungen
geht, gibt es keinen besseren Ort, Ihre wichtigen Informationen zu speichern, als eine
Tabelle. Blättern Sie also um, treten Sie ein und machen Sie einen Spaziergang durch
die Welt der relationalen Datenbanken.
Daten definieren 2
Betrachten Sie Daten in Kategorien 7
Was in einer Datenbank steckt 8
Ihre Datenbank durch die Röntgenbrille 10
Datenbanken enthalten verwandte Daten 12
Tabellen unter der Lupe 13
Übernehmen Sie das Kommando! 17
Die Tabelle einrichten: die CREATE TABLE-Anweisung 19
Eine kompliziertere Tabelle erstellen 20
Wie einfach das Schreiben von SQL doch ist 21
Endlich die Tabelle meine_kontakte erstellen 22
Ihre Tabelle ist fertig 23
Machen Sie Bekanntschaft mit ein paar Datentypen 24
Eine Beschreibung Ihrer Tabelle 28
^^^^^.^ Eine Datenbank oder Tabelle kann nicht neu erstellt werden! 30
^^ ^^ Raus mit der alten Tabelle, rein mit der neuen 32
•e Patenbank dureh ^^ Daten einfügen mit der INSERT-Anweisung 34
ftntgenbrille ^^J
_ ^^^T Die INSEKT-Anweisung erstellen 37
w/53^Nfc^^^^ Variationen zu einer INSERT-Anweisung 41
^S^^6r Spalten ohne Werte 42
J Blicken Sie mit der SELECT-Anweisung in Ihre Tabelle 43
SQL im Gespräch: Geständnis einer NULL 44
Ihre innere NULL beherrschen 45
NOT NULL erscheint in DESC 47
Die Lücken mit DEFAULT füllen 48
Ihr SQL-Werkzeugkasten 50
Die SELECT-AnWeisung
2 Geschenkter Datenabruf
Ist Geben wirklich besser denn Nehmen? Bei Datenban¬
ken ist es nicht unwahrscheinlich, dass Sie genauso oft Daten abrufen wie
einfügen müssen. An dieser Stelle betritt dieses Kapitel die Bühne: Sie treffen
die mächtige SELECT-Anweisung und lernen, wie man Zugang zu den
wichtigen Informationen erhält, die Sie in Ihre Tabellen gesteckt haben. Sie
werden sogar lernen, wie man mit WHERE, AND und OR Daten selektiv abruft
und so vermeidet, Daten anzuzeigen, die man nicht braucht.
Ein Date oder kein Date? 54
Ein besseres SELECT 57
Was ist dieses *? 58
Wie Sie Ihre Datentypen abfragen 64
Mehr Interpunktionsprobleme 65
Ungebundene Anfuhrungszeichen 66
Einfache Anführungszeichen sind Sonderzeichen 67
Daten mit einfachen Anführungszeichen einfügen 68
Bestimmte Spalten auswählen, um das Ergebnis einzugrenzen 73
Schnellere Ergebnisse mit ausgewählten Spalten 73
Ihre Abfragen kombinieren 80
Numerische Werte finden 83
Vergleichsoperatoren 86
Mit Vergleichsoperatoren numerische Daten finden 88
Mit Vergleichsoperatoren Textdaten einfangen 91
Sein ODER nicht sein 93
Der Unterschied zwischen AND und OR 96
f~~Xc\\ bineinX NUL^"fmden mit IS NULL 99
C Stern! ) Zeit sparen mit einem Schlüsselwort: LIKE 1 () 1
^^ O ^s^ ^-^ ^s Der Joker sticht 101
_ ^^B Bereiche wählen mit AND und Vergleichsoperatoren 105
^^^H^^I^^^H Aber es gibt einen besseren Weg 106
" ^^^^^^^^^^^ Nach dem Date ist man entweder IN . 109
^^^^^L .oder NOT IN HO
^F ^P . MehrNOT 111
'V, . Ihr SQL-Werkzeugkasten 116
iv
DELETE und UPDATE
3 Veränderung tut gut
Sie ändern häufig Ihre Meinung? Das ist ab jetzt in
Ordnung! Mit den Befehlen, die Sie im Folgenden lernen werden - DELETE
und UPDATE -, sind Sie nicht mehr an Entscheidungen gebunden, die Sie vor
sechs Monaten gefällt haben, als Sie die Daten darüber eingefügt hatten, dass die
Dauerwelle demnächst wieder in sei. Mit UPDATE können Sie Daten ändern, und mit
DELETE werden Sie Daten los, die Sie nicht mehr brauchen. Aber wir geben Ihnen
nicht nur die Werkzeuge. In diesem Kapitel lernen Sie auch, wie Sie gezielt mit Ihren
neuen Kräften umgehen und vermeiden, Daten zu vernichten, die Sie noch brauchen.
Clowns sind gruselig 120
Clowns festhalten 121
Die Clowns sind unterwegs 122
Wie Ihre Clown-Daten eingefügt werden 126
Bonzo, wir haben ein Problem 128
Mit DELETE einen Datensatz loswerden 129
Unsere neue DELETE-Anweisung verwenden 131
DELETE-Regeln 132
Der INSERT-DELETE-Doppelschritt 135
Passen Sie bei Ihren DELETEs auf 140
Der Ärger mit ungenauen DELETEs 144
Daten ändern mit UPDATE 146
UPDATE-Regeln 147
UPDATE ist das neue INSERT/DELETE 148
UPDATE im Einsatz 149
Die Bewegungen der Clowns aktualisieren 150
Aktualisieren Sie Ihre Preise 154
'\ ,*¦ v s Wir brauehen nur ein UPDATE 156 ^
j^Q^_An9ditch?n"' J Ihr SQL-Werkzeugkasten 158 W
V 1
¦
CleVeres Tabellen-Design
4 Warum normal sein?
Sie haben Tabellen erzeugt, ohne ihnen viele Gedanken
ZU schenken. Das war in Ordnung. Sie haben funktioniert. Sie können auf
ihnen SELECTs, INSERTs, DELETEs und UPDATES ausführen. Aber wenn Ihre
Datenmenge wächst, beginnen Sie, auf Dinge zu stoßen, bei denen Sie sich
wünschten, Sie hätte sie anders gemacht, damit jetzt Ihre WHERE-Klauseln
einfacher wären. Und dazu müssen Sie Ihre Tabellen normal machen.
Zwei fischige Tabellen 160
Bei einer Tabelle geht es um Beziehungen 164
Atomare Daten j 68
Atomare Daten und Ihre Tabellen 170
Regeln für atomare Daten 17 \
Gründe, normal zu sein 174
Die Vorteile normalisierter Tabellen 175
Clowns sind nicht normal 175
Auf halbem Weg zu INF 177
PRIMÄRSCHLÜSSEL-Regeln 178
Sich der NORMALITÄT nähern 181
Gregors Tabelle in Ordnung bringen 182
Unsere alte CREATE TABLE-Anweisung 183
Tabelle
Zeig mir die T£»ä£ 184
Zeitsparende Anweisung 185
CREATE TABLE mit einem PRIMARY KEY 186
1, 2, 3 . und alles automatisch 188
f s/ ^ **v Einer Tabelle einen PRIMARY KEY hinzufügen 192
r Einen Moment. Ich habe eine Tabelle, die voller ^ ~r.T» ™ . t,t r^ , • t.t ™ • » T »r ., ,,. ,
f Daten ist. Sie können nicht ernsthaft erwarten, da* ) ALTER TABLE und ein neuer PRIMARY KEY 193
„ ( ich wie in Kapitel 1 den Befehl DROP TABLE einsetze „„,,,, .
h^ o V und das ganze Zeug dann neu eintippe, nur um einen 1 Ihr SQL-Werkzeugkasten 194
5» \^ Primärschlüssel für jeden Datensatz zu erzeugen .•
xi
ALTEH
5 Die Vergangenheit umschreiben
Haben Sie sich jemals gewünscht, die Fehler der Vergan¬
genheit korrigieren ZU können? Jetzt haben Sie Gelegenheit dazu. Mit
der ALTER-Anweisung können Sie all die Lektionen, die Sie gelernt haben, auf Tabel¬
len zur Anwendung bringen, die Sie vor Tagen, Monaten oder sogar Jahren entworfen
haben. Besser noch: Sie können es sogar tun, ohne dass das Einfluss auf Ihre Daten
hat. Wenn Sie mit dem Folgenden durch sind, wissen Sie, was normal wirklich bedeu¬
tet, und können es auf alle Ihre Tabellen, alte und neue, anwenden.
Wir müssen Änderungen vornehmen 198
Tabellenveränderungen 203
Extrem-Tabellenumbau 204
Die Tabelle umbenennen 205
Wir müssen einige Pläne machen 207
- Ihre Spalten umfunktionieren 208
y/w/~~) /5/i Strukturelle Veränderungen 209
i^J ^0(y ALTER und CHANGE 210
q Zwei Spalten mit nur einer SQL-Anweisung ändern 211
/2$/7/%/?j0]. Schnell! Löschen Sie diese Spalte 215
^*^ Sy Ein genauer Blick auf die nichtatomare Spalte Wohnort 222
Nach Mustern suchen 223
Ein paar praktische String-Funktionen 224
n der Zeit Ihre'"—-—^ ^ine neue Spalte mit einer aktuellen füllen 229
rouchtwogen-Tabellein \^ Wie unsere UPDATE/SET-Kombo funktioniert 230
gneten zu verwandein und )
:llenniveau zu heben, von J Ihr SQL-Werkzeugkasten 232
einmal geträumt haben. )
Fortgeschrittenes SELECT
6 Ihre Daten mit neuen Augen sehen
Es ist an der Zeit, Ihrem Werkzeugkasten etwas Finesse hinzu¬
zufügen. Sie wissen bereits, wie man mit SELECT Daten auswählt und WHERE-Klau-
seln einsetzt. Aber manchmal benötigt man mehr Genauigkeit, als sie SELECT und WHERE
bieten. In diesem Kapitel werden Sie lernen, wie Sie Ihre Daten ordnen und gruppieren und
wie Sie auf Ihren Ergebnissen mathematische Operationen durchführen.
Die Videothek Datenhausen baut um 236
Probleme mit unseren aktuellen Tabellen 237
Die bestehenden Daten zuordnen 238
Die neue Spalte füllen 239
UPDATE mit einem CASE-Ausdruck 242
Es scheint, als hätten wir ein Problem 244
Tabellen können unordentlich werden 249
Die ausgewählten Daten sortieren 250
Probieren Sie ein kleines ORDER BY 253
Eine einzelne Spalte ordnen 254
ORDER mit zwei Spalten 257
\ZTDEOTHEK ORDER mit mehreren Spalten 258
DATENHAUSEN Eine sortierte fllm-tabeUe 259
Die Reihenfolge mit DESC umkehren 261
tfäHHlll^^^DSHl Das Pfadfinderinnen-Keksverkaufsproblem 263
98MH^E5^^RB SUM kann für uns addieren 265
Mit GROUP BY alle auf einmal addieren 266
AVG mit GROUP BY 267
MIN und MAX 268
|"W* f \ | "^^ Mit COUNT die Tage zählen 269
17 rTrKtf_^^f^rt^V^ Die Anzahl an Ergebnissen limitieren 274
2P-J1 f^VTWtLJr XjL Auf nur den zweiten Platz eingrenzen 275
^rjfuXj^«C^^^Mv*^t^ «^.lhr SQL-Werkzeugkasten 278
Eine Datenbank, viele Tabellen
7 Aus Ihrer Tabelle herauswachsen
Manchmal reicht eine einzige Tabelle einfach nicht mehr
aus. Ihre Daten sind komplexer geworden, und die eine Tabelle, mit der Sie ge¬
arbeitet haben, schafft es nicht mehr. Ihre Tabelle steckt voller redundanter Daten,
die Platz verschwenden und Ihre Abfragen verlangsamen. Sie sind Ihrer einen Tabelle
treu geblieben, solange es möglich war. Aber die Welt ist groß und weit, und manchmal
braucht man mehrere Tabellen, um seine Daten festzuhalten, zu steuern und die
eigene Datenbank unter Kontrolle zu halten.
Ein Date für Norbert 282
Alles ist verloren . doch, Moment 293
Über eine Tabelle hinausdenken 294
Die Mehr-Tabellen-Clown-Datenbank 295
Das clown_info-Datenbankschema 296
Aus einer Tabelle zwei machen 298
Ihre Tabellen verknüpfen 303
r""-""* —— I i^in7-i Ihren Fremdschlüssel beschränken 305
\\ £5i^zzz~l_lz£z,i Warum Fremdschlüssel? 306
v Eine Tabelle mit einem Fremdschlüssel erstellen 307
id^v, I -cWvito.ijd o—*" Beziehungen zwischen Tabellen 309
=^z_T" | 1 Datenmuster: 1:1 309
Datenmuster: Verwendungszwecke für l:l-Tabellen 310
Datenmuster: eins-zu-viele 311
1 i . Datenmuster: nun die m:n-Beziehung;en 312
' id^ Tr i— ¦ onjd o—» Datenmuster: Wir brauchen eine Verbindungstabelle 315
ortjd % ~f i ' ort
^^, ' Datenmuster: m:n 316
Endlich INF 321
Schlüssel auf mehreren Spalten 322
Kurzform-Notationen 324
Partielle funktioneile Abhängigkeit 325
*** "*^^ lalWMtwi Transitive funktionelle Abhängigkeit 326
inUd
interesse ~| 2" Normalform 330
Die 3. Normalform (endlich) 336
Glücklich bis ans Ende ihrer Tage 339
Ihr SQL-Werkzeugkasten 340
Jofns und Mök'Tabellen-Oper^öQnen
8 Vereinigen wir uns!
Willkommen in der Mehr-Tabellen-Welt. Es ist wunderbar, dass sie jetzt
mehrere Tabellen in Ihrer Datenbank haben, aber Sie müssen ein paar neue Werkzeuge
und Techniken kennenlernen, damit Sie mit ihnen auch arbeiten können. Mehrere Ta¬
bellen führen schnell zu Verwirrungen, deswegen benötigen Sie Aliase, um Ihre Tabellen
auseinanderzuhalten. Und Joins helfen Ihnen, Ihre Tabellen zu verknüpfen, damit Sie
wieder an all die Daten herankommen, die wir im letzten Kapitel verteilt haben. Machen
Sie sich fertig, es ist Zeit, die Steuerung der Datenbank wieder zu übernehmen.
Immer diese Wiederholungen . 344
Ihre Tabellen vorab füllen 345
Die »Schwer zu normalisieren«-Misere 347
Die besonderen Interessen (Werte) 348
Interessiert bleiben 349
Alle Interessen aktualisieren 350
Alle Interessen abfragen 351
Viele Wege führen nach Rom 352
CREATE, SELECT und INSEKT (fast) gleichzeitig 352
CREATE, SELECT und INSERT gleichzeitig 353
Was das AS macht. 354
Spaltenaliase 355
Wer braucht schon TabeUenaliase? 356
Alles, was Sie schon immer über Joins wissen wollten . 357
^y—- N. Der Kartesische Join 358
^kommwdt Weinen \ H«w» Inneren Join befreien 363
_ V Ergebnistobellen ) Der Inner-Toin im Einsatz: der Equi-Join 364
^^^^^^^^k^^_ O Jl wirklich her! -• J
^^^^^^^^Htfjj^k° jtm—* Der Inner-Join im Einsatz: der Nicht-Equi-Join 367
^^^^B^^fl^^Pjl^H ^er 'etzte Inner: der Natural-Join 368
^^E§k* ^SBS^^B Vereinte Abfragen? 375
W^B/I^Mß3mSK^^^M Tabellen- und Spaltenaliase im Gespräch 376
^^¦fe^Vf^H^^M Ihr SQL-Werkzeugkasten 377
XV
9 Abfragen in Abfragen
Ja, Hans, mir wäre eine zweiteilige Frage recht. Joins sind wunder¬
bar, aber manchmal müssen Sie Ihrer Datenbank mehrere Fragen stellen. Oder das
Ergebnis einer Abfrage nehmen und als Eingabe für eine andere Abfrage verwen¬
den. An dem Punkt kommen Unterabfragen ins Spiel. Sie helfen Ihnen, doppelte Daten
zu vermeiden, und machen Ihre Abfragen dynamischer. Sie verschaffen Ihnen sogar
Zugang zu diesen exklusiven Backstage-Partys. (Na, nicht wirklich, aber zwei von drei ist
ja keine so schlechte Quote!)
Gregor wird Jobvermittler 380
Gregors Liste erhält mehr Tabellen 381
Gregor nutzt einen Inner-Join 382
Aber er möchte noch andere Abfragen probieren 384
Unterabfragen 386
Zwei Abfragen zu einer kombinieren 387
Als wäre eine Abfrage nicht genug: die Unterabfrage 388
Eine Unterabfrage im Einsatz 389
Regeln für Unterabfragen 391
Unterabfragenaufbauschnellkurs 394
Eine Unterabfrage als SELECT-Spalte 397
Eine Unterabfrage mit einem Natural-Join 398
Eine nicht-korrelierte Unterabfrage 399
SQL im Gespräch: Die beste Form einer Abfrage finden 400
Nicht-korrelierte Unterabfragen mit mehreren Werten 403
BfeMH^^^^ Korrelierte Unterabfragen 408
U£Jg|jgVfl^^^^ Eine (nützliche) korrelierte Unterabfrage mit NOT EXISTS 409
HWlffj^^^^^ EXISTS und NOT EXISTS 410
Gregors Jobvermittlung öffnet die Türen 412
Auf dem Weg zur Party . 413
x" -ÄW3««AbW- Ihr SQL-Werkzeugkasten 414
Outer-Joins, Sei? Jofns und Unions
. Neue Manöver
11 V Nocn kennen Sie die Join-Geschichte nur halb, sie wissen, dass
I A W Cross-Joins alle Zeilen beider Tabellen liefern und Inner-Joins die Zeilen, die einer Bedin-
gung genügen. Was Sie noch nicht kennen, sind Outer-Joins, die Ihnen Zeilen liefern, zu
denen es keine passenden Gegenstücke in der anderen Tabelle gibt, Self-Joins, die (was
ziemlich seltsam erscheint) eine Tabelle mit sich selbst verknüpfen, und Unions, die die
Ergebnisse Ihrer Abfragen kombinieren. Haben Sie das alles einmal gelernt, werden Sie
Ihre Daten immer so abrufen können, wie Sie sie gerade benötigen. (Und auch die Frage
nach der Wahrheit von Unterabfragen haben wir nicht vergessen!)
jU^^^^^^^^^^^^^^^^k ^\ Alte Daten aufräumen 41g
/j^^^^^^^^^^^^^^^^^H \ Hier geht's links und rechts 419
I ^^^^^^^^^^^^^^^^^V I Hier ist ein Left-Outer-Join 420
\ ^^^^^^^^^^^^^^^^^^ / Outer-Joins und mehrere Treffer 425
\ ^^^^^^^^^^^V / Der Right-Outer-Join 426
UNION kann \. ^^^^^^^^tJE/ Während Sie mit Outer-Joins gespielt haben . 429
tCuWisM dieser d«i " Wir könnten eine neue Tabelle erstellen 430
stvaraU Ak-W* *» ' "» Wie sich die neue Tabelle einfügt 431
fc rybni»i eny kon bmie«n-
U b_w,hsch_ Ein selbstreferentieller Fremdschlüssel 432
t^y-^- ^^Wu^. Eine Tabelle mit sich selbst verknüpfen 433
^¦/ ^^^^^ \ Wir brauchen einen Selfjoin 435
| ^^^^^^ I Mehr-Tabellen-Informationen, 2. Weg 436
\ ^^H J ^'e können eine UNION verwenden 437
^\^^ yr UNION ist beschränkt 438
N beiden Tabellen vorKswien UNION-Regeln im Einsatz 439
l i,i 11 *'"' l UNION ALL 440
¦Bcif.cnnunyn BeMicHnunjen Aus einer UNION eine Tabelle erstellen 441
^^ ^"X 4/ INTERSECT und EXCEPT 442
^^^^^L ^v \ Mit Joins sind wir fertig, Zeit weiterzugehen . 443
^^^^^^^k^ \ J Unterabfragen und Joins im Vergleich 443
^^^^^^^^^^y/_^/ Eine Unterabfrage in einenJoin umwandeln 444
( ^^^BHP^I Ein Self-Join als Unterabfrage 449
d« W/CttT^1"*"9"1' AIU BTt!fKw:3SL Gregors Unternehmen wacht 450
"Bfcell "¦ *e in beiden Tabelleiv o
EXCFP^die *•* ** mi,*erio ***»t Dir SOJL-Werkzeugkasten 452
xvii
Onstralnts, VieWs und Transaktionen
Zu viele Köche verderben die Datenbank
I I Ihre Datenbank ist gewachsen und muss jetzt auch von anderen
¦ I Verwendet Werden. Das Problem ist, dass sich einige von ihnen mit SQL vielleicht
nicht so gut auskennen wie Sie. Sie brauchen Möglichkeiten zu verhindern, dass sie fal¬
sche Daten eingeben, Techniken, die erlauben, ihnen nur Teile der Daten zu präsentieren,
und Wege, sie davon abzuhalten, sich gegenseitig auf die Füße zu treten, wenn sie
parallel Daten eingeben. In diesem Kapitel beginnen wir, unsere Daten vor den Fehlern
anderer zu schützen. Willkommen zu Datenbanken in der Defensive, Teil 1.
Gregor hat Hilfskräfte eingestellt 456
Tims erster Tag: Einen neuen Kunden einfügen 457
Tim vermeidet eine NULL 458
Drei Monate später 459
Einen CHECK-Constraint einfügen 460
Das Geschlecht einschränken 461
Franks Job wird lästig 463
Einen View erstellen 465
Views betrachten 466
Was der View tatsächlich macht 467
Was ein View ist 468
Einfügen, Aktualisieren und Löschen mit Views 471
Vorgeben, dass der View eine richtige Tabelle ist 472
_^ Ein View mit CHECK OPTION 475
I Ihr View ist aktualisierbar, wenn . 476
„ "\ Wenn Sie Ihre Views nicht mehr brauchen 477
Bankhaus -i—u
:LLER PFENNIG I Wenn guten Datenbanken Böses widerfährt 478
WBHBB^^^MI I Was'"' Geldautomaten abläuft 479
^^^^^^^^^^^g \ I Mehr Ärger am Geldautomaten 480
^^^^^^^HPHBi ri I Es ist kein Traum, es ist eine Transaktion 482
^^^^^m ^^ I I Der klassische ACID-Test 483
^^^^^^^P i^mB^T SQL hilft Ihnen, Transaktionen zu steuern 484
^^^^^^fcdfflVAl I Was im Geldautomaten hätte passieren sollen 485
^^^^^B^^^^BT""""^ Unter MySQL mit Transaktionen arbeiten 486
II t / Und jetzt sind Sie dran 487
Ihr SQL-Werkzeugkasten 490
Sicherheit
. Ihre Anlagen schützen
IV Sie haben eine ungeheure Menge an Zeit und Energie in die
I f\ Erstellung Ihrer Datenbank gesteckt, und sie wären erschüttert, wenn
^^^ dieser etwas passieren würde. Aber Sie mussten auch anderen Personen Zugriff auf Ihre
Daten geben und sorgen sich jetzt, dass diese etwas falsch einfügen oder aktualisieren
könnten oder - noch schlimmer - die falschen Daten löschen könnten. Jetzt werden
Sie lernen, wie Datenbanken und die Objekte darin sicherer gemacht werden und wie Sie
die vollständige Steuerung darüber erhalten, wer was mit Ihren Daten machen darf.
Anwenderprobleme 494
Fehler in der Clown-Datenbank vermeiden 495
Das Benutzerkonto root schützen 497
Einen neuen Benutzer hinzufügen 498
Entscheiden, was genau ein Benutzer braucht 499
Eine einfache GRANT-Anweisung 500
GRANT-Variante 503
Berechtigungen mit REVOKE widerrufen 504
Eine verwendete GRANT OPTION widerrufen 505
REVOKE mit Präzision 506
Das Problem mit geteilten Konten 510
Die Rolle verwenden 512
Rollen löschen 512
Eine Rolle WITH ADMIN OPTION verwenden 514
CREATE USER und GRANT kombinieren 519
Gregors liste wird international 520
Ihr SQL-Werkzeugkasten 522
Wie wäre es mit Gregors Liste in Ihrer Stadt? 524
SQL in Ihren eigenen Projekten 524
root trcMfM «lo* nmr *°Uer ^ muede krank
xix
Was übrig bleibt
ADie Top Ten der Themen,
die wir nicht behandelt haben
Aber selbst jetzt sind noch ein paar Dinge übrig. Es gibt
noch einiges, das Sie wissen sollten. Wir hätten ein schlechtes Gefühl, wenn wir
sie ignorieren würden, auch wenn sie nur eine kurze Erwähnung finden. Bevor
Sie das Buch zuklappen, sollten Sie also einen Blick auf diese kurzen, aber wich¬
tigen SQL-Happen werfen.
Und wenn Sie das hinter sich haben, bleiben wirklich nur noch zwei weitere An¬
hänge . und der Index . und vielleicht etwas Werbung . und dann haben Sie
es wirklich geschafft. Versprochen!
Nr. 1 Ein GUI für Ihr RDBMS 526
Nr. 2 Reservierte Wörter und Sonderzeichen 528
Nr. 3 ALL, ANY und SOME 530
Nr. 4 Mehr zu Datentypen 532
Nr. 5 Temporäre Tabellen 534
Nr. 6 Datentypen umwandeln 535
Nr. 7 Wer bin ich? Wie spät ist es? 536
Nr. 8 Nützliche mathematische Funktionen 537
Nr. 9 Mit Indizes beschleunigen 539
h^^h^^ Nr. 10 PHP/MySQL in 2 Minuten 540
^^^^^^^^| ^^^B Größer ah ^B^MNicrit größeres |^3|~Gräßär gleich
^^H^^^| JJ^"k ^fljÜndeich ^^J"Tfcht gleich
MySqLJnstallation
B Probieren Sie es selbst
Ihre gesamten neuen SQL-Fertigkeiten bringen Ihnen
nicht viel, wenn Sie sie nirgendwo anwenden können.
Dieser Anhang enthält Anleitungen für die Installation Ihres MySQL-RDBMS, mit
dem Sie arbeiten können.
Anfangen, und zwar schnell 544
ipWI———MjJil^^^Hff'^k Anleitung und Problembehebung 544
| ^ 7 ^_^_^ggj2ia_iH Schritte zur Installation von MySQL unter Windows 545
|^ k Schritte zur Installation von MySQL unter Mac OS X 548
l^^l^^^^l .- _ | ., |.|. * „.^r 1 MySQL itfra H^
Wetkzeug-ÜberUick
All Ihre SQL-Werkzeuge
CHier sind all Ihre SQL-Werkzeuge - das erste Mal an
einem Ort und nur für eine Nacht (ist bloß ein Scherz)!
Das ist eine Zusammenfassung all der SQL-Werkzeuge, die wir behandelt
i— . haben. Nehmen Sie sich einen Moment, um einen Blick darauf zu werfen und
S^^r«** I sich wunderbar zu fühlen - all das haben Sie gelernt!
****** llliii |1 rSfeBB—JH .
i|£^ ^^^tjß^^^Jt^2^ § A 552
¦ feS^täH^^-aä£si'— ¦ I v~F 554
"^ro-JSj ""^^""^ i-*^~t pSi^^^J
•«jS i^tai-•***„! "*"Tili/**:-*^^^lf °~M 555
xxi |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Beighley, Lynn 19XX- |
author_GND | (DE-588)133926443 |
author_facet | Beighley, Lynn 19XX- |
author_role | aut |
author_sort | Beighley, Lynn 19XX- |
author_variant | l b lb |
building | Verbundindex |
bvnumber | BV023075006 |
classification_rvk | ST 271 |
ctrlnum | (OCoLC)213388821 (DE-599)DNB986386057 |
dewey-full | 005.7565 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.7565 |
dewey-search | 005.7565 |
dewey-sort | 15.7565 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 1. Auflage |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01990nam a2200493 c 4500</leader><controlfield tag="001">BV023075006</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20160419 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">080111s2008 a||| |||| 00||| ger d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">07,N49,0017</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">08,A10,0009</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">986386057</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783897217607</subfield><subfield code="9">978-3-89721-760-7</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3897217600</subfield><subfield code="9">3-89721-760-0</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9783897217607</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)213388821</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB986386057</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-M347</subfield><subfield code="a">DE-92</subfield><subfield code="a">DE-859</subfield><subfield code="a">DE-1051</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-860</subfield><subfield code="a">DE-384</subfield><subfield code="a">DE-863</subfield><subfield code="a">DE-858</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-523</subfield><subfield code="a">DE-634</subfield><subfield code="a">DE-706</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-188</subfield><subfield code="a">DE-473</subfield><subfield code="a">DE-898</subfield><subfield code="a">DE-B768</subfield><subfield code="a">DE-526</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.7565</subfield><subfield code="2">22/ger</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 271</subfield><subfield code="0">(DE-625)143639:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Beighley, Lynn</subfield><subfield code="d">19XX-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)133926443</subfield><subfield code="4">aut</subfield></datafield><datafield tag="240" ind1="1" ind2="0"><subfield code="a">Head first SQL <dt.></subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">SQL von Kopf bis Fuß</subfield><subfield code="b">[ein Buch zum Mitmachen und Verstehen]</subfield><subfield code="c">Lynn Beighley</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1. Auflage</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Beijing [u.a.]</subfield><subfield code="b">O'Reilly</subfield><subfield code="c">2008</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXXIII, 571 Seiten</subfield><subfield code="b">Illustrationen</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">Head first...</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Datenbanksprache</subfield><subfield code="0">(DE-588)4123038-3</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Datenbankentwurf</subfield><subfield code="0">(DE-588)4127613-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">SQL</subfield><subfield code="0">(DE-588)4134010-3</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">SQL</subfield><subfield code="0">(DE-588)4134010-3</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Datenbanksprache</subfield><subfield code="0">(DE-588)4123038-3</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="2"><subfield code="a">Datenbankentwurf</subfield><subfield code="0">(DE-588)4127613-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="8">1\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016278117&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-016278117</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield></record></collection> |
id | DE-604.BV023075006 |
illustrated | Illustrated |
index_date | 2024-07-02T19:34:41Z |
indexdate | 2024-08-01T10:51:01Z |
institution | BVB |
isbn | 9783897217607 3897217600 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-016278117 |
oclc_num | 213388821 |
open_access_boolean | |
owner | DE-M347 DE-92 DE-859 DE-1051 DE-Aug4 DE-860 DE-384 DE-863 DE-BY-FWS DE-858 DE-20 DE-523 DE-634 DE-706 DE-11 DE-573 DE-188 DE-473 DE-BY-UBG DE-898 DE-BY-UBR DE-B768 DE-526 |
owner_facet | DE-M347 DE-92 DE-859 DE-1051 DE-Aug4 DE-860 DE-384 DE-863 DE-BY-FWS DE-858 DE-20 DE-523 DE-634 DE-706 DE-11 DE-573 DE-188 DE-473 DE-BY-UBG DE-898 DE-BY-UBR DE-B768 DE-526 |
physical | XXXIII, 571 Seiten Illustrationen |
publishDate | 2008 |
publishDateSearch | 2008 |
publishDateSort | 2008 |
publisher | O'Reilly |
record_format | marc |
series2 | Head first... |
spellingShingle | Beighley, Lynn 19XX- SQL von Kopf bis Fuß [ein Buch zum Mitmachen und Verstehen] Datenbanksprache (DE-588)4123038-3 gnd Datenbankentwurf (DE-588)4127613-9 gnd SQL (DE-588)4134010-3 gnd |
subject_GND | (DE-588)4123038-3 (DE-588)4127613-9 (DE-588)4134010-3 |
title | SQL von Kopf bis Fuß [ein Buch zum Mitmachen und Verstehen] |
title_alt | Head first SQL <dt.> |
title_auth | SQL von Kopf bis Fuß [ein Buch zum Mitmachen und Verstehen] |
title_exact_search | SQL von Kopf bis Fuß [ein Buch zum Mitmachen und Verstehen] |
title_exact_search_txtP | SQL von Kopf bis Fuß [ein Buch zum Mitmachen und Verstehen] |
title_full | SQL von Kopf bis Fuß [ein Buch zum Mitmachen und Verstehen] Lynn Beighley |
title_fullStr | SQL von Kopf bis Fuß [ein Buch zum Mitmachen und Verstehen] Lynn Beighley |
title_full_unstemmed | SQL von Kopf bis Fuß [ein Buch zum Mitmachen und Verstehen] Lynn Beighley |
title_short | SQL von Kopf bis Fuß |
title_sort | sql von kopf bis fuß ein buch zum mitmachen und verstehen |
title_sub | [ein Buch zum Mitmachen und Verstehen] |
topic | Datenbanksprache (DE-588)4123038-3 gnd Datenbankentwurf (DE-588)4127613-9 gnd SQL (DE-588)4134010-3 gnd |
topic_facet | Datenbanksprache Datenbankentwurf SQL |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016278117&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT beighleylynn headfirstsqldt AT beighleylynn sqlvonkopfbisfußeinbuchzummitmachenundverstehen |
Inhaltsverzeichnis
THWS Würzburg Zentralbibliothek Lesesaal
Signatur: |
1000 ST 271 S70 B422 |
---|---|
Exemplar 1 | ausleihbar Verfügbar Bestellen |
THWS Würzburg Teilbibliothek SHL, Raum I.2.11
Signatur: |
1340 ST 271 S70 B422st |
---|---|
Exemplar 1 | nicht ausleihbar Verfügbar Bestellen |