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;