ÜK Modul 105 Übersicht SQL - Arbeitsbuch Patrick Urfer

Ausbildung
Arbeitsbuch
Informatik
ÜK Modul 105
Modulbezeichnung:
ÜK Modul 105
Kompetenzfeld:
Datenbanken mit SQL bearbeiten
Kompetenz:
Logisches Datenbankschema mit Standardsprachmitteln
(Structured Query Language SQL) in ein relationales Datenbank Management
System (RDBMS) integrieren. Transaktionen durchführen.
1.
2.
3.
4.
5.
Ein Logisches Datenbankschema mit Hilfe von SQL-Befehlen (DDL) das
Datenbankschema in einem RDBMS implementieren.
Rollen/Berechtigungen vergeben zur Gewährleistung der Datensicherheit
und des Datenschutzes.
Mit einem Datenbank Utility (Bulk load) oder mittels SQL-Befehlen die
Datenbank mit Testdaten laden.
Mit SQL-Befehlen Transaktionen zur Bearbeitung und Auswertung der
Datenbank ausführen.
Aufgrund geänderter Anforderungen das Datenbankschema anpassen.
Übersicht SQL
SQL ist eine Datenbanksprache zur Definition von Datenstrukturen und dessen Modulierung in
relationalen Datenbanken, welche eine hohe Verwendung in vielen
Datenbankmanagementsystemen(DBMS) findet.
Sie besteht aus 4 Sprachschichten welche jeweils bestimme Einsatzgebiete abdecken.
Die 4 Sprachschichten sind folgende:
Data Definition Language(DDL):
Die DDL oder auch Data Definition Language hat den Nutzen Datenbanken, Tabellen und Attribute
erstellen / ändern und löschen zu können.
Die Wichtigsten in der DDL enthaltenen Befehle sind CREATE, ALTER und DROP.
Data Control Language(DCL):
Die DCL oder auch Data Control Language hat wie der Name es verrät den Nutzen wie bei Sensiblen
Daten üblich die Zugriffskontrolle zu Regeln und Verwalten.
Die dafür am Wichtigsten in der DCL enthaltenen Befehle sind GRANT und REVOKE um die Daten zu
schützen.
Data Manipulation Language(DML):
Die DML oder auch Data Manipulation Language ist die Sprache zur Manipulation vorhandener Daten
sofern allfällige Änderungen an den Vorhandenen Daten anfallen, wird die DML mit den Unterstützenden
Befehlen wie INSERT, UPDATE und DELETE verwendet.
Mit diesen Befehlen lassen sich die benötigten Manipulationen durchführen ohne viel Aufwand.
Data Query Language(DQL):
Die DQL oder auch Data Query Language ist die Sprache zur Abfrage/Suche/Filterung der
vorhandenen Daten, sie ist die gebräuchlichste und meist verwendete Sprachschichte von SQL der
bekannteste Befehl der DQL ist dieser Abfragebefehl nämlich SELECT.
Modul105
Patrick Urfer 17.06.2015
Seite 1 von 19
Ausbildung
Arbeitsbuch
Informatik
Datenbanksystem(DBS):
Was genau ist ein Datenbanksystem und welche 2 Komponenten sind Hauptbestandteil davon?
Dieser Frage gehen wir hier auf den Grund um zu verstehen wie ein Datenbanksystem funktioniert und
was dafür von Nöten ist damit es Funktioniert wie es gewünscht ist.
Ein Datenbanksystem auch bekannt als DBS besteht aus 2 unabdingbaren Elementen und diese sind
zum einen die Datenbank/en auch bekannt als DB und zum anderen das
Datenbankmanagementsystem auch bekannt als DBMS dieser Aufbau ist ein wenig leichter zu
verstehen mittel der folgenden Grafik.
In dieser sehen sie ein Anwenderprogramm welches Daten speichert und verwendet mittels des
Datenbanksystems, die Aufgabe des Anwenderprogrammes erfolgt an das Datenbanksystems dieses
nimmt danach Zugriff auf das Datenbankmanagementsystem und dieses wiederrum verwaltet die
verwendeten Datenbanken und lässt uns mit Ihnen arbeiten.
Als nächste erzähle ich Ihnen noch etwas über die 2 Elemente welche nun mehrfach erwähnt aber nie
genau beschrieben wurden, ich spreche natürlich von der DB und dem DBMS.
Datenbank(DB):
Die Datenbank ist wie gesagt der eigentliche Aufbewahrungsort unserer Daten, an sich gibt es keine
wirklichen Begrenzungen wofür Datenbanken verwendet werden können, hier stellt sich immer nur die
Sinnigkeit und ob es Vernünftig ist eine Datenbank für diesen Zweck anzulegen.
Gerade bei Sensiblen Daten ist es auch umso Wichtiger dass diese Daten korrekt und sicher
aufbewahrt/gelagert sowie regelmäßig Gewartet werden, damit die Sicherheit und Aktualität
sichergestellt werden kann.
Je nach Größe und Art von Datenbank um die es sich handelt kann der Unterhalt sofern man diese
Wartungen nicht selber realisieren kann, sehr Teuer werden.
Datenbankmanagementsystem(DBMS):
Die Daten innerhalb einer Datenbank haben nur dann einen realen Wert, sofern man als Benutzer auch
damit arbeiten oder die Daten einsehen kann.
Für beide Tätigkeiten benötigt man eine Schnittstelle, welche das DBMS auch bekannt als
Datenbankmanagementsystem liefert und uns somit Zugriff auf unsere Daten ermöglicht.
Es ermöglicht allerdings nicht nur den Zugriff sondern auch die zentrale Steuerung und Kontrolle
unserer Daten.
Das DBMS gewährleistet uns auch einen Schutz gegen Soft- und Hardware-Fehler dass die Daten bei
diesen nicht verloren gehen oder wiederhergestellt werden können.
Modul105
Patrick Urfer 17.06.2015
Seite 2 von 19
Ausbildung
Arbeitsbuch
Informatik
Relationale Datenbanken
Bei relationalen Datenbanken werden die Informationen in verschiedenen miteinander verbundenen
Tabellen aufbewahrt, diese Verbindungen erfolgen mittels eines Schlüssel-Prinzips mit denen man die
Datensätze von zwei Tabellen in eine Relation(Verbindung) bringt.
Relationale Datenbanken erlauben es vor allem das Daten möglichst frei von Redundanzen gespeichert
werden können, hiermit lassen sich vor allem auch Inkonsistenzen in der Datenbank nahezu gänzlich
vermeiden.
Als nächstes erläutere ich die 2 Wichtigsten Schlüssel dieses Prinzips.
Primärschlüssel(Primary Key):
In der Regel verfügt jede Tabelle auch über einen Primary Key dem Primary Key sind folgende
Eigenschaften vordefiniert:
 Der Primary Key muss Einzigartig und Eindeutig sein.
 Je kürzer umso besser da der Primary Key an vielen Stellen innerhalb einer Datenbank
Verwendung findet, würde ein zu langer Primary Key unnötige Performance verschwenden.
 Er muss für eine Funktionstüchtige Datenbank somit Unveränderlich sein da sonst bei den
vielen Referenzen welcher der Primary Key besitzt auch die Veränderungen durchgeführt
werden müssen was eine Menge Aufwand und Fehleranfälligkeit hervorruft.
 Er sollte möglichst einfach Verwendbar sein das beim Einfügen eines neuen Datensatzes die
Werte automatisiert oder ohne Zusatzaufwand für den Primary Key gesetzt werden können
Aus genau diesem Grund wird beim Primary Key nahezu immer ein Ganzzahliger Wert verwendet mit
einer Auto_Increment Funktion verknüpft, welche den Wert um den Festgelegten Betrag automatisch
erhöht und Korrekt einfügt sowie weiterführt.
Fremdschlüssel(Foreign Key):
Der Foreign Key ist ein Attribut oder eine Kombination von verschiedenen Attributen welche in einer
anderen Tabelle derselben Datenbank als Primary Key definiert und in Verwendung stehen.
Mit dem Foreign Key wird also immer in anderen Tabellen der Primary Key von anderen Tabellen
referenziert und somit Verknüpfungen zu diesen Primary Keys realisiert.
Referentielle Integrität
Die Referentielle Integrität in einem Datenbanksystem sichert ab, dass nur Foreign Keys eingegeben
werden können, die in der verknüpften Tabelle als Primary Key verwendet werden, hiermit gewährleistet
die Referentielle Integrität deutlich weniger Fehleingaben und hält somit die Datenbank sauber.
Die Referentielle Integrität regelt somit das Verhalten der Datenbank bei der Löschung oder Mutation
von Primary Keys welche in anderen Tabellen als Foreign Keys in einer Relation stehen.
Modul105
Patrick Urfer 17.06.2015
Seite 3 von 19
Ausbildung
Arbeitsbuch
Informatik
Ablauf Datenbankerstellung
Datenbankschema erstellen
Bevor man eine Datenbank mittels SQL erstellt wird zuerst immer ein Datenbankschema erstellt beim
Erstellen eines Datenbankschemas gibt es 2 gängige Methoden dies sind folgende:

Datenmodellierung
Wenn noch keine Datensätze vorhanden sind entwickelt man das Datenmodell aufgrund der
Anforderungen und Wünschen des Kunden oder des zukünftigen Benutzers.

Datennormalisierung
Sind bereits Datensätze in anderer Form vorhanden realisiert man mittels der Normalisierung
des aktuellen Datenbankschemas in das neue Datenbankschema.
Beziehungen definieren
Nachdem die Tabellen des Datenbankschemas bekannt sind, benötigen wir die Beziehungen, zwischen
den jeweiligen Tabellen.
Hier ein Beispiel von Beziehungsnotationen:
Hier in diesem Beispiel wird Links die IBM- und rechts die Zehnder-Notation verwendet, nach diesen
jeweiligen Linien werden noch die Tabellen angehängt das sieht so aus:
1:n([0 oder 1] zu beliebig vielen) Beziehung
Jede Entität aus der ersten Entitätsmenge kann mitbeliebig
vielen Entitäten aus der zweiten Entitätsmenge in
Beziehung stehen. Jede Entität aus der zweiten
Entitätsmenge kann mit höchstens einer Entität aus der
ersten Entitätsmenge in Beziehung stehen.
Attribute und Datentypen bestimmen
Nachdem die Beziehungen der jeweiligen Tabellen definiert sind, definieren wir nun die
Attribute(Spalten der Tabellen) und die jeweilig dazugehörenden Datentypen.
In einem Attribut werden Informationen sowie Eigenschaften z.B. ein Text, ein Datum oder eine Zahl,
verwaltet, somit verfügt jedes Attribut über die gebrauchten Eigenschaften einen Wert des
entsprechenden Datentyps zu speichern.
Modul105
Patrick Urfer 17.06.2015
Seite 4 von 19
Ausbildung
Arbeitsbuch
Informatik
Normalisierungsprozess
In der Praxis ist der am meisten aufkommende Fall das bereits Daten existieren, diese müssen mittels
Normalisierung in die Entsprechende Normalform gebracht werden, ich werde hier nur ein Einblick auf
die ersten 3 Normalisierungsstufen geben, da mehr als dies in der Praxis eher eine Seltenheit ist.
1.Normalform
Definition: Eine Relation ist dann in der 1. Normalform, wenn alle Attribute nur einfache Attributwerte
aufweisen. Das Nichtvorhandensein von Daten ist zulässig.
2.Normalform
Definition: Eine Datenbank befindet sich dann in der zweiten Normalform, wenn die erste Normalform
erfüllt ist und für jeden Primärschlüssel atomare(Eindeutige) Attributwerte vorhanden sind.
3.Normalform
Definition: Die Relation befindet sich in der 3. Normalform, wenn sie sich in der 2. Normalform befindet
und alle Nichtschlüsselattribute (= alle Attribute, die nicht zum Primärschlüssel gehören) direkt von
dem/einem Schlüssel abhängen (und nicht: von einem Nichtschlüsselattribut) - wenn also keine
transitive Abhängigkeit zwischen einem Nichtschlüsselattribut und einem Schlüssel besteht.
Modul105
Patrick Urfer 17.06.2015
Seite 5 von 19
Ausbildung
Arbeitsbuch
Informatik
Datenbanken Einrichten und Verwalten
Datenbanken verwalten
In der Verwaltung von Datenbanken geht es um einige spezifische Aufgaben wie das Erstellen, das
Anzeigen, das Löschen und das Auswählen, diese 4 Teilbereiche werden wir in diesem Thema
anschauen.
Datenbank erstellen
Im Ersten Schritt muss sicherlich immer die Datenbank erstellt werden, denn wo nichts ist kann auch
nichts verwaltet werden.
Die Erstellung der Datenbank erfolgt in SQL über die Syntax:
CREATE DATABASE IF NOT EXISTS datenbankname;
Mit dem Zusatz = IF NOT EXISTS überprüfen wir ob die Datenbank mit dem Namen bereits Existent ist.
Datenbank anzeigen
Wenn Sie Ihre Datenbanken mit Namen anzeigen lassen möchten können Sie mit folgender Syntax
genau dies Erreichen:
SHOW DATABASES;
Datenbank auswählen
Wenn Sie mit einer Ihrer Datenbanken arbeiten möchten so müssen Sie diese vorher auswählen, um
eine Datenbank auszuwählen wird folgende Syntax verwendet:
USE datenbankname;
Sie können nun damit anfangen in Ihrer Datenbank alles zu bearbeiten, Erstellen oder Verwalten, die
Ausgewählte Datenbank bleibt bis zum Ende der Sitzung oder zur Auswahl einer anderen Datenbank
bestehen.
Datenbank löschen
Um eine Datenbank wieder zu löschen verwenden wir folgende Syntax:
DROP DATABASE datenbankname;
Mit diesem Befehl sollte sehr vorsichtig umgegangen werden, da die komplette Datenbank inklusive
allem Inhalt ohne eine Warnung gelöscht wird.
Modul105
Patrick Urfer 17.06.2015
Seite 6 von 19
Ausbildung
Arbeitsbuch
Informatik
Tabellen Einrichten und Verwalten
Tabellen verwalten
In der Verwaltung von Tabellen geht es primär um einige spezifische Aufgaben wie das Erstellen, das
Anzeigen, das Löschen und das Auswählen, diese 4 Teilbereiche und das Erstellen sowie Definieren
der Attribute werden wir in diesem Thema anschauen.
Tabellen erstellen
Alsbald wir eine Datenbank zur Verfügung haben, können wir auch beginnen Daten innerhalb von
Tabellen abzulegen, hierfür jedoch müssen wir Tabellen erstellen.
Für die Erstellung von Tabellen verwenden wir folgende Syntax:
CREATE TABLE IF NOT EXIST tabellenname
(
ID-Attribut INTEGER NOT NULL AUTO_INCREMENT,
Attribut1 INTEGER NOT NULL,
Attribut2 datentyp2 DEFAULT „bla“,
Primary Key (ID-Attribut),
Foreign Key (Attribut1) REFERENCES tabellenname (Attributname)
);
In diesem Beispiel sieht man die Syntax zur Erstellung einer Tabelle mit einem Primary Key welches
man meistens mit einem ID-Attribut benennt und im Normalfall immer ein Integer-Wert, welches nicht
NULL sein kann und über ein Auto_Increment verfügt.
Mit dem Zusatz = IF NOT EXISTS überprüfen wir ob die Tabelle mit dem Namen bereits Existent ist.
Mit Not Null wird die Eingabe eines Wertes für das jeweilige Attribut erzwungen, da ein NULL-Wert
verboten wird.
Mit Auto_Increment wird der Wert des Attributs automatisch hochgezählt.
Mit Default wird ein Standardwert definiert, sofern also bei der Eingabe eines Datensatzes dem Attribut
bei der Eingabe kein Wert zugewiesen wird, so übernimmt dieses den Default-Wert.
Ebenfalls Erstellen wir eine Verknüpfung zu einer anderen Tabelle mittels eines Foreign Keys dies
machen wir in dem wir ein Attribut erstellen welches ebenfalls ein Integer-Wert ist welcher nicht NULL
sein kann, hier benötigen wir kein Auto_Increment da es lediglich eine Referenz zu einem Primary Key
einer anderen Tabelle ist und falls nötig dort bereits ein Auto_Increment implementiert ist.
Modul105
Patrick Urfer 17.06.2015
Seite 7 von 19
Ausbildung
Arbeitsbuch
Informatik
Übersicht Datentypen
Da wir zum Erstellen der Tabelle den Attributen sogenannte Datentypen mitgeben müssen, erkläre ich
nun welche Datentypen für welchen Nutzen gedacht sind.
Text-Datentypen
Sind wie der Name bereits sagt Datentypen zum Speichern von Textinformationen, bei diesen
Datentypen wird zwischen fester und variabler Länge unterschieden.
Der Unterschied bei fester und variabler Länge liegt in der Speicher-Art.
Bei der festen Länge wird die definierte Länge des Textfeldes immer verwendet auch wenn der
eigentliche Text weniger benötigen würde.
Bei der variablen Länge wird von der definierten Länge nur das verwendet was der Text effektiv
benötigt und nicht die komplett definierte Länge.
CHAR (Längen-definition):
Der Datentyp CHAR kann beliebige Textinformationen speichern,
bei CHAR wird eine Länge zwischen 1 und 255 Zeichen definiert,
was auch bedeutet das die Maximallänge der zu Speichernden
Texte 255 Zeichen sein kann.
CHAR benötigt exakt die definierte Länge an Speichergrösse in
Byte pro Datensatz.
VARCHAR (Längen-definition):
Der Datentyp VARCHAR ist dem Datentyp CHAR sehr ähnlich bei
beiden wird eine definierte Länge vorgegeben, jedoch ist ein
Markanter Unterschied auszumachen.
VARCHAR benötigt im Gegensatz zu CHAR immer 2 Byte für die
definierte Länge + die effektiv verwendete Länge an Text an
Speichergrösse.
BLOB:
Der Datentyp BLOB auch bekannt als Binary-Large-Object ist wie
der Name sagt dafür gedacht grosse Objekte zu speichern, er wird
vor allem fürs Speichern von sehr Grossen Textdateien,
Videodateien, Grafiken oder Bildern verwendet.
TEXT:
Der Datentyp TEXT ist dem Datentyp BLOB sehr ähnlich auch
hier werden grössere Informationsmengen mit variabler Länge
gespeichert.
Der Unterschied zu BLOB liegt in der verschiedenen
Sortierreihenfolge, welche bei TEXT unabhängig von Gross- und
Kleinschreibung ist.
Datum-Datentypen
Für Datums- und Zeitangaben gibt es einen speziellen Datentyp, im Datumstypwenn keine Angaben
gemacht werden wird automatisch auch die Zeit gespeichert.
Die zwei am häufigsten aufzutauchenden Datums-Datentypen sind:
DATE:
Mit DATE können Datumswerte zwischen 1.1.100 und 11.12.5941
mittels 8 Byte Speicherbedarf gespeichert werden.
TIME:
Mit TIME können Zeitwerte gespeichert werden.
Da es bei jedem DBMS ein wenig anders ist, ist es am besten in der direkten Dokumentation
nachzuschauen.
Modul105
Patrick Urfer 17.06.2015
Seite 8 von 19
Ausbildung
Arbeitsbuch
Informatik
Numerische Datentypen
Für das Speichern von Zahlen stehen uns für allerlei Bedürfnisse verschiedene Numerische
Datentypen zu Verfügung.
SMALLINT:
Mittels SMALLINT können Ganzzahlige Werte zwischen den
Bereichen von Minus 32 768 bis Plus 32 767 gespeichert werden.
SMALLINT hat einen Speicherbedarf von 2 Byte.
INTEGER:
Mit INTEGER können ebenfalls ganzzahlige Werte zwischen den
Bereichen von Minus 2 147 483 648 bis Plus 2 147 483 647
gespeichert werden.
Der INTEGER benötigt dafür lediglich 4 Byte Speicher.
FLOAT:
Mit FLOAT können Sie Zahlenwerte mit Nachkommastellen im
Bereiche von 7 Stellen inklusiv Dezimalpunkt speichern.
FLOAT benötigt dafür lediglich 4 Byte Speicher.
DOUBLE PRECISION:
Mit DOUBLE lassen sich wie mit FLOAT Zahlenwerte mit
Nachkommastellen speichern, mit dem Unterschied das DOUBLE
einen Bereich von 15 Stellen inklusive Dezimalpunkt bereitstellt.
Der DOUBLE verwendet dadurch 8 Byte Speicher.
NUMERIC:
Mittels NUMERIC werden auch Zahlenwerte gespeichert, welche
Ganzzahlen oder Zahlen mit Nachkommastellen sein können, um
den Speicherbereich zu bestimmen für NUMERIC werden die
Parameter(Stellenanzahl, Nachkommastellen)übergeben.
Der Speicherverbrauch ist hier Variabel und Abhängig von
übergebenen Parametern.
DECIMAL:
Mittels DECIMAL werden Zahlenwerte wie bei NUMERIC
gespeichert jedoch mit dem Unterschied, das bei DECIMAL mit
dem Parameter(Stellenanzahl) die Minimale Anzahl festlegt wird.
CURRENCY/MONEY:
Mittels CURRENCY/MONEY werden Währungsbeträge definiert
jedoch ist dieser Datentyp in jedem DBMS verschieden daher gehe
ich nicht genauer darauf ein, lesen sie hierfür die Dokumentation
Ihres DBMS.
Zusatz-Parameter
NOT NULL:
Mittels NOT NULL wird festgelegt das bei der Eingabe das Feld mit
dem Parameter NOT NULL nicht leer gelassen werden kann und
daher eine Eingabe erzwingt.
DEFAULT:
Mittels DEFAULT wird ein Standardwert für das Feld festgelegt
sofern keine Eingabe erfolgt wird eben dieser DEFAULT-Wert
verwendet anstelle von NULL.
AUTO_INCREMENT:
Mittel AUTO_INCREMENT wird eine sich automatisch
Hochzählende Zahl eingesetzt, die von 1 an beginnt und bei jedem
Eintrag +1 dazuzählt standardmässig. Dies kann natürlich mit
Parametern verändert werden.
Modul105
Patrick Urfer 17.06.2015
Seite 9 von 19
Ausbildung
Arbeitsbuch
Informatik
Übersicht Schlüssel
Primary Key
Der Primary Key ermöglicht dass jeder Datensatz eindeutig Identifizierbar ist, normalerweise verfügt
jede Tabelle über einen Primary Key.
Definition:
Ein Primary Key besteht normalerweise aus einem Attribut oder
wird aus mehreren zusammengesetzt.
Wenn mehrere Attribute als Primary Key definiert werden sollen so
schreibt man die Attribute getrennt durch Kommas in die
Klammern.
Anwendungsbeispiel:
Primary Key (Attributliste);
Nachträglich definieren:
Normalerweise sollte man den Primary Key beim Erstellen
der Tabelle festlegen, jedoch kann auch jederzeit später das
Erstellen vorgenommen werden.
Anwendungsbeispiel:
Alter Table tabellenname
Add Primary Key (Liste der Attribute);
Löschen:
Ebenfalls ist es möglich in SQL bereits bestehende Primary Keys
wieder zu löschen, um diese anders oder neu zu definieren.
Anwendungsbeispiel:
Alter Table tabellenname
Drop Primary Key;
Foreign Key
In der Relationalen Datenbank werden Datenbestände meist auf mehrere Tabellen aufgeteilt um
Redundanzen sowie Fehleingaben vermeidbar zu machen.
Diese Tabellen sind in der Regel mittels eines Foreign Keys verbunden, welcher auf einen Primary Key
einer anderen Tabelle zeigt.
Definition:
Ein Foreign Key bekommt ein Attribut oder mehrere Attribute als
Parameter mitgegeben, welcher auf einen Primary Key einer
anderen Tabelle zeigt.
Anwendungsbeispiel:
Foreign Key(Attributliste) References
Tabellenname (Fremdschlüsselfeld)
Nachträglich definieren:
Hier ist es ebenfalls möglich in SQL nach bereits bestehender
Tabelle einen Foreign Key zu definieren und hinzuzufügen.
Anwendungsbeispiel:
Alter Table tabellenname
Add Constraint Keyname
Foreign Key (Attribut) References
Tabellenname(fremdschlüsselfeld)
[ON Update Anweisung][ON Delete Anweisung];
Löschen:
Auch hier ist es möglich in SQL bereits bestehende Foreign Key
wieder zu löschen.
Anwendungsbeispiel:
Alter Table tabellenname
Drop Foreign Key Keyname
Modul105
Patrick Urfer 17.06.2015
Seite 10 von 19
Ausbildung
Arbeitsbuch
Informatik
Zusatzparameter
Für das Löschen und Aktualisieren eines Datensatzes auf den Referenzen in anderen Tabellen
bestehen, kann man das Verhalten steuern mit den Parametern ON DELETE \ ON UPDATE
das bedeutet dass bei einer Löschung oder einer Aktualisierung folgendes Verhalten eintritt.
Welche Verhaltensparamter möglich sind schauen Sie am Besten in der Referenz Ihres DBMS nach.
Übersicht Index
Index
Da das Auffinden von Informationen in einer stetig wachsenden Datenbank eine Schwierigkeit
darstellen kann, gibt es für genau diesen Fall den Index, welcher wie ein Stichwortverzeichnis
funktioniert in welchem der Computer das gesuchte ausliest.
Erstellt wird er mit dem Befehl Create Index.
Definition:
Beim Erstellen des Index muss man einen Indexnamen angeben
und nachdem Schlüsselwort ON werden der Tabellenname sowie
in runden Klammern ein oder mehrere Attribute übergeben.
Anwendungsbeispiel:
Create Index indexname ON
tabellenname(Attribut);
Löschen:
Man kann einen Index auch wieder Löschen sofern dieser
nichtmehr Benötigt wird.
Anwendungsbeispiel:
Drop Index indexname ON
Tabellenname;
Übersicht Tabellenmanipulation
Tabellen anzeigen
Definition:
Mit dem Anweisungswort SHOW können die vorhandenen
Tabellen Ihrer Datenbank angezeigt werden.
Anwendungsbeispiel:
SHOW TABLES;
Tabellenstruktur ändern
Die Attribute einer Tabelle können jederzeit mit dem Befehl ALTER TABLE den eigenen Bedürfnissen
angepasst werden.
Definition:
Mittels ALTER TABLE kann man einer bestehenden Tabelle neue
Attribute hinzufügen oder bereits vorhandene Attribute löschen.
Anwendungsbeispiel:
ALTER TABLE tabellenname
ADD/Drop attributname datentyp;
Tabellen löschen
Definition:
Für das Löschen von kompletten Tabellen besitzen wir das
Anweisungswort DROP, damit wird die Tabelle samt Inhalt ohne
weitere Rückfragen komplett Gelöscht.
Anwendungsbeispiel:
DROP TABLE tabellenname;
Modul105
Patrick Urfer 17.06.2015
Seite 11 von 19
Ausbildung
Arbeitsbuch
Informatik
Rollen und Berechtigungen
Das in Datenbanksystemen die vertraulichen Daten sicher geschützt sind, gibt es die Rollen und
Berechtigungen in Datenbanksystemen welche als Schutzmassnahme getroffen werden kann.
Datenbankadministrator
Der Datenbankadministrator ist der Master einer Datenbank, welcher die Benutzerverwaltung
übernimmt und die Rechte der Benutzer verwaltet, was auch bedeutet das der Datenbankadministrator
sämtliche Rechte einer Datenbank besitzt.
Benutzer
Die Verwaltung der Benutzer von einem Datenbanksystems erfolgt grösstenteils über Spezielle
Anwendungsprogramme, die Handhabung dieser Programme unterscheidet sich hauptsächlich
zwischen den verschiedenen Datenbanksystemen. Ein Benutzer kann Zugriff auf alle oder einzelne
ausgewählte Datenbanken bzw. Tabellen erhalten, auch gilt im Grunde das jeder Benutzer der ein
Datenbankobjekt wie eine Tabelle erstellt, automatisch auch der Besitzer von diesem Objekt ist, alle
anderen Benutzer bis auf den Datenbankadministrator besitzen für dieses Objekt keine Rechte ausser
der Datenbankadministrator weist diese Rechte einem Benutzer zu.
Administrator absichern
Definition:
Eine Möglichkeit das Passwort zu setzen besteht in der Nutzung
des mysqladmin-Befehls, welcher die sicherste und einfachste
Möglichkeit ist.
Anwendungsbeispiel:
mysqladmin –u root –p neues_password;
Benutzer erstellen
Definition:
Damit nicht jedermann die Daten aus der Datenbank auslesen
kann, können individuelle Benutzer mit unterschiedlichen
Rechten eingerichtet werden.
Anwendungsbeispiel:
GRANT rechteliste
ON datenbankobjekt
TO benutzer@hostname
IDENTIFIED BY passwort;
(WITH GRANT OPTION);
Modul105
Patrick Urfer 17.06.2015
Seite 12 von 19
Ausbildung
Informatik
Arbeitsbuch
Erteilbare Rechte
Rechteliste
Erklärung
ALL
SELECT
UPDATE
DELETE
REFERENCES
ALTER
DROP
CREATE
INDEX
Alle Rechte für gewähltes Datenbankobjekt
Leserecht, Berechtigung für Abfragen
Recht zum Ändern von Datensätzen
Recht zum Löschen von Datensätzen
Rechte zum Definieren von Referenz-Regeln
Manipulation von Tabellen und dessen Attribute
Löschen von Datenbankobjekten(Tabellen, Schlüssel, Attribute)
Recht, Datenbanken und Tabellen zu erstellen
Das Recht Indexe auf Attribute in Tabellen zu erstellen
Auswählbare Datenbankobjekte
Datenbankobjekte
Erklärung
*.*
Datenbank.*
Datenbank.Tabelle
Die Rechte gelten für alle Datenbanken und Tabellen
Die Rechte gelten für alle Tabellen der Ausgewählten Datenbanken
Die Rechte gelten für die angegebene Tabelle der definierten Datenbank
Benutzeranmeldung durchführen
Definition:
Mit diesem Befehl können wir uns mit den Definierten Daten
Anmelden, nur so können wir auf erteilte Rechte zugreifen.
Anwendungsbeispiel:
mysql –h(host) –u (user) –p (password)
Zugriffsrechte ändern
Definition:
Mit dem Anweisungswort GRANT können wir jederzeit Benutzern
neue Rechte zuteilen zu bestimmten Datenbankobjekten.
Anwendungsbeispiel:
GRANT rechteliste ON datenbankobjekt
TO benutzername;
Zugriffsrechte entziehen
Definition:
Rechte welche mit GRANT erteilt wurden können auch wieder mit
REVOKE entzogen werden.
Anwendungsbeispiel:
REVOKE rechteliste ON datenbankobjekt
FROM benutzer;
Benutzer löschen
Definition:
Die Schnellste und Zuverlässigste Art einen Benutzer zu löschen
ist mit dem Standardbefehl DROP.
Anwendungsbeispiel:
DROP USER benutzername;
Modul105
Patrick Urfer 17.06.2015
Seite 13 von 19
Ausbildung
Informatik
Arbeitsbuch
Daten erfassen
Dass eine Datenbank überhaupt einen Verwertbaren Wert besitzt für die Betreiber sowie auch die
Benutzer müssen in der Datenbank erstmals Daten erfasst werden mit denen gearbeitet werden kann.
Einfügen von Datensätzen
Definition:
Um einen oder mehrere Einzelne Dateneinträge vorzunehmen
haben wir den Befehl INSERT INTO.
Anwendungsbeispiel:
INSERT INTO tabellenname
(Attribut1, Attribut2, …)
VALUES
(Wert1, Wert2, …);
Einfügen Vorhandener Daten
Definition:
Oft hat man in der Realität bereits bestehende Daten/Datenbanken
welche man weiter verarbeiten muss, für diese Möglichkeit gibt es
Befehle um bereits vorhandene Daten komplett zu integrieren.
Anwendungsbeispiel:
LOAD DATA LOCAL INFILE [pfadangabe]
INTO TABLE [tabellenname]
FIELDS TERMINATED BY “ ; “ “, “
IGNORE 1ROWS (VALUES COLUMNNAME)
(LINES TERMINATED BY “\n“);
Daten manipulieren
Daten aktualisieren
Definition:
Mit SQL kann man die eigenen Daten jederzeit ändern, dafür
steht uns der Befehl UPDATE zur Verwendung, mit diesem man
einzelne Datensätze oder vollständige Inhalte von Tabellen
ändern kann.
Anwendungsbeispiel:
UPDATE tabellenname SET
Attribut1 =wert1, Attribut2 = wert2
(WHERE bedingung);
Änderungsmöglichkeiten
Wertzuweisung
Beschreibung
SET Anrede = “Herr“
SET Anzahl = 2
SET Anzahl = Anzahl * 2
Mit dieser Anweisung wird eine Textinformation geändert.
Mit dieser Anweisung wird ein Zahlenwert geändert.
Mit Mathematischer Funktion Zahlenwert änderung.
Daten löschen
Definition:
Mit SQL kann man die bestehenden Datensätze in einer Tabelle
auch zu jederzeit wieder löschen.
Anwendungsbeispiel:
DELETE FROM tabellenname
(WHERE Bedingung);
Modul105
Patrick Urfer 17.06.2015
Seite 14 von 19
Ausbildung
Informatik
Arbeitsbuch
Daten Auswerten
Attribute anzeigen
Definition:
Mit SQL kann man jeweils bestimmte/alle Attribute einer Tabelle
abfragen und anzeigen lassen.
Anwendungsbeispiel:
SELECT Attribut1, Attribut2…
FROM tabellenname;
Zusatzparameter AS:
Mittels des Zusatzparameters AS nach dem jeweiligen Attribut
kann man der Ausgabe einen neuen Namen zuweisen.
Anwendungsbeispiel:
SELECT Attribut1 AS ausgabename1, Attribut2…
FROM tabellenname;
Definierte Bedingungen
In SQL kann man die Ausgabe der Abfrage jeweils mit Bedingungen und Bedingungsparametern
manipulieren und an die Anforderungen anpassen.
Einfache Bedingung
Definition:
Mittels der Einfachen Bedingung kann man Daten in einem
Abfrageergebnis filtern, dies geschieht mittels der
WHERE-Bedingung.
Anwendungsbeispiel:
SELECT Attribut1 AS ausgabename1, Attribut2…
FROM tabellenname
WHERE bedingungen; (z.B. Bedingung = gesuchter wert)
Im Anwendungsbeispiel der Einfachen Bedingung oberhalb in der Klammer sehen wir eine
Bedingungsabfrage mittels dem = Operator, solche Anwendung von Operatoren ist ein Wesentlicher
Teil von SQL und welche Operatoren welche Funktion besitzen werden wir nun anschauen.
Operatoren
Basis-Operatoren
Bei diesen Operatoren werden jeweils die Datensätze mit einem Gewählten Wert verglichen und gibt nur
diese Datensätze aus welche Zutreffend sind.
Operatoren
=
<
>
<>
>=
<=
Modul105
Bedeutung
Gibt nur Übereinstimmende Datensätze aus
Gibt nur Datensätze aus welche kleiner sind.
Gibt nur Datensätze aus welche grösser sind.
Gibt nur Datensätze aus welche Ungleich dem Wert sind.
Gibt nur Datensätze aus welche grösser oder gleich sind.
Gibt nur Datensätze aus welche kleiner oder gleich sind.
Patrick Urfer 17.06.2015
Seite 15 von 19
Ausbildung
Arbeitsbuch
Informatik
SQL-Operatoren
Bei diesen Operatoren gibt es ganz verschiedene Anwendungsmöglichkeiten weswegen wir diese
etwas genauer anschauen.
BEETWEEN.. AND..
Mit BEETWEEN.. AND.. kann der Wert geprüft werden ob dieser im
Festgelegten Wertebereich liegt.
Anwendungsbeispiel:
SELECT Attribut1, Attribut2…
FROM tabellenname
WHERE Attribut BEETWEEN Wert1 AND Wert2
LIKE
Mit LIKE welcher Speziell für Text-Werte gemacht ist, wird ein
flexibler Vergleich zwischen dem Wert und dem Text ermöglicht.
LIKE kann mit 1 von 2 Platzhaltern verwendet werden welche die
Suche weiter definieren.
Der _ Platzhalter steht für ein beliebiges Zeichen.
Der % Platzhalter steht für ein, kein oder mehrere beliebige
Zeichen.
Anwendungsbeispiel:
SELECT Attribut1, Attribut2…
FROM tabellenname
WHERE Attribut LIKE Wort1(LIKE W%)( LIKE W_rt1)
NOT
Mit NOT können Werte welche nicht gewollt sind aus der Abfrage
entfernt werden, mit NOT lassen sich ebenfalls weitere Operatoren
bilden wie z.B. NOT LIKE, NOT BEETWEEN.. AND..
Anwendungsbeispiel:
SELECT Attribut1
FROM tabellenname
WHERE Attribut1 NOT BEETWEEN Wert1 AND Wert2;
IS NULL
Mit IS NULL kann nach leeren Feldinhalten gesucht werden, sprich
Felder welche keine Inhalte besitzen.
Anwendungsbeispiel:
SELECT Attribut1
FROM tabellenname
WHERE Attribut1 IS NULL
IN
Mit IN können mehrere Werte definiert werden, auf welche geprüft
wird.
Mit IN können auch Unterabfragen mittels weiterem
SELECT-Befehl innerhalb der IN-Bedingung gemacht werden,
dafür ein Anwendungsbeispiel.
Anwendungsbeispiel:
SELECT Attribut1, Attribut2
FROM tabellenname1
WHERE Attribut3 IN (SELECT Attribut3 FROM tabellenname2
WHERE Attribut4 = Wert1);
Für weitere Anleitungen zur Verwendung von den Operatoren an sich verweise ich auf
http://www.w3schools.com/sql/
Modul105
Patrick Urfer 17.06.2015
Seite 16 von 19
Ausbildung
Arbeitsbuch
Informatik
Logische Verknüpfungen
Die Bedingungen bzw. Operatoren sind mittels Logischen Verknüpfungen in Abfragen kombinierbar,
für diesen Zweck haben wir zwei unersetzliche Verknüpfungen zur Verfügung.
AND
Mit AND können mehrere Kriterien als gemeinsame
Voraussetzung kombiniert werden, die dadurch entstandene
AND-Bedingung setzt voraus das beide Bedingungen erfüllt
sind.
Anwendungsbeispiel:
SELECT Attribut1, Attribut2
FROM tabellenname
WHERE Attribut1 IS NULL
AND Attribut2 NOT LIKE Wort1;
OR
Mit OR können mehrere Kriterien miteinander kombiniert werden,
die OR-Bedingung setzt voraus dass eine der Bedingungen erfüllt
sein muss.
Anwendungsbeispiel:
SELECT Attribut1, Attribut2
FROM tabellenname
WHERE Attribut1 IS NULL
OR Attribut2 LIKE Wort1;
Erweitertes definieren
Ordnen
Definition:
Mit dem Select-Statement wird bei der Anzeige keine Bestimmte
Reihenfolge definiert in der die Datensätze angezeigt werden,
meistens wird die Anzeige-Reihenfolge bestimmt durch die
Reihenfolge der Eingabe. Um dieses Problem zu bewältigen
haben wir das ORDER BY-Statement.
Anwendungsbeispiel:
SELECT Attribut1, Attribut2
FROM tabellenname
ORDER BY Attribut1;
Gruppieren
Definition:
Mit dem Select-Statement wird bei der Anzeige keine Bestimmte
Gruppierung definiert in der die Datensätze angezeigt werden,
mit GROUP BY lässt sich dieses Problem lösen.
Anwendungsbeispiel:
SELECT Attribut1, Attribut2
FROM tabellenname
GROUP BY Attribut1;
Doppelte Datensätze eliminieren
Definition:
In einer Tabelle ist der Wert1 doppelt erfasst, daher würde beim
Erstellen einer Ausgabe der Wert1 doppelt ausgegeben werden.
Dies lässt sich mit DISTINCT verhindern da es Doppelte Werte
eliminiert und jeden Wert nur einmal anzeigen lässt..
Anwendungsbeispiel:
SELECT DISTINCT Attribut1, Attribut2
FROM tabellenname;
Modul105
Patrick Urfer 17.06.2015
Seite 17 von 19
Ausbildung
Arbeitsbuch
Informatik
Aggregatsfunktionen
Aggragatsfunktionen fassen Daten aus mehreren Datensätzen zu einem Ergebniswert zusammen,
um dies Umzusetzen unterstützt SQL mit Mathematischen Funktionen welche in der Fachsprache
auch als Aggregatsfunktionen bekannt sind.
SUM
Mit dieser Funktion dem SUM kann man die Summe von
numerischen Attributen berechnen, sprich Addition ausführen.
Anwendungsbeispiel:
SELECT SUM(Attribut1)
FROM tabellenname;
AVG
Mit dieser Funktion dem AVG kann man den Durchschnitt von
numerischen Attributen berechnen.
Anwendungsbeispiel:
SELECT AVG (Attribut1)
FROM tabellenname;
COUNT
Mit dieser Funktion dem COUNT kann man die Anzahl der
vorhandenen Datensätze Abfragen.
Anwendungsbeispiel:
SELECT COUNT (Attribut1)
FROM tabellenname;
MAX
Mit dieser Funktion dem MAX kann man den grössten Wert eines
Attributes Abfragen.
Anwendungsbeispiel:
SELECT MAX (Attribut1)
FROM tabellenname;
MIN
Mit dieser Funktion dem MIN kann man den kleinsten Wert eines
Attributes Abfragen.
Anwendungsbeispiel:
SELECT MIN (Attribut1)
FROM tabellenname;
Multi-Tabellen
Hier lernen Sie wie Abfragen und Verbindungen von 1er oder über mehrere Tabellen funktioniert.
Zwingend Notwendig für das Verständnis sind die Vorangegangenen Punkte sofern Sie kein eigenes
Vorwissen besessen haben.
UNION-Abfrage
Definition:
Mit dieser Funktion kann man Attribute aus zwei verschiedenen
Tabellen als ein Abfrageresultat ausgeben.
Anwendungsbeispiel:
SELECT Attribut1, Attribut2…
FROM tabellenname1;
UNION
SELECT Attribut1, Attribut2…
FROM tabellenname2;
Bei einer UNION-Abfrage werden alle Datensätze miteinander verglichen und jene welche die komplett
Identisch sind miteinander vereinigt.
Sind jedoch minimale Unterschiede zwischen den Datensätzen zu erkennen so gelten beide als
unterschiedliche Datensätze.
Modul105
Patrick Urfer 17.06.2015
Seite 18 von 19
Ausbildung
Arbeitsbuch
Informatik
UNION-Tabelle
Definition:
Mit dieser UNION-Abfrageart können wir das Resultat des
herkömmlichen UNIONS in einer neuen Tabelle abspeichern.
Anwendungsbeispiel:
INSERT INTO tabellenname (Attribut1, Attribut2…)
SELECT Attribut1, Attribut2…
FROM tabellenname1;
UNION
SELECT Attribut1, Attribut2…
FROM tabellenname2;
Verbinden von Tabellen
Im Datenbankenbereich ist es oft Notwendig bestehende Datenbanken für bestimmte Abfragen zu
verbinden um damit die Gestellten Aufgaben zu bewältigen.
Einfache Verknüpfungen
Um einfache Verknüpfungen zu realisieren stehen uns mehrere Wege zur Verfügung, ich werde
bewusst auf 2 Wege eingehen, welche sich als Standard etabliert haben.
Definition:
Mit dieser WHERE-Bedingung aufgebauten Verbindung erzielt
man schnellere Verarbeitungszeiten, daher wird Sie in der Praxis
häufig benutzt.
Anwendungsbeispiel:
Select tabellenname1.Attribut1, tabellenname2.Attribut1
from tabellenname1, tabellenname2
Where tabellenname1.pkIDAttribut
= tabellenname2.fkIDAttribut;
Definition:
Mit dieser JOIN-Bedingung aufgebauten Verbindung erzielt man
dasselbe Resultat wie mit der WHERE-Bedingung aufgebauten
Verbindung.
Anwendungsbeispiel:
Select tabellenname1.Attribut1, tabellenname2.Attribut1
from tabellenname1
JOIN tabellenname2 ON tabellenname1.pkIDAttribut
= tabellenname2.fkIDAttribut;
Zusatz:
Mit dem Keyword AS können wir den Tabellen selbstdefinierte
Namen verleihen, was uns beim Verbinden der Tabellen die Arbeit
erleichtert.
Anwendungsbeispiel:
Select tabellenname1.Attribut1, tabellenname2.Attribut1
from tabellenname1 AS a, tabellenname2 AS b
Where a.pkIDAttribut
= b.fkIDAttribut;
Das LEFT oder RIGHT bezieht sich auf die Nennung der Tabelle im JOIN, dabei wird die Erstgenannte
Tabelle als Linke und die Zweitgenannte als Rechte angesehen.
Mittels den Erweiterten JOIN-Befehlen dem LEFT-JOIN und RIGHT-JOIN können wir für eine
Bestimmte der 2 zu Verbindenden Tabellen innerhalb des JOINS bestimmen das von der gewählten
Tabelle auch alle Gesuchten Datensätze ohne Übereinstimmung mit der anderen Tabelle gelistet
werden, diese Werte ohne Übereinstimmung werden mit dem Wert NULL gekennzeichnet.
Alle Restlichen Kombinations-Möglichkeiten des SQL’s lesen Sie bitte Online nach.
Modul105
Patrick Urfer 17.06.2015
Seite 19 von 19