Zum Inhalt springen

SQL: Eine Einführung


ViperBytes

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...