Einführung in SQL und MySQL

Werbung
Einführung in SQL und MySQL
Kursleiter: David Niegisch
Inhalte:
Einführung in relationale Datenbanken
SQL Grundlagen
Erstellung von Beispiel-Datenbanken
Hinweise zur Administration von Datenbanken
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Sämtliche Kursmaterialien befinden sich online, unter:
http://yahg.net/kurse/
Kontakt zum Kursleiter:
[email protected]
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Informationszeitalter:
Das Informationszeitalter stellt nach der Agrargesellschaft
und dem Industriezeitalter die dritte (Wirtschafts- und)
Gesellschaftsform dar.
Gekennzeichnet ist diese Phase von der zentralen
Bedeutung von Information als Rohstoff und Ware,
was erst durch die elektronische Datenverarbeitung und
globale Informationsflüsse möglich wurde. Die Bedeutung
der Produktion von materiellen Gütern geht stattdessen
immer mehr verloren, entscheidend für die Wertschöpfung
ist stattdessen die Intelligenz, die in ein Gut gesteckt wird.
Quelle: Wikipedia (http://de.wikipedia.org/wiki/Informationszeitalter)
Literatur: Castells, Manuel: Die Netzwerkgesellschaft. Band I Das
Informationszeitalter. Leske&Budrich, Opladen 2001.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
„Die Bedeutung der Produktion von materiellen Gütern
geht stattdessen immer mehr verloren, entscheidend für
die Wertschöpfung ist stattdessen die Intelligenz, die in ein
Gut gesteckt wird.“
Aktuelle Beispiele:
Apple‘s iPhone
aber auch:
„Nokia ist ein Warnzeichen“
Essay in WELT-ONLINE (Link)
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Was ist Information? Wie entsteht Wissen? Und
was haben Daten damit zu tun?
Daten sind isolierte und uninterpretierte Fakten und
Kennwerte der Realitätsbeschreibung.
Bspw: Name = Meier, Straße = Hauptstraße 12, Ort = 72076 Tübingen
Informationen sind verknüpfte und mit Bedeutung
versehene Daten.
Bspw: Herr Meier wohnt in der Hauptstraße 12 in 72076 Tübingen.
Von Wissen spricht man erst, wenn diese Informationen
individuell verarbeitet sind und einen mehr oder weniger
starken Bezug zur eigenen Erfahrungswelt erhalten haben.
Bspw: Mein ehemaliger Schulfreund Peter Meier wohnt auch hier in
Tübingen!
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Daten sind der Ursprung allen Wissens
Daten müssen gespeichert und Zugriffsmöglichkeiten
müssen geschaffen werden.
Dies geschieht mit Hilfe von Datenbanken und
Datenbank-Management-Systemen (DBMS).
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Unterscheidung Datenbank und DBMS
Eine Datenbank ist eine logische Einheit
zusammengehörender Daten und sämtlicher MetaInformationen dazu.
Bspw: Eine Access-MDB/ACCDB-Datei oder eine MySQL-Datenbank.
Ein Datenbank-Management-System (DBMS) stellt
unterschiedliche Werkzeuge bereit, mit welchen eine oder
mehrere Datenbanken erstellt, mit Daten gefüllt und
verwaltet werden können.
Bspw: Die Access-Installation auf einem Arbeitsplatzrechner, oder die
MySQL-Installation auf einem Server.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Unterscheidung Datenbank und DBMS
Ohne das zugehörige Datenbank-Management-System sind
die Daten einer Datenbank unverständlich und nicht
verwendbar.
Das Datenbank-Management-System stellt die eigentliche
Rahmenarchitektur zur Erstellung und Pflege von Datenbanken dieses Typs mit ihren speziellen Inhalten dar und
bietet datenbankübergreifend zusätzliche ServiceLeistungen an.
In diesem Kurs werden wir MySQL als DBMS verwenden
um eigene Datenbanken zu erstellen und zu pflegen.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Desktop- und serverbasierte DBMS
Desktop-basierte DBMS kennzeichnen sich dadurch aus,
dass der Betriebssystem-Prozess für die Datenbank nur
dann aktiv sein muss, wenn ein Nutzer auf die Datenbank
zugreift.
Jeder Nutzer erhält eine Kopie der gesamten Daten für die
Zeit seiner Sitzung und kann nach Belieben Inhalte oder
sogar Strukturen ändern und löschen.
Bspw: Eine Access-Datenbank auf einem freigegebenen Netzlaufwerk.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Beispiel für ein desktopbasiertes DBMS:
Auf dem Arbeitsplatzrechner ist MS Access
als DBMS installiert.
Mit Hilfe von MS Access hat der Mitarbeiter
Zugriff auf die Datenbank „Kunden.accdb“.
Während einer Sitzung hat der Mitarbeiter
somit uneingeschränkten Zugriff auf alle
Daten, die sich in dieser Datenbank befinden.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Desktop- und serverbasierte DBMS
Im Gegensatz dazu läuft bei serverbasierten DBMS
kontinuierlich mindestens ein Serverprozess für die
Datenbank. Dieser Prozess stellt die einzige Schnittstelle
zur Verfügung, über die die Nutzer auf die Daten der
Datenbank(en) zugreifen können. Nur wenn die Nutzer ihre
Befehle syntaktisch korrekt formulieren und die
Berechtigung für einen solchen Zugriff vorliegt, wird die
Befehlsfolge ausgeführt und gegebenenfalls Daten an den
Nutzer zurückgesandt.
Bspw: Ein Webserver mit MySQL.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Beispiel für ein serverbasiertes DBMS:
Auf dem Server ist MySQL
als DBMS installiert.
Die Arbeitsplatzrechner kommunizieren mit dem
MySQL-Server und der Server entscheidet, ob
und welche Daten zurückgesendet werden.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Aufbau einer Datenbank
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Datensatzaufbau
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Datenbankmodelle - Einführung
Aufgabe: Erstellen Sie eine Adress-Datenbank (auf Papier).
Die folgenden Daten liegen bereits vor:
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
3 Typen von Datenbankmodellen
1.
Hierarchisches Datenbankmodell (überholt)
2.
Relationales Datenbankmodell (aktuell)
3.
Objektorientiertes Datenbankmodell (die Zukunft?)
Bspw.: IMS von IBM, ca. 50 Jahre alt
http://www-306.ibm.com/software/data/ims/
Bspw.: MS Access und MS SQL Server, Oracle, MySQL
Bspw.: Lotus Notes mit Domino Server oder PostgreSQL
http://www.postgres.de/
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Relationales Datenbankmodell – Beschreibung
Zusammenhängende Informationen werden auf mehrere
Tabellen aufgeteilt, die untereinander in Beziehung stehen.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Relationales Datenbankmodell – Beschreibung
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Relationales Datenbankmodell – Beschreibung
Primärschlüsselfeld:
•
Keine Duplikate
•
Eindeutige Identifikation der Datensätze
•
Wird mit Fremdschlüsselfeld einer anderen Tabelle
verknüpft und dient der eindeutigen Zuordnung
verschiedener Daten aus mehreren Tabellen
Fremdschlüsselfeld:
•
Feld in einer Tabelle, das mit dem Primärschlüsselfeld
einer anderen Tabelle verknüpft ist
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Relationales Datenbankmodell – Beschreibung
Indizes:
•
•
•
Indizes beschleunigen Such- und Sortierfunktionen.
Ein Primärschlüssel einer Tabelle ist immer ein Index
(macht MySQL automatisch).
Umgekehrt muss ein Index nicht unbedingt
Primärschlüssel sein.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Beziehungstypen in relationalen Datenbanken:
•
1:n-Beziehung
•
n:m-Beziehung
•
1:1-Beziehung
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
1:n-Beziehung:
•
1-Seite: Tabelle ohne redundante Informationen
(Mastertabelle)
•
n-Seite: Tabelle in der der Wert einmal, keinmal oder
mehrmals vorkommen kann (Detailtabelle)
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
1:n-Beziehung:
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
n:m-Beziehung:
•
n-Seite: Tabelle in der der Wert einmal, keinmal oder
mehrmals vorkommen kann
•
m-Seite: Tabelle in der der Wert einmal, keinmal oder
mehrmals vorkommen kann
Wichtig: Die n:m-Beziehung benötigt eine eigene Tabelle!
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
n:m-Beziehung:
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
1:1-Beziehung:
•
Sonderfall, tritt relativ selten auf
•
Wert existiert in beiden Fällen nur genau einmal und
ist jeweils Primärschlüssel
Wird bspw. verwendet um eine sehr große Tabelle in
mehrere kleine Tabellen aufzuteilen oder um bestimmte
Informationen von den restlichen Daten eindeutig
abzugrenzen.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
1:1-Beziehung:
Tabelle Adressen
ID_Mitarbeiter
Vorname
Name
00001
Bill
Gates
00002
Steve
Jobs
usw.
Tabelle Bezüge (vertraulich)
ID_Mitarbeiter
Jahresgehalt 2006 (in US-Dollar)
00001
660.000,-
00002
1,-
usw.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Referentielle Integrität:
1.
2.
In Detailtabellen dürfen nur Fremdschlüssel
verwendet werden, die auch in den entsprechenden
Mastertabellen als Primärschlüssel vorkommen.
Datensätze aus Mastertabellen dürfen nicht einfach
gelöscht werden, wenn diese mit anderen
Detailtabellen verknüpft sind.
Nur die InnoDB-Speicher-Engine von MySQL unterstützt
die automatische Überprüfung auf Einhaltung der Regeln
der referentiellen Integrität (CONSTRAINT).
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Normalisierung (Normalformen):
1. Normalform (1NF)
2. Normalform (2NF)
3. Normalform (3NF)
In der Praxis werden meist nur
die ersten drei Normalformen
angewendet.
Boyce-Codd (BCNF)
4. Normalform (4NF)
5. Normalform (5NF)
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
1. Normalform:
Die Werte in jeder Zeile und jeder Spalte der Tabelle
befinden sich im atomaren Zustand, d.h. in den kleinsten
möglichen Einheiten.
ID
Name
Adresse
001
Bill Gates
1835 73rd Ave NE, Medina, WA 98039
usw.
Die Informationen in den Feldern Name und Adresse
lassen sich in noch kleinere Einheiten zerlegen.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
1. Normalform erfüllt:
ID
Vorname
Nachname
Straße
Hausnr.
PLZ
Ort
001
Bill
Gates
73rd Ave NE
1835
WA 98039
Medina
usw.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
2. Normalform:
Die 1. Normalform muss erfüllt sein.
Jede Tabellenzeile enthält nur Informationen die sich auf
das Subjekt beziehen, das durch den Primärschlüssel
definiert ist.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Beispiel für 2. Normalform:
Tabelle Fuhrpark
ID_Fahrzeug
Marke
Typ
Baujahr
Fahrer
00001
Audi
A6
2005
Dieter Meier
00002
Volkswagen
Golf
2006
Heinz Schmid
usw.
Der Fahrer des Fahrzeugs bezieht sich
nicht auf den Primärschlüssel (ID_Fahrzeug).
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
2. Normalform erfüllt:
Tabelle Fuhrpark
ID_Fahrzeug
Marke
Typ
Baujahr
00001
Audi
A6
2005
00002
Volkswagen
Golf
2006
usw.
Tabelle Mitarbeiter
Tabelle FahrerFahrzeuge
ID_Mitarbeiter
Vorname
Nachname
ID_Mitarbeiter
ID_Fahrzeug
00001
Dieter
Meier
00001
00001
00002
Heinz
Schmid
00002
00002
usw.
usw.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
3. Normalform:
Die 2. Normalform muss erfüllt sein.
Jede Spalte der Tabelle darf nur einmal vorkommen und
alle Spalten, die nicht den Primärschlüssel bilden, müssen
voneinander unabhängig sein.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Beispiel für 3. Normalform:
Die Felder „Postleitzahl“ und „Ort“
sind direkt voneinander abhängig.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Alle drei Normalformen erfüllt:
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Entity Relationship Model (ERM):
Übliche Vorgehensweise beim Entwurf einer relationalen
Datenbank:
1.
Erstellen des Entity Relationship Model (ERM)
2.
Ableiten der Tabellen aus der ERM-Skizze
3.
Normalisierung (Anwendung der Normalformen auf
die Tabellen)
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Entity Relationship Model (ERM):
•
Beschreibungsmittel zur Erstellung von
konzeptionellen Schemata
•
ERM beschreibt Daten und ihre Beziehungen
untereinander
•
Grundlage ist die Typisierung von Objekten und
deren Beziehungen untereinander
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Entity Relationship Model (ERM):
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Vorübung für unsere erste MySQL-Datenbank:
Aufgabe: Erstellen Sie den Datenbankentwurf (auf Papier)
für ein News-System auf einer Internetseite mit folgenden
Bedingungen:
•
•
•
Nur registrierte Benutzer dürfen News verfassen.
Zu jedem Benutzer werden Login-Name, Passwort
und E-Mailadresse gespeichert.
Jeder Newsbeitrag besteht aus Titel, Text, Datum des
Beitrags und Name des Verfassers.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Vorübung für unsere erste MySQL-Datenbank:
ERM:
User
verfasst
1
:
News
n
Name
Titel
PW
Text
Email
Datum
+ 1 Feld für
Primärschlüssel
+ 1 Feld für
Fremdschlüssel
+ 1 Feld für
Primärschlüssel
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Vorübung für unsere erste MySQL-Datenbank:
Tabellen, abgeleitet von ERM:
Tabelle User
ID_user
Username
Passwort
Email
Newstitel
Newstext
Newsdatum
Tabelle News
ID_news
David Niegisch – Einführung in SQL und MySQL
ID_user
Einführung in SQL und MySQL
SQL-Grundlagen: Historie
•
•
•
1970: Edgar Frank Codd veröffentlicht A Relational
Model of Data for Large Shared Data Banks. Darin
wird das relationale Datenmodell mit seinen fünf
Normalformen vorgestellt.
1974: Basierend auf der Arbeit von Codd entwickelten D. D. Chamberlin und R. F. Boyce bei IBM die
Sprache SEQUEL (Structured English Query
Language).
1979: Auslieferung des ersten kommerziellen
relationalen DBMS. Das Produkt hieß Oracle, die
Firma wurde später in Oracle Corporation
umbenannt.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
SQL-Grundlagen: ANSI Standard
•
•
•
•
•
•
•
•
1986: SQL1, erster ANSI Standard
1987: SQL1 wird auch als ISO Standard anerkannt
1989: Überarbeitung von SQL1, ist seitdem von
RDBMS Herstellern weithin übernommen worden
1992: SQL92 oder SQL2
1999: SQL99 oder SQL3
2003: SQL2003
2006: SQL/XML2006, Verwendung von SQL mit XML
2008: SQL2008, aktueller Standard
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
SQL-Grundlagen: Dialekte
Durch die ständige Weiterentwicklung der SQL Standards
haben sich bei den RDBMS Herstellern unterschiedliche
Dialekte von SQL gebildet. Entweder um von den Usern
gewünschte Features anzubieten, zu denen noch kein
Standard existiert oder um einen Wettbewerbsvorteil zu
erlangen.
Manche Dialekte haben prozedurale Befehle eingeführt, um
typische Funktionen einer Programmiersprache anzubieten,
bspw. Bedingungen und Schleifen.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
SQL-Grundlagen: Befehlseingabe
SQL-Befehle können auf zwei verschiedene Arten eingegeben und an die Datenbank übermittelt werden.
•
SQL-Ausführung durch einen Interpreter
Das DBMS oder ein besonderer Client bieten direkten
Zugriff auf die Datenbank, bspw. phpMyAdmin oder
MySQL-Monitor.
•
SQL eingebettet in eine Wirtssprache
Innerhalb einer Programmiersprache wird ein Objekt
verwendet, welches Kontakt zum DBMS aufnehmen
kann. David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
SQL-Grundlagen: Mengenoperationen
SQL ist eine mengenorientierte Sprache im Gegensatz
zum datensatzorientierten Zugriff.
Die Stärke von SQL liegt darin, große Datenmengen auf
einmal bearbeiten zu können.
Mit Hilfe von JOINS werden zusammenhängende Datensätze aus mehreren Tabellen verknüpft. Durch Anwendung
von Filterregeln (WHERE) können aus dieser Menge
bestimmte Datensätze ausgewählt und bearbeitet werden.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
SQL-Grundlagen: 4th Generation Language
SQL gilt als Sprache der vierten Generation (4GL).
SQL-Befehle beschreiben nur, was gemacht werden
soll, aber nicht wie es gemacht werden soll.
Eine Sprache der dritten Generation müsste ein eigenes
Tabellenobjekt definieren und eigenständig Verfahren entwickeln, um bspw. eine Zeile möglichst effizient zu suchen.
Damit wäre jedoch der Datenzugriff nur an diese eine
Programmiersprache gebunden, was bei SQL nicht der Fall
David Niegisch – Einführung in SQL und MySQL
ist.
Einführung in SQL und MySQL
Exkurs: VIEW (Sicht)
SELECT-Abfragen können in einer VIEW auf dem Server
gespeichert werden. Die VIEW zeigt dabei stets das
Ergebnis der zugrunde liegenden SELECT-Abfrage und
verhält sich fast wie eine reale Tabelle, d.h. es können
bspw. SELECT-Abfragen erstellt werdne, die auf die VIEW
zugreifen als wäre sie eine echte Tabelle.
Als VIEW gespeicherte SELECT-Abfragen werden stets
direkt auf und vom Datenbank-Server selbst ausgeführt.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Transaktion, Commit und Rollback
Transaktion bezeichnet die Bündelung mehrerer Datenbankoperationen zu einer Einheit.
Die Folge der Operationen (lesen, ändern, einfügen,
löschen) soll die Datenbank von einem konsistenten
Zustand in einen anderen konsistenten Zustand
überführen.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Transaktion, Commit und Rollback
Beispiel für Transaktion: Überweisung von 50,- Euro von
Konto A nach Konto B
Pseudocode für die Überweisung:
read(KontoA, a); - Kontostand für Konto A ermitteln
a := a - 50; - neuen Kontostand berechnen
write(KontoA, a); - neuen Kontostand speichern
read(B, b); - Kontostand für Konto B ermitteln
b := b + 50; - neuen Kontostand berechnen
write(B, b); - neuen Kontostand speichern
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Transaktion, Commit und Rollback
Transaktionen in SQL beginnen mit Ausführung der ersten
Anweisung. Eine Transaktion wird abgeschlossen durch
•
•
commit work: Alle Änderungen sollen
festgeschrieben werden (ggf. nicht möglich wegen
Konsistenzverletzungen).
rollback work: Alle Änderungen sollen
zurückgesetzt werden (ist immer möglich).
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Transaktion, Commit und Rollback
Innerhalb einer Transaktion sind auch Inkonsistenzen
erlaubt. Im folgenden Beispiel fehlt vorübergehend der
Eintrag in die Tabelle Professoren (MySQL Syntax):
start transaction;
insert into Vorlesungen
values (5275, `Kernphysik', 3, 2141);
insert into Professoren
values (2141, `Meitner', `C4', 205);
commit;
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Stored Routines (Prozeduren und Funktionen)
In Prozeduren und Funktionen können SQL-Befehle direkt
auf dem Server gespeichert werden. Diese Prozeduren und
Funktionen führen dann die entsprechenden SQL Befehle
bei ihrem Aufruf aus.
Exkurs: VIEW (Sicht)
SELECT-Abfragen können in einer VIEW auf dem Server
gespeichert werden. Die VIEW zeigt dabei stets das
Ergebnis der zugrunde liegenden SELECT-Abfrage und
verhält sich fast wie eine reale Tabelle.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Beispiel für eine Funktion:
mysql> CREATE FUNCTION hello (s CHAR(20))
mysql> RETURNS CHAR(50) DETERMINISTIC
-> RETURN CONCAT('Hello, ',s,'!');
mysql> SELECT hello('world');
+----------------+
| hello('world') |
+----------------+
| Hello, world! |
+----------------+
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Beispiel für eine Prozedur:
mysql> delimiter //
mysql> CREATE PROCEDURE simpleproc (OUT param1 INT)
-> BEGIN
-> SELECT COUNT(*) INTO param1 FROM t;
-> END//
mysql> delimiter ;
mysql> CALL simpleproc(@a);
mysql> SELECT @a;
+------+
| @a |
+------+
|3 |
+------+
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Trigger
Trigger sind mit einer Tabelle verbunden und werden aktiviert, sobald ein
bestimmtes Ereignis eintritt, bspw. beim Einfügen einer neuen Zeile.
Beispiel eines Triggers der die aktuelle Summe einer Spalte berechnet:
mysql> CREATE TABLE account (acct_num INT, amount DECIMAL(10,2));
mysql> CREATE TRIGGER ins_sum BEFORE INSERT ON account
-> FOR EACH ROW SET @sum = @sum + NEW.amount;
mysql> SELECT @sum;
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
XAMPP als Entwicklungsumgebung:
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
XAMPP als Entwicklungsumgebung:
http://localhost
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Übung: Ein Website News-System mit MySQL
Alle Anweisungen und Informationen zu dieser Übung
finden Sie im Handout.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Administration von MySQL-Datenbanken
Bei den Kursmaterialien finden Sie einen Link zu dem
Artikel „MySQL-Anwendungen sichern“ sowie die PDFVersion des Artikels.
Ebenfalls als Link finden Sie bei den Kursmaterialien auch
eine Anweisung für verschiedene Möglichkeiten um
Backups (Datensicherungen) und Restores (Datenwiederherstellungen) bei MySQL-Datenbanken durchzuführen.
David Niegisch – Einführung in SQL und MySQL
Einführung in SQL und MySQL
Beispiele für ungesicherte MySQL-Datenbanken
http://www.google.com/search?q=intitle%3AphpMyAdmin
+%22Welcome+to+phpMyAdmin+***%22+%22run
ning+on+*+as+root%40*%22&start=0
http://www.hackersforcharity.org/ghdb/
SQL-Injections anschaulich demonstriert:
http://sqlzoo.net/hack/
David Niegisch – Einführung in SQL und MySQL
Herunterladen