relationale datenbank mysql html php asp activex perl xml javascript mysql
TRANSCRIPT
![Page 1: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/1.jpg)
Relationale Datenbank MySQLRelationale Datenbank MySQL
HTML
PHP
ASP
ActiveX
PERL
XML
JavaScript
MYSQL
![Page 2: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/2.jpg)
Gliederung
0. Einblick Datenbanken
1. Einführung MySQL
2. 2. Relationale Datenbank
![Page 3: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/3.jpg)
Einblick Datenbanken
Momentan gängige Datenbanken:
- Oracle (32% Marktanteil)
- DB2 (33% Marktanteil)
- MySQL (21 % Marktanteil)
- SQL-Server (11% Marktanteil, von Microsoft)
![Page 4: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/4.jpg)
Dateiorgansation Datenbanken
EinkaufProduktion
ReWe Vertrieb
ArtikelLieferantenBestellungenBestand
ArtikelAufträgeStücklistenArbeitspläne
KundenForderungenVerbindlichkeitenLieferanten
ArtikelKundenAngeboteAufträge
Hoher Bedarfan Kommunikation und
Datenaustausch
![Page 5: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/5.jpg)
Was ist MySQL ?
MySQL ist ein echter Multi-User, Multi-Treaded SQL Datenbank und wird von allen großen Providern oder auch Suchmaschinenbetreibern eingesetzt. MySQL ist eine CLient/Server Implentierung, bestehend aus einem Server-Dämon mysqld und vielen Client Programmen, sowie Bibliotheken für PERL, PHP/3, PHP/4, ASP.
Die bedeutsamsten Vorteile von MySQL sind: Geschwindigkeit, Stabilität einfache Bedienbarkeit.
MySQL wurde ursprünglich entwickelt, weil auf TCX (dem Server der Entwickler) ein SQL Server benötigt wurde, der sehr große Datenbanken handeln konnte, und zwar um eine Größenordnung schneller, als die Datenbankhersteller damals liefern konnten. MySQL ist nun seit 1996 auf vielen Seiten im Einsatz.
![Page 6: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/6.jpg)
Begriffe
• Eine Datenbank ist eine strukturierte Sammlung von Daten - Datenbasis
• Aufbau, Verwaltung und Strukturierung werden von einem Datenbank-Management- System (DBMS) übernommen.
• Die Abfrage erfolgt über spezielle Abfragesprachen, wie z.B. SQL (Structured Query
Language) oder ODBC (Open DataBase Connectivity)
![Page 7: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/7.jpg)
ODBC
• Open DataBase Connectivity, (ODBC), Ein Standard für den Zugriff auf verschiedene Datenbanksysteme.
• ODBC hat Schnittstellen für Java, Visual Basic, C++, SQL
• ODBC Treiberpaket beinhaltet Treiber für Access, Paradox, dBase, Excel and Btrieve
• ODBC übersetzt Abfragen jeweils in die datenbankspezifische Sprache.
![Page 8: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/8.jpg)
ODBC
Vorteile:• Datenbankunabhängige Entwicklung möglich• Zugriff auf entfernte Datenbanken
Nachteile:• Langsam gegenüber nativen Zugriffen• Microsoft Fixiertheit• Notwendigkeit, eigene Treiber für die
Datenbanken zu installieren und Datenbanken u.U. selbst eintragen zu müssen
![Page 9: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/9.jpg)
Datenbanktypen
• hierarchisch Daten werden in einer Baumstruktur gespeichert
• objektorientiert besitzt sämtliche Merkmale objektorientierter Programmierung, wie Klassen, Objekte, Vererbung usw
![Page 10: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/10.jpg)
Datenbanktypen
• relational Daten werden in Tabellen gespeichert. Die Tabellen sind durch Beziehungen (relations) miteinander verknüpft. Dadurch ist es möglich, Daten aus mehreren Tabellen zu kombinieren bei Abfragen.
Merkmale• Eine Relation zwischen zwei Tabellen entsteht dadurch,
dass eine Tabelle ein Feld mit Primärschlüsselwerten einer anderen Tabelle enthält.
• Relationen machen eine DB der Tabellenkalkulation(Tabelle) überlegen
![Page 11: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/11.jpg)
MySQL - Merkmale
• MySQL ist ein Datenbank Management System für relationale Datenbanken.
• Es ist in kompilierter Form und auch als Source-Code frei verfügbar.
• Es läuft auf Windows und UNIX Servern• Installation und Administration ist relativ einfach• Es hat Programmierschnittstellen zu den
wichtigsten Programmiersprachen: Java, C++, Perl, PHP …
![Page 12: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/12.jpg)
MySQL - Sicherheit
• MySQL besitzt ein zuverlässige Sicherheitskonzept. Es basiert auf:
– Benutzer– Passworte– Zugriffsrechte: Administrator kann
Zugriffsrechte auf Datenbanken, Tabellen und einzelne Felder innerhalb der Tabelle für jeden einzelnen Benutzer festlegen
![Page 13: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/13.jpg)
MySQL - Datentypen
MySQL kennt 27 Datentypen, u.a.:• INTEGERS (ganzzahlige Zahlen), • FLOAT, DOUBLE (Gleitkommazahlen)• DECIMAL (Festkommazahlen)• CHAR, VARCHAR (Zeichenketten)• TEXT, BLOB (Texte, Binärobjekte) • DATE, TIME, DATETIME (Datum) • TIMESTAMP, YEAR (Datum)• SET, and ENUM (Auswahl aus vorgegebenen
Werten)
![Page 14: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/14.jpg)
Attribute für Tabellenspalten
Attribute • beeinflussen die Eigenschaften von Tabellenspalten
(=Datenfeldern) • Angabe von Attributen erfolgt bei der
Spaltendeklaration in der CREATE-Anweisung (Tabellenerstellung)
• Die Angabe ist optional
Attribute für DatentypenSyntax der Spaltendeklaration:Spaltenname, Spaltentyp
[NOT NULL|NULL] [DEFAULT Standardwert] ...
![Page 15: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/15.jpg)
Attribute für Datentypen
Attribut Bedeutung Feldtyp
[DEFAULT Standardwert] Wert eintragen, wenn sonst keine Angaben
Alle
[NULL] Spalte darf NULL-Werte enthalten
Alle
[NOT NULL] Spalte darf keine NULL-Werte enthalten
Alle
[AUTO_INCREMENT]: automatisch generierte Zahlenfolge
INTEGER
![Page 16: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/16.jpg)
Attribute für Datentypen
Attribut Bedeutung Feldtyp
[(M)] Anzeigenbreite INTEGER
[(M,D)] Anzeigenbreite, Zahl der Nachkommastellen
Dezimalzahlen(FLOAT, DOUBLE)
[UNSIGNED] Ohne Vorzeichen - Nur positive Werte möglich
INTEGER, FLOAT, DOUBLE
[ZEROFILL] Füllt bis zur Anzeigenbreite mit Nullen auf
INTEGER, FLOAT, DOUBLE
![Page 17: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/17.jpg)
Attribute für Datentypen
Attribut Bedeutung Feldtyp
[PRIMARY KEY] Primärschlüssel, eindeutig Alle
[KEY] Schlüssel Alle
[INDEX] Tabellenindex – beschleunigt Suchabfragen
Alle
[UNIQUE] Eindeutiger Indexwert, darf nur einmal vorkommen
INTEGERCHAR
![Page 18: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/18.jpg)
Tabellenindizes
• Indizes können für eine oder mehrere Tabellenspalten angelegt werden.
• Indizes sind sinnvoll bei Spalten, die oft als Suchkriterium benutzt werden.
• Sie beschleunigen Suchabfragen.• Indizes benötigen Speicherplatz und
verlangsamen das Einfügen von neuen Datensätzen.
![Page 19: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/19.jpg)
Beziehung zwischen SQL und MySQLBeziehung zwischen SQL und MySQL
• SQL ist eine Programmiersprache.
• MySQL ist ein RDBMS (relationales Datenbank-Management-System), das SQL benutzt, um Daten zu bearbeiten, zu erstellen und anzuzeigen.
![Page 20: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/20.jpg)
Relationale DatenbankRelationale Datenbank
• Tabelle• Feld• Eintrag• Schlüssel• Beziehung• Normalisierung
![Page 21: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/21.jpg)
Relationale Datenbank
Ein Primärschlüssel ist ein eindeutiges Feld innerhalb der Tabelle. Kein anderer Datensatz in diesem Feld hat den gleichen Wert. Dies dient dazu, einen Datensatz von allen anderen Datensätzen in dieser Tabelle zu unterscheiden.
Ein Fremdschlüssel repräsentiert den Wert des Primärschlüssel für eine verknüpfte Tabelle. Es dient als strukturelle Link, der die Beziehung zwischen verschiedenen Tabellen definiert.
![Page 22: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/22.jpg)
Relationale Datenbank
Type der Beziehung
– Eins-zu-eins (1:1)– Eine-zu-vielen (1:n)– Viel-zu-vielen (m:n)
![Page 23: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/23.jpg)
Relationale Datenbank
Eins-zu-eins Beziehung
Tabelle1...
DatensatzDatensatzDatensatz
...
Tabelle2...
DatensatzDatensatz
...
KundennummerKunde
![Page 24: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/24.jpg)
Relationale Datenbank
Eine-zu-vielen Beziehung
Tabelle1...
DatensatzDatensatzDatensatz
...
Tabelle2...
DatensatzDatensatzDatensatzDatensatz
...
Bestellung
Kunde
![Page 25: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/25.jpg)
Relationale Datenbank
Viele-zu-vielen Beziehung
Tabelle1...
DatensatzDatensatzDatensatzDatensatz
...
Tabelle2...
DatensatzDatensatzDatensatzDatensatz
...
Artikel Bestellung
![Page 26: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/26.jpg)
Anlegen von Indexen und Tabellen
Die MySQL-Anweisung zum Erzeugen von Tabellen lautet:CREATE TABLE tabelle( spaltenname Datentyp [NOT NULL], ...)
Für jede Spalte sind Bezeichnung und Typ anzugeben, zusätzlich kann mit NOT NULL festgelegt werden, daß die Spalte keine unbestimmten NULL-Werte beinhalten darf, was z.B. bei Schlüsselspalten erforderlich ist
CREATE INDEX (Index für Tabelle anlegen)
Löschen von Indexen und TabellenLogische Objekte können vollständig (d.h. sowohl die Beschreibung als auch die beinhalteten Daten!) aus einer Datenbank gelöscht werden. Für Tabellen und Indexen lauten die SQLAnweisungen:
DROP TABLE DROP INDEX
![Page 27: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/27.jpg)
MySQLMySQL –Syntax
• CREATE
CREATE DATABASE Datenbankname
CREATE TABLE Tabellenname
• DROP
DROP DATABASE Datenbankname
DROP TABLE Tabellenname
• INSERT
INSERT INTO Tabellenname VALUES (Wert, Wert, Wert, ...)
• UPDATE
UPDATE Tabellenname SET Spaltenname = Wert WHERE x = y
![Page 28: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/28.jpg)
Abfragen von Tabellen
• SELECT ist der wichtigste SQL Befehl. Jede Anfrage an eine Datenbank beginnt mit SELECT. Die Techniken zur Abfrage von Datenbanken werden auch zu deren Veränderung mit DELETE, INSERT und UPDATE verwendet.
• Der SELCT Befehl kann auf eine oder mehrere Tabellen angewendet werden. Das Ergebnis der Suche ist wieder eine Tabelle. Die Auswahl der Spalten für die Ergebnistabelle nennt man Projektion, die der Zeilen Selektion. Werden für eine Anfrage Daten aus mehreren Tabellen zusammengetragen, spricht man von einem Join.
![Page 29: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/29.jpg)
SQL-Queries dazu
• SELECT name FROM studentin WHERE matrnr IN (SELECT matrnr FROM hoeren WHERE vorlnr = 'Inf 001');
• SELECT raum FROM vorlesung;
• SELECT zeit FROM vorlesung WHERE titel LIKE ‘Math%';
![Page 30: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/30.jpg)
MySQL
• DELETE
DELETE FROM Tabellenname WHERE a = b• JOIN
CROSS JOIN
INNER JOIN (Beinhaltet nur die Datensätze, bei denen die Inhalte der verknüpften Felder beider Tabellen gleich sind.)
LEFT JOIN• Sortieren
ORDER BY Spaltennamen
![Page 31: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/31.jpg)
MySQL
• Aggregat-Funktionen:
Funktionen, die in Spalten zusammenfassende, mathematische Berechnung durchführen.
COUNT()
COUNT(DISTINCT)
MAX()
MIN()
AVG()
SUM()
STD()
![Page 32: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/32.jpg)
Interaktion
• Clientseitige Möglichkeiten
– Sicherstellen der Anzeigefähigkeit von gelieferten Informationen (bspw. PlugIns)
– Sicherstellen von „richtigen“ Anfragen an den Server (Eingabeüberprüfungen)
– Transformation von gelieferten Informationen in der gewünschten Art und Weise (Formatierung von Siteinhalten, StyleSheets)
• Serverseitige Möglichkeiten
– Entgegennahme von HTML- Requests Lieferung von HTML-Seiten
– Transformation der Requests in der gewünschten Art und Weise z.B. Übersetzung der Anfrage in ein MySQL-Statement oder auch zurück, d.h. Umwandlung eines Abfrageergebnisses in ein HTML-Dokument
– Weiterleitung von Client-Requests an andere Server, insbes. Datenbankserver
![Page 33: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/33.jpg)
Interaktion
• Mit einem solchen Modell besteht die Möglichkeit, in Kombination der serverseitigen und clientseitigen Programmierung Webapplikationen zu erstellen, die die gewohnte Interaktivität von Computerprogrammen bieten
• gestatten es, den Added Value für eine Site zu erzeugen
• Man wird hiermit in die Lage versetzt, dem User Webseiten präsentieren zu können, welche sich frei nach seinen Wünschen konfigurieren lassen!
• d.h. entsprechend seines Verhaltens kann auf die Eingaben des Nutzers reagiert werden.
![Page 34: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/34.jpg)
Dynamische Webseiten
• HTML-Formulare
• URL-Extensions (Datenübertragung zum Web-Server)
• JavaScript (Darstellung & Transformation der Informationen)
• Java (Darstellung & Transformation der Informationen)
• CSS/DHTML (Darstellung der Informationen)
• PlugIns (Darstellung von Informationen, teilweise auch Transformationen)
Verarbeitung des HTML-Dokuments/Query-Resultats mittels Computer-Programm
• CGI-Scripts (i.d.R. PERL)
• ASP (Active Server Pages)
• JSP (Java Server Pages)
• PHP ...• MySQL-Queries werden dazu benutzt den Datenbestand abzufragen und zu analysieren
![Page 35: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/35.jpg)
• Konzept der Datenanbindung ist flexibel– Zugriff auf eine einfache Textdatei (TDC)– Zugriff über Datenbankabfragesprache SQL auf eine
Datenbank, die SQL-Befehle verarbeiten kann. • Anbindung einer HTML-Datei an Daten aus einer
Datenbank, die über die Datenbank-Schnittstellen OLE-DB oder ODBC verfügen – beispielsweise MS Access, Oracle oder SQL-Server
wie MySql• Speichern von Daten möglich• Ebenfalls ActiveX-Control notwendig
![Page 36: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/36.jpg)
Datenbankabfrage mit PHP<?php$db_connection = @mysql_connect("localhost","root“,“pw");mysql_select_db(„ PHP_DB ");$db_result = mysql_query( "SELECT * FROM Kunden“, $db_connection);mysql_close($db_connection);?>
MySQL
Login RechnungNameKundenNummer
Db_connection
SELECT * FROM
Db_result
PHPPHP_DB
Datenbankabfrage mit PHP
![Page 37: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/37.jpg)
Datenbankabfrage mit PHP
15,00 €Müller123
450,45€Münz122
RechnungNameKundenNummer
Resultat nach Select
<?php$db_result =mysql_query( "SELECT KundenNummer,Name,Rechnung FROM Kunden“, $db_connection);while( $row =mysql_fetch_array( $db_result )){echo $row[“KundenNummer"];echo $row[“Name“];echo $row[“Rechnung“]; }
?>
![Page 38: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/38.jpg)
PHP Bank mit Datenbank-Anbindung<?phpecho ‘<h2>Login</h2>‘;$KundenNummer = $_POST[‘KundenNummer '];$Login = $_POST[‘Login'];phpBank_login( $ KundenNummer, $ Login);...?>
EinlogenEinlogen
Kunden Nummer
Login
function phpBank_login($v_ KundenNummer, $v_ Login){$db_connection = @mysql_connect("localhost","root“,“pw");mysql_select_db("PHP_DB");$db_result = mysql_query("SELECT * FROM Kunden WHERE KundenNummer =“.$v_ KundenNummer.“ AND PIN = “.$v_ Login“,$db_connection);If( $row = mysql_fetch_array( $db_result ) ){echo ‘Hallo ‘.$row[‘Name‘].‘ Ihr Rechnung: ‘.$row[‘Rechnung‘];}else{ die(‘Login ist falsch‘); }}
login.php
LoginHallo user2Ihr Rechnung:15€
Login ist falsch
![Page 39: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/39.jpg)
SESSION• Ausgangsproblem:
– Über HTTP werden keine ständigen Verbindungen zu den Servern hergestellt, sondern die Kommunikation läuft immer nach dem Schema „Anfrage“ => „Antwort“ (request/response). Deshalb können sich Webseiten per se nicht „erinnern“ (= stateless protocol).
• Lösung durch Sessions:– Entweder server- oder clientseitig (=> cookies)
werden pro User-Agent (= Browser etc.) individuelle Parameter gespeichert, auf die dann alle PHP Skripte Zugriff haben. Diese Parameter müssen dann nicht mehr mit POST oder GET übermittelt werden. Lediglich eine Session ID muss von Seite zu Seite übermittelt werden.
![Page 40: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/40.jpg)
Gutes Design
Darstellungz.B.
<<HTML>>
Controller<<PHP>>
Wiederverwendbare Komponenten
<<PHP-Library>>
Datenbank-Abstraktionsschicht
Datenbank(leicht auswechselbar)
![Page 41: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/41.jpg)
Datenbank Abstraktionsschicht
• In einer Datenbankabstraktionsschicht werden alle Zugriffe auf die DB durch eine zentrale Datei mediatisiert.
• Sinn einer Datenbankabstraktionsschicht ist es, das Umstellen auf andere Datenbanken oder –quellen zu erleichtern. Auch können die Datenbankabfragen unabhängig vom restlichen Programmiercode entwickelt und getestet werden.
![Page 42: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/42.jpg)
Quellen:• MySQL - Einfьhrung, Anwendung, Referenz, 1. Auflage Autor: Michael Kofler
• http://www.torsten-horn.de/techdocs/postgresql.htm
• Marsch J., Fritze J.: SQL: Eine praxisorientierte Einführung
• http://www.physik.uni-stuttgart.de
• http://www.mysteries-megasite.com/linux/SQL-tutorial.html SQL Tutorial Links
• http://www.mysql.com/ MySQL Dokumentation, Download, Tools
• http://www2.little-idiot.de/mysql/ MySQL Datenbankhandbuch
• MySQL Datenbankhandbuch Guido Stepken ( [email protected])
![Page 43: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/43.jpg)
Datenbankadministration mit MySQL
• Datensicherheit
• Wartung von Tabellen
• Replikationsdatenbanken
• Datenmigration, Import und Export
• Beispiel (PHP und MySQL)
Konstantin Altenhof
![Page 44: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/44.jpg)
DateiebeneSpeicherung der Daten auf Dateiebene
mysql MS-SQL-Server
![Page 45: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/45.jpg)
Datensicherheit
• Prävention mit Metadaten• Zeitangabe
Es ist eine gute Angewohnheit, in jeder Tabelle ein Feld mit dem Datentyp TIMESTAMP einzurichten.
• TIMESTAMP wird von MySQL automatisch erzeugt• Die Feldbreite durch die Deklaration bestimmt
– TIMESTAMP[14]: YYYYMMDDHHMMSS– TIMESTAMP[12]: YYYYMMDDHHMM– TIMESTAMP[10]: YYYYMMDDHH– TIMESTAMP[8]: YYYYMMDD– TIMESTAMP[6]: YYMMDD
• Beispiel aus Praxis.
![Page 46: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/46.jpg)
Datensicherheit
• Benutzerdaten– Für Stammdaten häufig überlegenswert.
• Benutzer zu ermitteln unter MySQL– USER()
Beispiel:
INSERT INTO Mitglieder (Name, Vorname, Erfasst_von)VALUES (`Schmidt`, `Beate`, USER() );
oder
UPDATE Mitglieder SET NAME=`Bayer`, Erfasst_von= USER();
Bemerkung: Im Web – IP-Adresse (PHP Funktion REMOTE_ADDR)
![Page 47: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/47.jpg)
Datensicherheit• Prüfziffern
– Aufbau der Tabelle:CREATE TABLE kd_konten (
Kunde CHAR(8) – FremdschlüsselKto_nr CHAR(8) Blz CHAR(10)Metha_when TIMESTAMPPruefziffer BIGINT );
Beispiel:SET @Kunde =`wischmil`,
@Kto_nr =`22222222222`,@Blz =`4420442044`,@Pruef =MD5(CONCAT(@Kunde,@Kto_nr,@Blz);
INSERT INTO kd_konten VALUES (@Kunde, @Kto_nr, @Blz, NULL, CONV(@Pruef,16,10);
Identität abgleichen, ohne die eigentlichen Daten zu kennen.Daten aus anderen Datenbeständen übernehmen.
![Page 48: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/48.jpg)
Datensicherheit
• Vollständige Datensicherung– Mysqldump– Mysqlhotcopy
Wer, wann, wie?Wer, wann, wie?– AutomatisierenAutomatisieren– Einmal die Woche ist eine gute FaustregelEinmal die Woche ist eine gute Faustregel– Speichern Sie gesicherte Daten immer auf Speichern Sie gesicherte Daten immer auf
einem anderem Datenträger (Tipp: Keine einem anderem Datenträger (Tipp: Keine Disketten verwenden).Disketten verwenden).
![Page 49: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/49.jpg)
Datensicherheit• Sichern mit mysqldump
– Erzeugt eine Datei, die SQL-Befehle enthält um die Datenbank mit allen Tabellen und Indizes wieder zu erzeugen und mit Daten zu fühlen.
mysqldump Datenbankname >Backupdatei.sql
mysqldump Db_1 Db_2 Db_3 >Backupdatei.sql
Schalter:- - password=xxx (Sicherheitslücke: Benutzerpasswort)- - - all-databases(aber …..)- - - add-drop-table (DROP TABLE, CREATE TABLE)- - - add-locks (LOCK TABLE, INSERT, UNLOCK)- - - extended-insert (nicht empfehlenswert, Syntax MySQL-
spezifisch) - - - complete-insert (ANSI-konform, Gegenstück zu –extended-
insert)
![Page 50: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/50.jpg)
Datensicherheit
• Sicherung unter UNIX automatisieren– Cron-jobs.
Aufgabe: Jeden Sonntag um 3 Uhr morgens ein Backup der Datenbank Kundenservice automatisch erstellen.
Lösung:
1. Textdatei mit folgendem Inhalt anlegen:
0 3 * * 0 mysqldump Kundenservice \\ >/home/db_admin/Backups/ kundenservice.sql
Die Datei speichern unter meine_cron_jobs.txt.
2. In einem Terminalfenster eingeben:
cronjob meine_cron_jobs.txt
![Page 51: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/51.jpg)
Datensicherheit• Sichern einzelner Tabellen
BACKUP TABLE tabellenname TO `/home/mein_zuhaus/bak`;
Bei diesem Vorgang fordert MySQL einen Read Lock an, kopiert Dateien tabellenname.frm und tabellenname.myd (Indexfiles werden neue generiert).
RESTORE TABLE tabellenname FROM `home/mein_zuhaus/bak`;
WICHTIG: Vorher eventuell vorhandenen Dateientabellenname.MYDtabellenname.MZItabellenname.frm
![Page 52: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/52.jpg)
Datensicherheit
• Sichern mit mysqlhotcopyPerlskript, Kopieren von Datenbanken im laufenden Betrieb.
Der unterschied zu mysqldump ist, dass dieses Programm die Datenbankdateien kopiert und nicht etwa eine SQL-Datei generiert.
Vorteil – Backups wesentlich weniger Zeit benötigen.
Nachteil – kopierten Dateien sind plattformabhängig und versionsabhängig.
![Page 53: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/53.jpg)
Datensicherheit
• Inkrementelle Strategien
- Veränderungen an der Tabelle aufzeichnen.
- Vollständige Backups restaurieren und anschließend mit den inkrementellen Backups vervollständigen.
![Page 54: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/54.jpg)
Datensicherheit
• Logging-Dateien
Skript einlegen und als Cron-Job täglich ausführen:
mv hostname-bin.001 hostname-bak.001
mysqladmin flusch-logs
cp hostname-bak.001 /usr/local/backups/mysql/
Nachteil: alle Änderungen aller Datenbanken.
Bemerkung: mysqlbinlog wandelt Binärformat in einen Textformat um.
![Page 55: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/55.jpg)
Datensicherheit• Restaurieren von Datenbanken
Zurücklesen von SQL-Dateien
Die Dateien die mit mysqldump erstellt wurden, erhalten SQL-Statements, die ausgeführt werden müssen.
Erste Möglichkeit:
Starten Sie SQL-Monitor mit
mysql –u root
Mit der SQL-Anweisung SOURCE die Backupdatei einlesen:
SOURCE /usr/local/backups/aktuellesbackup.sql
Zweite Möglichkeit: SQL-Datei direkt auf dem Kommandozeile zu übergeben:
mysql – u root </ usr/local/backups/aktuellesbackup.sql
![Page 56: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/56.jpg)
Datensicherheit
• Restaurieren von Datenbanken
Logfiles einlesen
Dafür müssen diese aber zuerst in eine Textdatei mit SQL-Befehl konvertiert werden:
mysqlbinlog –short-form \\
/usr/local/backups/log_02122004-bin>recover.sql
Anschließend die Datei recover.sql mit einer der beschriebenen Methoden in System einlesen.
![Page 57: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/57.jpg)
Wartung von Tabellen
• SQL-Befehle zur Wartung von Tabellen
• ANALIZE TABLE• CHECK TABLE• OPTIMIZE TABLE• REPAIR TABLE
![Page 58: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/58.jpg)
Wartung von Tabellen
CREATE TABLE top_secret(
very_secret varchar(120));
INSERT INTO top_secret VALUES(
‚Dies ist eine geheime Botschaft, die unter keinen Umständen länger als unbedingt notwendig gespeichert werden soll`);
DELETE FROM top_secret WHERE very_secret LIKE ‚Dies%‘;
![Page 59: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/59.jpg)
Wartung von Tabellen• ANALIZE TABLE
ANALIZE TABLE Tabellenname_1, Tabellenname_2,…;
Der Befehl analysiert und reorganisiert die Indizes der jeweiligen Tabellen und gibt Information über aktuellen Zustand der Tabelle aus.
• CHECK TABLE
CHECK TABLE Tabellenname_1, Tabellenname_n [QUICK | FAST | MEDIUM | EXTENDED];
Zustand der Tabelle überprüfen und eine Diagnose erstellen.
![Page 60: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/60.jpg)
Wartung von Tabellen• OPTIMIZE TABLE
OPTIMIZE TABLE Tabellenname_1, Tabellenname_2,…;
Mit OPTIMIZE TABLE werden aus einer Tabelle gelöschte Daten auch physikalisch entfernt.
• REPAIR TABLE
REPAIR TABLE Tabellenname_1, Tabellenname_n [QUICK | EXTENDED];
Hiermit lassen sich korrupte Tabellen reparieren. Wenn Wiederherstellen nicht gelingt, versuchen Sie es mit myisamchk -o.
![Page 61: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/61.jpg)
Wartung von Tabellen• myisamchk und isamchk
myisamchk Schalter:-r -recover – Stellt praktisch jede beschädigte Tabelle wieder her. Die einzige Fehler, die mit dieser Methode nicht beseitigt werden kann, sind mehrer gleiche Werte in einem eindeutigen Index, was allerdings ein sehr unwahrscheinlicher Fall ist.
-o -safe-recover – Ist wesentlich langsamer als –recover.
• myisampack
Damit könnten gepackte Tabellen erzeugt werden. Beim Packen der Tabellen wird jede Spalte für sich gepackt (es wird für jede Spalte getrennt einen Huffmann-Baum angelegt, mit dem anschließend die Daten codiert werden), was Dateigröße erheblich reduziert.
Einsatz in folgenden Fällen:– Wenn die Datensätze nie oder höchst selten geändert werden.– Wenn eine harte Kopie einer Tabelle als Backup erstellt wird.– Wenn die Daten für nur-lesende Aplikationen auf CD-ROM abgelegt und ausgeliefert
werden (Wörterbuch, Lernsoftware)
![Page 62: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/62.jpg)
ReplicationsdatenbankenUm ein möglichst ausfallsicheres System einzurichten, bietet sich die
Möglichkeit, eine oder mehrere Replikationsdatenbanken anzulegen. MySQL synchronisiert dann eine oder mehrere Slave-Datenbanken mit einem Master-Datenbank
Außerdem bietet ein Slave in einem Produktionssystem die Möglichkeit, Backups nicht vom Master, sondern von einem Slave zu machen. Der Slave kann zu diesem Zweck ganz heruntergefahren, das Datenverzeichnis komprimiert und auf Band oder CD-Rom kopiert werden.
In der von MySQL verwendeten Technologie kann auf den Master lesend und schreibend zugegriffen werden, während von den Slaves nur gelesen werden kann.
Ein typischer Einsatz einer Replikationsdatenbank ist die eines Internetstores. Da über das Internet hauptsächlich lesend zugegriffen wird, werden die Daten von einem Slave zur Verfügung gestellt. Der Master läuft dann auf einem Server, der gar nicht vom Internet aus erreichbar ist.
![Page 63: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/63.jpg)
Replicationsdatenbanken
MASTER-SEVER
User mit File-Rechte einlegen
GRANT FILE ON *.* TO repl@“%“ IDENTIFIED BY `XXX`;
In my.ini bzw. my.cnf im Abschnitt [mysqld] einen Server-ID eintragen.
server-id=1
Diesen Eintrag muss später auch bei den Slaves gesetzt werden, wobei jeder der Server eine andere Nummer bekommt.
Slave-Server
Folgende einträge in der Konfigurationsdatei my.ini bzw. my.cnf vornehmen.• master-host.• master-user• master-passwd.• master-port.
![Page 64: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/64.jpg)
Replicationsdatenbanken
Einen Slave zum Master machen
Slave-Server herunterfahren.
Folgende Parameter in dem Bereich [mysqld] in der Datei my.ini bzw. my.cnf auskommentieren und Server-ID auf die den alten Master setzen.
• master-host.• master-user• master-passwd.• master-port.
![Page 65: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/65.jpg)
Datenmigration, Import und Export
• Dateien als Textdatei aus Access exportieren und in MySQL importieren.
Mit mysqlimport werden die Datensätze aus einer Textdatei importiert.
Beispiel:
mysqlimport Personalverwaltung c:\temp\fuhrpark.txt
(Vorausgesetzt, dass die Tabelle Fuhrpark in der Datenbank Personalverwaltung bereits besteht).
Optionen:- - fields-terminated-by (Trennung zwischen Spalten)- - lines-terminated-by (gibt Zeichen an, mit denen eine Zeile
abgeschlossen wird)- - fields-escaped-by (Markierung für Sonderzeichen)Bespiel:
mysqlimport –local „-fields-terminated-by:“ „lines-terminated-by=\r\n“ exceptions c:\temp\Fuhrpark.txt
![Page 66: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/66.jpg)
Datenmigration, Import und ExportImport der Daten mit LOAD DATA INFILEAuch das Importieren von Daten direkt mit einem SQL-Befehl ist
möglich.Der SQL-Befehl würde dann folgendermaßen lauten:
LOAD DATA INFILE “c:\temp\fuhrpark.txt“ INTO TABLE Personalverwaltung.Fuhrpark;
oder für lokalen Datenbank
LOAD DATA LOCAL INFILE “c:\temp\fuhrpark.txt“ REPLACE INTO TABLE Fuhrpark;
Import der Daten unter MySQL-Front
Im MySQL-Editor MySQL-Front habe Sie eine menügeführte Import- und Exportfunktion für Daten, die im Text- oder CSV-Format vorliegen.
![Page 67: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/67.jpg)
Datenmigration, Import und Export
Daten als Textdatei aus MySQL exportieren
Mysql –u root –password=xxx –batch „execute=SELECT * FROM fuhrpark:“ Personalverwaltung > export.txt
Daten als html aus MySQL exportieren
Mysql –u root –password=xxx –html „execute=SELECT * FROM fuhrpark:“ Personalverwaltung > export.html
Daten als Textdatei aus MySQL exportieren (Vertikale Datendarstellung)
Mysql –u root –password=xxx –vertical „execute=SELECT * FROM fuhrpark:“ Personalverwaltung > export_vertikal.txt
![Page 68: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/68.jpg)
Beispiel
![Page 69: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/69.jpg)
Beispiel
![Page 70: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/70.jpg)
Datenmigration, Import und Export
if($interpret!="")
{
if($jahr=="")$jahr="NULL";
mysql_query("INSERT INTO cds (titel,interpret,jahr) VALUES('$titel','$interpret',$jahr);");
}
![Page 71: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/71.jpg)
Beispiel
![Page 72: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/72.jpg)
Beispiel
![Page 73: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/73.jpg)
Datenmigration, Import und Export
if($action=="del")
{
mysql_query("DELETE FROM cds WHERE id=$id;");
}
![Page 74: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/74.jpg)
Beispiel
![Page 75: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/75.jpg)
Beispiel
![Page 76: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/76.jpg)
Beispiel
![Page 77: Relationale Datenbank MySQL HTML PHP ASP ActiveX PERL XML JavaScript MYSQL](https://reader035.vdocument.in/reader035/viewer/2022062318/55204d6349795902118b79ec/html5/thumbnails/77.jpg)
Quellen:
1. Das große Buch MySQL, DATA BECKER, Markus Barth und Günther Karl
2. MySQL/PHP Datenbankanwendungen, MITP, Jay Greenspan, Brad Bulger
3. PHP 4 (Umfassend zur MySQL –Programmierung, HANSER, Jörg Krause
4. www.mysql.com
http://www.mysql.com/
MySQL Dokumentation, Download, Tools