Lösung zum Drucken

Werbung
Übungsblatt 5
Aufgabe 10: Datensicht - Vom DV-Konzept zur Implementierung
SQL (Structured/Standard Query Language)
-
DDL (Data Description Language)
Sprache zur Beschreibung einer Datenbank (z.B. Anlegen von Tabellen)
DML (Data Minipiulaton Language)
Sprache, die das Arbeiten mit einer DB unterstützt (z.B. Veränderungen von
Daten, Hinzufügen, Löschen)
QL (Query Language)
Sprache, um Daten aufzufinden und selektiv darzustellen (z.B. Selektionen
wie z.B. Kunden mit Umsatz > 10.000 Euro auflisten)
Beispiel für DB-Systeme: Oracle, My SQL, MS Access
Datentypen:
-
VARCHAR (Größe) = Zeichenkette
CHAR ) Größe) = feste Zeichenkette
INT integer = ganzzahliger Wert
FLOAT = Gleitkommazahl
DOUBLE = Fließkommazahl
COUNTER = Inkrementwert, Zähler (Wert wird hochgezählt)
DATETIME = Datum
BLOB = Binary Large Object (für Binärdaten)
TIMESTAMP = 11-stellige Ziffer, die Sekundengenau einen Zeitpunkt definiert
Beispiele:
VATCHAR (50) = Kette von Zeichen, die maximal 50 Zeichen enthält
Regeln:
-
Eine SQL Anweisung kann in einer Zeile, oder in mehreren Zeilen eingeben
werden
Die Anweisung wird mit einem Semikolon abgeschlossen!!
SQL ignoriert Groß- und Kleinschreibung bei SQL-Schlüsselwörtern,
Tabellennamen und Spaltennamen
Bei Zellinhalten in Tabellen wird aber zwischen Groß- und Kleinschreibung
unterschieden
Erstellen einer Tabelle und Definition der Spalten
CREATE TABLE Tabellenname
(Feld1 Datentyp [(Größe)] [NOT NULL]
[,Feld2 Datentyp [(Größe)] [NOT NULL]
[,…] PRIMARY KEY (Schlüsselattribute)])
Null ist nicht die Zahl 0, sondern ein leeres Feld
zwischen den Feldern Komma setzen
Beispiel:
CREATE TABLE Kunde (Kundennr COUNTER NOT NULL,
Name VARCHAR (50) NOT NULL,
PLZ CHAR (5) PRIMARY KEY (Kundennr));
Lösungen Aufgabe 10:
b)
CREATE TABLE Kunde (
KNR COUNTER NOT NULL,
KNAME VARCHAR (50) NOT NULL,
ADRESSE VARCHAR (100)
PRIMARY KEY (KNR) );
CREATE TABLE Artikel (
ANr COUNTER NOT NULL,
ABez VARCHAR (100) NOT NULL,
Format VARCHAR (100) NOT NULL,
Preis FLOAD NOT NULL,
Sknr INT NOT NULL
PRIMARY KEY (Anr) );
Spalten hinzufügen/löschen/umbenennen
ALTER TABLE Tabellenname
ADD COLUMN Spaltenname Datentyp
= Spalte hinzufügen
ALTER TABLE Tabellenname DROP
COLUMN Spaltenname Datentyp
=Spalte löschen
Beispiel: ALTER TABLE Kunde
ADD COLUMN Rabattstufe INT;
Auswahl von Daten:
SELECT [Tabelle] Feld1 [AS Alias1][,
[Tabelle]Feld2[AS Alias2] [,…]
FROM Tabellenname
WHERE Suchbedingung;
Anmerkung: Vergleichoperatoren innerhalb der Suchbedingung sind <, >, =, <>
Beispiel:
SELECT Name FROM Kunde
WHERE Plz=’66123’;
SELECT Kunde.Name -> bei mehreren Feldern Name in verschiedenen Tabellen.
Diese Anweisung identifiziert eindeutig die Spalte Name in der Tabelle Kunde.
SELECT * FROM Kunde -> da würden sämtliche Felder der Tabelle Kunde
wiedergegeben werden
Mathematische Funktionen
SELECT SUM (Tabelle.]Feld …..= Summe
SELECT MIN = Minimum
SELECT MAX = Maximum
SELECT AVG = Durchschnitt
SELECT COUNT= Anzahl
Hinzufügen von Daten:
INSERT INTO Tabellenname
(Spaltenname1, Spaltename2,..)
VALUES (Wert1, Wert2,..));
Beispiel:
INSERT INTO Kunde
(Name, Plz)
VALUES (’Müller’, ’66121’);
Da Kundenr COUNTER ist, muss es nicht mit aufgenommen werden, da Wert von
DB selbstständig eingetragen wird. Werte müssen mit Hochkomma eingetragen
werden, wenn Typ CHAR, Wenn Zahlen eingetragen werden ohne Hochkomma und
mit Punkt statt Komma, bei Kommazahlen)
Sortieren/Gruppieren
SELECT
FROM
WHERE
ORDER BY Spaltenname [ASC/DESC] ;
(ASC aufsteigend, DESC = absteigend)
SELECT
FROM
GROUP BY Spaltenname
[HAVING Gruppenkriterien]
[ORDER BY Spaltenname [ASC/DESC]];
Löschen von Datensätzen
DELETE FROM Tabellenname
WHERE Suchbedingung;
Beispiel:
DELETE FROM Kunde
WHERE Plz<’10000’;
Tabellen löschen
DROP TABLE Tabellenname;
Beispiel: DROP TABLE Kunde
Mit einer Anfrage kann man nur eine Tabelle löschen und nicht mehrere!!!
Lösung c)
INSERT INTO Artikel (Abez, Format, Preis, SKnr.)
VALUES (’Scheer, A.-W.: Consulting’, ‘Hardcover’, ’39,95 €’,1);
(‘Scheer…’, ‘Hardcover’, 39,95,1,’€’);
INSERT INTO Kunde (Kname, Adresse)
VALUES (’Meier’, ’Waldausweg 15’);
d)
UPDATE Kunde
SET Adresse
=’Bismarckbrücke 5’
WHERE Kname = ’Meier’ AND Adresse =’Waldhausweg 15’;
e)
SELECT Datum,
(Preis*Menge) AS Brutto,
(Preis*Menge)/(1+STEUERSATZ) AS Netto
FROM Postition, Artikel, Steuerklasse,
WHERE Position.ANR = Artikel.ANR
AND Artikel.SKNR = Steuerklasse.SKNR;
f)
SELECT Artikel.ANR, ABEZ
FROM Artikel, Position
WHERE Artikel.ANR = Position.ANR
AND NNR = 1;
g)
SELECT KNAME.Adresse, BNR, NNAME, ABEZ, PREIS, FORMAT, STEUERSATZ,
MENGE
FROM NIEDERLASSUNG, POSITION, ARTIKEL, STEUERKLASSE, KUNDE
WHERE NIEDERLASSUNG.NNR=POSITION.NNR
AND KUNDE.KNR = POSITION.KNR
AND ARTIKEL.ANR = POSITION.ANR
AND ARTIKEL.SKNR = STEUERKLASSE.SKNR
AND (KNAME=’Müller’ OR KNAME=’Raab’);
h)
UPDATE Steuerklasse
SET Steuersatz = 0.05
WHERE SKNR =3;
Anmerkung: Kommazahlen müssen mit Punkt statt Komma dargestellt werden!!!!
i)
DELETE FROM Kunde
WHERE KNR=3;
DELETE FROM Rechnungskopf
WHERE KNR=3;
DELETE FROM Position
WHERE KNR=3;
j)
DROP TABLE Niederlassung;
DROP TABLE Kunde;
DROP TABLE ...........
Regeln:
- Bei DELETE UND DROP müssen Tabellen getrennt aufgeführt werden!!!
- Kommazahlen müssen mit Punkt statt Komma dargestellt werden!!!!
Herunterladen