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:
| EmployeeID | FirstName | LastName | Age | Department |
|---|---|---|---|---|
| 1 | John | Doe | 30 | Sales |
| 2 | Jane | Smith | 25 | HR |
| 3 | Sam | Brown | 28 | IT |
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