MySQL – Tutorials, Tipps und Tricks
MySQL ist ein Datenbank-Management-System, das als Open Source Software bezogen werden kann, plattformunabhängig und universell einsetzbar ist. Gleichzeitig kann es sich in seiner Leitungsfähigkeit mit jedem anderen Datenbanksystem messen. Da ist es kein Wunder, dass es sich in den letzten Jahren unglaublich schnell verbreitet hat.Was ist mySQL?
mySQL ist ein Datenbank-Management-System, das besonders gut für die Nutzung im Internet geeignet ist. MySQL wird seit 1996 im Internet und in vielen tausend Unternehmen genutzt. Es ist vergleichsweise schnell und zuverlässig. Die Daten können mit dem internen SQL-Befehlssatz verwaltet werden. Keine andere Datenbank hat sich in den letzten Jahren so schnell verbreitet wie MySQL . Es ist Multi-User- und Multi-Tasking-fähig, bewältigt auch große Datenmengen schnell und läuft vergleichsweise stabil. Es kann auf großen Netzwerke n, aber auch auf einem einzelnen PC betrieben werden. MySQL besteht - wie andere Datenbanksysteme auch - aus Datenbanken, die Tabellen und Hilfsdaten enthalten. Daneben gibt es Werkzeuge zum Bearbeiten der Daten. Dazu gehören der MySQL-Monitor und phpMyAdmin. MySQL verfügt außerdem über einen Befehlssatz, der dem der Standard-Datenbank-Abfragesprache SQL sehr ähnlich ist. MySQL kann zudem als Open-Source-Distribution aus dem Internet bezogen und entsprechend genutzt werden.Was kann mySQL?
mySQL kann Daten in Tabellen verwalten, anzeigen, speichern, ändern. Das kann es sehr gut, aber sonst kann es nichts. Dagegen sind andere Aufgaben, wie z.B. die grafische Anzeige und Aufbereitung der Daten nicht mit mySQL lösbar, dazu gibt es andere Software, die man gut mit MySQL verknüpfen kann, sehr gut geeignet ist z.B. PHP .Wie setzt man mySQL ein?
Es gibt verschiedene Möglichkeiten, die Befehle auszuführen: Kommandozeilen-orientiert im MySQL-Monitor, als Script (durch Start einer *.sql-Datei) oder mit Hilfe der grafischen Benutzeroberfläche php MySQL Admin (dazu unten mehr). Effektiver ist es allerdings, die Befehle in höhere Programmiersprachen einzubetten. Prädestiniert dafür ist PHP, mit dem man dynamische WebSites erzeugen kann. PHP enthält eine Reihe von speziellen Funktionen für MySQL-Datenbanken. Eine andere Möglichkeit ist, Microsoft-Access-Anwendungen mit mySQL-Tabellen zu verknüpfen. Dann steht der volle Funktionsumfang von Access zur Verfügung. Dieses Verfahren ist für Anwender geeignet, die mit MS Access gut vertraut sind, aber die höhere Geschwindigkeit von mySQL nutzen wollen.Die Installationssoftware für mySQL steht zum Download bereit, z.B. unter http://www.mysql.com/downloads/.
Wie funktioniert mySQL?
MySQL funktioniert als Client-Server-System. Dabei ist die jeweilige Datenbank der Server. Die Software auf der Client-Seite (z.B. der MySQL-Monitor oder eine PHP-Anwendung) stellen die Verbindung zum Server her. Sie schicken Aufträge an die Datenbank in Form von Befehlen, deren Syntax weitgehend identisch mit ANSI-SQL ist. ANSI-SQL ist die Standard-Version von SQL. SQL (Structured Query Language) ist ein Befehlssatz zum Bearbeiten von Daten in relationalen Datenbanken. Die Datenbank übersetzt die Befehle intern in ausführbaren Code und führt diesen dann - sofern es möglich ist - aus. Dann sendet sie die generierten Informationen an den Client zurück. Diese Informationen können die Datenauszüge aus einer Tabelle sein oder die Meldung, dass ein Befehl ausgeführt wurde oder auch eine Fehlermeldung, wenn der Befehl nicht ausgeführt werden konnte. SQL bezieht sich immer auf Tabellen. SQL-Befehle können Zeilen in Tabellen anzeigen, ändern, hinzufügen oder löschen. Daneben kann SQL auch die Struktur der Tabellen ändern, Beziehungen und Indizes anlegen oder löschen und Benutzer verwalten. Das war auch schon alles, was SQL kann.Der Client nimmt die Datenbank nur als eine Sammlung von Tabellen wahr. Physisch werden MySQL-Datenbanken aber als eine Sammlung von binär verschlüsselten Dateien gespeichert, die nur mit Hilfe von MySQL-Werkzeugen sinnvoll bearbeitet werden können. So ist auch die nötige Sicherheit gewährleistet. In einer MySQL-Umgebung können beliebig viele separate Datenbanken gespeichert sein. Zudem hat MySQL praktisch alle Features eines modernen Datenbank-Management-Systems, wozu z.B. Multiuser- und Multithread-Fähigkeit, ein flexibles aber leicht verwaltbares Berechtigungskonzept auf Host-, DB-, User- Tabellen- und sogar Spalten-Ebene, Indizes, Primary und Foreign Keys, Passwordschutz und - bei geeigneter Konfiguration - hohe Performance auch bei großen Datenmengen gehören.
Syntax
Die Kommunikation mit der MySQL-Datenbank erfolgt über SQL-Befehle. Die folgenden Kapitel beschreiben, welche Befehle es gibt (zumindest die wichtigsten), nach welchen Regeln sie funktionieren und was sie bewirken.
- Allgemeines zur Syntax
- Befehle in MySQL
- Groß- und Kleinschreibung in SQL und mySQL
- Datentypen und deren Verwendung
- Nummerische Datentypen
- Zeichenketten-Datentyen
- Datums- und Zeittypen
- Verwendung von Datentypen
- Operanden / Operatoren
Daten bearbeiten
Im Folgenden werden die Befehle beschrieben, mit denen man Daten in MySQL auswählen, anzeigen, ändern, hinzufügen oder löschen kann: SELECT, UPDATE, INSERT, REPLACE, DELETE. Jeder dieser Befehle hat mehr oder weniger viele Varianten. Alle zu beschreiben, ist in diesem Rahmen nicht möglich. Wir beschränken uns deshalb auf die wichtigsten.
Daten verwalten
Damit die Daten in den Tabellen bearbeitet werden können, müssen sie in der passenden Struktur vorliegen. Die muss manchmal auch geändert werden. Dieses Kapitel beschreibt, welche Befehle MySQL dafür anbietet.
- Allgemeiner Hinweis
- Der Index
- CREATE DATABASE
- DROP DATABASE
- USE
- CREATE TABLE
- ALTER TABLE
- Feld hinzufügen
- Feld ändern
- Feld löschen
- Anlegen und Löschen eines Index
- RENAME TABLE
- DROP TABLE
- SHOW TABLES
- DESC TABLE
Funktionen
MySQL verfügt über eine Reihe von Standardfunktionen, die im Lieferumfang enthalten sind. Das Ergebnis der Funktion wird wie der Inhalt eines Feldes aufgelistet. Der Wert ist jeweils das Ergebnis der Berechnung über die Datensätze, die zu dieser Gruppe gehören.
- Gruppen-Funktionen
- mathematische Funktionen
- Zeichenketten-(String-)Funktionen
- Datums-Funktionen
- Selbstgeschriebene Funktionen
Indizes
Ein häufiger Grund für langsame Ladezeiten sind Datenbankabfragen. Geht eine Website gerade an den Start sind die Datenbanken in der Regel noch nicht so stark befüllt. Nach und nach kommen neue Einträge in die Datenbank und die Datenbankabfragen werden langsamer. Schließlich müssen jetzt bei SELECTs auch mehr Datensätze durchsucht werden.
- Wie eine Datenbankabfrage ohne Index funktioniert
- Primary Key: Ein besonderer Index
- Einen Index anlegen
- UNIQUE Indizes
- Datenbankabfragen auf einen Index optimieren
- Herausfinden, welcher INDEX genutzt wird
Datenbankmodelierung
MySQL ist ein Datenbank-Management-System (DBMS). Man kann es sich – ebenso wie andere DBMS – als eine Sammlung von Tabellen vorstellen, die untereinander in Beziehungen stehen. Dazu kommen dann noch Werkzeuge und Hilfsdaten, die wir später beschreiben. Tabellen sind den meisten Computerbenutzern von Excel bekannt. Tabellen haben Spalten und Zeilen – in MySQL und jeder anderen relationalen Datenbank sind die Tabellen logisch genauso aufgebaut. Eine Tabellenzeile nennt man hier auch Datensatz (weil dort mehrere Daten zu einem Satz Daten zusammengefasst sind), engl. record. Die Spalten heißen Felder, und sie haben Namen, nicht nur A, B, C… wie in Excel, sondern sprechende Namen wie KundenNr oder RechDatum.
- Ein erstes Beispiel
- Beziehungen zwischen Tabellen
- Das Entity-Relationship-Modell
- Das relationale Datenmodell
Werkzeuge für MySQL
Um irgend etwas mit einer MySQL-Datenbank machen zu können, braucht man Werkzeuge. Die bekanntesten sind der MySQL-Monitor und phpMyAdmin. Der MySQL-Monitor ist eine einfache Konsole für den Eingabe-Dialog von SQL-Befehlen. phpMyAdmin ist eine komfortable Oberfläche zur umfangreichen Verwaltung, setzt aber PHP voraus.
MySQL Optimierung
Bei großen Datenmengen kann eine MySQL-Abfrage schon seine Zeit brauchen. Außerdem kann zum Beispiel der Speicherbedarf einer Datenbank steigern.
Administration von MySQL-Datenbanken
In MySQL kann der Administrator Berechtigungen für User auf ganz verschiedenen Ebenen vergeben. Dazu kann er Befehle eingeben, aber auch die entsprechenden Systemtabellen direkt pflegen.
Sicherheitskopien, Wiederherstellung, Export und Import
Jedes seriöse Datenbanksystem bietet Möglichkeiten, Sicherheitskopien zu erzeugen und Daten aus einer Sicherheitskopie “zurückzuholen” in die Datenbank, falls durch einen Systemabsturz oder fehlerhaftes Löschen bzw. Ändern Daten unabsichtlich verlorengegangen sind. Die gleichen Verfahren, die für Sicherheitskopien geeignet sind, kann man auch zum Datenaustausch mit anderen Programmen / Datenformaten verwenden.
MySQL bietet folgende Varianten: Dumpfiles, CSV-Dateien und Kopien per ODBC in andere Formate (z.B. Microsoft Access).
Neuerungen mit MySQL 6
Mittlerweile gibt es die ersten Testversionen des MySQL-Servers in der Version 6 zum Download. Es ist, wie man es von MySQL AB kennt, üblich, in einer neuen Hauptversion üblich, eine große Anzahl von Fehlern mit unterschiedlicher Priorität zu beseitigen und neue Features hinzuzufügen. In diesem Zusammenhang ist die neue Storage Engine Falcon von Bedeutung. Ein großer Nachteil ist während der Entwicklung, dass die Dokumentation oft überarbeitet wird und in wenigen Sprachen zur Verfügung steht.
- Neue Features in MySQL 6
- Neue Zeichensätze
- Information_Schema – Datenbank
- Subqueries und Joins
- Reset Slave-Kommando
- Lock Table – Syntax
Weitere Themen
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Weiterlesen: ⯈ MySQL Syntax
Über uns
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project