00 einstieg mysql

Werbung
www.ekerger.de
w
w
w
.e
ke
rg
er
.d
e
Ein kleiner Einstieg in
Datenbankentwicklung mit MySQL und ACCESS 2003
1
Elemente von SQL – Schädliche Wirkung
Datenbankentwicklung mit MySQL und ACCESS 2003
2
www.ekerger.de
MySQL – Inhaltsverzeichnis
SQL – Elemente
Bedienung der Software
Das MySQL-GUI SQLYog
Data Control Language
Data Defintion Language
Datentypen in MySQL
Übung zu den Datentypen
Das Anlegen einer Datenbank und einer Datentabelle
Übungen zur Definition von Daten
Ändern der Tabellenstruktur
Übungen zu Änderung der Tabellenstruktur
Tabelle löschen
Dateneingabe
Übungen zur Dateneingabe
Datensätze ändern
Übungen zur Datensatzänderung
w
w
w
.e
ke
rg
er
.d
e
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
3
Datenbankentwicklung mit MySQL und ACCESS 2003
Elemente von SQL
SQL- Structured Query
Language
DCL:
DDL:
DML:
DATA
Control
Language
Data
Definition
Language
Data
Manipulation
Language
Datenbankentwicklung mit MySQL und ACCESS 2003
4
www.ekerger.de
DCL – DATA Control Language
Mit DCL
werden u. a. Datenbanken angelegt und gelöscht.
werden Zugriffsberechtigungen auf Datenbanken
geregelt.
Datenbank anlegen
Datenbank löschen
Zugriffsrechte gewähren
Zugriffsrechte entziehen
w
w
w
.e
ke
rg
er
.d
e
Beispiele:
CREATE DATABASE
DROP DATABASE
GRANT
REVOKE
5
Datenbankentwicklung mit MySQL und ACCESS 2003
DDL - Data Definition Language
Mit DDL
– erstellen Sie die Datenbankstruktur.
– verändern Sie die Datenbankstruktur.
– löschen Sie die Datenbankstruktur.
Beispiele:
CREATE TABLE
DROP TABLE
ALTER TABLE
CREATE INDEX
Datenbankentwicklung mit MySQL und ACCESS 2003
Tabelle anlegen
Tabelle löschen
Tabelle ändern
Index anlegen
6
www.ekerger.de
DML - Data Manipulation Language
Mit DML
– werden Daten abgefragt.
– werden Daten gelöscht.
– werden Daten eingefügt.
– werden Daten geändert.
Beispiele:
SELECT
DELETE
INSERT
UPDATE
w
w
w
.e
ke
rg
er
.d
e
Datensätze auswählen
Datensätze löschen
Werte eingeben
Werte aktualisieren
7
Datenbankentwicklung mit MySQL und ACCESS 2003
Starten des MySQL-Servers
Anschließend
Am Ende der Stunde immer mit
nicht heruntergefahren werden!
Datenbankentwicklung mit MySQL und ACCESS 2003
beenden, sonst kann der Rechner u. U.
8
www.ekerger.de
Starten des MySQL-Tools „SQLyog“
Doppel-Klick oder über
Programme – SQLyog -
w
w
w
.e
ke
rg
er
.d
e
Verbindung mit dem
Datenbankserver herstellen,
keine Veränderung der
Einstellungen vornehmen
Datenbankentwicklung mit MySQL und ACCESS 2003
9
Aufbau des MySQL-Tools „SQLyog“
SQL-Eingabe-Bereich
Ergebnis-Bereich
Verfügbare Datenbanken im MySQL-Data-Verzeichnis, nur mit diesen
kann gearbeitet werden!
Alle Datenbanken, die zukünftig von mir als Arbeitsbasis zur Verfügung
gestellt werden, müssen in das entsprechende Verzeichnis
c:[d:\f:]\xampp\mysql\data kopiert werden!
Am Ende der Stunde den gesamten Ordner in ein Verzeichnis auf f:\ kopieren!
Auf c:\xampp … verhindert die ‚Kaiser-Karte‘ dauerhaftes ablegen!
Datenbankentwicklung mit MySQL und ACCESS 2003
10
www.ekerger.de
Arbeiten mit dem MySQL-Tool „SQLyog“ I
Nach Klick auf
w
w
w
.e
ke
rg
er
.d
e
oder SHIFT+ F9 wird das
gesamte SQL-Statement ausgeführt!
Datenbankentwicklung mit MySQL und ACCESS 2003
11
Arbeiten mit dem MySQL-Tool „SQLyog“ I
Nach Klick auf
oder F9 wird das SQL-Statement
ausgeführt, in dem der Cursor steht! SINNVOLL!
Fehlermeldungen können dem ausgeführten SQL-Statement
zugeordnet werden!
Datenbankentwicklung mit MySQL und ACCESS 2003
12
www.ekerger.de
Arbeiten mit dem MySQL-Tool „SQLyog“ II
w
w
w
.e
ke
rg
er
.d
e
Ergebnis
Datenbankentwicklung mit MySQL und ACCESS 2003
13
Arbeiten mit dem MySQL-Tool „SQLyog“ III
Auch alle Fehler werden verständlich im Ergebnisbereich ausgegeben!
Fehler können ebenfalls über eine Suchmaschine recherchiert werden!
Datenbankentwicklung mit MySQL und ACCESS 2003
14
www.ekerger.de
w
w
w
.e
ke
rg
er
.d
e
Arbeiten mit dem MySQL-Tool „SQLyog“ IV
Datenbankentwicklung mit MySQL und ACCESS 2003
15
Datenbank erstellen
create database;
Datenbankentwicklung mit MySQL und ACCESS 2003
16
www.ekerger.de
DCL – DATA Control Language
Datenbank in MySQL erstellen:
create database if not exists [datenbankname];
create database if not exists mbs;
Es wird die Datenbank „mbs“ erzeugt, if not exists
verhindert, dass die eventuell vorhandene Datenbank
gleichen Inhalts – mit allen Datensätzen überschrieben wird und verhindert Fehlermeldungen!
w
w
w
.e
ke
rg
er
.d
e
if not exists ist optional, aber sinnvoll!
Datenbankentwicklung mit MySQL und ACCESS 2003
17
DCL – DATA Control Language
Alle Datenbanken im MySQL-Verzeichnis anzeigen lassen:
show databases;
Datenbank, mit der man arbeiten will, mit MySQLStatement auswählen:
use [datenbankname];
use mbs;
Datenbank löschen:
drop database if exists [datenbankname];
drop database if exists mbs;
Datenbankentwicklung mit MySQL und ACCESS 2003
18
www.ekerger.de
Tabellenstruktur erstellen
w
w
w
.e
ke
rg
er
.d
e
create table;
Datenbankentwicklung mit MySQL und ACCESS 2003
19
DDL - Data Definition Language
Beispiele:
CREATE TABLE
Tabelle anlegen
DROP TABLE
Tabelle löschen
ALTER TABLE
Tabelle ändern
CREATE INDEX
Index anlegen
Aber:
Vor dem Anlegen einer Tabelle muss man sich über die
Tabellenstruktur, d. h.; die auf zunehmenden Attribute, aber
auch den Datentyp der einzelnen Attribute und deren Größe
im Klaren sein!
Datenbankentwicklung mit MySQL und ACCESS 2003
20
www.ekerger.de
DDL - Data Definition Language
Datentypen in MySQL 1 – numerische Werte
Typname
Bedeutung
Bereich
Speicher
bedarf
1 Byte
TINYINT
sehr kleine ganze Zahl
-128 bis 127 oder
0 bis 255 (UNSIGNED)
SMALLINT
kleine ganze Zahl
-32768 bis 32767 oder - 535
2 Byte
MEDIUMINT
mittelgroße ganze Zahl
-223 - 223 - 1 (0 - 224)
3 Byte
INT
Standard
-231- 231- 1
4 Byte
groß
-263 -
263 -
-10-38 -
BIGINT
1
8 Byte
238
FLOAT
Fließkommazahl,
einfache Genauigkeit
rund
DOUBLE
Fließkommazahl,
doppelte
Genauigkeit
als Zeichenkette
rund -10-308 - 2308
8 Byte
hängt von der
Anzeigegröße M und
den Dezimalstellen D ab
-999.9 bis 9999.9
-9999.99 bis 99999.99
(M+2)
Byte
dargestellte
Fließkommazahl
w
w
w
.e
ke
rg
er
.d
e
DECIMAL(M,D)
DECIMAL(4,1)
DECIMAL(6
,2)
4 Byte
21
Datenbankentwicklung mit MySQL und ACCESS 2003
DDL - Data Definition Language
Datentypen in MySQL 1 – alpha-numerische Werte
Typname
Bedeutung
maximale Größe
CHAR(M) !
Zeichenkette fester Länge
M Byte
VARCHAR(M) !
Zeichenkette variabler Länge
M Byte
TINYBLOB
sehr kleines Binary Large Object (Bild,
Töne)
(28 -1) Byte
BLOB
kleines BLOB
(216 -1) Byte
MEDIUMBLOB
mittleres BLOB
(224 -1) Byte
LONGBLOB
großes BLOB
(232 -1) Byte
TINYTEXT
sehr kleine Textzeichenkette
(28 -1) Byte
TEXT
kleine Textzeichenkette
(216 -1) Byte
MEDIUMTEXT
mittelgroße Textzeichenkette
(224 -1) Byte
LONGTEXT
große Textzeichenkette
(232 -1) Byte
ENUM
Auflistung, Auswahl nur eines Feldes
möglich
SET
Menge, Mehrfachauswahl möglich, auch
nichts
Datenbankentwicklung mit MySQL und ACCESS 2003
65535 Elemente
64 Elemente
22
www.ekerger.de
DDL - Data Definition Language
Datentypen in MySQL 1 – Datums- und Zeitwerte
Typname
Bedeutung
Bereich
Speicherbedarf
DATE
Datum im Format:
JJJJ-MM-TT
1.1.1000 bis 31.12.9999
3 Byte
TIME
Zeitwert im Format :
hh:mm:ss
abgelaufene Zeit:
-838h 59min 59s bis 838h
59min 59s
3 Byte
DATETIME
Datum / Zeitwert
1.1.1000 0Uhr bis 31.12.9999
23:59:59
8 Byte
1970.... bis 2037....
4 Byte
1901 bis 2155
1 Byte
TIMESTAMP Zeitstempelwert im
Format:
JJJJMMDDhhm
mss
YEAR
Jahreswert
im
w
w
w
.e
ke
rg
er
.d
e
Format JJJJ
23
Datenbankentwicklung mit MySQL und ACCESS 2003
Übung zu den Datentypen - Tabellenentwurf
Ordnen Sie folgenden Attributen - Objekteigenschaften - einen
entsprechenden Datentyp zu:
mitarbeiter
Attribute
Datentyp Größe
Default
not null unique
Beschreibung
MNr
Anrede
Name
Vorname
GebDat
Gehalt
Festlegung des
Datentyps
Standardwert
Wert ist „einzigartig“
Eingabe erforderlich
Kommentarfeld
Festlegung der Maximalen Zeichenlänge; nur bei Zeichenketten char und
varchar zwingend
Datenbankentwicklung mit MySQL und ACCESS 2003
24
www.ekerger.de
Übung zu den Datentypen – Beispiel
Ordnen Sie folgenden Attributen - Objekteigenschaften – einen entsprechenden
Datentyp zu:
mitarbeiter
Attribute
Datentyp
Größe
CHAR
4
Anrede
VARCHAR
4
Name
VARCHAR
25
X
Vorname
VARCHAR
25
X
MNr
GebDat
DATE
Gehalt
Double
Default
not null unique
X
‘Frau‘
Beschreibung
X
primary key
X
X
unsigned
Mit Hilfe eines Eintrages in DEFAULT kann ein Standardwert vorgegeben werden (außer für
BLOB und TEXT).
•
Mit NOT NULL kann in jeder Spalte einer Tabelle ein Eintrag erzwungen werden.
•
Numerische-Datentypen können UNSIGNED deklariert werden, so dass in der Spalte nur
positive Werte zulässig sind, der Wertebereich sich daher im Positiven verdoppelt!
w
w
w
.e
ke
rg
er
.d
e
•
Datenbankentwicklung mit MySQL und ACCESS 2003
25
MySQL – Anlegen einer Datenbank / Tabelle
create database if not exists mbs;
# Verwenden der Datenbank mbs
use mbs;
/* Anlegen der Tabelle
mitarbeiter */
create table mitarbeiter
(
mnr char(4) not null,
anrede varchar(25) not null default „Frau“,
name varchar(25) not null,
vorname varchar(25) not null,
gehalt double(8,2),
constraint mnrpruef check(mnr>999),
primary key(mnr)
);
show tables;
Datenbankentwicklung mit MySQL und ACCESS 2003
26
www.ekerger.de
MySQL – Anlegen einer Datenbank / Tabelle
create database if not exists mbs;
# Verwenden des Datenbank mbs
use mbs;
Einzeilige Kommentarzeile
Mehrzeilige
/* Anlegen der Tabelle
Kommentarzeile
mitarbeiter */
create table mitarbeiter
(
mnr char(4) not null,
anrede varchar(25) not null default „Frau“,
name varchar(25) not null,
Häufige Fehler:
vorname varchar(25) not null,
• fehlende Klammern
gehalt double(8,2),
• fehlende Größenfestlegung
primary key(mnr)
• fehlende Kommata
);
w
w
w
.e
ke
rg
er
.d
e
• fehlendes Semikolon!
show tables;
27
Datenbankentwicklung mit MySQL und ACCESS 2003
Anlegen einer Tabelle – Übung 2
1.
Verwenden Sie die Datenbank [ihrname]!
2.
Erstellen Sie eine neue Tabelle mit dem Namen „buecher“. Sie soll
folgende Daten aufnehmen können: isbn, buchautor, buchtitel,
buchpreis – Standardwert 0,00 – , erscheinungsjahr, verlag,
kurzbeschreibung (längerer Text) . Legen Sie einen Primärschlüssel
fest!
3.
Speichern Sie den SQL-Code in einem WORD-Dokument!
Attribute
Datentyp
Größe
Datenbankentwicklung mit MySQL und ACCESS 2003
Default
not null unique
Beschreibung
28
www.ekerger.de
Anlegen einer Tabelle – Übung 2
1.
Verwenden Sie die Datenbank [ihrname]!
2.
Erstellen Sie eine neue Tabelle mit dem Namen „buecher“. Sie soll
folgende Daten aufnehmen können: isbn, buchautor, buchtitel,
buchpreis – Standardwert 0,00 – , erscheinungsjahr, verlag,
kurzbeschreibung (längerer Text) . Legen Sie einen Primärschlüssel
fest!
3.
Speichern Sie den SQL-Code in einem WORD-Dokument!
Datentyp
Größe
char
10
X
buchautor
varchar
20
X
buchtitel
varchar
50
X
buchpreis
decimal
(10,2)
isbn
erscheinungsjahr
verlag
kurzbeschr.
Default
not null unique
0,00
year
varchar
text
X
Beschreibung
primary key
X
X
(20)
w
w
w
.e
ke
rg
er
.d
e
Attribute
Datenbankentwicklung mit MySQL und ACCESS 2003
29
Anlegen einer Tabelle – Übung 2
/* verwenden der Datenbank kerger */
use kerger;
/* anlegen der tabelle buecher */
create table buecher
(
isbn char(10) not null unique,
buchautor varchar(25) not null,
buchtitel varchar(50) not null,
buchpreis decimal(10,2) default 0.00,
erscheinungsjahr year,
verlag varchar(20) not null,
kurzeschreibung text,
primary key(isbn)
);
show columns from buecher;
Datenbankentwicklung mit MySQL und ACCESS 2003
30
www.ekerger.de
w
w
w
.e
ke
rg
er
.d
e
Anlegen einer Tabelle – Übung 2
31
Datenbankentwicklung mit MySQL und ACCESS 2003
Anlegen einer Tabelle – Übung 3
1.
Verwenden Sie die Datenbank [ihrname]!
2.
Erstellen Sie eine neue Tabelle mit dem Namen „person“. Sie soll
folgende Daten aufnehmen können: personennummer (ganzzahlig) ,
nachname, vorname, gebdat, plz, ort. Legen Sie einen Primärschlüssel
fest!
3.
Speichern Sie den SQL-Code in einem WORD-Dokument!
Attribute
Datentyp
Größe
Datenbankentwicklung mit MySQL und ACCESS 2003
Default
not null unique
Beschreibung
32
www.ekerger.de
Anlegen einer Tabelle – Übung 3
1.
Verwenden Sie die Datenbank [ihrname]!
2.
Erstellen Sie eine neue Tabelle mit dem Namen „person“. Sie soll
folgende Daten aufnehmen können: personennummer (ganzzahlig) ,
nachname, vorname, gebdat, plz, ort. Legen Sie einen Primärschlüssel
fest!
3.
Speichern Sie den SQL-Code in einem WORD-Dokument!
Attribute
Datentyp
Größe
Default
not null unique
personnr
integer
X
nachname
varchar
20
X
vorname
varchar
20
X
date
plz
char
5
X
ort
varchar
30
X
primary key
X
w
w
w
.e
ke
rg
er
.d
e
gebdat
X
Beschreibung
Datenbankentwicklung mit MySQL und ACCESS 2003
33
Anlegen einer Tabelle – Übung 3
/* verwenden der Datenbank kerger */
use kerger;
/* anlegen der tabelle person */
create table person
(
personnr integer not null unique,
name varchar(20) not null,
vorname varchar(20) not null,
datum date,
plz char(5) not null,
ort varchar(30) not null,
primary key(personnr)
);
show columns from person;
Datenbankentwicklung mit MySQL und ACCESS 2003
34
www.ekerger.de
w
w
w
.e
ke
rg
er
.d
e
Anlegen einer Tabelle – Übung 3
Datenbankentwicklung mit MySQL und ACCESS 2003
35
Anlegen einer Tabelle – Übung 4
1.
Verwenden Sie die Datenbank [ihrname]!.
2.
Erstellen Sie eine neue Tabelle mit dem Namen „bestellung“. Sie soll
folgende Daten aufnehmen können: bestellnummer (ganzzahlig),
artikelnummer (ganzzahlig) , kundennummer (ganzzahlig ),
artikelanzahl, bestellsumme. Legen Sie einen Primärschlüssel fest!
Die Eingaben sollen überprüft werden;
3.
Speichern Sie den SQL-Code in einem WORD-Dokument!
Attribute
Datentyp Größe
Datenbankentwicklung mit MySQL und ACCESS 2003
Default
not null unique Beschreibung
36
www.ekerger.de
Anlegen einer Tabelle – Übung 4
1.
Verwenden Sie die Datenbank [ihrname]!.
2.
Erstellen Sie eine neue Tabelle mit dem Namen „bestellung“. Sie soll
folgende Daten aufnehmen können: bestellnummer (ganzzahlig),
artikelnummer (ganzzahlig) , kundennummer (ganzzahlig ),
artikelanzahl, bestellsumme. Legen Sie einen Primärschlüssel fest!
Die Eingaben sollen überprüft werden;
3.
Speichern Sie den SQL-Code in einem WORD-Dokument!
Attribute
Datentyp Größe
Default
not null unique Beschreibung
bestellnummer
integer
X
artikelnummer
integer
X
kundennummer
integer
X
artikelanzahl
integer
w
w
w
.e
ke
rg
er
.d
e
bestellsumme
30
decimal(10,2)
5
X
Primary Key
X
X
Datenbankentwicklung mit MySQL und ACCESS 2003
37
Anlegen einer Tabelle – Übung 4
/* verwenden der Datenbank kerger */
use kerger;
/* anlegen der tabelle bestellung */
create table bestellung
(
bestellnummer integer not null unique,
artikelnummer integer not null,
kundennummer integer not null,
artikelanzahl integer not null,
bestellsumme decimal(10,2) not null,
constraint bstrpruef check(bestellnummer>9999),
constraint artnrpruef check(artikelnummer>999),
constraint kdnrpruef check(kundennummer>99),
primary key(bestellnummer)
);
show colums from bestellung;
Datenbankentwicklung mit MySQL und ACCESS 2003
38
www.ekerger.de
w
w
w
.e
ke
rg
er
.d
e
Anlegen einer Tabelle – Übung 4
39
Datenbankentwicklung mit MySQL und ACCESS 2003
Anlegen einer Tabelle – Übung 5
1.
2.
3.
Verwenden Sie die Datenbank [ihrname]!.
Erstellen Sie eine neue Tabelle mit dem Namen „artikel“. Sie soll
folgende Daten aufnehmen können: artikelnummer (ganzzahlig),
der Übung 3
artikelname, herstellername, herstellungsdatum. Legen Sie keinen
Primärschlüssel fest! Die Eingaben sollen überprüft werden;
Speichern Sie den SQL-Code in einem WORD-Dokument!
Attribute
Datentyp Größe
Datenbankentwicklung mit MySQL und ACCESS 2003
Default
not null unique
Beschreibung
40
www.ekerger.de
Anlegen einer Tabelle – Übung 5
1.
2.
3.
Verwenden Sie die Datenbank [ihrname]!.
Erstellen Sie eine neue Tabelle mit dem Namen „artikel“. Sie soll
folgende Daten aufnehmen können: artikelnummer (ganzzahlig),
der Übung 3
artikelname, herstellername, herstellungsdatum. Legen Sie keinen
Primärschlüssel fest! Die Eingaben sollen überprüft werden;
Speichern Sie den SQL-Code in einem WORD-Dokument!
Attribute
artikelnummer
Datentyp Größe
integer
Default
not null unique
X
artikelname
varchar
20
X
herstellername
varchar
30
X
date
30
X
w
w
w
.e
ke
rg
er
.d
e
herstellungsdatum
Datenbankentwicklung mit MySQL und ACCESS 2003
Beschreibung
41
Anlegen einer Tabelle – Übung 5
/* verwenden der Datenbank kerger */
use kerger;
/* anlegen der tabelle artikelliste */
create table artikelliste
(
artikelnummer integer not null unique,
artikelname varchar(20) not null,
herstellername varchar(30) not null,
herstellungsdatum date
);
show columns from artikelliste;
Datenbankentwicklung mit MySQL und ACCESS 2003
42
www.ekerger.de
w
w
w
.e
ke
rg
er
.d
e
Anlegen einer Tabelle – Übung 5
Datenbankentwicklung mit MySQL und ACCESS 2003
43
Änderung der Tabellenstruktur
alter table;
Datenbankentwicklung mit MySQL und ACCESS 2003
44
www.ekerger.de
Datenstruktur einer Tabelle ändern
Allgemeine Syntax: alter table table_name aktion;
Mögliche Aktionen:
= Tabelle wird umbenannt!
- add Spaltendefinition;
= Neue Spalte wird hinzugefügt!
- drop Spalte;
= Spalte wird gelöscht!
- add primary key (Spalte);
= Primary Key wird hinzugefügt!
- drop primary key;
= Primary Key wird gelöscht!
- change Spalte_alt Sp_neu Definition;
= Name und Definition wird geändert!
- modify Spalte Definition;
= Nur die Definition wird geändert!
- alter Spalte Spalte set default wert;
= Standardwert wird hinzugefügt!
- alter Spalte Spalte drop default wert;
= Standardwert wird gelöscht!
- add index (Spalte);
= Index wird hinzugefügt!
- drop index (Spalte);
w
w
w
.e
ke
rg
er
.d
e
- rename Tabelle;
= Index wird gelöscht!
Datenbankentwicklung mit MySQL und ACCESS 2003
45
Datenstruktur einer Tabelle ändern - Beispiel
/* datenbank mbs_kerger verwenden */
use mbs;
/* spalten und spaltenstruktur der tabelle mitarbeiter der datenbank mbs anzeigen */
show columns from mitarbeiter;
/* die angelegte tabelle wird geändert, das attribut abteilung wird eingefügt */
alter table mitarbeiter
add column abteilung varchar(20);
/* die angelegte tabelle wird geändert, das attribut abteilung wird umbenannt */
alter table mitarbeiter
change abteilung hobbelbobbel varchar (20);
/* die angelegte tabelle wird geändert, das attribut hobbelbobbel wird umbenannt */
alter table mitarbeiter
change hobbelbobbel abteilung varchar (20);
/* die angelegte tabelle wird geändert, das attribut gehalt wird geändert */
alter table mitarbeiter
change gehalt bezuege decimal(10,2);
Datenbankentwicklung mit MySQL und ACCESS 2003
46
www.ekerger.de
/* die angelegte tabelle wird geändert, das attribut anrede wird geändert */
alter table mitarbeiter
modify anrede set ('Herr','Frau', 'Firma');
/* die angelegte tabelle wird geändert, das attribut abteilung wird gelöscht */
alter table mitarbeiter
drop abteilung;
/* die angelegte tabelle wird in angestellte umbenannt */
alter table mitarbeiter
rename angestellte;
/* die angelegte tabelle wird geändert, der Primärschlüssel wird gelöscht */
alter table angestellte
drop primary key;
/* die angelegte tabelle wird geändert, der Primärschlüssel wird gelöscht */
alter table angestellte
add primary key(mnr);
w
w
w
.e
ke
rg
er
.d
e
/* die angelegte tabelle wird geändert, mnr erhält einen autowert, der ab 100 fortlaufend
hochgezählt wird*/
alter table angestellte
modify mnr integer auto_increment,
47
auto_incrementmit
= MySQL
100; und ACCESS 2003
Datenbankentwicklung
Datenstruktur einer Tabelle ändern - Übung
1. Verwenden Sie die Datenbank [ihrname]!
2. Ändern Sie die Tabellenstruktut der Tabelle artikel wie folgt:
a. Ändern Sie den Tabellenname artikel in artikelliste!
b. Ergänzen Sie die Tabelle um das Attribut preis!
c. Löschen Sie das Attribut Herstellungsdatum!
d. Erstellen Sie einen Index über die Artikelnamen!
e. Modifizieren Sie die Spaltendefinition des Attributes artikelname. Behalten Sie
die Spaltenbezeichnung bei, vergrößern Sie die Spaltengröße auf 50 Zeichen!
f.
Ändern Sie die Spaltendefinition des Attributes herstellername in
herstellernummer, Datentyp Ganzahl!
g. Definieren Sie die Tabellenspalte artikelnummer als
Primärschlüssel!
h. Ändern Sie den Tabellenname artikelliste in artikel!
i.
Ändern Sie das Attribut artikelnummer wie folgt: Neuer Name artnr, Startwert
des ersten Datensatzes 1000, dieser soll automatisch bei jedem neuen
Datensatz um 1 erhöht werden!
Datenbankentwicklung mit MySQL und ACCESS 2003
48
www.ekerger.de
Datenstruktur einer Tabelle ändern - Übung
1.Verwenden Sie die Datenbank [ihrname]!
2.Ändern Sie die Tabellenstruktur der Tabelle artikelliste wie folgt:
/* Ändern Sie den Tabellenname artikelliste in artikel! */
alter table artikelliste
rename artikel;
/* Ergänzen Sie die Tabelle um das Attribut preis! */
alter table artikel
add preis decimal(10,2);
/* Löschen Sie das Attribut Herstellungsdatum! */
alter table artikel
drop column herstellungsname;
w
w
w
.e
ke
rg
er
.d
e
/* Erstellen Sie einen Index über die artikelnamen! */
alter table artikel
add index artikelindex(artikelname);
Datenbankentwicklung mit MySQL und ACCESS 2003
49
Datenstruktur einer Tabelle ändern - Übung
/* Modifizieren Sie die Spaltendefinition des Attributes artikelname. Behalten
Sie die Spaltenbezeichnung bei, vergrößern Sie die Spaltengröße auf 50 Zeichen! */
alter table artikel
modify artikelname char(50);
/* Ändern Sie die Spaltendefinition des Attributes herstellername in herstellernummer,
Datentyp Ganzahl */
alter table artikel
change herstellername herstellernummr integer;
/* Definieren Sie die Tabellenspalte artikelnummer als Primärschlüssel! */
alter table artikelliste
add primary key(artikelnummer);
/* Ändern Sie das Attribut artikelnummer wie folgt: Neuer Name artnr, Startwert des
ersten Datensatzes 1000 alter table artikel
modify artnr integer auto_increment,
auto_increment = 1000;
show columns from artikel;
Datenbankentwicklung mit MySQL und ACCESS 2003
50
www.ekerger.de
Anlegen einer Tabelle – Übung 6
1.
Verwenden Sie die Datenbank [ihrname]!
2.
Ändern Sie ihre angelegte Tabelle mit dem Namen „konto“. Sie soll
anschließend die untenstehende Struktur haben! Die Tabelle muss für
die weiter Arbeit exakt die untenstehende Struktur haben!
3.
Speichern Sie den SQL-Code in einem WORD-Dokument!
konto
Attribute
Datentyp
kontonummer
Longint
saldo
Decimal
10,2
kontoinhaber
varchar
25
Default
not null
X
unique Beschreibung
X
PK
0.00
X
date
w
w
w
.e
ke
rg
er
.d
e
Datum
Größe
51
Datenbankentwicklung mit MySQL und ACCESS 2003
Ändern der Tabellenstruktur – Übung 7
1.
Verwenden Sie die Datenbank [ihrname]!
2.
Ändern Sie Ihre angelegte Tabelle mit dem Namen „buecher“. Sie
soll anschließend die untenstehende Struktur haben! Die Tabelle
muss für die weiter Arbeit exakt die untenstehende Struktur haben!
3.
Speichern Sie den SQL-Code in einem WORD-Dokument!
buecher
Attribute
Datentyp
Größe
not null
unique
Beschreibung
char
15
X
X
primary key
buchautor
varchar
25
X
buchtitel
varchar
50
X
buchpreis
decimal
(10,2)
isbn
erscheinungsjahr
verlag
kurzbeschreibung
year
varchar
Default
0,00
X
X
(20)
text
Datenbankentwicklung mit MySQL und ACCESS 2003
52
www.ekerger.de
Ändern der Tabellenstruktur – Übung 8
1.
Verwenden Sie die Datenbank [ihrname]!
2.
Ändern Sie Ihre angelegte Tabelle mit dem Namen „person“. Sie soll
anschließend die untenstehende Struktur haben! Die Tabelle muss für
die weiter Arbeit exakt die untenstehende Struktur haben!
3.
Speichern Sie den SQL-Code in einem WORD-Dokument!
person
Attribute
Datentyp
Größe
Default
not null unique
personnr
integer
X
nachname
varchar
20
X
vorname
varchar
20
X
date
plz
char
5
X
ort
varchar
30
X
primary key
X
w
w
w
.e
ke
rg
er
.d
e
gebdat
X
Beschreibung
53
Datenbankentwicklung mit MySQL und ACCESS 2003
Ändern der Tabellenstruktur – Übung 10
1.
Verwenden Sie die Datenbank [ihrname]!
2.
Ändern Sie Ihre angelegte Tabelle mit dem Namen „bestellung“. Sie
soll anschließend die untenstehende Struktur haben! Die Tabelle
muss für die weiter Arbeit exakt die untenstehende Struktur haben!
3.
Speichern Sie den SQL-Code in einem WORD-Dokument!
bestelliste
Attribute
Datentyp Größe
Default
not null unique Beschreibung
bestellnummer
integer
X
artikelnummer
integer
X
kundennummer
integer
X
artikelanzahl
integer
30
X
decimal(10,2)
5
X
bestellsumme
Datenbankentwicklung mit MySQL und ACCESS 2003
X
Primary Key
54
www.ekerger.de
Anlegen und verändern einer Tabelle
1. Erstellen Sie eine Datenbank mit dem Name [ihrname]testdb!
2. Verwenden Sie diese Datenbank!
3. Erstellen Sie eine neue Tabelle „wappenrolle“ mit den Datenfeldern „name“,
„vorname“, „titel“, „wappen“ und „geboren“. Verwenden Sie geeignete Datentypen.
Für alle Datenfelder soll dabei eine Eingabe erforderlich sein.
4. Fügen Sie das Attribut wrnr (ganzzahlig) ein. Es soll sich bei der Eingabe jeweils
um den Zähler 1 erhöhen!
5. Benennnen Sie das Attribut name in wname um!
6. Benennnen Sie das Attribut vorname in wvorname um!
7. Fügen Sie das Attribut geschlecht ein!
8. Fügen Sie das Attribut herkunft ein!
9. Fügen Sie das Attribut siegelring ein!
10. Löschen Sie das Attribut geschlecht wieder!
11. Die Attribut wname und wvorname sollen einen Index zugewisen bekommen.
12. Speichern Sie den vollständigen MySQL-Code in einem Word-Dokument!
13. Üben Sie, Üben Sie, Üben Sie, ……
w
w
w
.e
ke
rg
er
.d
e
Def.: In der vom HEROLD geführten "Deutschen Wappenrolle" (DWR), werden auf Antrag und nach
Prüfung bürgerliche und adlige Wappen, altüberkommene und neugestiftete, gebührenpflichtig registriert. Über die Eintragung wird eine Urkunde mit Abbildung des Wappens
erteilt.
Quelle: http://www.genealogienetz.de/vereine/herold
55
Datenbankentwicklung mit MySQL und ACCESS 2003
Referentielle Integrität herstellen
wappenrolle
Attribute
Datentyp
Größe
Datenbankentwicklung mit MySQL und ACCESS 2003
Default
not null
unique
Beschreibung
56
www.ekerger.de
Beziehungen mit Referentieller Integrität
herstellen
Detailtabelle
Primary Key
Mastertabelle
w
w
w
.e
ke
rg
er
.d
e
Foreign Key
Datenbankentwicklung mit MySQL und ACCESS 2003
57
Beziehungen mit Referentieller Integrität
Referentielle Integrität
wir von MySQL nur
dann gewährleistet, wenn
als Tabellentyp InnoDB
gewählt wird s. o.)
Datenbankentwicklung mit MySQL und ACCESS 2003
58
www.ekerger.de
Beziehungen mit Referentieller Integrität
1. Erstellen Sie eine Datenbank [ihrname]fuhrpark!
2. Legen Sie eine Tabelle fahrzeuge mit folgenden Attributen an:
fznr
15 zahlen und buchstaben, primärschlüssel ,
kennzeichen
text, eingabe erforderlich,
typ
text, eingabe erforderlich
hstnr
20 Zahlen, eingabe erforderlich, fremdschlüssel
kw
ganzzahl, eingabe erforderlich
ps
ganzzahl, eingabe erforderlich
zulassung
datum, eingabe erforderlich
w
w
w
.e
ke
rg
er
.d
e
3. Legen Sie eine Tabelle hersteller mit folgenden Attributen an:
hstnr
20 zahlen, eingabe erforderlich, primärschlüssel
herstellername
text, eingabe erforderlich
firmensitz
text, eingabe erforderlich
ansprechpartner text, eingabe erforderlich
telefon
text,
email
text
Datenbankentwicklung mit MySQL und ACCESS 2003
59
Beziehungen mit Referentieller Integrität - SQL
create database kergerfuhrpark; /* erstellt 2010-01-108 von kerger */
use kergerfuhrpark;
create table fahrzeuge /* tabelle fahrzeuge wird angelegt */
(
fznr char(10) not null unique, /* primary key */
kennzeichen varchar(10) not null unique,
typ varchar(10) not null unique,
hstnr char(20) not null, /* foreign key table hersteller(hstnr) */
kw integer unsigned not null,
ps integer unsigned not null,
zulassung date,
primary key(fznr),
foreign key(hstnr) references hersteller(hstnr)
on delete restrict on update cascade,
index(hstnr)
);
show columns from fahrzeuge; /* attribute der tabelle fahrzeuge werden
angezeigt */
Datenbankentwicklung mit MySQL und ACCESS 2003
60
www.ekerger.de
Beziehungen mit Referentieller Integrität - SQL
create table hersteller /* tabelle hersteller wird angelegt */
(
hstnr char(20) not null unique, /* primary key */
herstellername varchar(20) not null,
firmensitz varchar(25) not null,
ansprechpartner varchar(25) not null,
telefon varchar(25) not null,
email varchar(25) not null,
primary key(hstnr)
);
show columns from hersteller; /* attribute der tabelle hersteller werden
angezeigt */
w
w
w
.e
ke
rg
er
.d
e
Wichtig: Primärschlüssel und Fremdschlüssel müssen den identischen
Datentyp haben, mit Ausnahme der auto_increment Anweisung,
auf den Fremdschlüssel sollte immer ein Index gesetzt werden!
Datenbankentwicklung mit MySQL und ACCESS 2003
61
Beziehungen mit Referentieller Integrität - SQL
Darstellung der hergestellten 1: n-Beziehung in MySQLYog-Enterprise!
Datenbankentwicklung mit MySQL und ACCESS 2003
62
www.ekerger.de
Beziehungen mit Referentieller Integrität - ÜB
In einer Datenbank gibt es zwei Tabellen, mit deren Hilfe Musik-CDs und ihre
Inhalte verwaltet werden.
Die Tabelle cd hat dabei die Spalten cdnr, cdtitel, interpret und preis. cdnr
soll einen Startwert von 1000 zugewiesen bekommen!
Die Tabelle tracks hat die Spalten tracknr, , tracktitel, cdnr und tracklaenge.
Wie Sie sich sicher schon gedacht haben, ist die Spalte cdnr der
Primärschlüssel der Tabelle cd. Er wird vom Fremdschlüssel cdnr aus der
Tabelle tracks referenziert. tracknr soll einen Startwert von 100 zugewiesen
bekommen!
1.
Erstellen Sie eine Datenbank [ihrnamecd]!
2.
Erstellen Sie eine neue Tabelle mit dem Namen cd! Wählen Sie
geeignete Datentypen.
3.
Erstellen Sie eine neue Tabelle mit dem Namen track! Wählen Sie
geeignete Datentypen.
Stellen Sie Referentielle Integrität her!
w
w
w
.e
ke
rg
er
.d
e
4.
63
Datenbankentwicklung mit MySQL und ACCESS 2003
Beziehungen mit Referentieller Integrität - ÜB
cd
Attribute
Datentyp
Größe
Datentyp
Größe
Default
not null
unique
Beschreibung
unique
Beschreibung
tracks
Attribute
Datenbankentwicklung mit MySQL und ACCESS 2003
Default
not null
64
www.ekerger.de
Referentielle Integrität herstellen - Übung
cd
Attribute
Datentyp
Größe
Default
not null
unique
X
X
X
cdnr
Integer
cdtitel
Varchar
25
X
interpret
Varchar
25
X
preis
Decimal
6,2
X
Datentyp
Größe
Beschreibung
PK, A_I
tracks
tracknr
Integer
tracktitel
Varchar
cdnr
Integer
tracklaenge
Decimal
Default
not null
unique
X
X
25
X
4,2
Beschreibung
PK, A_I
X
w
w
w
.e
ke
rg
er
.d
e
Attribute
FK
X
65
Datenbankentwicklung mit MySQL und ACCESS 2003
Beziehungen mit Referentieller Integrität - SQL
create database kergercd;
datenbank kergercd */
/* anlegen der
use kergercd;
der datenbank
/* verwenden
kergercd */
create table cd
/* anlegen der tabelle cd */
(
cdnr integer not null unique auto_increment,
/*
festelegen des
primärschlüssels*/
cdtitel varchar(25) not null unique,
interpret varchar(25) not null,
preis decimal(6,2) not null,
primary key(cdnr)
) auto_increment=1000;
show columns from cd;
tabelle cd
Datenbankentwicklung mit MySQL und ACCESS 2003
/* attribute der
werden angezeigt */
66
www.ekerger.de
Beziehungen mit Referentieller Integrität - SQL
create table tracks
/* anlegen der tabelle tracks */
(
tracknr integer not null unique auto_increment,
/* festelegen des
primärschlüssels*/
tracktitel varchar(25) not null,
cdnr integer not null,
tracklaenge decimal(4,2) not null,
primary key(tracknr),
foreign key(cdnr) references cd(cdnr)
/* festelegen des
fremdschlüssels mit ri*/
on delete restrict on update cascade
) auto_increment=100;
show columns from cd;
attribute der tabelle cd
/*
w
w
w
.e
ke
rg
er
.d
e
werden angezeigt */
Datenbankentwicklung mit MySQL und ACCESS 2003
67
Beziehungen mit Referentieller Integrität - SQL
Tabellentyp InnoDB
auswählen
Datenbankentwicklung mit MySQL und ACCESS 2003
68
www.ekerger.de
7. Entwicklung einer Datenbank
w
w
w
.e
ke
rg
er
.d
e
Die Datenbank „AutoRad“
69
Datenbankentwicklung mit MySQL und ACCESS 2003
Schritte beim Anlegen einer neuen Datenbank I
REALWELT
relationales
Datenbanksystem
Daten
eingeben
ER-Modell
schaffen
Namen
definieren
Test
Datenbankentwicklung mit MySQL und ACCESS 2003
Datenmodell
anlegen
Tabellen
anlegen
Evaluation
70
www.ekerger.de
Entwicklung einer Datenbank - AutoRad
Die Firma „AutoRad“, Autoreifeneinzelhändler, möchte zur Verwaltung seines
Warenbestandes und seines Lieferanten ein Datenbanksystem benutzen. Als
Fachfrau/ Fachmann sollen Sie dieses Vorhaben umsetzen. Also überlegen Sie
sich, welche Informationen aufgenommen werden müssen und fertigen aufgrund
vorliegender Artikelkarteikarten und Lieferantenangeboten, die
Anforderungsanalyse an, die folgendermaßen aussieht:
Die Firma „AutoRad“ hat ausschließlich PKW - Reifen Im Sortiment. Von den
Reifen, den so genannten Artikeln werden bisher folgende Daten erfasst: Eine
fünfstellige Artikelnummer, die Artikelbezeichnung, also der Name des Reifens, der
Hersteller des Reifens, die Dimension des Reifens, die Reifenart [Sommer-,
Winter, Geländereifen], der Istbestand, der Meldebestand, der Verkaufspreis pro
Reifen.
w
w
w
.e
ke
rg
er
.d
e
Von den Lieferern, von denen die „AutoRad KG“ die Reifen bezieht, werden die
Lieferantennummer, die Anschrift, d.h., Strasse mit Hausnummer, PLZ, Ort,
Vorwahl, Telefonnummer, Faxnummer, Preis, Rabatt, Skonto und das
Angebotsdatum erfasst.
Die Firma „AutoRad“ bezieht jeden Reifen [z.B. „Continental Contact, 175/70 R 15]
von mehreren Lieferanten, zu unterschiedlichen Preisen und jeder Lieferant liefert
mehrere Reifentypen
Datenbankentwicklung mit MySQL und ACCESS 2003
71
Vorgehensweise bei der Erstellung einer
Datenbank - AutoRad
1. Lesen Sie die Anforderungsanalyse sorgfältig!
2. Führen Sie zum Verständnis der Aufgabenstellung eine Nominalextraktion
durch bzw. unterstreichen Sie die Nomina der Anforderungsanalyse!
3. Leiten sie die Informationsstruktur ab
4. Fassen Sie unterschiedliche Worte mit gleicher Bedeutung zusammen und
trenne gleiche Worte mit unterschiedlicher Bedeutung!
5. Legen Sie alle - für den ersten Schritt – notwendigen Entitäts- und
Beziehungsmengen fest - Datenstruktur!
6. Identifizieren Sie die atomaren Attribute
7. Klassifizieren Sie die Beziehungen nach den Abbildungstypen (1:1, 1:n und m:n).
8. Zeichnen Sie das zugehörige Entity-Relationship-Diagramm mit der Angabe
und der Beziehungstypen und der Kardinalitätenrestriktion!
9. Leiten Sie aus dem Entity-Relationship-Modell die notwendigen Tabellen ab.
Übernehmen Sie die Attribute und bestimmen Sie den Datentyp, die Größe und
weitere Eigenschaften der Attribute! Unterstreichen Sie die Primärschlüssel.
10. Setzen Sie Ihre Arbeitsergebnisse mit MySQL um!
Datenbankentwicklung mit MySQL und ACCESS 2003
72
www.ekerger.de
Übung AutoRad - Arbeitsauftrag 9
Zu Arbeitsauftrag 9 – Ableitungsregeln für Tabellen
w
w
w
.e
ke
rg
er
.d
e
Regel 1: Jede Entitätsmenge muss als eigenständige Tabelle mit
eindeutigem Primärschlüssel definiert werden.
Die übrigen Merkmale sind als Attribute zu übernehmen.
Regel 2: Jede Beziehungsmenge vom Typ n:m muss als eigenständige
Tabelle definiert werden, wobei
- die Primärschlüssel der zugehörigen Entitätsmengen als
Fremdschlüssel in dieser Tabelle auftreten müssen,
- der Primärschlüssel der Beziehungsmengentabelle aus den
Fremdschlüsseln zusammengesetzt oder
ein anderer Schlüsselkandidat sein kann und
- weitere Merkmale der Beziehungsmenge zu übernehmen
sind.
Regel 3: Eine Beziehungsmenge vom Typ n:1 kann ohne eigenständige
Tabelle definiert werden, indem ein Fremdschlüssel in der „1“Tabelle auf den Primärschlüssel der „n“-Tabelle weist.
Regel 4: Eine Beziehungsmenge vom Typ 1:1 kann ohne eigenständige
Tabelle definiert werden, indem der Primärschlüssel der einen
Tabelle als Fremdschlüssel in die andere Tabelle eingebracht
wird.
Datenbankentwicklung mit MySQL und ACCESS 2003
73
Übung AutoRad - Arbeitsauftrag 2
Die „AutoRad-KG“, Autoreifeneinzelhändler, möchte zur Verwaltung ihres
Warenbestandes und ihrer Lieferanten ein Datenbanksystem benutzen. Als Fachfrau/
Fachmann sollen Sie dieses Vorhaben umsetzen. Also überlegen Sie sich, welche
Informationen aufgenommen werden müssen und fertigen aufgrund vorliegender
Artikelkarteikarten und Lieferantenangeboten, die Anforderungsanalyse an, die
folgendermaßen aussieht:
Die „AutoRad KG“ hat ausschließlich PKW - Reifen Im Sortiment. Von den Reifen, den
so genannten Artikeln werden bisher folgende Daten erfasst: Eine fünfstellige
Artikelnummer, die Artikelbezeichnung, also der Name des Reifens, der Hersteller des
Reifens, die Dimension des Reifens, die Reifenart [Sommer-, Winter, Geländereifen], der
Istbestand, der Meldebestand, der Verkaufspreis pro Reifen.
Von den Lieferern, von denen die „AutoRad KG“ die Reifen bezieht, werden die
Lieferantennummer, die Anschrift, d.h., Strasse mit Hausnummer, PLZ, Ort, Vorwahl,
Telefonnummer, Faxnummer, Preis, Rabatt, Skonto und das Angebotsdatum erfasst.
Die „AutoRad KG“ bezieht jeden Reifen [z.B. „Continental Contact, 175/70 R 15] von
mehreren Lieferanten, und jeder Lieferant liefert mehrere Reifentypen .
Datenbankentwicklung mit MySQL und ACCESS 2003
74
www.ekerger.de
Übung AutoRad - Arbeitsauftrag 3
„AutoRad KG“ PKW - Reifen Sortiment. Reifen, Artikeln Daten
Artikelnummer, Artikelbezeichnung, Name Reifens, Hersteller Reifens,
Dimension Reifens, Reifenart [Sommer-, Winter, Geländereifen],
Istbestand, Meldebestand, Verkaufspreis Reifen.
Lieferern, „AutoRad KG“ Reifen Lieferantennummer, Anschrift, Strasse,
Hausnummer, PLZ, Ort, Vorwahl, Telefonnummer, Faxnummer, Preis,
Rabatt, Skonto Angebotsdatum
w
w
w
.e
ke
rg
er
.d
e
„AutoRad KG“ Reifen „Continental Contact, 175/70 R 15 mehreren
Lieferanten, Lieferant, Reifentypen .
75
Datenbankentwicklung mit MySQL und ACCESS 2003
Übung AutoRad - Arbeitsauftrag 4
4. Fassen Sie unterschiedliche Worte mit gleicher Bedeutung
zusammen!
PKW - Reifen Sortiment
Reifen, Artikeln Reifentypen
Reifen
Artikelbezeichnung, Name
Artikelbezeichnung
5. Trenne gleiche Worte mit unterschiedlicher Bedeutung!
----------------------------------------
Datenbankentwicklung mit MySQL und ACCESS 2003
76
www.ekerger.de
Übung AutoRad - Arbeitsauftrag 5 & 7
A. Entitätsmengen
Artikel
Lieferanten
B. Beziehungsmengen
ArtikelLieferant
C. Beziehungsmengenklassifizierung
m:n
w
w
w
.e
ke
rg
er
.d
e
ArtikelLieferant
Datenbankentwicklung mit MySQL und ACCESS 2003
77
Übung AutoRad Arbeitsauftrag 6
•
•
•
•
•
•
•
•
•
•
•
Artikelnummer
Artikelbezeichnung
Hersteller
Dimension
Reifenart
Istbestand
Meldebestand
Verkaufspreis
Lieferernummer
Name
Strasse/ Hausnummer
Datenbankentwicklung mit MySQL und ACCESS 2003
•
•
•
•
•
•
•
•
•
Postleitzahl
Ort
Vorwahl
Telefon
Fax
Skonto
Preis
Rabatt
Angebotsdatum
78
www.ekerger.de
Übung AutoRad Arbeitsauftrag 6
Artikel (E)
Lieferanten (E)
ArtikelLieferanten
(B – m:n)
Artikelnummer
Lieferernummer
Artikelnummer
Artikelbezeichnung
Name
Lieferernummer
Hersteller
Strasse/ Hausnummer Angebotsdatum
Dimension
Postleitzahl
Preis
Reifenart
Ort
Rabatt
Istbestand
Vorwahl
Meldebestand
Telefon
Verkaufspreis
Fax
w
w
w
.e
ke
rg
er
.d
e
Skonto
79
Datenbankentwicklung mit MySQL und ACCESS 2003
Übung AutoRad - Arbeitsauftrag 8
Artikel
m
ArtikelLieferanten
[1;*]
Datenbankentwicklung mit MySQL und ACCESS 2003
n
[0;*]
Lieferanten
80
www.ekerger.de
Übung AutoRad - Arbeitsauftrag 9
Ableitungsregeln
w
w
w
.e
ke
rg
er
.d
e
Regel 1: Jede Entitätsmenge muss als eigenständige Tabelle mit
eindeutigem Primärschlüssel definiert werden.
Die übrigen Merkmale sind als Attribute zu übernehmen.
Regel 2: Jede Beziehungsmenge vom Typ n:m muss als eigenständige
Tabelle definiert werden, wobei
- die Primärschlüssel der zugehörigen Entitätsmengen als
Fremdschlüssel in dieser Tabelle auftreten müssen,
- der Primärschlüssel der Beziehungsmengentabelle aus den
Fremdschlüsseln zusammengesetzt oder
ein anderer Schlüsselkandidat sein kann und
- weitere Merkmale der Beziehungsmenge zu übernehmen
sind.
Regel 3: Eine Beziehungsmenge vom Typ n:1 kann ohne eigenständige
Tabelle definiert werden, indem ein Fremdschlüssel in der „1“Tabelle auf den Primärschlüssel der „n“-Tabelle weist.
Regel 4: Eine Beziehungsmenge vom Typ 1:1 kann ohne eigenständige
Tabelle definiert werden, indem der Primärschlüssel der einen
Tabelle als Fremdschlüssel in die andere Tabelle eingebracht
wird.
Datenbankentwicklung mit MySQL und ACCESS 2003
81
Arbeitsauftrag 10 - Tabellenentwurf
Datenbankentwicklung mit MySQL und ACCESS 2003
82
www.ekerger.de
Arbeitsauftrag 10 - Tabellenentwurf
w
w
w
.e
ke
rg
er
.d
e
Alternative:
Datenbankentwicklung mit MySQL und ACCESS 2003
83
Arbeitsauftrag 10 – MySQL-Code
Datenbankentwicklung mit MySQL und ACCESS 2003
84
www.ekerger.de
w
w
w
.e
ke
rg
er
.d
e
Arbeitsauftrag 10 – MySQL-Code
Datenbankentwicklung mit MySQL und ACCESS 2003
85
Arbeitsauftrag 10 – MySQL-Code
Datenbankentwicklung mit MySQL und ACCESS 2003
86
www.ekerger.de
w
w
w
.e
ke
rg
er
.d
e
AutoRad - Das fertige Modell – 1
87
Datenbankentwicklung mit MySQL und ACCESS 2003
Übung AutoRad - Arbeitsauftrag 6 - Fortsetzung
Artikel (E)
Lieferanten (E)
ArtikelLieferanten
(B – m:n)
Artikelnummer
Lieferernummer
Artikelnummer
Artikelbezeichnung
Name
Lieferernummer
Hersteller
Strasse/ Hausnummer Preis
Dimension
Postleitzahl
Angebotsdatum
Reifenart
Ort
Rabatt
Istbestand
Vorwahl
Meldebestand
Telefon
Verkaufspreis
Fax
Skonto
Die Relationen Artikel und Lieferanten liegen nur in der 2ten NF vor!
Datenbankentwicklung mit MySQL und ACCESS 2003
88
www.ekerger.de
Übung AutoRad - Arbeitsauftrag 6 Fortsetzung
Artikel (E)
Lieferanten (E)
ArtikelLieferanten
(B – m:n)
Artikelnummer
Lieferernummer
Artikelnummer
Artikelbezeichnung
Name
Lieferernummer
HsNr
Strasse/ Hausnummer Preis
Dimension
PLZ
Angebotsdatum
Reifenart
Ort
Rabatt
Istbestand
Vorwahl
Meldebestand
Telefon
Verkaufspreis
Fax
w
w
w
.e
ke
rg
er
.d
e
Skonto
Datenbankentwicklung mit MySQL und ACCESS 2003
89
Übung AutoRad - Arbeitsauftrag 6 Fortsetzung
Hersteller (E)
Ort (E)
Herstellernummer
Postleitzahl
Herstellername
Ort
Vorwahl
Datenbankentwicklung mit MySQL und ACCESS 2003
90
www.ekerger.de
Arbeitsauftrag 5 & 7 - neu
A. Entitätsmengen
Artikel
Lieferer
Ort
Hersteller
B. Beziehungsmengen
ArtikelLieferer
ArtikelHersteller
LiefererOrt
C. Beziehungsmengenklassifizierung
m:n
ArtikelHersteller
1:n
LiefererOrt
w
w
w
.e
ke
rg
er
.d
e
ArtikelLieferer
1:n
Datenbankentwicklung mit MySQL und ACCESS 2003
91
Übung AutoRad Arbeitsauftrag 8 - neu
Datenbankentwicklung mit MySQL und ACCESS 2003
92
www.ekerger.de
w
w
w
.e
ke
rg
er
.d
e
Arbeitsauftrag 10 - Tabellenentwurf
Datenbankentwicklung mit MySQL und ACCESS 2003
93
Arbeitsauftrag 10 - Tabellenentwurf
Datenbankentwicklung mit MySQL und ACCESS 2003
94
Arbeitsauftrag 10 – MySQL-Code
w
w
w
.e
ke
rg
er
.d
e
www.ekerger.de
95
Datenbankentwicklung mit MySQL und ACCESS 2003
Arbeitsauftrag 10 – MySQL-Code
Datenbankentwicklung mit MySQL und ACCESS 2003
96
www.ekerger.de
w
w
w
.e
ke
rg
er
.d
e
AutoRad - Das fertige Modell
Datenbankentwicklung mit MySQL und ACCESS 2003
97
Entwicklung einer Datenbank - Übung
Die Datenbank „EURODATA“
Datenbankentwicklung mit MySQL und ACCESS 2003
98
www.ekerger.de
Entwicklung einer Datenbank – Übung EuroData
Dokumentation der Anforderungsanalyse eine Musterunternehmen:
Die Firma EuroData führt DV-Projekte unterschiedlichster Art durch. Die Personal- und
Projektdaten sollen zukünftig automatisiert verwaltet werden.
Von allen Mitarbeitern werden Name, Vorname, Anschrift, Telefonnummer, Geschlecht und
Einstellungsdatum erfasst. Jeder Mitarbeiter erhält eine eindeutige Nummer.
Im Unternehmen wird an verschiedenen Projekten gearbeitet. Alle Projekte erhalten eine
eindeutige Nummer und eine eindeutige Bezeichnung, da sich diese besser merken lässt. Ferner
werden für jedes Projekt Auftragswert, Datum von Projektbeginn und Projektende, die Feststellung,
ob das Projekt storniert wurde sowie der Projektleiter (der ein Mitarbeiter ist) erfasst.
Jeder Mitarbeiter kann einem Projekt zugeordnet werden, an dem er arbeitet. Da es auch kleinere
Projekte gibt, kann ein Mitarbeiter durchaus in mehreren Projekten tätig sein. Es kommt sogar vor,
dass ein Mitarbeiter mehrere Projekte leitet. Jedem Projekt ist mindestens ein Mitarbeiter
zugeordnet. Dies kann der Projektleiter sein. Um den Aufwand für die Projekte besser bemessen
zu können, wird für jeden Mitarbeiter sein Arbeitszeitanteil für ein Projekt festgelegt. Der
Arbeitszeitanteil beträgt mindestens eine, maximal 40 Arbeitsstunden/Woche.
w
w
w
.e
ke
rg
er
.d
e
Das Unternehmen unterhält einen Betriebskindergarten, der nur Kinder von Angestellten
auf-nimmt. Neben dem Vornamen wird das Geburtsdatum der Kinder gespeichert. Es wer-den nur
die Kinder erfasst, die den Betriebskindergarten besuchen. Da keine Ehe-paare beschäftigt
werden, ist die Zuordnung der Kinder zu einem Mitarbeiter immer eindeutig
Datenbankentwicklung mit MySQL und ACCESS 2003
99
Entwicklung einer Datenbank – Übung EuroData
1. Lesen Sie die Anforderungsanalyse sorgfältig!
2. Führen Sie zum Verständnis der Aufgabenstellung eine Nominalextraktion
durch bzw. unterstreichen Sie die Nomina der Anforderungsanalyse!
3. Leiten sie die Informationsstruktur ab
4. Fassen Sie unterschiedliche Worte mit gleicher Bedeutung zusammen und
trenne gleiche Worte mit unterschiedlicher Bedeutung!
5. Legen Sie alle - für den ersten Schritt – notwendigen Entitäts- und
Beziehungsmengen fest - Datenstruktur!
6. Identifizieren Sie die atomaren Attribute
7. Klassifizieren Sie die Beziehungen nach den Abbildungstypen (1:1, 1:n und m:n).
8. Zeichnen Sie das zugehörige Entity-Relationship-Diagramm mit der Angabe
und der Beziehungstypen und der Kardinalitätenrestriktion!
9. Leiten Sie aus dem Entity-Relationship-Modell die notwendigen Tabellen ab.
Übernehmen Sie die Attribute und bestimmen Sie den Datentyp, die Größe und
weitere Eigenschaften der Attribute! Unterstreichen Sie die Primärschlüssel.
10. Setzen Sie Ihre Arbeitsergebnisse mit MySQL um!
Datenbankentwicklung mit MySQL und ACCESS 2003
100
www.ekerger.de
Arbeitsauftrag 2
w
w
w
.e
ke
rg
er
.d
e
Von allen Mitarbeitern werden Name, Vorname, Anschrift, Telefonnummer,
Geschlecht und Einstellungsdatum erfasst. Jeder Mitarbeiter erhält eine eindeutige
Nummer zwischen 100 und 999 (jeweils einschließlich).
Im Unternehmen wird an verschiedenen Projekten gearbeitet. Alle Projekte
erhalten eine eindeutige Nummer und eine eindeutige Bezeichnung, da sich diese
besser merken lässt. Ferner werden für jedes Projekt Auftragswert, Datum von
Projektbeginn und Projektende, die Feststellung, ob das Projekt storniert wurde
sowie der Projektleiter (der ein Mitarbeiter ist) erfasst.
Jeder Mitarbeiter kann einem Projekt zugeordnet werden, an dem er arbeitet. Da
es auch kleinere Projekte gibt, kann ein Mitarbeiter durchaus in mehreren
Projekten tätig sein. Es kommt sogar vor, dass ein Mitarbeiter mehrere Projekte
leitet. Jedem Projekt ist mindestens ein Mitarbeiter zugeordnet. Dies kann der
Projektleiter sein. Um den Aufwand für die Projekte besser bemessen zu können,
wird für jeden Mitarbeiter sein Arbeitszeitanteil für ein Projekt festgelegt. Der
Arbeitszeitanteil beträgt mindestens eine, maximal 40 Arbeitsstunden/Woche.
Das Unternehmen unterhält einen Betriebskindergarten, der nur Kinder von
Angestellten auf-nimmt. Neben dem Vornamen wird das Geburtsdatum der Kinder
gespeichert. Es werden nur die Kinder erfasst, die den Betriebskindergarten
besuchen. Da keine Ehepaare beschäftigt werden, ist die Zuordnung der Kinder
zu einem Mitarbeiter immer eindeutig
Datenbankentwicklung mit MySQL und ACCESS 2003
101
Arbeitsauftrag 2 (Fortsetzung)
Fasse unterschiedliche Worte mit gleicher Bedeutung zusammen!
Aufwand, Arbeitszeitanteil
è
Zeitanteil
Mitarbeiter, Angestellte
è
Mitarbeiter
Trenne gleiche Worte mit unterschiedlicher Bedeutung!
Nummer
è
Mitarbeiternummer
Nummer
è
Projektnummer
Datenbankentwicklung mit MySQL und ACCESS 2003
102
www.ekerger.de
Arbeitsauftrag 3 (Fortsetzung)
Entitätsmengen
Mitarbeiter
Projekt
Kind
Beziehungsmengen
MitarbeiterKind
ProjektLeiter
ProjektMitarbeiter
Beziehungsmengenklassifizierung
1:n
ProjektLeiter
1:n
ProjektMitarbeiter
m:n
w
w
w
.e
ke
rg
er
.d
e
MitarbeiterKind
103
Datenbankentwicklung mit MySQL und ACCESS 2003
Arbeitsauftrag 3 Informationsstruktur
Trenne Entitäten von Attributen
Mitarbeiter (EM)
Projekt (EM)
Kind (EM)
MitarbeiterProjekt (BM)
MNR
PNR
MNR
MNR
Name
Bezeichnung
Vorname
PNR
Vorname
Auftragswert
Geburtsdatum Zeitanteil
Strasse_Nr
Projektbeginn
PLZ
Projektende
Ort
Storno
Telefon
Leiter
Geschlecht
Eingestellt
Datenbankentwicklung mit MySQL und ACCESS 2003
104
www.ekerger.de
Arbeitsauftrag 7
MNr,Vorname
N
1
MitarbeiterKind
[0,*]
Kind
[1,1]
MNr
Mitarbeiter
N
[0,*]
[0,*]
N
ProjektMitarbeiter
ProjektLeiter
ProjNr
1
[1,*]
w
w
w
.e
ke
rg
er
.d
e
Projekt
[1,1]
M
105
Datenbankentwicklung mit MySQL und ACCESS 2003
Arbeitsauftrag 8
Mitarbeiter
MNr
Name
Vorname
Kind
100
Meier
Inge
700
Klein
Kurth
701
Huber
Anke
710
Schmidt
Beate
711
Bauer
Klaus
MNr
Vorname GebDatum
100
Pia
05.08.1994
701
Patrick
01.09.1994
711
Sarah
05.08.1993
711
Toni
05.08.1993
Projekt
ProjNr
ProjektMitarbeiter
MNr
ProjNr
Zeitanteil
100
77
10
701
77
5
Datenbankentwicklung mit MySQL und ACCESS 2003
77
Bezeichnung
Umzug Stein AG
...
Leiter
100
106
www.ekerger.de
Entwicklung einer Datenbank – Übung EuroData
tabelle:
Datentyp
Größe
Default
not null
unique
w
w
w
.e
ke
rg
er
.d
e
Attribute
Beschreibung
107
Datenbankentwicklung mit MySQL und ACCESS 2003
Entwicklung einer Datenbank – Übung EuroData
tabelle:
Attribute
Datentyp
Größe
Datenbankentwicklung mit MySQL und ACCESS 2003
Default
not null
unique
Beschreibung
108
www.ekerger.de
Entwicklung einer Datenbank – Übung EuroData
tabelle:
Datentyp
Größe
Default
not null
unique
w
w
w
.e
ke
rg
er
.d
e
Attribute
Beschreibung
109
Datenbankentwicklung mit MySQL und ACCESS 2003
Entwicklung einer Datenbank – Übung EuroData
tabelle:
Attribute
Datentyp
Größe
Datenbankentwicklung mit MySQL und ACCESS 2003
Default
not null
unique
Beschreibung
110
www.ekerger.de
Entwicklung einer Datenbank – Übung EuroData
tabelle:
Datentyp
Größe
Default
not null
unique
Beschreibung
w
w
w
.e
ke
rg
er
.d
e
Attribute
111
Datenbankentwicklung mit MySQL und ACCESS 2003
MySQL – Wichtige Internetadressen
http://www.little-idiot.de/mysql/
sehr gut!
http://www.teialehrbuch.de/Kostenlose-Kurse/SQL/
http://www.html-world.de/program/mysql_5.php
http://reeg.junetz.de/DSP/node10.html
http://www.schulserver.hessen.de/darmstadt/lichtenberg/SQLTutori
al/index.html
http://www.informatik.gierhardt.de/Datenbanken/index.html
………….
Datenbankentwicklung mit MySQL und ACCESS 2003
112
www.ekerger.de
w
w
w
.e
ke
rg
er
.d
e
Ein kleiner Einstieg in
Datenbankentwicklung mit MySQL und ACCESS 2003
1
Elemente von SQL – Schädliche Wirkung
Datenbankentwicklung mit MySQL und ACCESS 2003
2
www.ekerger.de
MySQL – Inhaltsverzeichnis
SQL – Elemente
Bedienung der Software
Das MySQL-GUI SQLYog
Data Control Language
Data Defintion Language
Datentypen in MySQL
Übung zu den Datentypen
Das Anlegen einer Datenbank und einer Datentabelle
Übungen zur Definition von Daten
Ändern der Tabellenstruktur
Übungen zu Änderung der Tabellenstruktur
Tabelle löschen
Dateneingabe
Übungen zur Dateneingabe
Datensätze ändern
Übungen zur Datensatzänderung
w
w
w
.e
ke
rg
er
.d
e
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
3
Datenbankentwicklung mit MySQL und ACCESS 2003
Elemente von SQL
SQL- Structured Query
Language
DCL:
DDL:
DML:
DATA
Control
Language
Data
Definition
Language
Data
Manipulation
Language
Datenbankentwicklung mit MySQL und ACCESS 2003
4
www.ekerger.de
DCL – DATA Control Language
Mit DCL
werden u. a. Datenbanken angelegt und gelöscht.
werden Zugriffsberechtigungen auf Datenbanken
geregelt.
Datenbank anlegen
Datenbank löschen
Zugriffsrechte gewähren
Zugriffsrechte entziehen
w
w
w
.e
ke
rg
er
.d
e
Beispiele:
CREATE DATABASE
DROP DATABASE
GRANT
REVOKE
5
Datenbankentwicklung mit MySQL und ACCESS 2003
DDL - Data Definition Language
Mit DDL
– erstellen Sie die Datenbankstruktur.
– verändern Sie die Datenbankstruktur.
– löschen Sie die Datenbankstruktur.
Beispiele:
CREATE TABLE
DROP TABLE
ALTER TABLE
CREATE INDEX
Datenbankentwicklung mit MySQL und ACCESS 2003
Tabelle anlegen
Tabelle löschen
Tabelle ändern
Index anlegen
6
www.ekerger.de
DML - Data Manipulation Language
Mit DML
– werden Daten abgefragt.
– werden Daten gelöscht.
– werden Daten eingefügt.
– werden Daten geändert.
Beispiele:
SELECT
DELETE
INSERT
UPDATE
w
w
w
.e
ke
rg
er
.d
e
Datensätze auswählen
Datensätze löschen
Werte eingeben
Werte aktualisieren
7
Datenbankentwicklung mit MySQL und ACCESS 2003
Starten des MySQL-Servers
Anschließend
Am Ende der Stunde immer mit
nicht heruntergefahren werden!
Datenbankentwicklung mit MySQL und ACCESS 2003
beenden, sonst kann der Rechner u. U.
8
www.ekerger.de
Starten des MySQL-Tools „SQLyog“
Doppel-Klick oder über
Programme – SQLyog -
w
w
w
.e
ke
rg
er
.d
e
Verbindung mit dem
Datenbankserver herstellen,
keine Veränderung der
Einstellungen vornehmen
Datenbankentwicklung mit MySQL und ACCESS 2003
9
Aufbau des MySQL-Tools „SQLyog“
SQL-Eingabe-Bereich
Ergebnis-Bereich
Verfügbare Datenbanken im MySQL-Data-Verzeichnis, nur mit diesen
kann gearbeitet werden!
Alle Datenbanken, die zukünftig von mir als Arbeitsbasis zur Verfügung
gestellt werden, müssen in das entsprechende Verzeichnis
c:[d:\f:]\xampp\mysql\data kopiert werden!
Am Ende der Stunde den gesamten Ordner in ein Verzeichnis auf f:\ kopieren!
Auf c:\xampp … verhindert die ‚Kaiser-Karte‘ dauerhaftes ablegen!
Datenbankentwicklung mit MySQL und ACCESS 2003
10
www.ekerger.de
Arbeiten mit dem MySQL-Tool „SQLyog“ I
Nach Klick auf
w
w
w
.e
ke
rg
er
.d
e
oder SHIFT+ F9 wird das
gesamte SQL-Statement ausgeführt!
Datenbankentwicklung mit MySQL und ACCESS 2003
11
Arbeiten mit dem MySQL-Tool „SQLyog“ I
Nach Klick auf
oder F9 wird das SQL-Statement
ausgeführt, in dem der Cursor steht! SINNVOLL!
Fehlermeldungen können dem ausgeführten SQL-Statement
zugeordnet werden!
Datenbankentwicklung mit MySQL und ACCESS 2003
12
www.ekerger.de
Arbeiten mit dem MySQL-Tool „SQLyog“ II
w
w
w
.e
ke
rg
er
.d
e
Ergebnis
Datenbankentwicklung mit MySQL und ACCESS 2003
13
Arbeiten mit dem MySQL-Tool „SQLyog“ III
Auch alle Fehler werden verständlich im Ergebnisbereich ausgegeben!
Fehler können ebenfalls über eine Suchmaschine recherchiert werden!
Datenbankentwicklung mit MySQL und ACCESS 2003
14
www.ekerger.de
w
w
w
.e
ke
rg
er
.d
e
Arbeiten mit dem MySQL-Tool „SQLyog“ IV
Datenbankentwicklung mit MySQL und ACCESS 2003
15
Datenbank erstellen
create database;
Datenbankentwicklung mit MySQL und ACCESS 2003
16
www.ekerger.de
DCL – DATA Control Language
Datenbank in MySQL erstellen:
create database if not exists [datenbankname];
create database if not exists mbs;
Es wird die Datenbank „mbs“ erzeugt, if not exists
verhindert, dass die eventuell vorhandene Datenbank
gleichen Inhalts – mit allen Datensätzen überschrieben wird und verhindert Fehlermeldungen!
w
w
w
.e
ke
rg
er
.d
e
if not exists ist optional, aber sinnvoll!
Datenbankentwicklung mit MySQL und ACCESS 2003
17
DCL – DATA Control Language
Alle Datenbanken im MySQL-Verzeichnis anzeigen lassen:
show databases;
Datenbank, mit der man arbeiten will, mit MySQLStatement auswählen:
use [datenbankname];
use mbs;
Datenbank löschen:
drop database if exists [datenbankname];
drop database if exists mbs;
Datenbankentwicklung mit MySQL und ACCESS 2003
18
www.ekerger.de
Tabellenstruktur erstellen
w
w
w
.e
ke
rg
er
.d
e
create table;
Datenbankentwicklung mit MySQL und ACCESS 2003
19
DDL - Data Definition Language
Beispiele:
CREATE TABLE
Tabelle anlegen
DROP TABLE
Tabelle löschen
ALTER TABLE
Tabelle ändern
CREATE INDEX
Index anlegen
Aber:
Vor dem Anlegen einer Tabelle muss man sich über die
Tabellenstruktur, d. h.; die auf zunehmenden Attribute, aber
auch den Datentyp der einzelnen Attribute und deren Größe
im Klaren sein!
Datenbankentwicklung mit MySQL und ACCESS 2003
20
www.ekerger.de
DDL - Data Definition Language
Datentypen in MySQL 1 – numerische Werte
Typname
Bedeutung
Bereich
Speicher
bedarf
1 Byte
TINYINT
sehr kleine ganze Zahl
-128 bis 127 oder
0 bis 255 (UNSIGNED)
SMALLINT
kleine ganze Zahl
-32768 bis 32767 oder - 535
2 Byte
MEDIUMINT
mittelgroße ganze Zahl
-223 - 223 - 1 (0 - 224)
3 Byte
INT
Standard
-231- 231- 1
4 Byte
groß
-263 -
263 -
-10-38 -
BIGINT
1
8 Byte
238
FLOAT
Fließkommazahl,
einfache Genauigkeit
rund
DOUBLE
Fließkommazahl,
doppelte
Genauigkeit
als Zeichenkette
rund -10-308 - 2308
8 Byte
hängt von der
Anzeigegröße M und
den Dezimalstellen D ab
-999.9 bis 9999.9
-9999.99 bis 99999.99
(M+2)
Byte
dargestellte
Fließkommazahl
w
w
w
.e
ke
rg
er
.d
e
DECIMAL(M,D)
DECIMAL(4,1)
DECIMAL(6
,2)
4 Byte
21
Datenbankentwicklung mit MySQL und ACCESS 2003
DDL - Data Definition Language
Datentypen in MySQL 1 – alpha-numerische Werte
Typname
Bedeutung
maximale Größe
CHAR(M) !
Zeichenkette fester Länge
M Byte
VARCHAR(M) !
Zeichenkette variabler Länge
M Byte
TINYBLOB
sehr kleines Binary Large Object (Bild,
Töne)
(28 -1) Byte
BLOB
kleines BLOB
(216 -1) Byte
MEDIUMBLOB
mittleres BLOB
(224 -1) Byte
LONGBLOB
großes BLOB
(232 -1) Byte
TINYTEXT
sehr kleine Textzeichenkette
(28 -1) Byte
TEXT
kleine Textzeichenkette
(216 -1) Byte
MEDIUMTEXT
mittelgroße Textzeichenkette
(224 -1) Byte
LONGTEXT
große Textzeichenkette
(232 -1) Byte
ENUM
Auflistung, Auswahl nur eines Feldes
möglich
SET
Menge, Mehrfachauswahl möglich, auch
nichts
Datenbankentwicklung mit MySQL und ACCESS 2003
65535 Elemente
64 Elemente
22
www.ekerger.de
DDL - Data Definition Language
Datentypen in MySQL 1 – Datums- und Zeitwerte
Typname
Bedeutung
Bereich
Speicherbedarf
DATE
Datum im Format:
JJJJ-MM-TT
1.1.1000 bis 31.12.9999
3 Byte
TIME
Zeitwert im Format :
hh:mm:ss
abgelaufene Zeit:
-838h 59min 59s bis 838h
59min 59s
3 Byte
DATETIME
Datum / Zeitwert
1.1.1000 0Uhr bis 31.12.9999
23:59:59
8 Byte
1970.... bis 2037....
4 Byte
1901 bis 2155
1 Byte
TIMESTAMP Zeitstempelwert im
Format:
JJJJMMDDhhm
mss
YEAR
Jahreswert
im
w
w
w
.e
ke
rg
er
.d
e
Format JJJJ
23
Datenbankentwicklung mit MySQL und ACCESS 2003
Übung zu den Datentypen - Tabellenentwurf
Ordnen Sie folgenden Attributen - Objekteigenschaften - einen
entsprechenden Datentyp zu:
mitarbeiter
Attribute
Datentyp Größe
Default
not null unique
Beschreibung
MNr
Anrede
Name
Vorname
GebDat
Gehalt
Festlegung des
Datentyps
Standardwert
Wert ist „einzigartig“
Eingabe erforderlich
Kommentarfeld
Festlegung der Maximalen Zeichenlänge; nur bei Zeichenketten char und
varchar zwingend
Datenbankentwicklung mit MySQL und ACCESS 2003
24
www.ekerger.de
Übung zu den Datentypen – Beispiel
Ordnen Sie folgenden Attributen - Objekteigenschaften – einen entsprechenden
Datentyp zu:
mitarbeiter
Attribute
Datentyp
Größe
CHAR
4
Anrede
VARCHAR
4
Name
VARCHAR
25
X
Vorname
VARCHAR
25
X
MNr
GebDat
DATE
Gehalt
Double
Default
not null unique
X
‘Frau‘
Beschreibung
X
primary key
X
X
unsigned
Mit Hilfe eines Eintrages in DEFAULT kann ein Standardwert vorgegeben werden (außer für
BLOB und TEXT).
•
Mit NOT NULL kann in jeder Spalte einer Tabelle ein Eintrag erzwungen werden.
•
Numerische-Datentypen können UNSIGNED deklariert werden, so dass in der Spalte nur
positive Werte zulässig sind, der Wertebereich sich daher im Positiven verdoppelt!
w
w
w
.e
ke
rg
er
.d
e
•
Datenbankentwicklung mit MySQL und ACCESS 2003
25
MySQL – Anlegen einer Datenbank / Tabelle
create database if not exists mbs;
# Verwenden der Datenbank mbs
use mbs;
/* Anlegen der Tabelle
mitarbeiter */
create table mitarbeiter
(
mnr char(4) not null,
anrede varchar(25) not null default „Frau“,
name varchar(25) not null,
vorname varchar(25) not null,
gehalt double(8,2),
constraint mnrpruef check(mnr>999),
primary key(mnr)
);
show tables;
Datenbankentwicklung mit MySQL und ACCESS 2003
26
www.ekerger.de
MySQL – Anlegen einer Datenbank / Tabelle
create database if not exists mbs;
# Verwenden des Datenbank mbs
use mbs;
Einzeilige Kommentarzeile
Mehrzeilige
/* Anlegen der Tabelle
Kommentarzeile
mitarbeiter */
create table mitarbeiter
(
mnr char(4) not null,
anrede varchar(25) not null default „Frau“,
name varchar(25) not null,
Häufige Fehler:
vorname varchar(25) not null,
• fehlende Klammern
gehalt double(8,2),
• fehlende Größenfestlegung
primary key(mnr)
• fehlende Kommata
);
w
w
w
.e
ke
rg
er
.d
e
• fehlendes Semikolon!
show tables;
27
Datenbankentwicklung mit MySQL und ACCESS 2003
Anlegen einer Tabelle – Übung 2
1.
Verwenden Sie die Datenbank [ihrname]!
2.
Erstellen Sie eine neue Tabelle mit dem Namen „buecher“. Sie soll
folgende Daten aufnehmen können: isbn, buchautor, buchtitel,
buchpreis – Standardwert 0,00 – , erscheinungsjahr, verlag,
kurzbeschreibung (längerer Text) . Legen Sie einen Primärschlüssel
fest!
3.
Speichern Sie den SQL-Code in einem WORD-Dokument!
Attribute
Datentyp
Größe
Datenbankentwicklung mit MySQL und ACCESS 2003
Default
not null unique
Beschreibung
28
www.ekerger.de
Anlegen einer Tabelle – Übung 3
1.
Verwenden Sie die Datenbank [ihrname]!
2.
Erstellen Sie eine neue Tabelle mit dem Namen „person“. Sie soll
folgende Daten aufnehmen können: personennummer (ganzzahlig) ,
nachname, vorname, gebdat, plz, ort. Legen Sie einen Primärschlüssel
fest!
3.
Speichern Sie den SQL-Code in einem WORD-Dokument!
Datentyp
Größe
Default
not null unique
Beschreibung
w
w
w
.e
ke
rg
er
.d
e
Attribute
Datenbankentwicklung mit MySQL und ACCESS 2003
32
Anlegen einer Tabelle – Übung 4
1.
Verwenden Sie die Datenbank [ihrname]!.
2.
Erstellen Sie eine neue Tabelle mit dem Namen „bestellung“. Sie soll
folgende Daten aufnehmen können: bestellnummer (ganzzahlig),
artikelnummer (ganzzahlig) , kundennummer (ganzzahlig ),
artikelanzahl, bestellsumme. Legen Sie einen Primärschlüssel fest!
Die Eingaben sollen überprüft werden;
3.
Speichern Sie den SQL-Code in einem WORD-Dokument!
Attribute
Datentyp Größe
Datenbankentwicklung mit MySQL und ACCESS 2003
Default
not null unique Beschreibung
36
www.ekerger.de
Anlegen einer Tabelle – Übung 5
2.
3.
Verwenden Sie die Datenbank [ihrname]!.
Erstellen Sie eine neue Tabelle mit dem Namen „artikel“. Sie soll
folgende Daten aufnehmen können: artikelnummer (ganzzahlig),
der Übung 3
artikelname, herstellername, herstellungsdatum. Legen Sie keinen
Primärschlüssel fest! Die Eingaben sollen überprüft werden;
Speichern Sie den SQL-Code in einem WORD-Dokument!
Attribute
Datentyp Größe
Default
not null unique
w
w
w
.e
ke
rg
er
.d
e
1.
Datenbankentwicklung mit MySQL und ACCESS 2003
Beschreibung
40
Herunterladen