SQL, MySQL und FileMaker Eine kurze Einführung in SQL Vorstellung von MySQL & phpMyAdmin Datenimport von MySQL in FileMaker Autor: Hans Peter Schläpfer Was ist SQL? • «Structured Query Language» • Sprache für die Datenabfrage und Datenmanipulation • Speziell für relationale Datenbanken entwickelt • Standardisierte Sprache für verschiedene Datenbank-Systeme • SQL ist in Klartext gehalten und kann mit einem Texteditor geöffnet werden • SQL ist das Format für Datensicherungen (Backup, Dump) Vorteile von SQL • Leicht zu erlernen • Kann mit Text-Editor bearbeitet werden (insbes. Editoren für Programmierer) • Kann mit Scripte erzeugt werden (auch mit FileMaker-Scripten oder PHP) • Funktioniert in vielen Datenbank-Systemen (auch in FileMaker ab Version 12) • Ab FileMaker 10 kann auch via ODBC-Schnittstelle auf andere SQL-DBMS aktiv zugegriffen werden Nachteile von SQL • Eingeschränkter Befehlsatz • SQL läuft nicht für sich allein, sondern wird von anderen Programmen oder Scripten erzeugt und ausgeführt • Keine Kontrollstrukturen (if...then...else, foreach, for, while etc.) • Nicht alle DBMS beherrschen alle Befehle oder Abfrage-Konstrukte (z.B. ältere MySQL-Versionen) Was ist MySQL? • Datenbank-Management-System (DBMS) • Datenbank-Server • verwaltet alle Datenbanken auf einem Server • weitgehend kostenlos • bei den meisten Webhostern standardmässig installiert • Leistungsfähigkeit im mittleren Bereiche • keine Benutzeroberfläche Weitere SQL-DBMS • MSsql-Server von Microsoft • Oracle (auch Inhaber der Marke MySQL) • MariaDB (freie Weiterentwicklung von MySQL) • PostGREsql (freies und striktes DBMS) • SQLite (freies DBMS, das sogar ohne Server auskommt und in vielen Anwendungen zum Einsatz kommt u.a. in Webbrowsern) • CouchDB, Firebird etc. Was braucht es für den Betrieb von MySQL? • PC oder Mac • MySQL Community Server (DBMS-Software) • ODBC-Verwaltungssoftware (für Verwaltung von DSN und Treibern) • ggf. MySQL-Systemerweiterung (Starten & Stoppen) • MySQL Workbench (für Verwaltung der Datenbanken und Benutzerberechtigungen) • MySQL-Verwaltungsprogramme wie Navicat, Sequel Pro (nur Mac) oder phpMyAdmin Zugriff auf DBMS DBMS (MySQL Community Server) ODBC-Schnittstelle (DSN Data Source Name: myodbc) Client: Sequel Pro Client: FileMaker ODBC-Schnittstelle beim Webhoster HTTP-Webserver mit PhpMyAdmin / PHP-Scripte Client: Webbrowser Was ist ODBC? • «Open Database Connectivity» • Offene Standard-Schnittstelle für den Zugang zu Datenbanksystemen, den verschiedene Anwendungen nutzen können • Diese Schnittstelle ist in allen Betriebsystemen verfügbar • Die meisten Datenbanksysteme (DBMS) bieten heute den Zugriff via ODBC an ODBC-Schnittstelle konfigurieren • DSN (Data Source Name) kann u.U. frei gewählt werden • Treiber müssen für die entsprechende DB-Engine installiert sein • IP-Adresse des Server muss bekannt sein, falls Server nicht lokal (localhost) ODBC-Schnittstelle konfigurieren ... oder IP-Adresse des Servers User & Passwort sind in der Datenbank mysql abgespeichert genau wie die Berechtigungen für die Database MySQL nach der Installation Unter Mac OS X & Unix wird der MySQL Community Server unter /usr/local/mysql installiert. Auch die Daten befinden sich in diesem Verzeichnis MySQL-Datenbanken Die MySQL-Datenbanken sind aus Sicherheitsgründen lese- und schreibgeschützt und befinden sich unter /usr/local/mysql/data. MySQL Workbench • Freie Verwaltungssoftware für MySQL-DBMS • Sehr leistungsfähig und umfassend • Benutzeroberfläche teilweise sehr gewöhnungsbedürftig • Enthält auch einen Entity Relationship (ER) Visual Designer wie FileMaker seit Version 7 • Ersetzt seit MySQL 5.x die MySQL GUI-Tools MySQL-Workbench Export-Dialog MySQL-Workbench ER-Visual Designer Was ist phpMyAdmin? • webbasierte, freie MySQL-Administrationssoftware • sehr leistungsfähig • verwendet freie Standard-Technologie wie PHP, HTML/CSS, JavaScript und SQL • bei vielen Hosting-Anbieter vorinstalliert • Voraussetzung ein laufender Webserver mit aktiviertem PHP-Modul • Ermöglicht Export und Import von Daten (SQL, CSV, TAB etc.) phpMyAdmin Was ist Sequel-Pro? • Kostenlose Mac-Software zur Verwaltung von MySQL-Datenbanken • Sehr leistungfähig und effizient • Intuitive Benutzeroberfläche (typisch Mac) • Zu bevorzugende Verwaltungssoftware für lokale DBMS und für externe DBMS, falls Zugang via SSH gewährt wird SequelPro (Beispiel) SQL-Befehle Ein kurzer Crash-Kurs SQL-Befehl SELECT • Dient zur Abfrage von Daten • Abfrage können über mehrere Tabellen erfolgen • Einer der am meisten eingesetzte Befehle • Leicht zu erlernen SQL-Befehl SELECT (Beispiele) SELECT `name` Feld FROM `adressen` Tabelle WHERE `id` = 3 Bedingung SELECT `name` Feld FROM `adressen` Tabelle WHERE `name` LIKE “%Mozart%`“ Bedingung Der SQL-Befehl INSERT • Fügt einen Datensatz mit Feldwerten ein • Wird auch bei Datensicherungen eingesetzt • Komplexer Befehl, der sorgfältig erstellt werden muss • Kann nur in einer Tabelle verwendet werden SQL-Befehl INSERT (Beispiele) INSERT INTO `adressen` Tabelle VALUES (3,`Beethoven`) Werte INSERT INTO `adressen` Tabelle (`id`,`name`) Feldnamen VALUES (3,“Beethoven“) Werte Der SQL-Befehl UPDATE • Verändert oder setzt den Wert in Feldern • Komplexer Befehl, der sorgfältig erstellt werden muss • Kann ggf. in mehreren Tabellen eingesetzt werden • Kann Bedingungen enthalten SQL-Befehl UPDATE (Beispiele) UPDATE `adressen` Tabelle SET `planet`=“Erde“ Werte aller Zeilen UPDATE `adressen` Tabelle SET `vorname`=“Wolfi“, `geburtsort`=“Salzburg“ Feldnamen & Werte WHERE `name`=“Mozart“ Bedingung Der SQL-Befehl DELETE • Löscht unwiderruflich einen oder mehrere Datensätze • Dieser Befehl sollte sorgfältig eingesetzt werden • Dieser Befehl kann und sollte Bedingungen enthalten SQL-Befehl DELETE (Beispiele) DELETE FROM `adressen` Tabelleninhalt wird gelöscht DELETE FROM `adressen` Tabelle WHERE `id`= 77 Bedingung