Home » Tutorials » Datenbanken » MySQL mit ZeosLib

MySQL mit ZeosLib

Datenbanken/Tabellen erstellen

Nun kommst du das erste Mal mit der MySQL-Datenbank in Kontakt. In diesem Kapitel lernst du, wie du eine Datenbank und die darin enthaltenen Tabellen anlegst. Wir verwenden dabei die Datenbanksprache SQL.

Datenbank anlegen

Bevor eine Tabelle angelegt werden kann, muss eine Datenbank existieren. Den Namen kannst du dir dabei aussuchen. Wie bei Dateien darf keine zweite Datenbank mit diesem Namen existieren. Starte dazu aus dem My-SQL/bin-Verzeichnis die Datei winmysqladmin.exe und wechsel dort auf die Registerreiter Databases. Per Popupmenu lässt sich dor eine Datenbank erstellen.

Verbindung zum Server herstellen

Zunächst muss man eine Verbindung zum MySQL-Server herstellen. Dies geht über die Komponente TZMySqlDatabase. Die Verbindungsdaten werden in die entsprechenden Edit-Felder eingegeben. Du benötigst die Adresse des Servers (läuft dieser auf deinem Rechner lautet sie localhost) und einen Benutzernamen, sowie ein Passwort. In das Datenbank-Feldmusstdu den Namen der oben angelegten Datenbank angeben. Schreibe in das OnClick-Ereignis des Buttons, der die Tabelle erstellt folgendes:

 dbMain.Host:=edServer.Text;  //Server
  dbMain.Login:=edLogin.Text;  //Benutzername
  dbMain.Password:=edPasswort.Text; //Passwort
  dbMain.Database:=edDB.Text;  //Name der Datenbank
  dbMain.Connected:=True;  //Verbindung herstellen
  try
  finally
    dbMain.Connected:=False;  
  end;

Mit diesen Zeilen übergibst du der Komponente die Login-Daten und stellst eine Verbindung zum Server her. Noch passiert hier gar nichts. Diese Procedure soll später die Tabelle für die Adress-Daten erstellen.

Tabellen erstellen

Nun wird über einen SQL-Befehl die Tabelle erstellt. Die Tabelle soll den Namen adressbuch tragen. Über die Struktur der Tabelle haben wir uns im letzten Kapitel schon Gedanken gemacht. Zuständig für das Erstellen von Tabellen ist der SQL-Befehl CREATE TABLE. Es folgt der Name der Tabelle und die Namen und Typen der Felder. Der vollständige SQL-Befehl sieht folgendermaßen aus:

CREATE TABLE adressbuch (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
vorname TEXT NOT NULL,
name TEXT NOT NULL,
adresse TEXT NOT NULL,
wohnort TEXT NOT NULL,
plz INT NOT NULL
);

Der Parameter AUTO_INCREMENT bedeutet, dass der Wert des Feldes id bei jedem Datensatz automatisch um 1 erhöht wird. PRIMARY KEY steht für Primärschlüssel. Ein Primärschlüssel ist ein eindeutiger Index. NULL ist vergleichbar mit einem Platzhalter.

Natürlich können wir in unseren Delphi-Quelltext keine direkten SQL-Statements eingliedern. Dies geschieht über die Komponente TZMySqlQuery. Über die Eigenschaft SQL, die vom Typ TStrings ist, nimmt sie SQL-Befehle an. Die Methode ExecSql führt den SQL-Quelltext schließlich aus.

Schreibe zwischen den try-finally-Block aus der obigen Procedure folgende Zeilen Code:

qrMain.SQL.Text:='CREATE TABLE adressbuch ('+
  'id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,'+
  'vorname TEXT NOT NULL,'+
  'name TEXT NOT NULL,'+
  'adresse TEXT NOT NULL,'+
  'wohnort TEXT NOT NULL,'+
  'plz INT NOT NULL'+    ');';
qrMain.ExecSql;

Hinweis: Beachte den Unterschied zwischen den verschiedenen Hochkommas!

Wie du siehst, handelt es sich bei SQL-Statements immer um Strings. Auch wenn du einen Integerwert hinzufügen möchtest, musst du mit Strings arbeiten.