PostgreSQL Contraintes : types avec exemple
โก Rรฉsumรฉ intelligent
PostgreSQL Les contraintes appliquent six rรจgles d'intรฉgritรฉ intรฉgrรฉes au niveau de la base de donnรฉes : UNIQUE, NOT NULL, CHECK, PRIMARY KEY, FOREIGN KEY et EXCLUSION. LessCes documents couvrent la syntaxe, les exemples et les cas d'application de chaque rรจgle.

Qu'est-ce que la contrainte ?
Les types de donnรฉes sont utilisรฉs pour limiter le type d'informations pouvant รชtre stockรฉes dans une table. Mais il y a 2 problรจmes avec cette approche.
- Problรจme 1: Les restrictions imposรฉes par les types de donnรฉes ne sont pas adaptรฉes ร certaines applications. Par exemple, une colonne contenant le prix d'un article ne doit accepter que des valeurs positives. Cependant, il nโexiste pas de type de donnรฉes spรฉcifique qui accepte uniquement le nombre positif.
- Problรจme 2: Vous souhaiterez peut-รชtre limiter les informations contenues dans les donnรฉes d'une ligne/colonne par rapport ร d'autres colonnes ou lignes. Par exemple, une table contenant des informations sur les รฉlรฉments ne doit comporter qu'une seule ligne pour chaque contrainte de colonne unique.
Pour surmonter ces problรจmes et dรฉfinir ces rรจgles, vous pouvez utiliser contraintes dans PostgreSQL. En termes simples, les contraintes sont des rรจgles que vos donnรฉes doivent suivre. L'ajout de contraintes de table permet au systรจme de base de donnรฉes de garantir l'intรฉgritรฉ des donnรฉes.
Par consรฉquent, si un utilisateur tente de stocker des donnรฉes dans une colonne qui viole une contrainte dรฉfinie, un message d'erreur doit s'afficher.
Type de PostgreSQL contraintes
Jetons un coup d'oeil ร diffรฉrents types de PostgreSQL contrainte que vous pouvez crรฉer pour garantir lโexactitude des donnรฉes :
- Unique
- Non nul
- Vรฉrifiez Constraint
- Clรฉ primaire
- Clรฉ รฉtrangรจre
- Contrainte d'exรฉcution
PostgreSQL Contrainte UNIQUE
Les contraintes uniques vous aident ร garantir que les donnรฉes contenues dans une colonne ou un groupe de contraintes de colonne sont uniques.
Exemple
CREATE TABLE Item( Item_no integer UNIQUE, Name text, );
PostgreSQL Contrainte NOT NULL
Une contrainte non nulle dรฉfinit qu'une colonne ne doit jamais avoir une valeur nulle. Ce type de contrainte est trรจs similaire ร la crรฉation dโune contrainte de vรฉrification. Cependant, PostgreSQL crรฉe une contrainte non nulle, qui est plus efficace. Le problรจme avec cette mรฉthode est que vous ne pouvez pas donner de noms explicites aux contraintes non nulles.
La contrainte non nulle n'est pas une contrainte par dรฉfaut PostgreSQL standard et ne doit pas รชtre utilisรฉ dans les applications portables. Il a รฉtรฉ ajoutรฉ plus tard dans PostgreSQL pour le rendre compatible avec d'autres Systรจmes SGBD. Beaucoup l'utilisent car il permet de basculer facilement la contrainte dans un fichier de script.
syntaxe:
CREATE TABLE Item ( product no integer NULL, Item_name text NULL, Itm_price numeric NULL );
PostgreSQL CONTRAINTE DE VรRIFICATION
Une contrainte de vรฉrification vous aide ร spรฉcifier que la valeur d'une colonne doit รชtre une expression boolรฉenne.
Le PostgreSQL La contrainte check se compose du mot-clรฉ CHECK, qui est suivi d'une expression entre parenthรจses. La contrainte de vรฉrification Postgres devrait impliquer la colonne qui devrait รชtre contrainte, sinon cela n'a aucun sens.
syntaxe:
CREATE TABLE Item( Item_id INTEGER PRIMARY KEY, name VARCHAR(20), Item_price NUMERIC CHECK(price>0) );
Exemple :
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) );
PostgreSQL Contrainte de clรฉ primaire
Une contrainte de clรฉ primaire vous permet d'utiliser une colonne ou un groupe de colonnes comme identifiant unique pour les lignes de la table. Pour dรฉfinir des contraintes de clรฉ primaire, vos valeurs dรฉclarรฉes doivent รชtre ร la fois uniques et non nulles. Cela permet ร deux dรฉfinitions de table d'accepter les mรชmes donnรฉes.
syntaxe:
Create Table Item( Item_no, integer PRIMARY KEY, Item_name text, Item_Price numeric );
Exemple 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) );
Exemple 2:
CREATE TABLE first( A1 INTEGER. A2 INTEGER. PRIMARY KEY (tl) ); Second way CREATE TABLE test( tl INTEGER PRIMARY KEY, t2 INTEGER. );
Exemple 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
PostgreSQL Contrainte de clรฉ รฉtrangรจre
Une contrainte de clรฉ รฉtrangรจre spรฉcifie que les valeurs d'une colonne ou d'un groupe de colonnes doivent correspondre aux valeurs apparaissant dans une ligne d'une autre table. Cela permet d'รฉtablir l'intรฉgritรฉ rรฉfรฉrentielle entre deux tables associรฉes.
Supposons que vous disposiez d'une table qui stocke les commandes de diffรฉrents produits. Vous voulez vous assurer que le tableau contient des commandes de produits qui existent. Donc, ici, vous devez dรฉfinir une contrainte de clรฉ รฉtrangรจre dans la table des commandes qui fait rรฉfรฉrence ร la table des produits.
syntaxe:
CREATE TABLE ( id INTEGER PRIMARY KEY. name VARCHAR(IO) >; CREATE TABLE testable Id INTEGER PRIMARY KEY read INTEGER REFERENCES (id) );
Exemple 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 );
PostgreSQL Contrainte d'exclusion
Les contraintes d'exclusion vous aident ร vous assurer que si deux lignes sont comparรฉes l'une ร l'autre sur les colonnes ou expressions spรฉcifiรฉes avec les opรฉrateurs spรฉcifiรฉs, au moins une de ces comparaisons d'opรฉrateurs renverra une valeur nulle ou fausse. L'ajout de ceci PostgreSQL la contrainte crรฉera automatiquement un index du type spรฉcifiรฉ dans la dรฉclaration de contrainte.
Exemple :
Par exemple, ce qui suit PostgreSQL L'instruction crรฉe une nouvelle table appelรฉe School et ajoute cinq colonnes.
CREATE TABLE SCHOOL6( STDID INT PRIMARY KEY NOT NULL, STDNAME TEXT NOT NULL, STDAGE INT NOT NULL, FEEDBACK CHAR(50), STANDARD INT NOT NULL,
Par exemple, ce qui suit PostgreSQL L'instruction crรฉe une nouvelle table appelรฉe Branch, qui ajoute trois colonnes. La colonne STD_ID est la clรฉ รฉtrangรจre et fait rรฉfรฉrence au champ ID de la table SCHOOL6.
CREATE TABLE BRANCH ( BRANCHCODE INT PRIMARY KEY NOT NULL, BRAMCHNAME CHAR(50) NOT NULL, STD_ID INT references SCHOOL6(ID) );
