MySQL-Schnipsel


Im folgenden habe ich ein paar Beispiele gelistet, die im Laufe der Zeit in verschiedenen Variationen (je nach Anwendungsfall) von mir verwendet werden.

Datensätze ermitteln

		# Alle Daten eine Tabelle "member" ausgeben
SELECT * FROM member;

# Alle Nachnamen in der Tabelle "member" ermitteln
# DISTINCT: Nachname wird bei mehreren Datensätzen des gleichen 
#.  Namens einmalig ausgegeben
SELECT DISTINCT lastname FROM member;

# Alle Datensätze ausgeben, deren Nachname "Duck" ist
SELECT * FROM member WHERE firstname = 'Dagobert';
# alle Datensätze ausgeben, deren Nachname mit "Du" beginnt
SELECT * FROM member WHERE lastname LIKE '^Du';

# Alle Datensätze ausgeben in denen in der Spalte "comment" das Wort "Entenhausen" vorkommt
SELECT * FROM comment WHERE text LIKE "%Entenhausen%"

# Alle Datensätze ermitteln und nach Nachname, Vorname absteigend sortiert ausgeben
SELECT * FROM member ORDER BY firstname, lastname;
	

Daten bearbeiten

		# Datensätze einfügen
INSERT INTO member SET firstname='Dagobert', lastname='Duck', city='Entenhausen';
# oder
INSERT INTO member (firstname, lastname, city) VALUES ('Dagobert', 'Duck', 'Entenhausen')

# Datensatz bearbeiten/aktualisieren
UPDATE member SET fistname='Donald', lastname='Duck' WHERE id=123

# Datensatz löschen
DELETE FROM member WHERE id = 123
	

JOINS (Tabellen verbinden)

		# Ermittle alle Nutzer und deren Kommentare im Jahre 2018
SELECT member.firstname, member.lastname, comment.text FROM member
   LEFT JOIN comment ON member.id = comment.authorid
WHERE comment.datecreated >= '2018-01-01' AND date_column < '2019-01-01';
   ORDER BY member.lastname

# Zähle die Fotos in der jeweligen Kategorie und sortiere des Ergebnis
SELECT
   g.name, COUNT(DISTINCT p.uid)
FROM
   domain_model_picture p
LEFT JOIN
   domain_model_gallery g ON p.gallery = g.uid
GROUP BY g.`uid`
ORDER BY g.name
	

Verwaltung

		CREATE DATABASE Entenhausen; # Datenbank "Entenhausen" anlegen
USE Entenhausen; # Zur Datenbank "Entenhausen" wechseln
SHOW DATABASES; # Alle Datenbanken anzeigen
SHOW TABLES; # Alle Tabellen der Datenbank ausgeben
TRUNCATE members; # Tabelle "members" leeren
DROP DATABASE members; # Tabelle "members" löschen
DESCRIBE members; # Formatierung aller Felder der Tabelle "members" ausgeben