Warum ist sql für mich viel schwieriger als andere sprachen wie python oder C#?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
Ansich ist ja SQL deutlich einfacher als ...

An Sich ist SQL eine zweigeteilte Sprache. a) DDL für Datendefinitionen b) DML für Datenmanipulationen.

DDL ist reichlich einfach, da hiermit Datenstrukturen festgelegt werden.
DML hingegen setzt Fähigkeiten in Mengenlehre und boolescher Algebra voraus. Wenn du dir schon selbst nicht "ausrechnen" kannst, was eine Abfrage an Ergebnissen bringt, muss sie im Betriebseinsatz nicht zwangsläufig die richtigen Antworten liefern.

 Es ist alles so unübersichtlich und ergibt für mich teilweise keinen Sinn.

Kann leider nicht nachvollziehen, was daran unübersichtlich oder teilweise ohne Sinn sein soll. Für mich ist das rein von der Syntax her schon sehr übersichtlich und von den enthaltenen Schlüsselwörtern immer mit einem Sinn versehen.

bdhejaksb 
Fragesteller
 14.02.2023, 14:26

behandeln aktuell nur dml, und ich empfinde es einfach teilweise als unlogisch. Könnte aber daran liegen das man kein richtigen programmablauf hat wie in beispielsweise python sondern das man die dinge in der datenbank halt direkt definiert. Für meine Wahrnehmung sind andere Sprachen einfacher.

0

SQL (structured query language) ist ein Hilfsmittel für die Sicht auf die Beziehungen zwischen Daten. Das hat erstmal nichts prozedurales/funktionales wie herkömmliche Programmiersprachen. Basis des ganzen sind Relationen, Selektionen, Projektionen. Also eine Abfrage von Daten organisiert in Tabellen (Zeilen, Spalten). Beziehungen zwischen den Tabellen lassen sich in unterschiedliche Typen klassifizieren und stellen sich als unterschiedliche "JOINS" dar.
Neben dem syntaktischen Grundgerüst lassen sich dann aber auch Aggregat-, Window- oder Unterfunktionen anwenden. RDBMS bringen teilweise auch eigene Programmiersprachen mit, um prozedurale Probleme in der DB zu lösen (Oracle -> PL/SQL).

Woher ich das weiß:Berufserfahrung

SQL ist nicht mehr als eine auf dem Papier gemalte Tabelle die man Zeile für zeile mit Sachen füllt.

Beim Anlegen von Tabellen kannst du Sachen optimieren mit primary und foreign Key.

Zeilen incrementel füllen usw.

Ein select ist das einfachste der Welt.

Allerdings kannst du auch kompliziertere abfragen machen, SQL ist ziemlich mächtig ich glaube man kann alles in einen select packen was man sich auch vorstellen kann.

Noch einen Schritt weiter kann man mit sql soviel auswerten das man nur noch wenig in einer Hochsprache nachbearbeiten muss.

Und das tolle, sql ist wahnsinnig schnell.

Aber das Grundprinzip ist einfach Tabellen voller daten

Weil SQL keine Programmiersprache ist, sondern eine Abfragesprache und Datenbankabfragen eine deutlich andere Denkweise erfordern, als Du aus prozeduralen Programmiersprachen gewöhnt bist.

Anstatt in "Arbeitsschritten" zu denken, musst Du hier in Mengen, deren Vereinigung oder Zerlegung denken. Wer SQL genauso programmiert, wie er C# oder Python programmiert, hat Datenbanksysteme nicht verstanden.

bdhejaksb 
Fragesteller
 14.02.2023, 14:09

Hmm, danke für die Antwort. Aber müsste es nicht viel einfacher zu erlernen sein wenn ich die anderen sprachen auch schon verstanden und gelernt habe?

0
ohwehohach  14.02.2023, 14:16
@bdhejaksb

Dann ist es keine Frage der "Einfachheit der Syntax" sondern der Frage, ob Du verstanden hast, wie das arbeitet. Dasselbe gilt aber auch für andere Abfrage- oder Programmiersprachen. Dass man weiß, wie man etwas hinschreiben muss bedeutet ja nicht, dass man auch weiß, was man hinschreiben muss, um ein gewünschtes Ziel zu erreichen.

1
bdhejaksb 
Fragesteller
 14.02.2023, 14:18
@ohwehohach

Ja könnte auch daran liegen das ich sql erst seit 2 tagen behandel. Aber hatte bei andere Sprachen das Gefühl das der Lernerfolg schneller war

0
Xandros0506  14.02.2023, 14:25
@bdhejaksb

Nö....
Durch Sprachen wie Französisch oder Englisch kannst du Mathematik ja auch nicht leichter lernen. SQL ist für sich zu betrachten und hat mit dem Rest nichts zu tun - es kann höchstens im Rest eingebettet genutzt werden.

0