Constraint (constraint) table strong SQL Server
- 12-09-2022
- Toanngo92
- 0 Comments
Mục lục
Einführung von Beschränkungen (Einschränkungen)
Eine der wichtigen Funktionen in SQL Server besteht darin, die Datenintegrität aufrechtzuerhalten und durchzusetzen. Es gibt eine Reihe von Mitteln, um dies zu erreichen, aber eine der am häufigsten verwendeten und bevorzugten Methoden ist die Verwendung von Einschränkungen. Eine Einschränkung ist ein Attribut, das einer Spalte oder einer Reihe von Spalten in einer Tabelle zugewiesen wird, um zu verhindern, dass irgendein inkonsistenter Datenwert eingegeben wird. Einschränkungen werden verwendet, um Geschäftslogikregeln anzuwenden und die Datenintegrität zu erzwingen.
Einschränkungen können beim Erstellen der Tabelle erstellt werden, sind Teil der Tabellendefinition, können während der Erstellung in die Tabelle aufgenommen oder nach der Erstellung eingefügt werden. Einschränkungen können als Spalteneinschränkungen und Tabelleneinschränkungen klassifiziert werden:
- Tabelleneinschränkungen: Kann auf mehrere Spalten in einer Tabelle angewendet werden und wird unabhängig von der Spaltendefinition deklariert. Die Tabelleneinschränkung muss verwendet werden, wenn eine Einschränkung mehr als eine Spalte enthält
- Spaltenbeschränkung: Wird als Teil einer Spaltendefinition angegeben und gilt nur für diese Spalte.
Arten von Einschränkungen in SQL Server:
- PRIMÄRSCHLÜSSEL
- EINZIGARTIG
- UNBEKANNTER SCHLÜSSEL
- ÜBERPRÜFEN
- NICHT NULL
PRIMÄRSCHLÜSSEL (Primärschlüssel)
Eine Tabelle hat normalerweise einen Primärschlüssel, der aus einer eindeutigen Spalte oder einer Kombination von Spalten besteht, um jede Zeile in der Tabelle eindeutig zu identifizieren. Die PRIMARY KEY-Einschränkung wird verwendet, um einen Primärschlüssel zu generieren, um die Integrität der Entität in der Tabelle sicherzustellen.
Hinweis: In einer Tabelle kann nur ein PRIMARY KEY erstellt werden.
Zwei Zeilen in einer Tabelle können nicht denselben Primärschlüsselwert haben, und eine Spalte, die ein Primärschlüssel ist, kann keinen NULL-Wert haben . Wenn eine Primärschlüsseleinschränkung zu vorhandenen Tabellenspalten hinzugefügt wird, überprüft SQL Server daher, ob die Regeln für den Primärschlüssel befolgt werden. Wenn die vorhandenen Spalten nicht den Primärschlüsselregeln entsprechen, wird die Einschränkung nicht hinzugefügt und ein Fehler zurückgegeben.
Syntax zum Hinzufügen des Primärschlüssels zur Spalte beim Hinzufügen einer Tabelle:
CREATE TABLE <table_name> (Column_Name datatype PRIMARY KEY [,column_list])
Zum Beispiel:
create database empDB GO use empDB GO create table EmpContactPhone (Employee_ID int primary key, MobileNumber bigint, serviceProvider varchar(30), LandlineNumber bigint)
Nach erfolgreicher Ausführung des Befehls wird die empDB-Datenbank mit der Employee_ID-Spalte als Primärschlüssel erstellt:
Syntax zum Hinzufügen des Primärschlüssels zur Spalte beim Bearbeiten der Tabelle:
ALTER TABLE <table_name> ADD PRIMARY KEY (<column_name>)
Zum Beispiel:
create database empDB GO use empDB GO create table EmpContactPhone (Employee_ID int, MobileNumber bigint, serviceProvider varchar(30), LandlineNumber bigint) use empDB GO alter table EmpContactPhone alter column Employee_ID int not null; GO alter table EmpContactPhone ADD PRIMARY KEY(Employee_ID) ;
EINZIGARTIG (Einzigartig)
Eindeutige Einschränkungen werden verwendet, um sicherzustellen, dass nur eindeutige Werte in eine Spalte oder einen Satz von Spalten eingegeben werden. Damit können Entwickler sicherstellen, dass keine doppelten Werte eingetragen werden. Primärschlüssel sind immer eindeutig. UNIQUE-Schlüssel erzwingen die Entitätsintegrität, da nach Anwendung der Einschränkungen keine zwei Zeilen in der Tabelle dieselben Werte für die Spalten haben können. Die UNIQUE-Einschränkung lässt Nullwerte zu. Eine Tabelle kann mehr als eine UNIQUE-Einschränkung haben.
Syntax:
create table <table_name> ([column_list,] <column_name> <data_type> UNIQUE [,column_list])
Zum Beispiel:
create table EmpContactPhoneUnique (Employee_ID int, MobileNumber bigint unique, serviceProvider varchar(30), LandlineNumber bigint)
Mit der obigen Syntax meldet SQL beim Einfügen von Daten in die Spalte MobileNumber einen Fehler, wenn andere Duplikate als vorhanden sind, z. B.:
insert into EmpContactPhoneUnique values (1,0782222567,'vinaphone','84') insert into EmpContactPhoneUnique values (2,0782222567,'vinaphone','84')
FREMDSCHLÜSSEL (Fremdschlüssel)
Ein Fremdschlüssel in einer Tabelle ist eine Spalte, die auf einen Primärschlüssel oder eine eindeutige Spalte in einer Tabelle zeigt. Fremdschlüsseleinschränkungen werden verwendet, um die referenzielle Integrität zu erzwingen. Ein Fremdschlüssel kann als Beziehung zwischen zwei Tabellen verstanden werden, um ein relationales Datenbankschema zu bilden.
Hinweis: Der Fremdschlüssel dieser Tabelle muss mit dem Primärschlüssel einer anderen Tabelle verknüpft werden, andernfalls gibt die Initialisierungsanweisung einen Fehler aus
Die Syntax für Fremdschlüssel lautet wie folgt:
CREATE TABLE <table_name1>([column_list,]) <column_name> <datatype> FOREIGN KEY REFFERENCES <table_name> (<pk_column_name> [,column_list])
Erklären:
- Tabellenname: Der Name der Tabelle, auf die die Primärschlüsselspalte verweist
- <pk_column_name>: Spaltenname des Primärschlüssels der Tabelle
Zum Beispiel:
create database empDB GO use empDB GO create table EmpContactPhone (Employee_ID int, MobileNumber bigint, serviceProvider varchar(30), LandlineNumber bigint) use empDB GO alter table EmpContactPhone alter column Employee_ID int not null; GO alter table EmpContactPhone ADD PRIMARY KEY(Employee_ID) ; create table EmpPhoneExpenses (Expense_ID int primary key identity, Employee_ID int FOREIGN KEY REFERENCES EmpContactPhone(Employee_ID),Amount bigint)
Im obigen Beispiel verstehen wir, dass die Employee_ID -Spalte der EmpContactPhone- Tabelle einen Fremdschlüssel hat und verknüpfen ihn mit der Employee_ID -Spalte, die der Primärschlüssel der EmpContactPhone- Tabelle ist.
ÜBERPRÜFEN
Diese Einschränkung wird verwendet, um die Grenze der Werte zu überprüfen, die in der Spalte platziert werden können. Die CHECK-Einschränkung erzwingt die Datenintegrität.
Beispielsweise könnte eine Check-Einschränkung eingeführt werden, wenn der für die Spalte für das Wähleralter eingegebene Wert größer oder gleich 18 sein muss.
Wenn die für die Spalte eingegebenen Daten nicht der Bedingung entsprechen, schlägt die Einfügung fehl.
Die Check-Einschränkung funktioniert durch Angabe einer Suchbedingung, die als TRUE, FALSE oder undefiniert ausgewertet werden kann. Werte, die zu FALSE ausgewertet werden, werden zurückgewiesen. Für eine einzelne Spalte können mehrere CHECK-Einschränkungen angegeben werden. Eine einzelne CHECK-Einschränkung kann auch auf mehrere Spalten angewendet werden, indem sie auf Tabellenebene erstellt wird.
Syntax:
Zum Beispiel:
create table Employee (ID int primary key identity, Name nvarchar(30), Phone varchar(30), Age int check (Age > 18))
Versuchen Sie im nächsten Schritt, das Einfügen von Daten in die Mitarbeitertabelle mit Daten zu testen, die gegen die Einschränkung verstoßen:
insert into Employee values (N'Toan Ngo Vinh','0911111111',15)
NICHT NULL
Die Not-Null-Einschränkung stellt sicher, dass ein Spaltenwert nicht null sein kann. Wird verwendet, um die Integrität und Logik von Daten sicherzustellen, ähnlich wie bei der Einschränkung CHECK