SQL Aktionsabfragen

Werbung
SQL Aktionsabfragen
Aktionsabfragen bewirken dauerhafte Veränderungen in den Datentabellen
und sind daher mit Vorsicht zu verwenden!!!
Tabellenerstellungsabfrage
Die Tabellenerstellungsabfrage speichert das Ergebnis einer Auswahlabfrage in einer
gesonderten Tabelle.
Syntax:
SELECT
INTO
FROM
WHERE
Feld 1, Feld 2
< Zieltabelle >
< Datenquelle >
….
Beispiel:
Schreibe alle Adressen in die Tabelle „Hamburger“
Lösung:
SELECT Kundnr, Name, Vorname, PLZ, Ort
INTO Hamburger
FROM Adressen
WHERE ort=“Hamburger“;
HINWEIS, Ausführung mit ! in rot!
Löschabfrage
Mit einer Löschabfrage lassen sich Datensätze wie bestimmte Kriterien erfüllen aus einer
Tabelle entfernen.
Syntax:
DELETE
FROM < Datenquelle >
WHERE < Kriterium >
Beispiel:
Lösche alle Kunden mit der PLZ 2… aus der Tabelle Hamburger.
Lösung:
DELETE
FROM Hamburger
WHERE plz LIKE „2*“;
Aktualisierungsabfragen:
Eine Aktualisierungsabfrage ermöglicht die gezielte Veränderung von Feldinhalten die
bestimmten Kriterien entsprechen!
Syntax:
UPDATE <Tabellenname>
SET
<Wertzuweisung>
WHERE <Kriterium>
Bsp: Erhöhe alle Preise des Klettverlages um 5%
UPDATE Buch
SET Preis=Preis*1.05
WHERE Verlag LIKE „*klett*“
Aufgabe: In der Tabelle „Adressen“ sollen fehlende Geburtstagseinträge durch“**.**.****“
ersetzt werden.
UPDATE Adressen
SET Geburtsdatum = 00.00.0000
WHERE Geburtsdatum IS NULL;
Aufgabe: Zeige in der Tabelle „Buch“ zusätzlich das Feld Anschaffungsjahr an.
UPDATE Buch SET Anschaffung =
IIF(LEFT(Inventnr,2)>50,"19"+LEFT(Inventnr,2),"20"+LEFT(Inventnr,2));
Aufgabe: In der Tabelle Buch soll im Feld „Sachgeb“ das Kürzel „Belle“ erscheinen, wenn
das Buch aus dem Bereich „Belletristik“ stammt.
UPDATE Buch
SET Sachgeb="Belle"
WHERE Sach_Kenn IS NULL;
b) Zusätzlich soll im Feld Verlag nur noch der Verlagsname erscheinen.
UPDATE Buch
SET Verlag =Left(Verlag,InStr(Verlag,","))-1;
Anfügerabfrage
Mit der Anfügerabfrage lassen sich ausgewählte Datensätze aus einer Quelltabelle an eine
Zieltabelle anfügen.
Syntax:
INSERT INTO <Zieltabelle> (Feld 1, Feld 2 usw.)
SELECT Feld1*, Feld2*,…..)
FROM <Quelltabelle>
WHERE <Kriterium>
Aufgabe: Hänge alle EDV Bücher an die Tabelle „Technikbuch“ an.
Buchnr,
Inventnr, Buchnr, Sachgeb, Sach_kenn, Autor, Titel, Verlag, ISBN
Buchoriginal: Inventnr, Buchnr, Signatur, Signa1,
Autor, Titel, Verlag, ISBN
a)
b)
Erstelle eine Tabelle Bereich_Süd die alle Adressen aus dem PLZ Bereich 7 enthält.
ergänze die obige Tabelle durch eine anfüge Abfrage durch die Adressen aus dem PLZ
Bereich 8.
Tabellenerzeugung
Mit SQL lässt sich auch eine Vollständige Tabellenstruktur mit Feldnamen und Datentypen
und Primärschlüssel erzeugen.
Syntax:
CREATE TABLE <Tabellennamen> (Feld1 Datentyp, Feld2 Datentyp2, usw.)
Häufige Datentypen:
DateTime
Currency
Double
Short
Long
Counter
Text (<Zeichenzahl>)
LongText








Datum / Uhrzeit
Währung
Dezimalzahl
Integer
Integer
Autowert
Kurzer Text
String
Aufgabe:
Erstelle eine Tabellenstrucktur „Lager“ mit den Feldern:
Nr

Autowert
Anzahl

Integer
Bezeichnung 
Text (30)
Preis

Währung
Aufgabe:
Es soll eine Tabelle „Produkte“ mit den Feldern :
Produkt_Nr,
Bezeichnung
Preis
Bemerkung
Gewicht
Fertigungsdatum
Autowert
30 stelliger Text,
Währung,
LongText,
Double,
DateTime
erstellt werden.
Lösung: CREATE TABLE Produkte ( ProduktNr Counter CONSTRAINT ps PRIMARY
KEY, Bezeichnung Text(30), Preis Currency, Bemerkungen LongText, Gewicht Double,
Fertigungsdatum DateTime);
Um einen Primärschlüssel fest zu legen ist nach dem Betroffenen Feldnamen / Feldtyp
folgendes einzufügen:
PRIMARY KEY
Tabellen verändern
Mir dieser SQL Anweisung lassen sich Felder einer vorhandenen Tabelle hinzufügen oder
entfernen.
Syntax:
Fügt Spalte hinzu:
ALTER TABLE <Tabellenname> ADD COLUMN <Feldname Datentyp>
Löscht komplette Spalten:
ALTER TABLE <Tabellenname> DROP COLUMN <Feldname>
Aufgabe:
Ergänze in der Tabelle Produkte die Felder Typ und Farbe.
Tabelle löschen
Der Befehl löscht eine komplette Tabelle.
Syntax:
DROP TABLE <Tabellenname>
Aufgabe:
Lösche die Tabelle Produkte:
Lösung:
DROP TABLE Produkte;
Herunterladen