logo

Sentència SQL SELECT INTO

El Sentència SQL SELECT INTO s'utilitza per copiar dades d'una taula a una nova.

Nota: Les consultes s'executen a SQL Server i és possible que no funcionin en molts editors SQL en línia, així que és millor utilitzar un editor fora de línia.



Sintaxi

La sintaxi SQL INSERT INTO és:

SELECCIONA columna1, columna2...
A NEW_TABLE de SOURCE_TABLE
ON Condició;

pete davidson

Per copiar totes les dades de la taula mitjançant l'ordre INSERT INTO, utilitzeu aquesta sintaxi:



SELECCIONA *
INTO NEW_TABLE de SOURCE_TABLE
ON Condició;

Paràmetre

  • NOU_TAULA hauria de tenir el mateix esquema i tipus de dades que SOURCE_TABLE.
  • INTO vol dir en quina taula hem de copiar.
  • Condició: Una condició és una declaració opcional que us indica quines files heu de triar. Si no especifiqueu cap condició, només escolliu totes les files de la taula original.

SELECT INTO Exemple

Vegem alguns exemples de sentència SELECT INTO en SQL , i entendre com utilitzar-lo.

Primer crearem una taula Client i inserirem algunes dades aleatòries:



  CREATE TABLE   Customer(  CustomerID INT   PRIMARY KEY  ,  CustomerName VARCHAR(50),  LastName VARCHAR(50),  Country VARCHAR(50),  Age int(2),  Phone int(10) ); -- Insert some sample data into the Customers table   INSERT INTO   Customer (CustomerID, CustomerName, LastName, Country, Age, Phone)   VALUES   (1, 'Shubham', 'Thakur', 'India','23','xxxxxxxxxx'),  (2, 'Aman ', 'Chopra', 'Australia','21','xxxxxxxxxx'),  (3, 'Naveen', 'Tulasi', 'Sri lanka','24','xxxxxxxxxx'),  (4, 'Aditya', 'Arpan', 'Austria','21','xxxxxxxxxx'),  (5, 'Nishant. Salchichas S.A.', 'Jain', 'Spain','22','xxxxxxxxxx');>

Taula de clients:

Taula de clients

Taula de clients

INSERT INTO Exemple de sentència

En aquest exemple, crearem una taula de còpia de seguretat del client i després inserirem dades en aquesta taula mitjançant la instrucció SELECT INTO.

Consulta:

  CREATE TABLE   backUpCustomer (  CustomerID INTEGER   PRIMARY KEY   AUTOINCREMENT,  CustomerName VARCHAR(50),  LastName VARCHAR(50),  Country VARCHAR(50),  Age INT,  Phone VARCHAR(10) );    INSERT INTO   backUpCustomer (CustomerName, LastName, Country, Age, Phone)   SELECT   CustomerName, LastName, Country, Age, Phone   FROM   Customer;   SELECT   *   FROM   backUpCustomer ;>

Sortida:

Sortida de la instrucció SELECT INTO

Còpia de seguretat de la taula de clients

Consulta

int a la cadena

Utilitzar el clàusula ‘on’ per copiar només algunes files del client a la taula backUpCustomer.

CREATE TABLE OtherTable (  CustomerID INTEGER PRIMARY KEY AUTOINCREMENT,  CustomerName VARCHAR(50),  LastName VARCHAR(50),  Country VARCHAR(50),  Age INT,  Phone VARCHAR(10) );  INSERT INTO OtherTable (CustomerName, LastName, Country, Age, Phone) SELECT CustomerName, LastName, Country, Age, Phone FROM Customer WHERE Country = 'India';>

Sortida

Sortida

sortida

convertir cadena a int java

Consulta

Per copiar només algunes columnes del client a la taula backUpCustomer, especifiqueu-les a la consulta.

CREATE TABLE backUpCustomers (  CustomerName VARCHAR(50),  LastName VARCHAR(50),  Age INT );  INSERT INTO backUpCustomers (CustomerName, LastName, Age) SELECT CustomerName, LastName, Age FROM Customer;   SELECT * FROM backUpCustomers;>

Sortida

Sortida

Sortida

Insereix INTO SELECT vs SELECT INTO

Ambdues declaracions es podrien utilitzar per copiar dades d'una taula a una altra. Però INSERT INTO SELECT només es pot utilitzar si la taula de destinació existeix, mentre que la instrucció SELECT INTO es pot utilitzar fins i tot si la taula de destinació no existeix, ja que crea la taula de destinació si no existeix.

INSERT INTO backUpCustomer select * from Customer;>

AQUÍ la taula tempTable hauria d'estar present o creada prèviament, si no hi ha un error. Insereix INTO SELECT vs SELECT INTO

SELECT * INTO backUpCustomer from Customer;>

Aquí no és necessari que existeixi abans, ja que SELECT INTO crea una taula si la taula no existeix i després copia les dades.