Mysql
 sql >> Base de données >  >> RDS >> Mysql

Créer une nouvelle table en sélectionnant des données d'autres tables avec CREATE TABLE AS

En utilisant l'instruction de manipulation de données SQL, une nouvelle table temporaire, de sauvegarde ou régulière peut être créée et remplie ou insérée avec des données d'une autre table ou de tables récupérées par l'instruction SELECT. Le langage de manipulation de données SQL est CREATE TABLE AS qui peut être utilisé pour créer une nouvelle table construite à partir du contenu du jeu de résultats par une requête sur une table qui existe déjà dans la base de données. Les types de colonne et les données de ligne de la nouvelle table proviennent de la commande SELECT spécifiée par select.

CREATE TABLE AS a la syntaxe ou le synopsis suivant sous une forme simple :

CREATE TABLE new_table_name [ ( column [, ...] ) ] AS SELECT [ ( column [, ...] ) ] FROM existing table_name

L'instruction SELECT peut être sous une forme complexe où les données sont extraites de plusieurs tables. Pour la nouvelle table, les noms de colonne peuvent être spécifiés en incluant les noms de colonne dans une liste délimitée par des virgules. Un point très important à noter est qu'il doit y avoir le même nombre de colonnes spécifiées dans la liste de colonnes précédant la clause AS (facultative, si spécifiée) pour la nouvelle table que le nombre de colonnes cibles renvoyées par l'instruction select. Si la liste facultative des colonnes entre parenthèses de la nouvelle table contient un nombre de lignes différent de celui des lignes renvoyées par l'instruction SELECT, le message d'erreur suivant s'affiche :

ERREUR :CREATE TABLE/AS SELECT a un nombre de colonnes incompatible

Dans sa forme la plus simple, l'instruction CREATE TABLE AS créera une sauvegarde complète d'une table existante, y compris toutes les colonnes et données, simplement en utilisant l'instruction :

CREATE TABLE new_table_name AS SELECT * FROM existing_table_name