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