PostgreSQL SELECT INTO
Résumé : dans ce tutoriel, vous apprendrez à utiliser la déclaration PostgreSQL SELECT INTO
pour créer une nouvelle table à partir du jeu de résultats d’une requête.
Si vous cherchez le moyen de sélectionner des données dans des variables, consultez l’instruction PL/pgSQL SELECT INTO
.
Introduction à l’instruction PostgreSQL SELECT INTO
L’instruction PostgreSQL SELECT INTO
crée une nouvelle table et insère les données retournées par une requête dans la table.
La nouvelle table aura des colonnes dont les noms sont les mêmes que les colonnes du jeu de résultats de la requête. Contrairement à une instruction ordinaire SELECT
, l’instruction SELECT INTO
ne renvoie pas de résultat au client.
Les éléments suivants illustrent la syntaxe de l’instruction PostgreSQL SELECT INTO
:
Code language: SQL (Structured Query Language) (sql)SELECT select_listINTO new_table_nameFROM table_nameWHERE search_condition;
Pour créer une nouvelle table avec la structure et les données dérivées d’un jeu de résultats, vous spécifiez le nom de la nouvelle table après le mot-clé INTO
.
Le mot-clé TEMP
ou TEMPORARY
est facultatif ; il vous permet de créer une table temporaire à la place.
Le mot-clé UNLOGGED
, s’il est disponible, fera de la nouvelle table une table non journalisée.
La clause WHERE
vous permet de spécifier les lignes des tables originales qui doivent être insérées dans la nouvelle table. Outre la clause WHERE
, vous pouvez utiliser d’autres clauses dans l’instruction SELECT
pour l’instruction SELECT INTO
comme INNER JOIN
LEFT JOIN
GROUP BY
, et HAVING
.
Notez que vous ne pouvez pas utiliser l’instruction SELECT INTO
dans PL/pgSQL car il interprète différemment la clause INTO
. Dans ce cas, vous pouvez utiliser l’instruction CREATE TABLE AS
qui offre plus de fonctionnalités que l’instruction SELECT INTO
.
Exemples de SELECT INTO en PL/pgSQL
Nous allons utiliser la table film
de la base de données exemple pour la démonstration.
L’instruction suivante crée une nouvelle table appelée film_r
qui contient les films ayant la cote R
et la durée de location 5 jours provenant de la table film
.
Code language: SQL (Structured Query Language) (sql)SELECT film_id, title, rental_rateINTO TABLE film_rFROM filmWHERE rating = 'R'AND rental_duration = 5ORDER BY title;
Pour vérifier la création de la table, vous pouvez interroger les données de la table film_r
:
Code language: SQL (Structured Query Language) (sql)SELECT * FROM film_r;
L’instruction suivante crée une table temporaire nommée short_film
qui contient les films dont la durée est inférieure à 60 minutes.
Code language: SQL (Structured Query Language) (sql)
Les données suivantes proviennent de la table short_film
:
Code language: SQL (Structured Query Language) (sql)SELECT * FROM short_film;
Dans ce tutoriel, vous avez appris à utiliser l’instruction PostgreSQL SELECT INTO
pour créer une nouvelle table à partir du jeu de résultats d’une requête.
- Ce tutoriel vous a-t-il été utile ?
- OuiNon
.