Oracle/PLSQL: sentencia CREATE TABLE AS

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

Oracle/PLSQL: sentencia CREATE TABLE AS

Este tutorial de Oracle describe cómo usar Oracle Declaración CREAR TABLA COMO Con sintaxis y ejemplos.

describir

También puede utilizar la sentencia CREATE TABLE AS de Oracle para crear una tabla a partir de una tabla existente copiando sus columnas.

Tenga en cuenta que cuando se crea una tabla de esta manera, la nueva tabla se completará con registros de la tabla existente (según la instrucción SELECT).

Crear tabla: copiando todas las columnas de otra tabla

sintaxis

La sintaxis de la declaración CREATE TABLE AS que replica todas las columnas en Oracle/PLSQL es:

CREATE TABLE new_table
  AS (SELECT * FROM old_table);

ejemplo

Veamos un ejemplo de CREAR TABLA COMO que muestra cómo crear una tabla copiando todas las columnas de otra tabla.

CREATE TABLE suppliers
AS (SELECT *
    FROM companies
    WHERE company_id < 5000);

Este ejemplo crea una nueva tabla denominada Proveedores que incluye todas las columnas de la tabla Empresas.

Si hay registros en la tabla de empresas, la nueva tabla de proveedores se completará con los registros devueltos por la instrucción SELECT.

Crear tabla: copiando columnas seleccionadas de otra tabla

sintaxis

La sintaxis de la declaración CREATE TABLE AS para replicar columnas seleccionadas en Oracle/PLSQL es:

CREATE TABLE new_table
  AS (SELECT column_1, column2, ... column_n
      FROM old_table);

ejemplo

Veamos un ejemplo de CREAR TABLA COMO que muestra cómo crear una tabla copiando columnas seleccionadas de otra tabla.

Por ejemplo:

CREATE TABLE suppliers
  AS (SELECT company_id, address, city, state, zip
      FROM companies
      WHERE company_id < 5000);

Este ejemplo creará una nueva tabla denominada proveedores, pero la nueva tabla solo contendrá las columnas especificadas de la tabla de empresas (es decir, company_id, dirección, ciudad, estado y código postal).

Asimismo, si hay registros en la tabla de empresas, la nueva tabla de proveedores se completará con los registros devueltos por la instrucción SELECT.

Crear tabla: copiando columnas seleccionadas de varias tablas

sintaxis

La sintaxis de la instrucción CREATE TABLE AS para copiar columnas de varias tablas en Oracle/PLSQL es:

CREATE TABLE new_table
  AS (SELECT column_1, column2, ... column_n
      FROM old_table_1, old_table_2, ... old_table_n);

ejemplo

Veamos un ejemplo de CREAR TABLA COMO que muestra cómo crear una tabla copiando columnas seleccionadas de varias tablas.

Por ejemplo:

CREATE TABLE suppliers
  AS (SELECT companies.company_id, companies.address, categories.category_type
      FROM companies, categories
      WHERE companies.company_id = categories.category_id
      AND companies.company_id < 5000);

Este ejemplo creará una nueva tabla llamada Proveedores basada en las definiciones de columna de las tablas Compañía y Categoría (es decir: id_compañía, dirección y tipo_categoría).

Preguntas frecuentes

Pregunta: ¿Cómo puedo crear una tabla de Oracle a partir de otra tabla sin copiar ningún valor de la tabla anterior?

Respuesta: Para hacer esto, la sintaxis de Oracle CREATE TABLE es:

CREATE TABLE new_table
  AS (SELECT *
      FROM old_table WHERE 1=2);

Por ejemplo:

CREATE TABLE suppliers
  AS (SELECT *
      FROM companies WHERE 1=2);

Esto creará una nueva tabla denominada Proveedores que incluye todas las definiciones de columna de la tabla de empresas, pero no datos de la tabla de empresas.

Agradecimientos: ¡Nos gustaría agradecer a Daniel W. por esta solución!