Articles

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:

SELECT select_listINTO new_table_nameFROM table_nameWHERE search_condition;
Code language: SQL (Structured Query Language) (sql)

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 JOINLEFT JOINGROUP 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.

PostgreSQL SELECT INTO sample table

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.

SELECT film_id, title, rental_rateINTO TABLE film_rFROM filmWHERE rating = 'R'AND rental_duration = 5ORDER BY title;
Code language: SQL (Structured Query Language) (sql)

Pour vérifier la création de la table, vous pouvez interroger les données de la table film_r :

SELECT * FROM film_r;
Code language: SQL (Structured Query Language) (sql)

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 :

SELECT * FROM short_film;
Code language: SQL (Structured Query Language) (sql)

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

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *