Datenbank Management - FOM Düsseldorf
Praktische Hilfe für den Prüfungsteil "praktisches Datenbankmanagement" Dipl. -Kfm. Henning Mertes
Praktische Hilfe für den Prüfungsteil "praktisches Datenbankmanagement" Dipl. -Kfm. Henning Mertes
-
- 1 / 45
-
Cartes-fiches
Wie wird eine Datenbank gelöscht ?
Unterschiede beider Methoden.
o DROP = immer eine strukturelle Löschung o DELETE = immer eine Löschung von Datensätzen
Wie wird eine Datenbank gelöscht ?
Unterschiede beider Methoden.
o DROP = immer eine strukturelle Löschung
o DELETE = immer eine Löschung von Datensätzen
Grundlagen SELECT
Projektion: Auswahl von Spalten
Grundlagen FROM
Join - Zusammenfassen mehrerer Tabellen
Grundlagen WHERE
Selektion - Auswahl bestimmter Zeilen nach Kriterien
Aufbau Select Statement
SELECT
FROM ... JOIN ...
WHERE
GROUP BY
HAVING
ORDER BY
LIMIT;
Besonderheit Gruppierungsfunktion
Es ist nicht erlaubt Gruppierungsfunktionen ineinander zu schachteln.
Datenbanken anzeigen
SHOW DATABASES;
Datenbank erstellen
CREATE DATABASE datenbankname;
Datenbank öffnen
USE datenbankname;
Datenbank löschen
DROP DATABASE datenbankname;
Informationen zu Tabellen
SHOW TABLE STATUS;
Anzeigen von Schlüsseln in einer Tabelle
SHOW KEYS FROM tabellenname;
Unterschiede von CHAR(x) und VARCHAR(x)
CHAR und VARCHAR sind Zeichenbasiert.
KEINE Rücksicht auf Groß- und Kleinschreibung
Bei CHAR: muss genau die Länge haben, Rest wird aufgefüllt. Bsp: plz char(5)
Bei VARCHAR: max Länge x
Bsp: vorname varchar(30)
Unterschiede BINARY und VARBINARY
Bytebasiert, Case Sensitive, Rücksicht auf groß- und Kleinschreibung
Bei BINARY: muss genau Länge x haben, Rest wird aufgefüllt: Bsp: password binary(20)
Bei VARBINARY: max Länge x
Bsp: Artikelbezeichnung varbinary(50)
Vorteile von BINARY und CHAR, sowie VARBINARY und VARCHAR
BINARY / CHAR: schnelle Verarbeitung
VARBINARY / VARCHAR: sehr flexibel
Unterschiede CHAR und BINARY, sowie VARCHAR und VARBINARY
CHAR / BINARY:
Werden mit Leerzeichen (char) oder Nullen (binary) aufgefüllt, falls der Wert unterschritten wird.
Beim überschreiten der Länge wird bis zur Maximallänge gekürzt. Außnahme: strict-Modus
VARCHAR / VARBINARY
Werden nicht bis zur Maximallänge ausgefüllt. Es werden nur so viele Zeichen wie nötig gespeichert.
Lehrzeichen die am Ende stehen werden beibehalten.
Merkmale TEXT und BLOB
Unterschiede von TEXT und BLOB
Markmale:
sehr große Speicherkapazität
langsame Verarbeitung bei großen Speicherkapazitäten.
Unterschiede:
Text: Nicht case-sensitive, Groß und Kleinschreibung wird NICHT berücksichtigt
BLOB: case-sensitive, Groß und Kleinschreibung wird berücksichtigt.
Unterschiede TEXT / BLOB zu VARCHAR
TEXT / BLOB: Keine Definition von Standartwerten möglich
VARCHAR: Definition von Standartwerten möglich
Varianten von TEXT und BLOB
TEXT: TINYTEXT, MEDIUMTEXT, LONGTEXT
BLOB: TINYBLOB, MEDIUMBLOB, LONGBLOB
Numerische ganze Zahlenwerte
TINYINT
SMALLINT
MEDIUMINT
INT bzw. INTEGER
BIGINT
Numerisch reelle Werte
FLOAT(n,d), DOUBLE(n,d)
n = Anzahl der Anzeigebreite
d = Anzahl der Nachkommastellen (FLOAT max 24, DOUBLE = 53)
DECIMAL / NUMERIC haben heute keine Bedeutung mehr.
Logische Werte
In MySQL als BOOL implementiert.
Abbildung über TINYINT
1 = Wahr
0 = Falsch
Werte für Zeitangaben.
YEAR: Jahreszahlen, von 1901-2155, zweistellige EIngabe immer im Jahr 20**, unzulässige Werte zu 0000 umgewandelt.
DATETIME: Datums und Uhrzeiterte
DATE: Datumswerte
TIME: Zeitwerte
TIMESTAMP: Bei INSERT und UPDATE wird das aktuelle Datum und die aktuelle Uhrzeit abgespeichert.
SET / ENUM
- Sind Zeichenketten, die aus vorgegebenen Werten bestehen müssen, beispielsweise einer Werteliste.
Bei SET können mehrere Werte definiert werden.
Einschränkungen:
SET: max. 64 Werte in Liste, SET Werte dürfen keine Kommata enthalten. Reihenfolge der auszugebenden Werte muss der Reihenfolge der eingegebenen Werte entsprechen.
ENUM: max. 65535 Werte in Liste, Nur zur Speicherung von Zahlenwerten, Nur ein Wert kann ausgewählt werden.
PRIMARY KEY
Definiert eine Spalte als Primärschlüssel, Verfügt über alle Dateitypen
CREATE TABLE tabellenname
(Feldname1 datentyp PRIMARY KEY,
Feldname2 datentyp,
Feldname3 datentyp);
Bsp:
CREATE TABLE kunde
(kundennr int(8) UNSIGNED PRIMARY KEY,
vorname varchar(30),
nachname varchar(30),
plz char(5) UNSIGNED);
Primärschlüssel aus mehreren Feldern = dieser wird nicht mehr als Spaltenattribut verwedendet.
Bsp: mit mehreren Spalten.
CREATE TABLE bestellposition
(auftragnr int(8) UNSIGNED,
artikelnr int(8) UNSIGNED,
stueck int(9),
PRIMARY KEY (auftragnr, artikelnr));
UNIQUE
UNIQUE Felder müssen eindeutig sein.
Mit UNIQUE kann auch der Fremdschlüssel als eindeutig definiert werden.
UNIQUE verfügt über alle Datentypen
Syntax:
CREATE TABLE tabellenname
(Feldname1 datentyp PRIMARY KEY,
Feldname2 datentyp UNIQUE);
Beispiel:
CREATE TABLE auftrag
(auftragnr int(8) UNSIGNED UNIQUE,
bestelldatum DATE);
NULL / NOT NULL
-NULL ist der default-Wert
-Bedeutet das keine Eingabe erfordert wird
-NOT NULL - erfordert eine Eingabe, beide Attribute verfügen über alle Datentypen.
Syntax:
CREATE TABLE tabellenname
(Feldname1 datentyp PRIMARY KEY,
Feldname2 datentyp,
Feldname3 datentyp NOT NULL);
Beispiel:
CREATE TABLE kunde
(kundennr int(8) UNSIGNED PRIMARY KEY,
vorname varchar(30),
nachname varchar(30) NOT NULL);
BINARY
- Durch das Spaltenattribut "BINARY" wird bei Suchen und Sortieren die Groß- und Kleinschreibung beachtet.
- Felder mit diesem Spaltenattribut verfügen nur über die Datentypen CHAR und VARCHAR
Syntax:
CREATE TABLE tabellenname
(Feldname1 datentyp PRIMARY KEY,
Feldname2 datentyp BINARY NOT NULL);
Beispiel:
CREATE TABLE kunde
(kundennr int(8) UNSIGNED PRIMARY KEY,
vorname varchar(30),
nachname varchar(30) BINARY NOT NULL);
DEFAULT
- Setzt dem Wert den zuvor angegebenen Standardwert
- verfügt über alle Datentypen außer TEXT und BLOB
Syntax:
CREATE TABLE tabellenname
(Feldname1 datentyp PRIMARY KEY,
Feldname2 datentyp DEFAULT x);
Beispiel:
CREATE TABLE artikel
(artikelnr int(8) UNSIGNED PRIMARY KEY, artikelbezeichnung varchar(30),
einzelpreis FLOAT(6,2) DEFAULT 1.00);
AUTO INCREMENT
- Bewirkt das dass Feld mit 1 aufsteigend ummeriert wird.
- verfügt über alle ganzzahligen numerischen Felder (alle INT)
- Einschränkung: Nur bei eindeutigen Feldern möglich: PRIMARY KEY / UNIQUE
Syntax:
CREATE TABLE tabellenname
(Feldname1 datentyp PRIMARY KEY AUTO INCREMENT,
Feldname2 datentyp);
Beispiel:
CREATE TABLE lieferant
(ieferid varchar(30) PRIMARY KEY AUTO INCREMENT,
nachname varchar(30));
UNSIGNED
- Alle eingegebenen Werte werden auf positive Werte geändert, falls sie zuvor negativ eingegeben wurden.
-Verfügt über alle numerischen Datentypen
Syntax:
CREATE TABLE tabellenname
(Feldname1 datentyp PRIMARY KEY,
Feldname2 datentyp UNSIGNED);
Beispiel:
CREATE TABLE bestellung
(bestnr int(8) AUTO_INCREMENT PRIMARY KEY,
artikelnr int(8) UNSIGNED,
stueck FLOAT(6,2) UNSIGNED);
-> stueck wird von -128 bis +127 zu 0 bis 255.
ZEROFILL
- Alle nicht vorhandenen Stellen (z.B. bei Eingabe von nur 6 anstatt 10 geforderten Stellen) werden mit 0 aufgefüllt.
- Verfügt über alle numerischen Datentypen
ZEROFILL muss vor dem PRIMARY KEY stehen !!!
Syntax:
CREATE TABLE tabellenname
(Feldname1 datentyp ZEROFILL PRIMARY KEY, Feldname2 datentyp);
Beispiel:
CREATE TABLE bestellung
(bestnr int(8) AUTO_INCREMENT ZEROFILL PRIMARY KEY, artikelnr int(8) UNSIGNED,
stueck FLOAT(6,2) UNSIGNED);
Tabellen anzeigen
Es werden alle Tabellen der aktuellen (oder der bei FROM angegeben) Datenbank angezeigt.
Syntax:
SHOW TABLES FROM datenbankname;
Beispiel bei Benutzung in der DB
SHOW TABLES;
Tabellenstruktur anzeigen
Es wird Struktur (Attribute, Datentype, Keys etc.) der angegebenen Tabelle angezeigt
Syntax:
DESCRIBE tabellenname;
DESC tabellenname;
Tabellen anlegen (einfach)
Es wird eine Tabelle mit dem angegebenen Tabellennamen sowie den angegebenen Feldnamen angelegt. Des Weiteren definiert man hierbei auch sofort DATENTYPEN und SPALTENATTRIBUTE(z. B. UNIQUE).
Syntax:
CREATE TABLE tabellenname
(Feldname1 datentyp,
Feldname2 datentyp,
Feldname3 datentyp);
Beispiel:
CREATE TABLE kunde
(kundennr int(8) UNSIGNED PRIMARY KEY,
vorname varchar(30),
nachname varchar(30),
plz char(5) UNSIGNED);
Tabellen löschen
Die angegebene Tabelle wird gelöscht
Syntax:
DROP TABLE tabellenname;
Tabellentypen
- Tabellentypen müssen beim anlegen definiert werden.
- Standard bis 4.1: MYISAM
- Standard ab 5.0: INNODB (Nurnoch INNODB kann referenzielle Integrität realisieren).
Vorteile INNODB:
- Transaktionsfähig
- FOREIGN-KEY fähig
- Erst ab MySQL 4 verfügbar
Syntax:
CREATE TABLE tabellenname
(Feldname1 datentyp,
Feldname2 datentyp,
Feldname3 datentyp)
ENGINE = INNODB;
Spalten hinzufügen
- Es können eine oder mehrere Spalten eingefügt werden.
Syntax:
ALTER TABLE tabellenname
ADD feldname1 datentyp spaltenattribut,
ADD feldname2 datentyp spaltenattribut;
Beispiel:
ALTER TABLE kunde
ADD letzter_Zugriff TIMESTAMP;
Spalte hinzufügen + Positionierung des hinzugefügten Feldes.
- Hinzugefügte Felder können positioniert werden
Syntax:
ALTER TABLE tabellenname
ADD feldname1 datentyp spaltenattribut FIRST,
ADD feldname2 datentyp spaltenattribut AFTER feldname1, ;
ADD feldname_n datentyp spaltenattribut;
Beispiel:
ALTER TABLE kunde
ADD personalausweisnr VARCHAR(xy) UNSIGNED FIRST,
ADD letzter_Zugriff TIMESTAMP AFTER personalausweisnr;