Skip to main content

Les vues et contraintes

Voici un exemple de vue qui provient d'un exercice de labo:

-- La vue s'appelle "chateau" et va lister tous les biens de type chateau
CREATE VIEW chateau AS

-- Ici on peut mettre la requête qui permet de lister tous les biens de type chateau
SELECT b.* 
FROM Bien b 
JOIN CATEGORIE_BIEN cb ON cb.ID_CATBIEN = b.ID_CATBIEN 
WHERE cb.DESCRIPTION = 'Château'

-- Cette ligne indique que si on veut ajouter un élément dans la vue, elle doit respecter la condition de la requête
WITH CHECK OPTION;
-- On aurait aussi pu utiliser "WITH READ ONLY" si on veut empécher d'y insérer des données

Ainsi ici on a créé une genre de table spéciale appellée "chateau" que l'on peut ensuite accorder l'accès à un utilisateur. Ainsi cet utilisateur ne pourra insérer que des chateau dans la base de donnée et ne pourra voir que la liste des chateaux et rien d'autre.

Contraintes

On peut aussi ajouter des contraintes directement sur la table, par exemple une clé étrangère ou encore la vérification d'une condition.

-- Modification de la table Alerter pour y ajouter une contrainte que statut ne peut être que L ou N
ALTER TABLE Alerter 
  -- La condition doit toujours être en parenthèse
	ADD CONSTRAINT statutRestriction CHECK (STATUT IN ('L', 'N'));