SQL SELECT INTOSentencias


Con SQL, puede copiar información de una tabla a otra.

La sentencia SELECT INTO copia datos de una tabla y luego inserta los datos en otra tabla nueva.


Sentencia SQL SELECT INTO

La sentencia SELECT INTO copia datos de una tabla y luego los inserta en otra tabla nueva.

Nota:

La base de datos MySQL no admite la sentencia SELECT ... INTO, pero admiteINSERT INTO ... SELECT 。

Por supuesto, puede usar la siguiente sentencia para copiar la estructura y los datos de la tabla:

CREATE TABLE 新表
AS
SELECT * FROM 旧表 

Sintaxis de SQL SELECT INTO

Supongamos que hay una tabla llamada employees, con los siguientes datos:

EmployeeIDFirstNameLastNameAgeDepartment
1JohnDoe30Sales
2JaneSmith25HR
3SamBrown28IT

Para crear unaemployees_backupnueva tabla llamada, eemployeesinsertar todos los datos de la tabla en la nueva tabla, puede usar la siguiente sentencia SQL:

SELECT *
INTO employees_backup
FROM employees;

Después de ejecutar esta sentencia, la nuevaemployees_backuptabla solo contendrá los datos de los empleados mayores de 25 años.

SELECT EmployeeID, FirstName, LastName, Age, Department
INTO employees_backup
FROM employees
WHERE Age > 25;

Notas de uso

Estructura de la tabla:

  • SELECT INTOSe creará una nueva tabla, y la estructura de la nueva tabla se basará en las columnas y tipos de datos seleccionados.
  • Si la nueva tabla ya existe,SELECT INTOla sentencia fallará. En este caso, puede usarINSERT INTO ... SELECTla sentencia.

Soporte de bases de datos:

  • SELECT INTOLa sentencia es muy común en SQL Server, pero en MySQL y PostgreSQL normalmente se usaCREATE TABLE ... AS SELECTla sentencia.

Alternativas en otras bases de datos

MySQL y PostgreSQL

En MySQL y PostgreSQL, puede usarCREATE TABLE ... AS SELECTpara lograr una funcionalidad similar:

CREATE TABLE employees_backup AS
SELECT EmployeeID, FirstName, LastName, Age, Department
FROM employees
WHERE Age > 25;
Otras extensiones