Skip to main content

Kleine Sammlung von SQL Befehlen

Melanie Petersen
22. Januar 2013

Meine kleine Sammlung von wichtigen und häufig gebrauchten SQL-Befehlen.

Suchen und Ersetzen

Mit dieser Abfrage wird eine Zeichenkette im Feld X gesucht und durch eine andere ersetzt, dabei ist es möglich auch teile des Feldinhaltes zu ersetzen.

UPDATE tabellenname 
SET `Feldname` = REPLACE(`Feldname`, 'zu ersetzender Wert', 'wird in Wert ersetzt')

Ändern aller Werte in der Spalte

Mit dieser Abfrage werden die Werte in Spalten gesetzt. Als Zusatz kann über das WHERE Statement eine Einschränkung erfolgen auf welche Datensätze die Abfrage Anwendung findet.

UPDATE Tablenname
SET Spalte1 = Wert1,
    Spalte2 = Wert2,
    ...
WHERE Einschränkungen;

Oder

Diese Abfrage bezieht für die Werte welche gesetzt werden sollen eine zweite Tabelle mit ein.

UPDATE Tabellenname1
SET column1 = (SELECT Spalte1
               FROM Tabllenname2
               WHERE Einschränkungen)
WHERE Einschränkungen;

Oder

Hier noch ein Beispiel zum Aktualisieren mehrer Tabellen.

UPDATE Tabelle1, Tabelle2, ... 
SET Spalte1 = Wert1,
    Spalte2 = Wert2,
    ...
WHERE Tablle1.Spalte = Tablle2.Spalte
AND Einschränkungen;

Einfügen von Spalten

ALTER TABLE Tabellenname ADD Feldname varchar(35)

Suchen nach Datensätzen deren Wert X mal in einer Tabelle vorkommt

SELECT * FROM `Tabellenname` GROUP BY `Spaltenname` 
HAVING COUNT( * ) <2 

Diese Abfrage zeigt alle Datensätze deren Wert in einer Spalte X weniger als 2 mal vorkommt.

Doppelte Datensätze mit SQL finden

In SQL ist es relativ einfach doppelte Datensätze mit nur einem SQL-Statement zu finden. Im Beispiel gehen wir von folgenden Informationen aus:

SELECT * , COUNT(Spalte2) FROM Tabelle
GROUP BY Spalte1
HAVING (COUNT(Spalte2) > 1)

Nun bekommt man alle Datensätze der Spalte2 angezeigt, die mehr als einmal in der Tabelle vorhanden sind.

Collation einer Tabelle ändern 

Manchmal kann es vorkommen das man die Collation einer bestehenden Tabelle nachträglich ändern muss. 

ALTER TABLE `Tabelle` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;