MySQL

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

SQL, Structured Query Language (englisch für strukturierte Abfragesprache) ist eine deklarative Datenbanksprache, um auf relationale Datenbanksysteme zuzugreifen. SQL ist standardisiert; die entsprechenden Empfehlungen werden von verschiedenen Sprachen teilweise unterschiedlich umgesetzt.

MySQL

MySQL war ursprünglich ein Datenbanksystem der Firma Oracle, deren Abfragesprache MySQL als Implementierung des Standard-SQL zum Quasi-Standard wurde. Es ist als Open-Source-Software sowie als kommerzielle Version für verschiedene Betriebssysteme verfügbar und bildet die Grundlage für viele dynamische Webprojekte.

MariaDB

Aufgrund von Unzufriedenheit mit der Lizenz und Technik von MySQL spaltete sich 2009 MariaDB von jenem ab. MariaDB und MySQL sind aus Sicht der Anwendung weitestgehend kompatibel und austauschbar, werden aber getrennt voneinander weiterentwickelt und weisen daher auch Unterschiede auf.

Anbindungen an PHP

Bedingt durch die Popularität gab es bereits in der Anfangszeit von PHP eine Reihe von Funktionen mit dem Namenspräfix mysql_ zum Ansprechen von MySQL-Datenbanken. Aufgrund diverser Probleme mit dieser API entstand das verbesserte MySQLi (das i steht für Improved (englisch für verbessert)), eine Erweiterung von PHP zum Zugriff auf MySQL-Datenbanken. Im Gegensatz zur ursprünglichen Variante, die seit PHP 7.0 nicht mehr angeboten wird, lässt sie sich nicht nur prozedural, sondern auch objektorientiert benutzen. Ein wesentlicher Vorteil ist, dass mithilfe von sogenannten Prepared Statements SQL-Injection-Angriffe verhindert werden können, indem SQL-Abfragen und die in die Abfrage einzusetzenden Daten explizit getrennt werden.

Neben MySQLi ermöglicht auch PDO (PHP Data Objects) Zugriffe auf MySQL- und MariaDB-Datenbanken. PDO arbeitet rein objektorientiert und kann auch andere Datenbanken wie PostgreSQL, MSSQL oder SQLite ansprechen. Der PHP-Code muss bei der Benutzung von PDO theoretisch nicht an ein anderes Datenbanksystem angepasst werden, lediglich die SQL-Statements müssen ggf. umformuliert werden, da sich die SQL-Dialekte der Datenbanken unterscheiden können.

Siehe auch

Weblinks