Notizen zur Einführung in SQL (SQL), Notizen, Seite 722359
https://www.purl.org/stefan_ram/pub/sql-kurs (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
SQL-Kurs

SQL-Kurs: Einführung in SQL  mit MySQL 

Teil 0 Grundlagen

Kapitel 0 Einführung

>723022 Lektion 0.0. Überblick über den SQL-Kurs

Dieses Kapitel soll einen ersten kurzen Überblick  über relationale Datenbanken geben. Es ist nicht  nötig, alle Details dieses Kapitels genau zu verstehen, da diese Details im weiteren Verlaufe des Kurses noch einmal wiederholt und langsamer erklärt werden werden.

>723778 Lektion 0.1. Datenbanken
>722491 Lektion 0.2. Zellen
>723779 Lektion 0.3. Relationale Datensätze
>723780 Lektion 0.4. Relationale Tabellen
>723858 Lektion 0.5. Relationale Operationen
>723859 Lektion 0.6. Relationale Datenbanksysteme
>724179 Lektion 0.7. Gestaltungsprinzipien relationaler Datenbanken
>722363 Lektion 0.8. SQL 
>722364 Lektion 0.9. MySQL 

Kapitel 1 Handhabung von MySQL 

>722366 Lektion 1.0. MySQL-Installation
>724614 Lektion W-0 ℋ  Die Eingabetaste
>723849 Lektion 1.1. Aspekte der IBM-PC -Tastatur
>724121 Lektion 1.2. Start des MySQL-Monitors
>723882 Lektion 1.3. Konsolen-Grundlagen für Programmierkurse
>722367 Lektion 1.4. Bedienung des MySQL-Monitors

Kapitel 2 Tabellen in SQL  (MySQL )

Dieses Kapitel enthält zusammen mit dem folgenden Kapitel das Wichtigste, was man über SQL  wissen muß. Dabei werden in den einzelnen Lektionen dieses Kapitels nach Möglichkeit Kommandos verwendet, die nicht nur in MySQL  verfügbar sind, sondern auch dem ISO -Standard entsprechen und die daher auch in vielen anderen Datenbanksystemen verfügbar sind.

Dieses und das folgende Kapitel enthalten vorwiegend Inhalte, welche zur relationalen Algebra gehören. Die nicht direkt zur relationalen Algebra gehörenden arithmetischen Ausdrücke, Gruppierungsoperationen und statistischen Operationen werden dann in späteren Kapiteln behandelt.

>722373 Lektion 2.0. »CREATE SCHEMA« – Erzeugen und Einstellen von Schemata mit SQL  (MySQL )
Mit Syntax des 〈direct SQL statement〉.
>723462 Lektion 2.1. Schlüsselwörter in SQL  (MySQL )
>722933 Lektion 2.2. » « – Lexikalische Einheiten und Leerraum in SQL  (MySQL )
>723033 Lektion 2.3. SQL -Skripte in MySQL 
>722576 Lektion 2.4. »CREATE TABLE« – Anlegen von Tabellenspeichern mit SQL  (MySQL )
>722402 Lektion 2.5. »FROM« – Angabe einer Datenquelle in SQL  (MySQL )
>722371 Lektion 2.6. »INSERT INTO« – Einfügen von Zeilen mit SQL  (MySQL )
>723160 Lektion 2.7. »INSERT INTO« – Tabellenspeicher mit mehreren Zeilen in SQL  (MySQL )
>722946 Lektion 2.8. »,« – Tabellenspeicher mit mehreren Spalten in SQL  (MySQL )
>723866 Lektion 2.9. Fehlermeldungen von MySQL 
>722935 Lektion 2.10. »-- « – Kommentare in SQL  (MySQL )
>723873 Lektion 2.11. Die Dokumentation von Tabellen mit SQL 
>722404 Lektion 2.12. »SELECT« – Projektion in SQL  (MySQL )
>722405 Lektion 2.13. »*« – Der Stern als Auswahlliste in SQL  (MySQL )
>723061 Lektion 2.14. »DROP TABLE« – Entfernen von Tabellen in MySQL 
>722409 Lektion 2.15. »DISTINCT« – Ausblenden mehrfacher Zeilen in SQL  (MySQL )
>722368 Lektion 2.16. »CREATE VIEW« – Ansichten in SQL  (MySQL )

Bis zu dieser Stelle wurden die Lektionen des Grundkurses 2020 überarbeitet und ausformuliert. Von den restlichen Lektionen können einige Lektionen noch weniger ausformuliert oder ausgereift sein, insbesondere je weiter hinten sie stehen.

>722408 Lektion 2.17. »WHERE  =« – Äquiselektion (Äquirestriktion, Teilmengenbildung) in SQL  (MySQL )
>723615 Lektion 2.18. »INSERT … SELECT« – Persistierung abgeleiteter Tabellen mit SQL  (MySQL )
>722942 Lektion 2.19. »UPDATE … WHERE« – Änderungen von Zelleninhalten mit SQL  (MySQL )
>722943 Lektion 2.20. »DELETE … WHERE« – Löschen von Zeilen mit SQL  (MySQL )
>723064 Lektion 2.21. Aktualisierbare Views in SQL  (MySQL ) 〈0〉 ⃗
>722961 Lektion 2.22. ».« – Qualifizierte Namen in SQL  (MySQL )

Kapitel 3 Verbindungen in SQL  (MySQL )

>722412 Lektion 3.0. »,« – Kartesische Produkte in SQL  (MySQL )
>722963 Lektion 3.1. » WHERE  =« – Verbindungen (Äquijoins) in SQL  (MySQL )
1:1-Beziehungen, Join-Abhängigkeiten
>722737 Lektion 3.2. ON-Verbindungen in SQL   (MySQL )
>723361 Lektion 3.3. Normalisierung von Tabellen in SQL  (MySQL )
>722413 Lektion 3.4. USING-Feldauswahl in SQL   (MySQL )
>722533 Lektion 3.5. Natürliche Verbindungen in SQL  (MySQL )
>722369Lektion 3.6. »AS« – Lokale Namen für Tabellen in SQL  (MySQL )
>722406 Lektion 3.7. »AS« – Spaltennamen abgeleiteter Tabelle in SQL  (MySQL )
>723195 Lektion 3.8. Einstellungen von MySQL 
>723287 Lektion 3.9. »"« – Begrenzte Namen in SQL  (MySQL ) 〈1〉 ⃗
>723130 Lektion 3.10. n:1-Beziehungen in SQL  (MySQL )
>723131 Lektion 3.11. Primärschlüssel und Fremdschlüssel in SQL  (MySQL )
Entitäten, Primärschlüssel, Fremdschlüssel, künstliche numerische Primärschlüssel
>723632 Lektion 3.12. Schlüssel anderer Parteien
>723132 Lektion 3.13. 1:n-Beziehungen in SQL  (MySQL )
>724234 Lektion 3.14. »DESCRIBE« – Die Beschreibung von Tabellen in MySQL 
>720660 Lektion 3.15. Der Wert »NULL« in SQL 
»DESCRIBE«
>724447 Lektion 3.16. Optionale Felder in SQL 
>722370 Lektion 3.17. »UNION« – Vereinigungsmengen in SQL  (MySQL )
>722984 Lektion 3.18. Äußere Verbindungen in SQL 
>723062 Lektion 3.19. »ALTER« – Ändern der Struktur in MySQL
>722965 Lektion 3.20. Anzeige von Metainformationen mit MySQL 
>722982 Lektion 3.21. Mehrfachverbindungen (n:m) in SQL  (MySQL )
>723059 Lektion 3.22. Primärschlüsselspalten in MySQL 
>723060 Lektion 3.23. Referentielle Integrität in MySQL 
>722537 Lektion 3.24. Datenexport mit MySQL 
>722538 Lektion 3.25. Datenimport mit MySQL 
>723290 Lektion 3.26. Datensicherung mit MySQL  *
>722529 Lektion 3.27.  Register in MySQL   *

Kurs SQL -Aufbaukurs

Da die SQL-Grundkurse unterschiedlich lange dauern (von 21 bis 40 UE), kann leider keine Stelle für den Beginn des Aufbaukurses festgelegt werden, die für alle Teilnehmer eines Grundkurses Überschneidungen und/oder Lücken vermeidet. So wurde hier willkürlich eine bestimmte Stelle festgelegt.

In Aufbaukursen kann an dieser Stelle ein kurzer Rückblick auf den Grundkurs  gegeben werden. Er sollte aber nicht mehr als 10 Prozent der Zeit des Aufbaukurses umfassen.

Kapitel 4 Operatorausdrücke

Nachdem wir uns bisher mit den Tabellen beschäftigt haben und dabei auch schon skalare Ausdrücke verwendet haben, widmen wir uns in diesem Kapitel nun besonders den Skalaren, also den Werte, die in einer Zelle stehen können. Wir behandeln ihre Notation, ihre Typen, und ihre Verarbeitung mit Operatoren und Funktionen.

>723460 Lektion 4.0. Zeichenfolgenliterale in SQL 
>723301 Lektion 4.1. Zeichenfolgenliterale in der Auswahlliste in SQL  (MySQL )
>723270 Lektion 4.2. Abfragen ohne  Basistabellen in MySQL 
>722399 Lektion 4.3. »123« – Literale in SQL  (MySQL )

Bis zu dieser Stelle wurden die Lektionen des Aufbaukurses 2020 überarbeitet und ausformuliert. Von den folgenden Lektionen dieses Aufbaukurses können einige Lektionen noch weniger ausformuliert oder ausgereift sein, insbesondere je weiter hinten sie stehen.

>724227 Lektion 4.4. Der Typ »VARCHAR« in SQL  (MySQL )
>724224 Lektion 4.5. Der Typ »INT« in SQL  (MySQL )
>724229 Lektion 4.6. Der Typ »DECIMAL« in SQL  (MySQL )
>724230 Lektion 4.7. Der Typ »DOUBLE« in SQL (MySQL)
>724233 Lektion 4.8. Der Typ »CHAR« in SQL (MySQL)
>724232 Lektion 4.9. Das Schlüsselwort »AUTO_INCREMENT« in MySQL
>724231 Lektion 4.10. Das Alias »SERIAL« in MySQL
>722931 Lektion 4.11. »-« – Der Vorzeichenwechsel »-« in SQL  (MySQL )
>722407 Lektion 4.12. Sortieren in SQL   (MySQL )
>724036 Lektion 4.13. Operatoren und Operanden
>722936 Lektion 4.14. »()« – Die Ausdruckklammern in SQL  (MySQL )
>722937 Lektion 4.15. »/x« – Die Division von Spalten in SQL  (MySQL )
>723266 Lektion 4.16. »/2« – Die Division mit Literalen in SQL  (MySQL )
>722938 Lektion 4.17. »+« – Die Addition in SQL  (MySQL )
>722939 Lektion 4.18. »-« – Die Subtraktion in SQL  (MySQL )
>722940 Lektion 4.19. »*« – Die Multiplikation in SQL  (MySQL )
>722401 Lektion 4.20. Operatoren in SQL  (MySQL )

Kapitel 5 Funktionsaufrufe

>722398 Lektion 5.0. Funktionsaufrufe in SQL  (MySQL )
>722941 Lektion 5.1. Dokumentation von SQL  (MySQL )
>723281 Lektion 5.2. Rückgabewerte in SQL  (MySQL )
>723282 Lektion 5.3. Laufzeitwerte in SQL  (MySQL )
>723283 Lektion 5.4. Aufrufausdrücke in Operatorausdrücken in SQL  (MySQL )
>723277 Lektion 5.5. Argumente in SQL  (MySQL )
>723285 Lektion 5.6. Parameter der Dokumentation in SQL  (MySQL )
>723286 Lektion 5.7. Aufrufwandlung in SQL  (MySQL )
>723278 Lektion 5.8. Aufrufe mit mehreren  Argumenten in SQL  (MySQL )
>723288 Lektion 5.9. Überladung in SQL  (MySQL ) 〈1〉 *
>723289 Lektion 5.10. optionale Argumente in SQL  (MySQL )
>723279 Lektion 5.11. »SUBSTRING_INDEX« in SQL  (MySQL )
>724284 Lektion 5.12. Weitere extrahierende String-Funktionen in SQL
>724283 Lektion 5.13. Weitere Textfunktionen in SQL  (MySQL )
>722410 Lektion 5.14. Statistikfunktionen in SQL  (MySQL )
>722411 Lektion 5.15. Aggregate mit Gruppierung in SQL  (MySQL )

Kapitel 6 Wahrheitswerte

>723291 Lektion 6.0. Der WHERE-Ausdruck in SQL  (MySQL )
>723292 Lektion 6.1. Der 0-Detektor »NOT« in SQL  (MySQL )
>723293 Lektion 6.2. Der Vergleichsoperator "=" in SQL  (MySQL )
>723298 Lektion 6.3. Wahrheitsliterale in SQL  (MySQL )
>723294 Lektion 6.4. Der Datentyp »BOOL« in SQL  (MySQL )
>723295 Lektion 6.5. Die Konjunktion in SQL  (MySQL )
>723296 Lektion 6.6. Die Disjunktion in SQL  (MySQL )
>723297 Lektion 6.7. Die Vergleichsoperatoren in SQL  (MySQL )
>722966 Lektion 6.8. Mustersuchen in MySQL 
>722738 Lektion 6.9. Der NULL-Wert in MySQL 
>722414 Lektion 6.10. CASE- und IF-Ausdrücke in MySQL 

Kapitel 7 Weitere Themen

>723063  Lektion 7.0. Spaltentypen in MySQL 
>722527 Lektion 7.1. Benutzerrechte in MySQL  (data control language, DCL )
>722531 Lektion 7.2. Transaktionen in MySQL 
>722981 Lektion 7.3. Selbstverbindungen in SQL  (MySQL )
>722736 Lektion 7.4. HAVING in SQL  (MySQL ) 〈1〉 *

Kapitel 8 Unterabfragen

>722523 Lektion 8.5. »FROM ( SELECT  )« – Unterabfragen in SQL  (MySQL )

Kapitel 9 Diverses

>723133 Lektion 9.0. ☡ Bäume in SQL  (MySQL )
>722524 Beispiel 9.1. Views als Abstraktionen in MySQL 

Kapitel 10 Beispiele und Übungen

>723000 Beispiel 10.0. Statistische Auswertung mit SQL
>722948 Beispiel 10.1. Ermittlung einer bedingten Übersetzung mit SQL
>722534 Lektion 10.2. Beispiele und Übungen zu MySQL 
>722944 Beispiele und Übungen mit der Datenbank R

Kapitel 11 Was nicht gut mit SQL  geht

Einige Aufgaben lassen sich mit deklarativem SQL  schlecht direkt lösen. Teilweise hängt dies damit zusammen, daß Zeilen einer Tabelle als Menge keine Reihenfolge haben oder daß die Anzahl der Spalten einer Abfrage durch den Quelltext bestimmt ist.

Solche Aufgaben lassen sich dann zwar mit SQL  irgendwie  lösen, aber die Lösungen sind manchmal ineffizient oder setzen prozedurale Techniken, wie das Generieren und Interpretieren einer Abfrage ein.

In solchen Fällen kann es besser sein, die schwierigen Teile der Aufgabe mit deklarativem SQL oder mit einem deklarativen Klienten zu erledigen.

>722947 Beispiel 11.0. Ermittlung eines Rangs mit SQL 
>723363 Beispiel 11.1. Mediane in MySQL 
>722949 Beispiel 11.2. Pivot-Tabellen mit SQL 

Kapitel 12 MySQL -Themen

>722525 Lektion 12.0. Routinendefinitionen in MySQL , Funktionen und Prozeduren in MySQL 
>722526 Lektion 12.1. Trigger in MySQL 

>722764 Lektion 12.2. Der MySQL -Server und Java 

Kapitel 13 Semantik und Gestaltung

In den folgenden Lektionen werden einige Begriffe noch einmal von Grund auf erklärt, dabei gibt es einige Überschneidungen mit früheren Lektionen, wo einige dieser Begriffe bei Bedarf bereits einmal vorläufig erklärt wurden.

>723066 Lektion 13.0. Die erste Normalform (1NF) in relationalen Datenbanken

Kapitel 14 Relationale Algebra
Kapitel 15 Normalformen

>722528 Lektion 15.0. Die Boyce-Codd-Normalform in Relationalen Datenbanken

Anhang

Kapitel 16 

>724734  16.0. Regeln für relationale Datenbanken
>722932  16.1. Optimierung
>722375 Notiz 16.2. Diverse Notizen zum SQL-Kurs
>722758 Notiz 16.3. Aktuelle Notizen zum MySQL-Kurs 
Rückgängigmachen von »USE« für ein Schema – ERROR 1820: You must SET PASSWORD before executing this statement – Verbindung mit Excel – Between – LIKE – Microsoft SQL Server und Oracle –
>722374 Das MySQL -Skript »R.SQL«

>724181 Notiz 16.4. Die Syntax von SQL (vereinfacht) *
>724446 Quellen zu SQL 

Mögliche Ergänzungen:

Cast und weitere Funktionen

Format von Daten/Zeiten (in der Tabelle immer ISO)

Check-Constraints
elephantdolphin.blogspot.com/2019/04/mysql-8016-check-constraints.html
dev.mysql.com/doc/refman/8.0/en/create-table-check-constraints.html

prozedurales SQL

Python und MySQL

dev.mysql.com/doc/connector-python/en/connector-python-example-connecting.html

Benutzerrechte

Seit SQL-92 geht HAVING auch ohne GROUP BY

 

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722359 stefan_ram:722359 SQL Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722359, slrprddef722359, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/sql-kurs