Mysql
 sql >> Database >  >> RDS >> Mysql

Crea una nuova tabella selezionando i dati da altre tabelle con CREATE TABLE AS

Utilizzando l'istruzione di manipolazione dei dati SQL, una tabella nuova, temporanea, di backup o normale può essere creata e riempita o inserita con i dati di un'altra tabella o tabelle recuperate dall'istruzione SELECT. Il linguaggio di manipolazione dei dati SQL è CREATE TABLE AS che può essere utilizzato per creare una nuova tabella costruita dal contenuto del set di risultati di una query su una tabella già esistente all'interno del database. Sia i tipi di colonna, sia i dati di riga per la nuova tabella, provengono dal comando SELECT specificato da select.

CREATE TABLE AS ha la seguente sintassi o sinossi in forma semplice:

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

L'istruzione SELECT può essere in una forma complessa in cui i dati vengono recuperati da diverse tabelle. Per la nuova tabella, i nomi delle colonne possono essere specificati includendo i nomi delle colonne in un elenco delimitato da virgole. Un punto molto importante da prendere in considerazione è che dovrebbe esserci lo stesso numero di colonne specificate nell'elenco di colonne che precede la clausola AS (facoltativa, se specificata) per la nuova tabella del numero di colonne di destinazione restituite dall'istruzione select. Se l'elenco facoltativo di colonne tra parentesi della nuova tabella contiene un numero di righe diverso rispetto alle righe restituite dall'istruzione SELECT, verrà visualizzato il seguente messaggio di errore:

ERRORE:CREATE TABLE/AS SELECT ha un conteggio delle colonne non corrispondente

Nella sua forma più semplice, l'istruzione CREATE TABLE AS creerà un backup completo di una tabella esistente includendo tutte le colonne e i dati semplicemente utilizzando l'istruzione:

CREATE TABLE new_table_name AS SELECT * FROM existing_table_name