Projection (SELECT)
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectifs
Savoir récupérer les valeurs d'attributs spécifiques.
Savoir ajouter des résultats de fonction aux résultats d'une sélection.
Mise en situation
Souvent, les informations que vous voulez consulter dans une base de données sont spécifiques. Par exemple, si vous avez créé une table qui répertorie les animaux, vous aurez un attribut pour le nom commun, un pour le nom scientifique, un pour la taille moyenne, un pour le nombre de pattes, etc.
Cette table pourrait contenir des dizaines d'attributs : si vous voulez récupérer tous les animaux à six pattes, il serait pertinent de n'afficher que leur nom.
SQL fournit la syntaxe pour restreindre les résultats d'une requête de sélection aux valeurs des attributs qui vous intéressent, et permet même d'enrichir le résultat avec des valeurs extérieures à la table, comme la date du jour.
Définition : Projection
Une projection est un type de sélection où seulement une partie des attributs des tables choisies est retenue pour le résultat.
Syntaxe : Clause SELECT
Supposons que l'on ait la table suivante définie comme :
CREATE TABLE R(
p1 INTEGER,
p2 INTEGER,
--- d'autres attributs ...
pn INTEGER);
On peut projeter sur les trois premiers attributs de cette table en utilisant :
SELECT p1, p2, p3
FROM R;
Exemple : Illustration d'un projection

Ici, on ne garde que les attributs A
et C
de la table R1
.
Exemple :
CREATE TABLE parent (
id INTEGER PRIMARY KEY,
nom VARCHAR(255),
prenom VARCHAR(255),
age INTEGER CHECK (age > 0)
);
INSERT INTO parent VALUES (1, 'Brasseur', 'Alexandre', 91);
INSERT INTO parent VALUES (2, 'Brasseur', 'Pierre', 67);
SELECT prenom, nom
FROM parent;
prenom | nom
-----------+----------
Alexandre | Brasseur
Pierre | Brasseur
Syntaxe : Alias de table
Il est possible de redéfinir le nom des relations au sein de la requête afin d'en simplifier la syntaxe.
SELECT t1.attribut1
FROM table1 t1
Exemple :
SELECT p.prenom, p.nom
FROM parent p;
prenom | nom
-----------+----------
Alexandre | Brasseur
Pierre | Brasseur
Syntaxe : Alias d'attribut (AS)
Il est possible de redéfinir le nom des propriétés de la relation résultat.
SELECT attribut1 AS a1, attribut2 AS a2
FROM table;
Exemple :
SELECT p.prenom AS prenom_parent, p.nom AS nom_parent
FROM parent p;
prenom_parent | nom_parent
---------------+------------
Alexandre | Brasseur
Pierre | Brasseur
Complément : Projection de constante
Il est possible de projeter directement des constantes (on utilisera généralement un alias d'attribut pour nommer la colonne).
SELECT constante AS nom;
Cette requête renverra une table avec une seule ligne et une seule colonne à la valeur de constante.
Exemple :
SELECT p.prenom AS prenom_parent, p.nom AS nom_parent, 'parent' AS statut
FROM parent p;
prenom_parent | nom_parent | statut
---------------+------------+--------
Alexandre | Brasseur | parent
Pierre | Brasseur | parent
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.