SQL-Anweisung

Dr Franke Ghostwriter
SQL-Anweisung

Hi,
ich hätte ein Frage zu den Klausuraufgaben, in denen nach der semantischen Richtigkeit von SQL-Anweisungen gefragt wird. Wir haben, soweit ich sehen kann, bei SQL nicht nach semantischer und syntaktischer Richtigkeit unterschieden. Heißt das, dass jede SQL-Anweisung, die syntaktisch nicht richtig ist, aber semantisch korrekt ist, als richtig anzukreuzen ist?
Oder sind die syntaktischen Fehler nicht separat zu betrachten sondern unter die Semantik subsummiert, so dass diese Fehler zu erkennen schon ausreicht, um die SQL-Anweisung auch als semantisch falsch zu erkennen.

Als beispiel mag Aufgabe 7 vom 20.09.2001 dienen:

a)
Select Sum (Umsatz)

usw... das Leerzeichen zwischen Sum und Umsatz ist denk ich falsch, allerdings wäre das wohl ein syntaktischer und kein semantischer Fehler.


b) Hier wird nach dem Menünamen Bürgerlite gefragt:

Where Menüname = "Bürgerlite"
And Stadt = "Hamburg";
Syntaktisch sind die "...." falsch, oder? Wäre die SQL-Anweisung als falsch oder richtig anzukreuzen?

Ich hoffe Jemand kann mir helfen und hat mein problem verstanden🙂


mfg Benny
 
WO in den KE's wurde SQL eigentlich so behandelt, dass man daraus eine Klausuraufgabe schnitzen könnte??? Ich erinnere mich nur an einen Abschnitt,
wo eine SQL-Abfrage hingeklatscht war á la "so sieht es schon mal aus"... 😕

Wo muss ich nochmal nachlesen? Bin jetzt in der Mitte von KE 4 und wollte ab Montag die alten EA's und Klausuren durchgehen. Hoffentlich ist das noch zu schaffen... 😱
 
Vielen Dank für den Link und die Seitenangabe!!! So langsam habe ich das Gefühl, ich muss mir alles nochmal von vorne reinziehen 😀

Die ersten 3 KE's hatte ich ein gutes Gefühl, aber jetzt in KE 4 verliere ich
langsam den Überblick über die Gesamtstruktur. Mir ist so, als hätte ich erst nur die linken Socken gesehen, danach nur die rechten Socken und jetzt in der letzten KE soll ich sofort erkennen, welche zusammengehören... 🙂

PS: Ich habe die erste Version der neuen Unterlagen.
 
Während unter a) das Leerzeichen zwischen "sum" und "(" einen Syntaxfehler darstellt, sind unter b) die Anführungszeichen korrekt.

Wird nach semantischen Fehlern gefragt, sind syntaktische nicht zu berücksichtigen, sofern sie die Bedeutung der Abfrage nicht verändern. (bei a. zb nicht der Fall)
Vgl zur Unterscheidung zB Semiotik ? Wikipedia


dann wäre a) also wegen des leerzeichens falsch?
 
weil dort nicht Konto.Zweigstellenname steht?

Der Tabellenname muss nur dann genannt werden, wenn es in mehreren Tabellen, die mit dem SQL-Statement angesprochen werden, mehrfach den gleichen Spaltennamen gibt. Da die Abfrage in 7c nur auf die Tabelle Konto geht ist eindeutig, welche Spalte "Zweigstellenname" damit gemeint ist.

Würdest du in einem Statement auf die Tabellen Konto und Zweigstelle zugreifen, müsstest du mit vorangestelltem Tabellennamen eindeutig machen, welche Spalte gemeint ist.

viele Grüße
schmetterling
 
Auja.Das liebe SQL.
In einer alten Klausur, WS 05/06 war auch so eine Aufgabe. Nummer 10 b.

Auszugeben ust Liste der Zweigstellen (mit Zweigstellennamen,Zahl geführter Konten und durchschnittlichen Kontoständen),bei denen Mittelwert der Kontosalden über 10000 liegt.

Select Zweigstellenname, COUNT(*), AVG(Kontostand)
FROM Konto
GROUP BY etc


wieso muss man bei from nur konto eintragen?und nicht noch zweigstelle?

Lieben Gruß
 
Ganz einfach, weil die Daten redundant sind!
In der Tabelle "Konto" sind alle relevanten Daten enthalten... auch der Zweigstellenname. Es genügt also, die Tabelle "Konto" auszulesen.

Wäre der Datenbestand entsprechend normalisiert, wäre in der Tabelle "Konto" lediglich die ID der entsprechenden Zweigstelle gespeichert und man müsste, um den Klarnamen der Zweigstelle ermitteln zu können, noch die Tabelle "Zweigstelle" verwenden. Aber wie gesagt, hier ist der Zweigstellenname schon in der Tabelle "Konto" abgelegt.
 
dann wäre a) also wegen des leerzeichens falsch?

Na, wie ich oben schon geschrieben habe, sind m.E. immer nur semantische Fehler zu berücksichtigen. Reine Syntaxfehler wie bei a) sollten 1. gar nicht vorkommen und 2., so sie es tun, idR. nicht berücksichtigt werden.
Es sei denn, sie haben Auswirkungen auf die Bedeutung...

da das Leerzeichen in
Code:
sum (xy)
keine Auswirkung auf den Sinngehalt hat, ist es nicht als semantischer Fehler zu betrachten und d) zumindest deswegen nicht falsch!
 
Oben