Wie wichtig ist SQL

Status
Für weitere Antworten geschlossen.

BTCStorage

Ensign
Registriert
Mai 2020
Beiträge
137
Ich habe schon seit einigen Jahren verschiedene Sachen gebaut, eigene Ideen und fuer Leute und ich habe auch immer wieder Datenbanken benutzt usw ich habe also schon ein wenig SQL gelernt kann man sagen.

Nun habe ich seit einigen Tagen eine Schulung als Fullstack Developer und dort werden nun einige Sachen gelernt welche ich schon seit einigen Jahren kenne und zur Zeit haben wir SQL auf den Plan, nun gab es heute eine Art Zwischentest und der Test sah so aus, es gab einige Tabellen und dann sollte man verschiedene Abfrage Statement dafuer bauen, ich habe dabei ChatGPT benutzt und gemerkt das es ziemlich fast jede Abfrage mit Joins und aehnliches Extras aufgebaut sind und ich selber habe aber in all den jahren nie sowas benutzt, ich brauchte es nie koennte man sagen, ich habe im Prinzip immer nur einfache SQL Abfragen benutzt und dann wahrscheinlich mit den empfangenen Daten weiter gearbeitet.

Ich frage mich jetzt wie es den aussieht wenn man Beruflich als Programmierer irgendwo arbeitet, wird dort SQL mit verschiedenen verschaltelten Abfragen benutzt oder sind diese Test in der Schulung einfach nur gefuellt mit lauter unnoetigen Sachen die man spaeter sowieso nie brauch. Und wenn man es wirklich brauch, ich denke kein Betrieb hat dann etwas dagegen wenn man ChatGPT benutzt oder? Weil das waere ja irgendwie dum wen man so gute Tecniken wie ChatGPT entwickelt und dann stellt sich jemand dagegen aus welchen Grund auch immer. ja man soll selber lernen heist es dann aber wer benutzt den zum Rechnen kein Taschenrechner.
 
Wenn Du eine Datenbank für mehr als nur einzelne Tabellen nutzen willst, wirst Du Joins brauchen.
 
  • Gefällt mir
Reaktionen: mental.dIseASe und Maviapril2
Wenn ich SQL benutze, komme ich nur extrem selten ohne Joins aus, die sind ziemlich essentiell sobald man mehr als eine Tabelle gleichzeitig verwendet. Die anderen "Extras" müsstest Du genauer beschreiben damit ich sie einordnen kann. Ich nutze aber ehrlich gesagt nur noch selten SQL, da ich beitens mit ORM Frameworks wie z.B. Hibernate arbeite, welche das SQL im Hintergrund selber bauen und ich nur die Verbindungen definiere.

Es hängt stark davon ab, wo und was man später programmiert, es ist schwer eine Technologie oder Vorgehensweise generell als wichtig oder unwichtig einzustufen, es ist meist ein "kommt darauf an".
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: mental.dIseASe, Maviapril2, Rassnahr und eine weitere Person
Vielleicht wirst du SQL nie brauchen, aber die Chancen stehen hoch, dass du es brauchst. Wenn dich ein simples JOIN überfordert, dann ist das schon mal schlecht.

Niemand hat etwas dagegen, wenn du als Profi z.B. ChatGPT als Arbeitserleichterung nutzt. Aber niemand, absolut niemand, hat ein Interesse an Leuten die sich irgendwas googlen oder generieren lassen und das dann blind kopieren. Ohne es zu verstehen. Ohne es zu hinterfragen.
 
  • Gefällt mir
Reaktionen: mental.dIseASe, prh, Maviapril2 und 6 andere
es kommt natürlich immer auf den Einzelfall an...
nach meinen Erfahrungen braucht man als "normaler ITler" aber quasi nie "reines" SQL. Da hat man i.d.R. immer einen "Query Generator" (nicht unbedingt ChatGPT ;) ), im Extremfall PowerBI oder sowas.

als "Fullstack Developer" sieht das vielleicht anders aus. Es geht ja auch darum, nicht nur "irgendwie" an die gewünschten Daten zu kommen, sondern die Performance (Systemlast/Antwortzeit) hängt ja auch von der "Qualität" der Abfrage ab.
 
BTCStorage schrieb:
wird dort SQL mit verschiedenen verschaltelten Abfragen benutzt
Um es kurz zu fassen: ja. Du kannst natürlich erstmal mehr Daten als nötig abfragen und dann ggf. im Code weiter filtern, aber das erzeugt unnötig Last und Datenverkehr und ist deshalb wenn möglich zu vermeiden. Spätestens wenn man nicht hobbymäßig eine Abfrage pro Minute hat, sondern hunderte.

Abgesehen davon gibt es auch genug Fälle wo man um ein Join nur mit sehr viele Mühe überhaupt drumherum kommen würde.

BTCStorage schrieb:
ich denke kein Betrieb hat dann etwas dagegen wenn man ChatGPT benutzt oder?
Jein. Teilweise gibt es da schon Fragen bezüglich Geheimhaltung und so, aber das Hauptproblem ist, dass du das Ergebnis auf Richtigkeit prüfen können musst. ChatGPT liegt ja gerne auch mal falsch und das musst du erkennen und ggf. auch fixen. Grundlegend sollte also schon ein Verständnis von Joins und Co. da sein.

Zudem sollte man nie zu abhängig von einem Tool sein. Was wenn OpenAI plötzlich Programmierhilfe nur noch mit einem speziellen Abo ermöglicht und dein Chef nicht einsieht, das zu zahlen?

BTCStorage schrieb:
ja man soll selber lernen heist es dann aber wer benutzt den zum Rechnen kein Taschenrechner.
Um den bedienen zu können, musst du aber auch erstmal selbst verstehen, was zu tun ist und im Idealfall würdest du auch erkennen, wenn das Ergebnis stark von dem abweicht, was man erwarten würde.
 
  • Gefällt mir
Reaktionen: MADman_One, JohnDonson und Rassnahr
Also ich nutze (auch) SQL beruflich und ohne Joins, Prozeduren und dergleichen kommt man nicht sehr weit.
Da man in einem ordentlichen DWH ja auch mit Schematas, Fakten und Dimensionstabellen arbeitet, benutzt man sie in der Regel ständig.

Wenn ChatGPT hier ordentlich arbeitet dann kann man es natürlich nutzen. Obwohl ich nicht wüßte, wie ChatGPT einem Views bauen soll, ohne diverse Informationen und dann kann man eigentlich auch gleich selbst welche schreiben...
 
SQL hab ich zuletzt irgendwann in den 90ern gebraucht. Kein Mensch setzt das heute noch ein außer vielleicht im Rahmen einer Betreuung auf historischen Systemen.
SQL ist sozusagen der Lochkartenstanzer unter den Datenbankabfragesprachen.
Wenn Du nicht gerade in einem Computermuseum arbeiten willst, wirst Du das wohl kaum benötigen..
 
  • Gefällt mir
Reaktionen: BTCStorage
BTCStorage schrieb:
Ich frage mich jetzt wie es den aussieht wenn man Beruflich als Programmierer irgendwo arbeitet, wird dort SQL mit verschiedenen verschaltelten Abfragen benutzt oder sind diese Test in der Schulung einfach nur gefuellt mit lauter unnoetigen Sachen die man spaeter sowieso nie brauch.
Wenn man eine Ausbildung zum IT-Systemelektroniker, Fachinformatiker Systemintetrator/Anwendungsentwicklung, IT-Kaufmann, IT-Systemkaufmann macht, ist SQL Bestandteil der Berufsausbildung und sie wird auch im Normalfall bei der IHK-Prüfung mit einem kompletten Bogen abgefragt und sind eigentlich "geschenkte" Punkte 👍

Jedenfalls dann, wenn sie auch Bestandteil der Prüfung ist. Hatte eine Prüfung erlebt, wo SQL nicht abgefragt wurde und das war angeblich ein Sonderfall der so noch nie vorgekommen war.

Wenn man viel mit Datenbanken arbeitet, wird man SQL benötigen. Also Datenbankadministrator etc.
Auch beim Programmieren kann ich mir vorstellen das es recht gut weiterhelfen kann.

BTCStorage schrieb:
nur gefuellt mit lauter unnoetigen Sachen die man spaeter sowieso nie brauch.
sagen wir mal so = das geballte Wissen, was man sich in der IT aneignen kann, wäre die Fläche der Staatsbibliothek Berlin... Randvoll mit Fachbüchern und das, was du lernst, ist mit viel Glück das Inhaltsverzeichnis von dieser Bibliothek und ein klein wenig "Grundwissen". Du kratzt nur an der Oberfläche und alles andere, was du später für den Beruf wirklich benötigst, wirst du später im Beruf durch Spezialisierungen erlernen und ausbauen.

Man muss so einen Riesen Haufen "Mist" erlernen, der keinen wirklichen Sinn für einen Informatiker ergibt - wie z.B. WISO, REWE und dennoch ist auch das Bestandteil der Ausbildung 😁
 
@andy_m4 Pauschalisierungen sind mal wieder der falsche Ansatz.
Wir haben heute mit Dokumenten-, Graph-Datenbanken usw. natürlich viel mehr Auswahl als "früher", aber relationale DBs (und damit SQL) haben auch heute noch ihre Anwendungsfälle. Man muss sie nur nicht mehr in Ermangelung von Alternativen auch für jedes ungeeignete Problem hernehmen.
 
  • Gefällt mir
Reaktionen: maxpayne80, piere-ordinär, mental.dIseASe und 12 andere
andy_m4 schrieb:
SQL hab ich zuletzt irgendwann in den 90ern gebraucht. Kein Mensch setzt das heute noch ein außer vielleicht im Rahmen einer Betreuung auf historischen Systemen.
Du meinst so historische Systeme wie Oracle, SQL Server, MySQL, Postgres, Athena etc.? Ist das der Grund, warum AWS, Google und Azure sowas anbieten und damit mörderisch Kohle verdienen? 🫣
 
  • Gefällt mir
Reaktionen: maxpayne80, f00bar, mental.dIseASe und 16 andere
BTCStorage schrieb:
man soll selber lernen heist es dann aber wer benutzt den zum Rechnen kein Taschenrechner.
ich sehr oft... 🫣 😁 man hat doch Rechnen in der Schule gelernt oder etwa nicht?

Schnelles Kopfrechnen – mit diesen Tricks kann es jeder

verstehe nicht wofür man immer einen Taschenrechner benötigt. Wird spannend wenn man im Binärsystem, Dualsystem, Dezimalsystem, Hexadezimalsystem, Octal usw. rechnen muss.
Man sollte schon verstehen wie man zum Ergebnis kommt anstelle nur eine Lösung abzuschreiben.
 
  • Gefällt mir
Reaktionen: TorenAltair und ranzassel
https://de.m.wikipedia.org/wiki/Relationale_Algebra

https://dbis-uibk.github.io/relax/landing

Das Thema SQL geht viel tiefer. Ich durfte in meinem Studium nicht nur abfragen per SQL auf Papier schreiben sondern die Mathematik dahinter auch noch lernen. Ehrlich ich habe zwei Anläufe gebraucht. Hilft zu verstehen wie das ganze tickt.

Oracle hatte ja Jahre die EMP Scott/ Tiger DB mit dabei. Damit kannst alles darstellen was so brauchst im täglichen. Dazu gibt es viele Beispiele
 
  • Gefällt mir
Reaktionen: Intruder
BTCStorage schrieb:
Ich frage mich jetzt wie es den aussieht wenn man Beruflich als Programmierer irgendwo arbeitet, wird dort SQL mit verschiedenen verschaltelten Abfragen benutzt oder sind diese Test in der Schulung einfach nur gefuellt mit lauter unnoetigen Sachen die man spaeter sowieso nie brauch.[...] ja man soll selber lernen heist es dann aber wer benutzt den zum Rechnen kein Taschenrechner.
Und Leute die so an die Ausbildung rangehen bauen Software bzw. Systeme, denen man das jedes mal ansieht, dass Grundlagen fehlen. In der Ausbildung wirst du mit grundlegenden Konzepten konfrontiert, was du davon in Zukunft brauchst kann Niemand wissen, einen Teil wirst du aber gebrauchen bzw. solltest du gebrauchen. Das du dich damit auseinandergesetzt hast wird in Ausbildungen abgefragt, deswegen wird die Lehre teils so gestaltet, dass das vermittelte Wissen (leicht) prüfbar ist.
Und beim Programmieren, den simplen Kram sollte man schon überschlagen können. Sonst wird man beim Lesen von Code ja gar nicht fertig. Ganz abgesehen vom Schreiben o.O

andy_m4 schrieb:
SQL hab ich zuletzt irgendwann in den 90ern gebraucht. Kein Mensch setzt das heute noch ein außer vielleicht im Rahmen einer Betreuung auf historischen Systemen.
9.5/10 auf der Trollska... achne, habe den Nutzernamen gelesen..
 
  • Gefällt mir
Reaktionen: maxpayne80 und Yuuri
Selbst Das Softwareverteilungssystem Baramundi setzt im Hintergrund noch SQL-ähnliches ein, um Abfragen zu generieren. Sicherlich ist meist ein grafischer Querygenerator vorgeschalten, aber auf das reine SQL kommt man immer noch wenn man will. Auch im Zeiterfassungssystem Primion konnte man noch SQL-ähnliche Abfragen programmieren. Hätte ich nicht wirklich gedacht, dass SQL und relationale Datenbanken nach dieser langen Zeit noch relevant sind. Ich habe 1989 mit SQL angefangen und während meiner Praxissemester mehrere Programme mit embedded SQL geschrieben. Nach meinem Studium (Ende 1994) hieß es, dass jetzt objektorientierte Datenbanken SQL-DBs verdrängen werden..Aber damals hieß es auch, dass KI und neuronale Netze unser Leben in naher Zukunft revolutionieren werden - ok, die Zukunft hat jetzt fast 30 Jahre gedauert..
 
BTCStorage schrieb:
ich habe dabei ChatGPT benutzt und gemerkt das es ziemlich fast jede Abfrage mit Joins und aehnliches Extras aufgebaut sind und ich selber habe aber in all den jahren nie sowas benutzt,
Joins sind kein "Extra", sondern fester Bestandteil von SQL und bildet mit Select, Insert und Update eines der häufigsten Sprachelemente. Wenn du bisher keine Joins benutzt hast, bestanden deine Datenbanken vermutlich nur aus einer einzigrn Tabelle und wären ggfs sogar in Excel besser aufgehoben. Oder aber du hast etliche Select-Anweisungen in Schleifen verschachtelt, um die Daten aus mehreren Tabellen quasi von Hand rauszuholen und damit unendlich viel unnötige Rechenzeit verschwendet.



BTCStorage schrieb:
ich denke kein Betrieb hat dann etwas dagegen wenn man ChatGPT benutzt oder?
Oh doch. Der Output von ChatGPT ist nur so gut wie der Input. Beispiele aus einem Kurs mit 3 Tabellen mit jeweils 10 banalen Datensätzen sind das eine, komplexe Datenbanken in einer Firma aber etwas anderes. Schlimmstenfalls sorgst du sogar für ein riesiges Datenleck, wenn du ChatGPT mit Firmendaten fütterst und dagegen hat jede Firma etwas, nämlich eine Kündigung mit deinem Namen drauf.


Conqi schrieb:
ChatGPT liegt ja gerne auch mal falsch und das musst du erkennen und ggf. auch fixen.
This! ChatGPT klingt oft schlau, aber eigentlich ist ChatGPT richtig dumm, weil es nur ein wahrscheinlichkeitsbasierter Antwortautomat ist. Das Ding ist NICHT intelligent. Fragt man ChatGPT zB:

3 nasse Handtücher brauchen 3 Stunden zum Trocknen. Wie lange brauchen 9 nasse Handtücher zum Trocknen?

Antwortet ChatGPT mit einem simplen Dreisatz und kommt folglich auf 9 Stunden. Ich denke jedem Menschen ist klar, dass da irgendwas nicht stimmen kann, oder? ;)

Es ist daher hochgradig gefährlich, sich auf die Antworten solcher Antwortautomaten zu verlassen, weil sie beliebigen Bullshit von sich geben können, der ihnen einfach als wahrscheinlichste Antwort erscheint. Selbst wenn man ChatGPT als Hilfsmittel verwendet, ersetzt das wirklich in absolut k e i n s t e r Weise das eigene KnowHow, um eben diese Antworten auf Korrektheit prüfen zu können.



Und zur eigentlichen Frage: SQL hat kaum an Bedeutung verloren und wird in Millionen und Abermillionen von Datenbanken und Softwares eingesetzt. Das müssen ja nicht zwingend dicke SQL-Server für Hunderte von Clients sein, sondern auch reine anwendungsinterne DBs wie zB SQLite.
Es gibt zwar auch andere DB-Systeme und Abfragetechniken, ebenso wie es Frameworks gibt, die die SQL-Anweisungen im Hintergrund ausführen und dem Programmierer nur fertige Funktionen servieren, aber das ändert nichts. Wenn man als Softwareentwickler kein SQL beherrscht, ist das eine Gratwanderung, die auch mal schiefgehen kann. Denn selbst wenn man im aktuellen Job kein SQL benötigt, weil man vielleicht gar nicht mit DBs arbeitet oder eben mit einem anderen System, kann das im nächsten Job komplett anders aussehen.
 
  • Gefällt mir
Reaktionen: mental.dIseASe, TorenAltair, TomH22 und 3 andere
Unsere Firma stellt Testsysteme für End of Line Tests in Fabriken her. Die Testergebnisse werden bei den Kunden in SQL Datenbanken gespeichert. Unser Auswertetool arbeitet bei der Filterung intern mit langen SQL Queries, inklusive Joins und Subqueries.
Im Alltag sehe ich nicht mehr viel davon weil ich eine Bibliothek zur Abstraktion geschrieben habe, die den Großteil der Queries automatisch erzeugt. Ab und zu muss ich aber trotzdem welche selber schreiben.

Das verrückte ist, ich bin bei Daimler bei einem Bewerbungsgespräch fürs Praxissemester durchgefallen, weil ich die Fragen zu Datenbanken nicht richtig beantworten konnte. Wollte nach dem Studium nie wieder was mit Datenbanken zu tun haben. Jetzt bin ich bei uns in der Firma der Datenbank-Guru :D. Man lernt es halt wenn man es braucht.

Ganz ehrlich, ich habe bestimmt 95% von dem was ich im Studium gelernt habe schon längst wieder vergessen. Hab's nie gebraucht.
Was geblieben ist, ist die Fähigkeit sich in neue Themen einzuarbeiten und sie zu verstehen. Die ist in meinem Augen am wichtigsten.
 
  • Gefällt mir
Reaktionen: maxpayne80, Drexel, BTCStorage und 2 andere
Conqi schrieb:
Jein. Teilweise gibt es da schon Fragen bezüglich Geheimhaltung und so, aber das Hauptproblem ist, dass du das Ergebnis auf Richtigkeit prüfen können musst. ChatGPT liegt ja gerne auch mal falsch und das musst du erkennen und ggf. auch fixen. Grundlegend sollte also schon ein Verständnis von Joins und Co. da sein.
Danke das Du das hervorhebst, genau das. ChatGPT, aber auch stupides Kopieren von Stackoverflow, ist einer der Gründe für die zunehmende Bugseuche und Sicherheitslücken in aktueller Software. Die Entwickler kopieren Dinge zusammen die sie nicht genau verstehen und selbst eine grundsätzlich gute Lösung kann dennoch vom Kontext abhängig sein und in der eigenen Implementierung dann später zu Problemen oder Sicherheitslücken führen. Ohne Verständnis was genau passiert und warum ist das höchst gefährlich. Und von angestellten Entwicklern wird zudem erwartet, sicheren und robusten Code zu schreiben. Wenn der Arbeitgeber in Probleme gerät, weil ein Entwickler im eigenen Produkt zuviel Copy&Paste verwendet hat, dann ist man auch als angestellter Entwickler schnell in großen Schwierigkeiten.

Ich bediene mich natürlich auch gelegentlich auf Stackoverflow, aber ich verwende dann immer Zeit darauf genau zu verstehen was ich da übernehme und wie/warum es funktioniert. Ich muss schließlich auch im Code Review ggf. genau erklären können was ich da gemacht habe und warum. Kostet zwar auch Zeit, ist aber oft dennoch deutlich schneller als es komplett selber zu designen. Aber es geht nichts ohne genaues Verständnis des Codes, diese Zeit kann nicht eingespart werden.
 
  • Gefällt mir
Reaktionen: Maviapril2
MADman_One schrieb:
Ich bediene mich natürlich auch gelegentlich auf Stackoverflow, aber ich verwende dann immer Zeit darauf genau zu verstehen was ich da übernehme und wie/warum es funktioniert.
Ich würde sogar sagen, es hängt davon ab was man macht. Ich sag mal einfach einen Algorithmus zu übernehmen oder gar strukturell-architektonische Sachen finde ich eher ungeeignet.
Eher so konkrete Dinge. Wie funktioniert ABC in Sprache/Framework XYZ. Gewissermaßen so HowTo-mäßig. Und dann auch eher, um ne Idee davon zu bekommen als irgendwas 1:1 zu übernehmen.

by the way:
Jeder Programmierer verwendet heutzutage fremden Code. Nicht im Sinne von Copy&Paste, aber im Sinne von Bibliotheken usw. Im Grunde hat man hier aber eine ähnliche Problematik. Zumindest bei Libs die jetzt nicht zu den Bekannten gehören und wo man davon ausgehen kann, das die mit gewisser Ernsthaftigkeit betrieben werden.
Nicht selten hat man aber auch so kleinere Projekte. Und da sollte man dann im Zweifel doch mal genauer gucken.

michi.o schrieb:
Was geblieben ist, ist die Fähigkeit sich in neue Themen einzuarbeiten und sie zu verstehen.
Ja. Das ist auch ein ganz wichtiger Aspekt von so einem Studium.

guzzisti schrieb:
Pauschalisierungen sind mal wieder der falsche Ansatz.
Jaja. Ihr habt mich ja alle überzeugt.
Na gut. Man kann auch heutzutage noch was mit SQL anfangen. :-)
 
  • Gefällt mir
Reaktionen: mental.dIseASe, _killy_, Maviapril2 und eine weitere Person
Als IT-Admin: Gefühlt nahezu jede umfangreichere Software braucht eine relationale Datenbank. Bei Windows Software ist das meistens SQL, zumindest als zweite Option zusätzlich zur mitgelieferten Datenbank.

Firebird z.B. sieht man schonmal als Alternative auf Windows...

Als Programmierer sollte man da am besten schon mehr als nur 'Bahnhof' verstehen. Eine Einführung im Umgang mit Datenbanken gehört daher auch nicht grundlos - wie oben erwähnt - zur FiSi / FiAE Ausbildung dazu.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben