MS SQL Schnipselübung
Heute mal was sehr Kleines, das mehr als Fingerübung dient und auch die Aktivität meines Blogs zu halten. Ich bin mal wieder durch meine Notizen durch und suchte etwas, was ich an kleinen Sachen, die ich bereits angefangen habe. Und sehe da, ich habe hier noch ein paar SQL-Schnipsel.
In meinem aktuellen Projekt ist die Verwendung von SQL nicht weg zu denken und meine Skills haben sich inzwischen von Grundkenntnissen in Fortgeschritten gewandelt. Vom Experten bin ich noch weit weg, auch wenn andere der Meinung sind, daß man das auch nach wenigen Monaten sein kann. Aber die Anzahl der Jahre und Auseinandersetzen macht einen unterschied, wie sehr man in der Tiefe mit der Technologie vertraut ist und auch wie sehr die eine und andere Sprache sich im Verstand eingeübt hat.
Nichts für ungut, kommen wir zu einer kleinen Übungsaufgabe.
Tools
MS SQL Management Studio, Jetbrains DataGrip oder einem Tool für SQL
Übungsziel
Als Variable soll eine Tabelle angelegt werden, in der ein paar Einträge getätigt werden , Verarbeitet und am Ende Ausgeben. Hierbei soll keine Tabelle in der Datenbank angelegt werden. Praktisch bleiben die Daten nur für das Fertig Script in der Ausführung und werden nicht gespeichert.
Variable anlegen
Statt nur einen Wert in einer Variable zu hinterlegen, sollen gleich ein paar mehr Werte hinterlegt werden. Hier eignet sich die Variable als Tabelle anzulegen. Für die Eindeutigkeit eines Datensatz erhält die Tabelle eine Spalte für den Identifier oder auch Kurz ID, die mit der Einstellung IDENTITY wird von eins beginnend gezählt und mit jedem neuen Datensatz um einen hochzählt.
DECLARE @myTable TABLE(
id INT IDENTITY(1, 1),
Hinweis VARCHAR(1024)
);
Werte eintragen
Das eintragen wird mit INSERT INTO ermöglicht.
INSERT @myTable
(
Hinweis
)
VALUES
('Dies ist der vorläufige text!'),
('ersetzen'),
('Dies ist was anderes!')
Eintrag ändern
Nun soll Text hinzugefügt werden, die im Feld Hinweis mit 'Dies ist' im Anfang stehen.
UPDATE mt
SET mt.Hinweis = mt.Hinweis + ' Hinzugefügter text'
FROM @myTable mt
WHERE mt.Hinweis LIKE 'Dies ist%'
Datensatz überschreiben
Zweites Beispiel wie ein Feld überschrieben werden kann.
UPDATE mt
SET mt.Hinweis = 'Ich bin ein neuer Satz'
FROM @myTable mt
WHERE mt.Hinweis = 'ersetzen'
Ergebnis
Kommen wir zum Ende. Mit einem Select auf die Tabelle, kann nun das Ergebnis aus den verwendeten Vorgängen wiederspiegeln.
SELECT *
FROM @myTable
Zur Vollständigkeit
Nun das Ganze in einem Rutsch. Eine kleine Übung mit MS SQL, jedoch wurden hier nur die Grundbefehle verwendet, so daß dieses Beispiel auch mit anderen Datenbanken funktionieren sollte.
-- Tabellen Variable anlegen
DECLARE @myTable TABLE(
id INT IDENTITY(1, 1),
Hinweis VARCHAR(1024)
);
-- Datensätze hinzufügen
INSERT @myTable
(
Hinweis
)
VALUES
('Dies ist der vorläufige text!'),
('ersetzen'),
('Dies ist was anderes!')
-- Zwischen Stand ausgeben.
SELECT * FROM @myTable
-- Bedingt Test Update Text ergänzen. Dahinter anhängen
UPDATE mt
SET mt.Hinweis = mt.Hinweis + ' Hinzugefügter text'
FROM @myTable mt
WHERE mt.Hinweis LIKE 'Dies ist%'
-- Überschreiben
UPDATE mt
SET mt.Hinweis = 'Ich bin ein neuer Satz'
FROM @myTable mt
WHERE mt.Hinweis = 'ersetzen'
-- Ergebnis ausgeben
SELECT *
FROM @myTable
Kommentare