SQL Constraints
SQL-Einschränkungen
SQL-Constraints werden verwendet, um Regeln für Daten in Tabellen festzulegen.
Wenn ein Datenverhalten gegen Constraints verstößt, wird dieses Verhalten durch den Constraint beendet.
Constraints können beim Erstellen der Tabelle (über die CREATE TABLE-Anweisung) oder nach dem Erstellen der Tabelle (über die ALTER TABLE-Anweisung) angegeben werden.
SQL CREATE TABLE + CONSTRAINT-Syntax
CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);
In SQL gibt es die folgenden Constraints:
- NOT NULL- Gibt an, dass eine Spalte keine NULL-Werte speichern kann.
- UNIQUE- Stellt sicher, dass jede Zeile in einer Spalte einen eindeutigen Wert haben muss.
- PRIMARY KEY- Eine Kombination aus NOT NULL und UNIQUE. Stellt sicher, dass eine Spalte (oder eine Kombination aus zwei oder mehr Spalten) eine eindeutige Kennung hat, was hilft, einen bestimmten Datensatz in einer Tabelle leichter und schneller zu finden.
- FOREIGN KEY- Stellt die referenzielle Integrität sicher, indem Daten in einer Tabelle mit Werten in einer anderen Tabelle übereinstimmen.
- CHECK- Stellt sicher, dass Werte in einer Spalte festgelegte Bedingungen erfüllen.
- DEFAULT- Gibt einen Standardwert an, wenn einer Spalte kein Wert zugewiesen wird.
- INDEX- Wird für den schnellen Zugriff auf Daten in Datenbanktabellen verwendet.
1. NOT NULL
Stellt sicher, dass eine Spalte keine NULL-Werte haben kann.
Beispiel
StudentID INT NOT NULL,
LastName VARCHAR(50) NOT NULL,
FirstName VARCHAR(50),
Age INT
);
2. UNIQUE
Stellt sicher, dass alle Werte in einer Spalte eindeutig sind.
Beispiel
EmployeeID INT NOT NULL UNIQUE,
LastName VARCHAR(50) NOT NULL,
FirstName VARCHAR(50),
Email VARCHAR(100) UNIQUE
);
3. PRIMARY KEY
Identifiziert jeden Zeilendatensatz in einer Tabelle eindeutig. Die PRIMARY KEY-Einschränkung ist eine Kombination aus NOT NULL und UNIQUE.
Beispiel
OrderID INT NOT NULL PRIMARY KEY,
OrderNumber INT NOT NULL,
OrderDate DATE NOT NULL
);
4. FOREIGN KEY
Stellt sicher, dass Werte in einer Tabelle mit Werten in einer anderen Tabelle übereinstimmen und stellt dadurch eine Beziehung zwischen den beiden Tabellen her.
Beispiel
OrderID INT NOT NULL PRIMARY KEY,
OrderNumber INT NOT NULL,
CustomerID INT,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
5. CHECK
Stellen Sie sicher, dass Werte in einer Spalte bestimmte Bedingungen erfüllen.
Beispiel
ProductID INT NOT NULL PRIMARY KEY,
ProductName VARCHAR(100) NOT NULL,
Price DECIMAL(10, 2) CHECK (Preis >= 0)
);
6. DEFAULT
Legt einen Standardwert für eine Spalte fest.
Beispiel
CustomerID INT NOT NULL PRIMARY KEY,
LastName VARCHAR(50) NOT NULL,
FirstName VARCHAR(50),
JoinDate DATE DEFAULT GETDATE()
);
7. INDEX
Wird für schnellen Zugriff auf Daten in Datenbanktabellen verwendet.
CREATE INDEX idx_lastname ON Employees (LastName);
Umfassendes Beispiel
Beispiel
StudentID INT NOT NULL PRIMARY KEY,
LastName VARCHAR(50) NOT NULL,
FirstName VARCHAR(50) NOT NULL,
Age INT CHECK (Age >= 18),
Email VARCHAR(100) UNIQUE,
EnrollmentDate DATE DEFAULT GETDATE()
);
Durch diese Einschränkungen kann das Datenbankmanagementsystem die Konsistenz, Integrität und Genauigkeit der Daten gewährleisten.
In den folgenden Abschnitten werden wir jede Einschränkung im Detail erläutern.
Andere Erweiterungen