Chris-Info Geschrieben 31. März 2021 Geschrieben 31. März 2021 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? Zitieren
LouisCy Geschrieben 31. März 2021 Geschrieben 31. März 2021 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. Zitieren
Whiz-zarD Geschrieben 31. März 2021 Geschrieben 31. März 2021 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. Gooose und Enno reagierten darauf 2 Zitieren
Chris-Info Geschrieben 31. März 2021 Autor Geschrieben 31. März 2021 vor 13 Minuten schrieb Whiz-zarD: Sowas wie definieren einer Variable gibt es in SQL nicht. Variablen scheinen aber im SQL Standard enthalten zu sein https://www.sqlshack.com/sql-variables-basics-and-usage/ Zitieren
Whiz-zarD Geschrieben 31. März 2021 Geschrieben 31. März 2021 (bearbeitet) 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 31. März 2021 von Whiz-zarD KeeperOfCoffee, Enno und 0x00 reagierten darauf 3 Zitieren
martincodes Geschrieben 31. März 2021 Geschrieben 31. März 2021 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. Zitieren
pr0gg3r Geschrieben 31. März 2021 Geschrieben 31. März 2021 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. Zitieren
MartinSt Geschrieben 31. März 2021 Geschrieben 31. März 2021 Zwar nicht so mit Bezug zu DB Funktionen, aber massenhaft SQL auch im Vergleich der einzelnen Hersteller bietet https://use-the-index-luke.com Zitieren
Chris-Info Geschrieben 31. März 2021 Autor Geschrieben 31. März 2021 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... Zitieren
Whiz-zarD Geschrieben 31. März 2021 Geschrieben 31. März 2021 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. Zitieren
Visar Geschrieben 31. März 2021 Geschrieben 31. März 2021 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. Zitieren
allesweg Geschrieben 1. April 2021 Geschrieben 1. April 2021 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. FIAEUmschulung2022 reagierte darauf 1 Zitieren
Gooose Geschrieben 1. April 2021 Geschrieben 1. April 2021 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. martincodes reagierte darauf 1 Zitieren
RipperFox Geschrieben 1. April 2021 Geschrieben 1. April 2021 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.. Zitieren
Empfohlene Beiträge
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.