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

Opret ny tabel ved at vælge data fra andre tabeller med CREATE TABLE AS

Ved at bruge SQL-datamanipulationssætning kan en ny, midlertidig, backup eller almindelig tabel oprettes og udfyldes eller indsættes med data fra en anden tabel eller tabeller hentet af SELECT-sætning. SQL-datamanipulationssproget er CREATE TABLE AS, som kan bruges til at skabe en ny tabel bygget ud fra indholdet af resultatet sat af en forespørgsel på en tabel, der allerede findes i databasen. Både kolonnetyperne og rækkedata for den nye tabel kommer fra SELECT-kommandoen angivet ved select.

CREATE TABLE AS har følgende syntaks eller synopsis i simpel form:

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

SELECT-sætningen kan være i en kompleks form, hvor data er hentet fra flere tabeller. For den nye tabel kan kolonnenavne angives ved at inkludere kolonnenavnene i en kommasepareret liste. En meget vigtig pointe at tage til efterretning er, at der skal være det samme antal kolonner angivet i kolonnelisten forud for AS-sætningen (valgfrit, hvis det er angivet) for ny tabel som antallet af målkolonner, der returneres af select-sætningen. Hvis den valgfri liste over kolonner i parentes af ny tabel indeholder et andet antal rækker end de rækker, som SELECT-sætningen returnerer, vil følgende fejlmeddelelse blive vist:

FEJL:CREATE TABLE/AS SELECT har ikke matchet kolonneantal

I sin enkleste form vil CREATE TABLE AS-sætningen oprette en komplet sikkerhedskopi af en eksisterende tabel inklusive alle kolonner og data blot ved at bruge sætningen:

CREATE TABLE new_table_name AS SELECT * FROM existing_table_name


  1. Hvordan indstilles variabel fra en SQL-forespørgsel?

  2. Indsæt billede i SQL Server 2005 Image Field kun ved brug af SQL

  3. Transaktioner virker ikke for min MySQL DB

  4. TO_CHAR(datotid) Funktion i Oracle