PostgreSQL Einschränkungen: Typen mit Beispiel
Was ist Einschränkung?
Datentypen werden verwendet, um die Art der Informationen einzuschränken, die in einer Tabelle gespeichert werden können. Bei diesem Ansatz gibt es jedoch zwei Probleme.
- Ausgabe 1: Durch Datentypen erzwungene Einschränkungen sind für bestimmte Anwendungen nicht ausreichend. Beispielsweise sollte eine Spalte mit einem Artikelpreis nur positive Werte akzeptieren. Es gibt jedoch keinen spezifischen Datentyp, der nur die positive Zahl akzeptiert.
- Ausgabe 2: Möglicherweise möchten Sie die Informationen in den Daten einer Zeile/Spalte im Verhältnis zu anderen Spalten oder Zeilen einschränken. Beispielsweise sollte eine Tabelle mit Artikelinformationen nur eine Zeile für jede eindeutige Spaltenbeschränkung enthalten.
Um solche Probleme zu überwinden und diese Regeln zu definieren, können Sie Folgendes verwenden: Einschränkungs in PostgreSQL. Einfach ausgedrückt sind Einschränkungen Regeln, denen Ihre Daten folgen müssen. Durch das Hinzufügen von Tabelleneinschränkungen kann das Datenbanksystem die Datenintegrität erzwingen.
Wenn ein Benutzer versucht, Daten in einer Spalte zu speichern, die eine definierte Einschränkung verletzt, sollte daher eine Fehlermeldung angezeigt werden.
Art der PostgreSQL Einschränkungen
Werfen wir einen Blick auf verschiedene Arten von PostgreSQL Einschränkung, die Sie erstellen können, um die Datenkorrektheit sicherzustellen:
- So einzigartig wie Sie:
- Nicht null
- Einschränkung prüfen
- Primärschlüssel
- Unbekannter Schlüssel
- Ausführungsbeschränkung
1) PostgreSQL Einzigartige Beschränkung
Mit eindeutigen Einschränkungen können Sie sicherstellen, dass die in einer Spalte oder einer Gruppe von Spalteneinschränkungen enthaltenen Daten eindeutig sind.
Beispiel
CREATE TABLE Item( Item_no integer UNIQUE, Name text, );
2) KEINE Null-Einschränkungen
Eine Nicht-Null-Einschränkung definiert, dass eine Spalte niemals einen Nullwert haben sollte. Diese Art von Einschränkung ist der Erstellung einer Check-Einschränkung sehr ähnlich. Jedoch, PostgreSQL Erstellt eine Nicht-Null-Einschränkung, die effizienter ist. Das Problem bei dieser Methode besteht darin, dass Sie nicht-null-Einschränkungen keine expliziten Namen geben können.
Die Nicht-Null-Einschränkung ist kein Standardwert PostgreSQL Standard und sollte nicht in portablen Anwendungen verwendet werden. Es wurde später hinzugefügt in PostgreSQL um es mit anderen kompatibel zu machen DBMS-Systeme. Viele verwenden es, weil es das Umschalten der Einschränkung in einer Skriptdatei erleichtert.
Syntax:
CREATE TABLE Item ( product no integer NULL, Item_name text NULL, Itm_price numeric NULL );
3) PostgreSQL Überprüfen Sie die Einschränkungen
Mithilfe einer Prüfeinschränkung können Sie angeben, dass der Wert in einer Spalte ein boolescher Ausdruck sein muss.
Die PostgreSQL Die Check-Einschränkung besteht aus dem Schlüsselwort CHECK, dem ein Ausdruck in Klammern folgt. Die Prüfeinschränkung Postgres sollte die Spalte umfassen, die eingeschränkt werden soll, sonst ergibt es keinen Sinn.
Syntax:
CREATE TABLE Item( Item_id INTEGER PRIMARY KEY, name VARCHAR(20), Item_price NUMERIC CHECK(price>0) );
Ejemplo:
CREATE TABLE Emp( ID INTEGER primary key, First_name VARCHAR(20), Last_name VARCHAR(20), Gender CHAR(l) check(gender gender='M'), Salary INTEGER NOT NULL, Dept_Num INTEGER );
CREATE TABLE ITEM( Id INTEGER PRIMARY KEY, name VARCHAR(15), price numeric CHECK (price > 0) );
4) Primärschlüsseleinschränkungen
Mit einer Primärschlüsseleinschränkung können Sie eine Spalte oder eine Gruppe von Spalten als eindeutigen Bezeichner für Zeilen in der Tabelle verwenden. Um Primärschlüsseleinschränkungen zu definieren, sollten Ihre deklarierten Werte sowohl eindeutig als auch nicht null sein. Dadurch können zwei Tabellendefinitionen dieselben Daten akzeptieren.
Syntax:
Create Table Item( Item_no, integer PRIMARY KEY, Item_name text, Item_Price numeric );
Beispiel 1:
CREATE TABLE Employee( ID INTEGER PRIMARY KEY Fname VARCHAR(20), Lname VARCHAR(20), Gender CHAR(l), Salary INTEGER NOT NULL, Dept INTEGER, UNIQUE(FNAME, LNAME) );
Beispiel 2:
CREATE TABLE first( A1 INTEGER. A2 INTEGER. PRIMARY KEY (tl) ); Second way CREATE TABLE test( tl INTEGER PRIMARY KEY, t2 INTEGER. );
Beispiel 3:
CREATE TABLE Items ( Item_no integer UNIQUE NOT NULL, name text, price numeric CREATE TABLE Items ( Items_no no integer PRIMARY KEY, name text, price numeric
5) Fremdschlüsseleinschränkungen
Eine Fremdschlüsseleinschränkung gibt an, dass die Werte in einer Spalte oder einer Spaltengruppe mit den Werten übereinstimmen müssen, die in einer Zeile einer anderen Tabelle erscheinen. Dadurch können Sie die referenzielle Integrität zwischen zwei verbundenen Tabellen herstellen.
Nehmen wir an, Sie haben eine Tabelle, in der Bestellungen für verschiedene Produkte gespeichert sind. Sie möchten sicherstellen, dass die Tabelle Bestellungen vorhandener Produkte enthält. Hier müssen Sie also eine Fremdschlüsseleinschränkung in der Auftragstabelle definieren, die auf die Produkttabelle verweist.
Syntax:
CREATE TABLE ( id INTEGER PRIMARY KEY. name VARCHAR(IO) >; CREATE TABLE testable Id INTEGER PRIMARY KEY read INTEGER REFERENCES (id) );
Beispiel 2:
CREATE TABLE Student ( Std_ID INTEGER primary key, First_name VARCHAR(20), Last_name VARCHAR(20), Gender CHAR(l), Steam, VARCHAR(20), Dept_NUM INTEGER REFERENCES Department );
6) Ausschlussbeschränkungen
Ausschlussbeschränkungen helfen Ihnen sicherzustellen, dass, wenn zwei beliebige Zeilen in den angegebenen Spalten oder Ausdrücken mit angegebenen Operatoren miteinander verglichen werden, mindestens einer dieser Operatorvergleiche einen Null- oder falschen Wert zurückgibt. Das Hinzufügen dieser PostgreSQL Die Einschränkung erstellt automatisch einen Index des in der Einschränkungsdeklaration angegebenen Typs.
Ejemplo:
Zum Beispiel die folgenden PostgreSQL Die Anweisung erstellt eine neue Tabelle namens School und fügt fünf Spalten hinzu.
CREATE TABLE SCHOOL6( STDID INT PRIMARY KEY NOT NULL, STDNAME TEXT NOT NULL, STDAGE INT NOT NULL, FEEDBACK CHAR(50), STANDARD INT NOT NULL,
Zum Beispiel die folgenden PostgreSQL Die Anweisung erstellt eine neue Tabelle namens Branch, die drei Spalten hinzufügt. Die Spalte STD_ID ist der Fremdschlüssel und verweist auf das ID-Feld der Tabelle SCHOOL6.
CREATE TABLE BRANCH ( BRANCHCODE INT PRIMARY KEY NOT NULL, BRAMCHNAME CHAR(50) NOT NULL, STD_ID INT references SCHOOL6(ID) );