SELECT * FROM `Disadvantages`LIMIT 1

Es gibt einen entscheidenden Nachteil, wenn man sich entscheidet, mit einem Datenbankserver zu arbeiten: Es gibt erstmal kein (oder kein richtiges) Frontend. Alles, was man sehen will, muss man entweder durch ein Web-Tool wie PHPMyAdmin abfragen, oder man muss ein Desktop-Tool einsetzen (ich mag auf dem Mac SequelPro ausgesprochen gerne, aber es gibt auch die offizielle mySQL-Workbench, aber die ist schon ziemlich sperrig). Für Windows hieß das beste Desktop-Tool mal HeidiSQL, das kann ich aber nicht mehr beurteilen. Man kann mittels eines ODBC oder JDBC-Treibers einen mySQL-Server als Datenquelle in MS-Office oder Open-/Libre-Office nutzen – das ist schon etwas mehr “advanced”. Und keine Lösung davon bietet Euch, was Access von Haus aus kann – für jede Tabelle direkt eine Ein- und Ausgabemaske jenseits der “excel-ähnlichen” Ansicht oder einer zeilenweisen Darstellung zu haben. Das ist natürlich gerade für Tabellenbezüge ein wenig… unschön.

Es gibt wahrscheinlich 1000 Wege, sich schnell ein Frontend für mySQL in der Sprache seiner Wahl zu bauen. Manches davon ist sogar schnell schön. Man muss es eben auch noch zusammenbauen, wenn man mit der Datenstruktur fertig ist. Muss man in seine Vorüberlegungen und Zeitplanungen mit einbeziehen, auch wenn es nur ein paar Stunden oder in der Summe vielleicht auch Tage sind.

Das Semikolon

SQL trennt seine Anweisungen mit Semikolons oder wie auch immer der Plural von den Dingern heißt. Und führt Anweisungen hintereinander aus, wenn in einem Aufruf mehrere gültige Anweisungen durch Semikolons getrennt vorkommen. Der Hesse sagt also “uffbasse”, das ist ein Imperativ und heißt  “Aufpassen”. Aufpassen worauf?

Aufpassen, dass unter keinen Umständen jemand sein eigenes Semikolon mitbringen kann, wenn ihr den Datenbankserver abfragt:

Angenommen, der Inhalt eines Suchfelds wird in eine Datenbankabfrage eingefügt, und zwar so:

SELECT * FROM `Table`WHERE `LastName`= “BENUTZEREINGABE”;

Dann kommt doch tatsächlich jemand und sucht nach

Schmidt; DROP `Table`;

Was passiert dann wohl? Große Scheiße! Und das war noch die harmloseste Art von SQL Injection. So nennt man das, wenn jemand sein eigenes Semikolon mitbringt. Also uffbasse, gelle?!