Zum Inhalt springen

SQL "Programmierung" lernen?


Chris-Info

Empfohlene Beiträge

Hi zusammen,

als FIAE hat man im 3. Jahr ja auch das Thema Datenbanken und insbesondere SQL.
Wir haben vom Betrieb ein Nachschlagewerk bekommen zu dem Thema "Einstieg in SQL" vom Rheinwerk Verlag.

Grundsätzlich finde ich das Buch super, es ist verständlich erklärt, hat sinnvolle Übungen etc.
Aber irgendwie fehlen mir da ne ganze Menge informationen (obwohl es über 500 Seiten hat...).
Was mir aber konkret fehlt ist das "richtige Programmieren" mit SQL. Sprich so ganz grundlegende Dinge wie das Definieren einer Variablen, das schreiben eigener Funktionen etc. etc.
Ich hab im Internet mal ein paar SQL Übungen rausgesucht und eine bestand darin, dass man ein rudimentäres Changelog für eine ganz einfache Tabelle erstellen soll. Immer wenn was neu dazu kommt, geupdated wird oder gelöscht soll in dem Changelog entsprechend auftauchen, was sich wo geändert hat. Die Übung war egtl. recht simpel zu verstehen, aber rein von meinem SQL Kenntnisstand hab ich ziemlich blöd geguckt, weil man dafür eben einfach ein bisschen "SQL Programmierung" gebraucht hat, also eigene Trigger definieren, eine entsprechende Funktion schreiben und auch wissen welche Variablen SQL zur Verfügung stellt damit die Funktion unterscheiden kann, welche Operation genau durchgeführt wird etc. etc.

Davon hab ich in dem ganzen Buch aber nichts finden können und in vielen anderen SQL-Tutorials auch nicht.
Weiß jemand, wo ich ein paar Infos dazu finde, wie man im Bereich SQL dann auch "wirklich" entwickelt und programmiert?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja eigentlich sollte dir das Buch von Reinwerk ja schon "ausreichend" Kenntnis vermitteln. Vllt hast du auch selbst schon dran gedacht, aber bei Youtube findest du ganze Semster an Vorlesungen inklusive Übungen zu relationalen Datenbanken oder auch wenn du da kein Bock hast einfache Tutorials zu den Must have Sachen. Generell lohnt sich auch mal ein Blick in MariaDB/MongoDB etc.

Link zu diesem Kommentar
Auf anderen Seiten teilen

SQL ist keine Programmiersprache. ;) SQL steht für Structured Query Language (= Strukturierte Abfragesprache)

Sowas wie definieren einer Variable gibt es in SQL nicht. SQL beschränkt sich bewusst auf typische CRUD-Aufgaben (Create, Read, Update, Delete). Alles, was darüber hinausgeht, sind Features des jeweiligen Datenbankmanagementsystems und können sich unterscheiden. Programmierung im weitesten Sinne sind mit sog. Stored Procedures möglich aber auch diese funktionieren auf jedem System unterschiedlich und haben auch unterschiedliche Syntax. Oracle hat z.B. für ihre Oracle Database die Sprache PL/SQL (Procedural Language/Structured Query Language) entwickelt. In MySQL sieht die Welt wieder etwas anders aus.

Daher wirst du in diesem Buch auch nichts finden und du müsstest Google befragen, wie Stored Procedures in deinem verwendeten Datenbankmanagementsystem funktionieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 30 Minuten schrieb LouisCy:

Generell lohnt sich auch mal ein Blick in MariaDB/MongoDB etc.

MariaDB und MongoDB sind komplett unterschiedliche Datenbankmanagementsysteme, MariaDB ist eine Relationale Datenbank, die SQL implementiert hat. MongoDB ist wiederrum eine NoSQL Datenbank. Sie ist nicht relational, sondern dokumentenbasiert und versteht SQL nicht.

vor 7 Minuten schrieb Chris-Info:

Variablen scheinen aber im SQL Standard enthalten zu sein
https://www.sqlshack.com/sql-variables-basics-and-usage/

Nein. Das ist ein Feature vom Microsoft SQL Server. ;) Microsoft nennt das Transact-SQL.

Bearbeitet von Whiz-zarD
Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja, grundsätzlich dient SQL, wie auch der name der Sprache schon sagt, dass es sich um eine Abfragesprache handelt. Mit Programmiersprachen könntest du das ganze dann dynamischer gestalten. Mit welcher Programmiersprache arbeitest du denn so im Betrieb oder auch privat?

Ich finde, dass das ein gutes Tutorial für SQL ist (englischsprachig): https://youtu.be/HXV3zeQKqGY

Und wenn du das dann noch dynamisch mit einer Programmiersprache unterlegen willst, um Funktionen oder dergleichen zu erstellen, empfehle ich dir www.php-einfach.de -> da gibt es ein ansehnliches PHP+SQL-Tutorial.

Link zu diesem Kommentar
Auf anderen Seiten teilen

 

vor 1 Stunde schrieb Chris-Info:

Davon hab ich in dem ganzen Buch aber nichts finden können und in vielen anderen SQL-Tutorials auch nicht.

vor einer Stunde schrieb Whiz-zarD:

Nein. Das ist ein Feature vom Microsoft SQL Server. ;) Microsoft nennt das Transact-SQL.

Diese beiden Aussagen passen wunderbar zusammen: es verdeutlicht, dass SQL nicht gleich SQL sein muss. Man kann davon ausgehen, dass das Buch doch eher SQL im Generellen behandelt wird. Es gibt jedoch SQL-Standards, die Variablen beinhalten wie das von @Whiz-zarD genannte Transact-SQL oder PL/SQL von Oracle. Wenn man hierzu ein Buch durchnimmt, wird man sicherlich mehr zu dem Thema finden als bei einem eher allgemeinen SQL-Buch. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb Whiz-zarD:

Nein. Das ist ein Feature vom Microsoft SQL Server. ;) Microsoft nennt das Transact-SQL.

Ok, danke für die Abgrenzung.

Dann würde ich aber einfach mal annehmen, dass ein Datenbankentwickler (oder ein FIAE der in Zukunft vielleicht mehr in Richtung Datenbanken gehen will) im Tagesgeschäft wohl fast mehr mit diesen Erweiterten SQL Standards bzw mit den Funktionen des DBMS zu tun hat, als mit dem "normalen" SQL Standard ( Wobei ich gerade beim Googeln auch darauf gestoßen bin, dass der Standard wohl mittlerweile auch deutlich mehr kann, als nur CRUD AUfgaben).

Da wäre jetzt natürlich die Frage mit welchen Standard sollte man sich da zuerst auseinander setzen und sich vielleicht wirklich mal ein weiteres Buch konkret dazu holen. Evtl ja wirklich TSQL? MSSQL-Server ist ja schon sehr verbreitet...

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 14 Minuten schrieb Chris-Info:

Dann würde ich aber einfach mal annehmen, dass ein Datenbankentwickler (oder ein FIAE der in Zukunft vielleicht mehr in Richtung Datenbanken gehen will) im Tagesgeschäft wohl fast mehr mit diesen Erweiterten SQL Standards bzw mit den Funktionen des DBMS zu tun hat, als mit dem "normalen" SQL Standard ( Wobei ich gerade beim Googeln auch darauf gestoßen bin, dass der Standard wohl mittlerweile auch deutlich mehr kann, als nur CRUD AUfgaben).

Ich würde eigentlich eher sagen, dass man mit Stored Procedures aufpassen und sehr weise umgehen sollte. Je weniger, desto besser. Das Problem ist, dass man sich von den Datenbanken abhängig macht aber das versucht SQL ja eigentlich zu verhindern.

Eigentlich holt man sich mittels SQL die Daten, die man braucht und verarbeitet sie dann in der jeweiligen Anwendung, die man schreibt. Je weniger auf der Datenbank passiert, desto besser kann ich die Datenbank gegen eine andere austauschen. Daher: Mit SQL die Daten holen und sie dann mit der jeweiligen Programmiersprache, mit der man seine Anwendung geschrieben hat, verarbeiten. Stored Procedures kommen oft nur dann zum Einsatz, wenn die Daten nicht schnell genug in der Anwendung verarbeitet werden können. z.B. wenn man Massendaten in die Datenbank schreiben möchte. Eine Million INSERT-Statements sind extrem langsam. Das dauert mehrere Stunden. Darum bieten dann die Datenbanken unterschiedliche Mechanismen an, da man hier mit dem "normalen" SQL-Standard nicht mehr weit kommt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Im dritten Lehrjahr und will mit SQL "richtig programmieren", au Backe... 😃

vor einer Stunde schrieb Chris-Info:

Da wäre jetzt natürlich die Frage mit welchen Standard sollte man sich da zuerst auseinander setzen und sich vielleicht wirklich mal ein weiteres Buch konkret dazu holen. Evtl ja wirklich TSQL? MSSQL-Server ist ja schon sehr verbreitet...

Vielleicht einfach mal damit, was für dich relevant sein könnte? 🤔 Dir nützt MS SQL wenig, wenn im Unternehmen PL/SQL zum Einsatz kommt und MySQL zu kennen ist toll, aber PostgreSQL hat trotzdem nicht dieselbe Syntax und verwaltet sich unter Garantie nicht genauso.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 13 Stunden schrieb Chris-Info:

MSSQL-Server ist ja schon sehr verbreitet...

Was bringt es, wenn

  • etwas verbreitet ist, der konkrete Arbeitgeber es aber nicht einsetzt?
  • man einer von Vielen ist?

Es kommt darauf an, womit du sehr gut umgehen kannst und es in deiner (Wunsch-)Region gefragt ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 13 Stunden schrieb Chris-Info:

Da wäre jetzt natürlich die Frage mit welchen Standard sollte man sich da zuerst auseinander setzen und sich vielleicht wirklich mal ein weiteres Buch konkret dazu holen. Evtl ja wirklich TSQL? MSSQL-Server ist ja schon sehr verbreitet...

Vielleicht ist dies erst mal ein Schritt zu viel. Für die Prüfung brauchst du "nur" ein gesundes Grundverständnis. 

vor 17 Stunden schrieb Chris-Info:

Weiß jemand, wo ich ein paar Infos dazu finde, wie man im Bereich SQL dann auch "wirklich" entwickelt und programmiert?

Nimm erst mal eine überschaubare Struktur (z.B. Person, Adresse, Kontaktdaten, ...) und erstelle die Datenbankstruktur. Mit einer Umgebung/Programmiersprache deiner Wahl (idealerweise eine, die du schon für deine Ausbildung verwendest), greifst du auf diese Datenbank zu. Erstelle einen Client, mit dem du Create/Read/Update/Delete Operationen ausführen kannst. Dies kann eine Konsolenanwendung sein, oder auch eine einfache Web Gui. Nimm möglichst viel Komplexität raus, und konzentriere dich auf die Datenbank Themen. 

Wenn du damit gut klarkommst, kannst du dich immer noch mit herstellerspezifischen Themen auseinandersetzen.

Bis dahin konzentriere dich erst mal auf deine Ausbildung. Nach deiner Ausbildung hast du immer noch Zeit tiefer in das Thema einzutauchen. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 31.3.2021 um 14:51 schrieb Whiz-zarD:

SQL ist keine Programmiersprache. ;) SQL steht für Structured Query Language (= Strukturierte Abfragesprache)

Sowas wie definieren einer Variable gibt es in SQL nicht.

 

I beg to differ: Es kommt auf den genauen Standard an. Seit SQL:1999 gibt's PSM im Standard - seit da kann man glaube ich schon von Turing-Vollständig sprechen:

https://en.wikipedia.org/wiki/SQL:1999

https://en.wikipedia.org/wiki/SQL/PSM

Beispiele:

https://wiki.postgresql.org/wiki/Mandelbrot_set

http://blog.coelho.net/database/2013/08/17/turing-sql-1.html

Oracle, MS, etc. waren evtl. schon vorher turing complete..

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...