Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

N'abend,

ich habe eine kleine Einführung zu SQL geschrieben.

ViperBytes.Blog Blog Archive SQL: Eine Einführung

Sagt mir bitte eure Meinung hierzu.

Wenn euch Fehler oder sonstige Mengel auffallen, ich bin immer offen für Kritik.

Viele Grüße,

Vincent W.

Moin,

... ich habe eine kleine Einführung zu SQL geschrieben. ...

Sagt mir bitte eure Meinung hierzu.

Na dann schreibe ich doch einfach etwas, das mir auf den ersten Seiten aufgefallen ist.

Wenn euch Fehler oder sonstige Mengel auffallen, ich bin immer offen für Kritik.

Hier ist schon Nummer 1: streiche "Mengel", setze "Mängel" :D

1.2, Ende erster Absatz:

Jede Tabelle besitzt einEN Primärschlüssel, anhand dessen der Datensatz identifiziert werden kann.

Ist das wirklich so? Sinnvoll wäre es sicher, aber welche Datenbank erzwingt das wirklich?

2.1.1, Seite 8

SELECT 'Name', 'E-Mail'

FROM 'Kunden';

Das führt beim MS-SQL-Server definitiv zu einem Syntaxfehler und selbst wenn du Kunden nicht in Anführungszeichen setzt würde als Spalteninhalt immer der Konstante Text "Name" bzw. "E-Mail" ausgegeben.

Steht das wirklich so im Standard?

Seite 15

SELECT Spaltenliste

FROM Tabelle

LIMIT Anzahl;

Ist Limit wirklich Standard? Ich kenne das offen gesagt nur von MySQL... Ich lasse mich gerne belehren.

Überhaupt scheint mir das ganze eher MySQL zu sein als irgendein datenbankunabhängiges SQL. Ernsthaft vermisse ich allerdings das Kapitel "Abfragen über mehrere Tabellen"....

Dein Bemühen in allen Ehren, aber wer soll mit diesem Tutorial etwas anfangen?

Reinhold

Danke.

Das ist sehr gute Kritik.

Aber was mache ich denn mit den Anführungszeichzen?

Mysql hat so komische, MsAccess hat andere... was mache ich denn da? was sagt der standard?

Im Standard sind solche seltsamen Zeichen meines Wissens nach nicht vorgesehen.

Mysql benötigt sie auch nicht, weiß der Himmel warum alle diese komischen Hochkommas drum rum machen. Wohl wider besseren Wissens und weil es eben die anderen auch tun.

In der Doku sieht man sie jedenfalls nicht.

Ich würd mich übrigends auf eine spezielle Datenbank beschränken, denn der Standard ist etwa so als ob man ein Auto mit den Eigenschaften 4 Räder, Lenkrad, Schaltung und Pedale beschreibt.

Dim

Mysql benötigt sie auch nicht, weiß der Himmel warum alle diese komischen Hochkommas drum rum machen. Wohl wider besseren Wissens und weil es eben die anderen auch tun.

Und leider auch, weil sich damit Spaltennamen erzwingen lassen, über die das DBMS sonst stolpern würde. Ich hatte kürzlich eine mysql-DB in den Fingern, deren Ersteller die glorreiche Idee hatte, eine Spalte jeder Tabelle 'Index' zu nennen (würg...)

Ah dafür ist das da.

Sowas gibts unter Oracle auch, da kann man die Spaltennamen in " " stellen und dann alles reinschreiben was man will. Sonderzeichen, Leerzeichen etc. Es wird sogar zwischen Gross- und Kleinschreibung unterschieden.

Für solche Leute sollte die sofortige Vierteilung veranlasst werden.

Dim

Und leider auch, weil sich damit Spaltennamen erzwingen lassen, über die das DBMS sonst stolpern würde. Ich hatte kürzlich eine mysql-DB in den Fingern, deren Ersteller die glorreiche Idee hatte, eine Spalte jeder Tabelle 'Index' zu nennen (würg...)

Moin,

der Klassiker ist es wahrscheinlich eine Spalte "Alter" zu nennen und zu vergessen, dass das ein reserviertes Wort ist...

Auch "Name" oder "Text" kann (z.B. bei Access) sehr leicht zu Problemen führen, da es dann sehr oft Eigenschaften gleichen Namens in Formularen oder Berichten gibt.

Reinhold

Es geht noch besser. In der Spalte ALTER steht nicht das Geburtsdatum sondern das aktuelle Alter in Jahren (natürlich als VARCHAR).

Dim

Jou, und konsequenterweise wird das im 10-Sekunden-Intervall per Cronjob aktualisiert... ROTFLBTC

Reinhold

Jou, und konsequenterweise wird das im 10-Sekunden-Intervall per Cronjob aktualisiert

Nicht ganz. Das ist die Frage die dann im Forum landet. Ob das mit einem Cronjob ginge und warum bei der Sortierung nach Alter die 9 vor 10 kommt.

Da kriegt er dann die Antwort, dass es nicht geht und er Mist gebaut hat und ist beleidigt :D

Dim

ich finde den ansatz gut. aaaaaaber: das tutorial geht nur ein einziges mal darauf ein, dass CREATE DATABASE von DBMS zu DBMS unterschiedlich aufgebaut sein kann.

ich würde, falls du das konsequent und standardkonform machen willst, auf den SQL-99 standard aufbauen. dieser deckt - wie schon angemerkt von einigen postern - alle reservierten SQL-wörter auf, die von den meisten DBMS implementiert sein müssen. ein DISTINCT setzen die meisten DBMS um die ich kenne, aber bei ALTER TABLE oder gar TRUNCATE TABLE ist das schon nichtmehr so.

s'Amstel

Du hast US-amerikanisches Copyright beantragt?

Erst sagst du, dass du nur standardkonformes SQL präsentieren willst und dann "Achting! BIGINT gehört nicht zum SQL Standard."?

Negative Ausgaben sind positiv.

Unter 2.5 werden keine Datensätze vermieden sondern nur nicht als Ergebnis der Abfrage angezeigt. Die Datensätze ansich existieren weiterhin.

Danke danke!

Das ist alles sehr gute Kritik.

@allesweg: Was fürn "US-amerikanisches Copyright"??? >)

Wo bekomme ich eine exakte Ausführung vom SQL-99-standard?? Bis jetzt habe ich einfach nach gutem Gewissen und anderen Tuts geschaut.

Danke.

Wo bekomme ich eine exakte Ausführung vom SQL-99-standard?? Bis jetzt habe ich einfach nach gutem Gewissen und anderen Tuts geschaut.

Das ist ein ISO- bzw. ANSI-Standard. Einfach mal auf ISO - International Organization for Standardization nach SQL suchen, dann siehst Du auch, was Du dafür ausgeben mußt...

schöne zusammenfassungen der SQL-92, SQL-99 und SQL-2003 standards sind nicht unbedingt nur über die offiziellen gremien zu erhalten ;)

eine schöne zusammenfassung im sinne deines tutorials ist z.b. SQL-Funktionen

s'Amstel

@allesweg: Was fürn "US-amerikanisches Copyright"??? >)

In deinem Tutorial steht überall © by ...

Das ist us-amerikanisches Copyright. In Deutschland hast Du automatisch das Urheberrecht und musst nicht nochmals gesondert darauf hinweisen. Das © ist also relativ sinnfrei.

Dim

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.