Wichtige DDL- und DML-Befehle: Erstellen, Auswählen, Aktualisieren, Löschen
Lernen Sie die grundlegenden MySQL DDL- und DML-Befehle: CREATE TABLE, INSERT, SELECT, UPDATE und DELETE.
Wichtige DDL- und DML-Befehle: Erstellen, Auswählen, Aktualisieren, Löschen
Die Arbeit mit MySQL beginnt normalerweise mit zwei Aufgaben: dem Definieren Ihrer Tabellen und dem Arbeiten mit den Zeilen darin. Die wesentlichen DDL- und DML-Befehle sind die Art und Weise, wie Sie dies sicher tun.
DDL-Befehle definieren Datenbankobjekte wie Tabellen. DML-Befehle fügen Tabellendaten ein, lesen sie aus, aktualisieren und löschen sie. Die folgenden Beispiele verwenden eine kleine products-Tabelle, damit Sie die Befehle im Kontext sehen können.
Data Definition Language (DDL): Tabellen erstellen
DDL-Befehle befassen sich mit dem Schema und der Struktur Ihrer Datenbankobjekte. Der grundlegendste DDL-Befehl für die Datenspeicherung ist CREATE TABLE, mit dem Sie die Blaupause für Ihre Daten definieren können.
CREATE TABLE Syntax
Die grundlegende Syntax zum Erstellen einer Tabelle umfasst die Angabe des Tabellennamens und dann die Definition seiner Spalten, einschließlich ihrer Datentypen und etwaiger Einschränkungen.
CREATE TABLE table_name (
column1 datatype constraints,
column2 datatype constraints,
column3 datatype constraints,
...
);
table_name muss innerhalb der aktuellen Datenbank eindeutig sein. Jede Spalte benötigt einen Namen, einen Datentyp und optionale Einschränkungen wie NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY oder DEFAULT value.
CREATE TABLE Beispiel
Erstellen wir eine einfache products-Tabelle, um Informationen über Artikel in einem Inventar zu speichern:
CREATE TABLE products (
product_id INT AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(100) NOT NULL UNIQUE,
category VARCHAR(50),
price DECIMAL(10, 2) NOT NULL,
stock_quantity INT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
In diesem Beispiel:
product_idist eine Ganzzahl, die automatisch inkrementiert wird und als Primärschlüssel dient.product_nameist eine erforderliche Zeichenfolge, die eindeutig sein muss.priceist eine erforderliche Dezimalzahl.stock_quantityhat standardmäßig den Wert 0, wenn nicht anders angegeben.created_atzeichnet den Zeitstempel auf, wann die Zeile erstellt wurde.
Data Manipulation Language (DML): Arbeiten mit Daten
DML-Befehle werden verwendet, um die Datensätze (Zeilen) in Ihren Datenbanktabellen zu verwalten. Sie sind die am häufigsten verwendeten Befehle für den täglichen Datenbankbetrieb.
INSERT Befehl: Hinzufügen neuer Daten
Der INSERT-Befehl wird verwendet, um neue Datenzeilen in eine Tabelle einzufügen.
INSERT Syntax
Es gibt mehrere Möglichkeiten, INSERT zu verwenden:
Werte für alle Spalten angeben:
INSERT INTO table_name VALUES (value1, value2, value3, ...);Die Reihenfolge der Werte muss mit der Reihenfolge der Spalten in der Tabellendefinition übereinstimmen.
Werte für bestimmte Spalten angeben:
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);Dies wird im Allgemeinen bevorzugt, da es lesbarer ist und weniger anfällig für Fehler ist, wenn sich die Tabellenstruktur ändert.
INSERT Beispiel
Verwendung unserer products-Tabelle:
-- Einfügen von Werten für alle Spalten (unter Annahme von AUTO_INCREMENT für product_id)
INSERT INTO products (product_name, category, price, stock_quantity)
VALUES ('Laptop Pro', 'Elektronik', 1200.50, 50);
-- Einfügen von Werten für bestimmte Spalten
INSERT INTO products (product_name, price)
VALUES ('Mechanische Tastatur', 75.99);
-- Einfügen mehrerer Zeilen auf einmal
INSERT INTO products (product_name, category, price, stock_quantity)
VALUES
('Ergonomische Maus', 'Elektronik', 25.00, 120),
('Schreibtischlampe', 'Haushaltswaren', 45.00, 75);
SELECT Befehl: Daten abrufen
Der SELECT-Befehl ist der Eckpfeiler des Datenabrufs. Er ermöglicht es Ihnen, Ihre Datenbank abzufragen und basierend auf verschiedenen Kriterien bestimmte Daten abzurufen.
SELECT Syntax
SELECT column1, column2, ...
FROM table_name
WHERE condition
ORDER BY column_name [ASC|DESC]
LIMIT number;
column1, column2, ...: Die Spalten, die Sie abrufen möchten. Verwenden Sie*, um alle Spalten auszuwählen.FROM table_name: Die Tabelle, die Sie abfragen.WHERE condition: (Optional) Filtert die Zeilen basierend auf einer angegebenen Bedingung. Bedingungen können Vergleichsoperatoren (=,!=,>,<,>=,<=), logische Operatoren (AND,OR,NOT) und Mustervergleiche (LIKE) umfassen.ORDER BY column_name [ASC|DESC]: (Optional) Sortiert die Ergebnismenge nach einer oder mehreren Spalten.ASCfür aufsteigend (Standard),DESCfür absteigend.LIMIT number: (Optional) Beschränkt die Anzahl der zurückgegebenen Zeilen.
SELECT Beispiele
-- Alle Spalten für alle Produkte auswählen
SELECT *
FROM products;
-- Nur den Namen und Preis der Produkte auswählen
SELECT product_name, price
FROM products;
-- Produkte in der Kategorie 'Elektronik' auswählen
SELECT *
FROM products
WHERE category = 'Elektronik';
-- Produkte mit einem Preis größer als 100 auswählen, sortiert nach Preis absteigend
SELECT product_name, price
FROM products
WHERE price > 100
ORDER BY price DESC;
-- Die 5 teuersten Produkte auswählen
SELECT product_name, price
FROM products
ORDER BY price DESC
LIMIT 5;
-- Produkte auswählen, deren Name mit 'L' beginnt
SELECT *
FROM products
WHERE product_name LIKE 'L%';
UPDATE Befehl: Vorhandene Daten ändern
Der UPDATE-Befehl ermöglicht es Ihnen, vorhandene Datensätze in einer Tabelle zu ändern.
UPDATE Syntax
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
table_name: Die Tabelle, die die zu aktualisierenden Datensätze enthält.SET column1 = value1, ...: Gibt an, welche Spalten aktualisiert werden sollen und deren neue Werte.WHERE condition: Entscheidend! Diese Klausel bestimmt, welche Zeilen aktualisiert werden. Wenn sie weggelassen wird, werden alle Zeilen in der Tabelle aktualisiert.
UPDATE Beispiele
-- Erhöhen Sie den Preis des 'Laptop Pro' um 50
UPDATE products
SET price = price + 50.00
WHERE product_name = 'Laptop Pro';
-- Aktualisieren Sie die Kategorie und den Bestand für die 'Mechanische Tastatur'
UPDATE products
SET category = 'Zubehör', stock_quantity = 100
WHERE product_name = 'Mechanische Tastatur';
-- **WARNUNG**: Dies würde den Preis ALLER Produkte auf 10.00 aktualisieren
-- UPDATE products
-- SET price = 10.00;
Tipp: Verwenden Sie beim Aktualisieren immer eine WHERE-Klausel, um sicherzustellen, dass Sie nur die beabsichtigten Datensätze ändern. Testen Sie Ihre WHERE-Klausel zuerst mit einer SELECT-Anweisung, um zu überprüfen, ob sie die richtigen Zeilen anspricht.
DELETE Befehl: Daten entfernen
Der DELETE-Befehl wird verwendet, um Zeilen aus einer Tabelle zu entfernen.
DELETE Syntax
DELETE FROM table_name
WHERE condition;
table_name: Die Tabelle, aus der Zeilen entfernt werden sollen.WHERE condition: Entscheidend! Diese Klausel gibt an, welche Zeilen gelöscht werden sollen. Wenn sie weggelassen wird, werden alle Zeilen in der Tabelle gelöscht.
DELETE Beispiele
-- Löschen Sie das Produkt mit dem Namen 'Schreibtischlampe'
DELETE FROM products
WHERE product_name = 'Schreibtischlampe';
-- Löschen Sie alle Produkte, die nicht mehr auf Lager sind (stock_quantity ist 0)
DELETE FROM products
WHERE stock_quantity = 0;
-- **WARNUNG**: Dies würde ALLE Datensätze aus der Tabelle 'products' löschen!
-- DELETE FROM products;
Warnung: Ähnlich wie bei UPDATE ist das Weglassen der WHERE-Klausel in einer DELETE-Anweisung eine destruktive Operation, die alle Daten aus der Tabelle entfernt. Gehen Sie mit äußerster Vorsicht vor.
Wichtige Erkenntnis
Das Verständnis und die effektive Verwendung von DDL- und DML-Befehlen ist grundlegend für die Datenbankverwaltung. Mit CREATE TABLE können Sie die Struktur Ihrer Daten definieren, während INSERT, SELECT, UPDATE und DELETE Sie in die Lage versetzen, diese Daten zu befüllen, abzufragen, zu ändern und zu verwalten.
Indem Sie diese Befehle mit klaren WHERE-Klauseln üben, insbesondere für UPDATE und DELETE, können Sie eine solide Grundlage für die Arbeit mit MySQL-Datenbanken schaffen und die Integrität und Genauigkeit Ihrer Daten sicherstellen. Denken Sie immer daran, Ihre Daten zu sichern, bevor Sie potenziell destruktive Operationen durchführen.