sql >> Base de Datos >  >> RDS >> Oracle

Comando Oracle CREATE TABLE en PL/SQL con 10 ejemplos

En este artículo, vamos a hablar sobre CREATE TABLE dominio. Para ser más precisos, nos centraremos en cómo crear una tabla en Oracle con una clave principal y externa, así como columnas no nulas y de fecha, observe de cerca cómo crear una nueva tabla sobre la base de la existente. , y más. Además, revisaremos las ventajas y beneficios de usar dbForge Studio para Oracle cuando se trabaja con tablas.

Contenido

  • Sintaxis de la sentencia CREATE TABLE de Oracle
    • Ejemplo CREAR TABLA
  • CREAR TABLA con restricción PRIMARY KEY
  • CREAR TABLA con CLAVE EXTRANJERA
  • CREAR TABLA con columna NO NULO
  • CREAR TABLA con una columna de fecha
  • Oracle alternativa a SQL CREAR TABLA SI NO EXISTE
  • Cree una nueva tabla a partir de otra tabla usando CREATE TABLE AS SELECT
  • CREAR TABLA desde SELECCIONAR en PL/SQL
  • Cómo crear e insertar datos en una tabla temporal
  • CREAR TABLA en un abrir y cerrar de ojos usando dbForge para Oracle
  • Conclusión

La creación de tablas en Oracle es una de las formas de organizar los datos, por lo que es fundamental aprender tanto como sea posible sobre CREATE TABLE dominio. Hay varias formas diferentes de crear una tabla en Oracle y las cubriremos más adelante en esta guía.

Tenga en cuenta que debe tener el privilegio del sistema CREATE TABLE para crear una nueva tabla. Si desea crear una tabla en el esquema de otro usuario, debe tener el privilegio del sistema CREATE ANY TABLE. En caso de que sea el propietario de la tabla, debe tener el privilegio del sistema UNLIMITED TABLESPACE o la cuota para el tablespace que contiene la tabla.

Además, debe tener el privilegio de objeto EXECUTE o el privilegio de sistema EXECUTE ANY TYPE para crear una tabla de objetos o una tabla relacional que contenga una columna de tipo de objeto si desea tener acceso a todos los tipos a los que hace referencia la tabla.

Los ejemplos de este artículo se relacionan con la versión Oracle 19c, pero los métodos son los mismos para todas las versiones de Oracle en uso (incluidos Oracle 10g, 11g, 12c, etc.).

Sintaxis de sentencia CREATE TABLE de Oracle

Comencemos con lo básico. Para crear una nueva tabla en una base de datos Oracle, CREATE TABLE Se puede utilizar la declaración. El CREATE TABLE La sintaxis en Oracle es la siguiente:

CREATE TABLE schema_name.table_name (
    column_1 data_type column_constraint,
    column_2 data_type column_constraint,
    ...
    table_constraint
 );

Echemos un vistazo más de cerca a la sintaxis proporcionada:

  1. schema_name.table_name :nombres de la tabla y el esquema al que pertenece la nueva tabla.
  2. column_1 y column_2 data_type column_constraints :marcadores de posición para los nombres de las columnas.
  3. data_type :NÚMERO, VARCHAR, etc.
  4. column_constraint :NOT NULL, clave principal, verificación, etc.
  5. table_constraint :restricciones de la tabla (clave principal, clave externa, control).

Encontrará Oracle CREATE TABLE ejemplo de sintaxis más adelante en este artículo.

Nota :
Además de aprender a crear una tabla en Oracle, es posible que desee profundizar sus conocimientos sobre Declaración ALTER TABLE de Oracle .

Ejemplo CREAR TABLA

Siempre es mejor aprender de la práctica. Por lo tanto, echemos un vistazo a Oracle CREATE TABLE ejemplo:

El siguiente ejemplo muestra cómo crear una tabla de tres columnas llamada empleados :

CREATE TABLE employees
( employee_id number(10) NOT NULL,
  employee_name varchar2(50) NOT NULL,
  city varchar2(50)
);
  • Columna 1 se llama employee_id y tiene un tipo de datos numérico (máximo 10 dígitos de longitud). No puede contener valores nulos.
  • Columna 2 se llama nombre_cliente y tiene un tipo de datos varchar2 (50 caracteres de longitud máxima) y tampoco puede contener valores nulos.
  • Columna 3 se llama ciudad y tiene un tipo de datos varchar2. A diferencia de las dos anteriores, esta columna puede contener valores nulos.

CREAR TABLA con restricción PRIMARY KEY

Ahora, veamos cómo crear una tabla en Oracle con una clave principal. Para definir una clave principal para la tabla, puede usar nuestra tabla Empleados creada anteriormente , edite Oracle SQL CREATE TABLE y defina el employee_id como clave principal:

CREATE TABLE employees
( employee_id number(10) NOT NULL,
  employee_name varchar2(50) NOT NULL,
  city varchar2(50),
  CONSTRAINT employees_pk PRIMARY KEY (employee_id)
);

La PRIMARY KEY La cláusula permite especificar una columna como la clave principal. Puede usar la sintaxis de la clave principal para identificar cada fila única en la tabla. A diferencia de otras bases de datos, Oracle permite que una tabla incluya solo una clave principal, y cada campo de la clave principal debe contener valores distintos de NULL para que la tabla se considere válida. En el ejemplo anterior, definimos el employee_id columna como la columna de clave principal .

CREAR TABLA con CLAVE EXTRANJERA

Echemos un vistazo a la sintaxis de Oracle CREATE TABLE declaración FOREIGN llave. Se puede definir tanto a nivel de columna como a nivel de tabla:

CREATE TABLE table_name
(
col1 datatype [ NULL | NOT NULL ],
col2 datatype [ NULL | NOT NULL ],
...
col_n datatype [ NULL | NOT NULL ]
constraint <name> FOREIGN KEY (col1,col2) REFERENCES table(col1,col2)
)  tablespace <tablepace name>

CREATE TABLE table_name
(
col1 datatype [ NULL | NOT NULL ] constraint <name> primary key
,
col2 datatype [ NULL | NOT NULL ],
...
col_n datatype [ NULL | NOT NULL ]
)  tablespace <tablepace name>;

CREATE TABLE dept
( dept_id number(10) NOT NULL,
dept_name varchar2(50) NOT NULL,
CONSTRAINT dept_pk PRIMARY KEY (dept_id)
);

CREATE TABLE emp
( emp_no number(10) NOT NULL,
emp_name varchar2(50) NOT NULL,
dept_id number(10),
salary number(6),
CONSTRAINT emp_pk PRIMARY KEY (emp_no),
CONSTRAINT dept_fk
FOREIGN KEY (dept_id)
REFERENCES dept(dept_id) );

En esta sintaxis:

  • Columna 1 está etiquetado como emp_no y tiene el formato de un número, lo que significa que no puede incluir ningún valor nulo.
  • Columna 2 se titula emp_name , que está construido como varchar2(50) y no puede incluir ningún valor nulo.
  • Columna 3 se llama dept_id y tiene un tipo de datos numérico.
  • Columna 4 se llama salary y también tiene formato de columna numérica.
  • Restricción de clave principal a nivel de tabla emp_pk se define en la clave (emp_no ).
  • Restricciones de clave externa a nivel de tabla dept_fk que hace referencia a la tabla de departamento dept_id .

CREAR TABLA con columna NO NULO

Si desea especificar que la columna no puede estar vacía y debe contener algún valor, puede definirla como NOT NULL. Encuentre la sintaxis para CREATE TABLE comando con la columna NOT NULL en Oracle a continuación:

CREATE TABLE employees_bdays
(
emp_name VARCHAR(30),
bday DATE
emp_id VARCHAR(15) NOT NULL
);

Como puede ver, emp_id implica ingresar un valor para cada fila de datos ya que NO ES NULO.

CREAR TABLA con una columna de fecha

Si necesita crear una tabla con la columna de fecha en Oracle, la siguiente sintaxis puede ser útil:

CREATE TABLE employees_bdays (
bday DATE
);

Para insertar eficientemente una fecha en la columna, necesita el to_date función que acepta una cadena de caracteres que contiene la fecha, así como otra cadena de caracteres que le indica cómo interpretar la fecha recibida.

to_date('01 December 2021','DD Month YYYY')
to_date('01/12/2021','DD/MM/YYYY')

Oracle alternativa a SQL CREAR TABLA SI NO EXISTE

Esos usuarios, que están acostumbrados a un SQL muy útil CREATE TABLE IF NOT EXISTS comando, podría sentirse decepcionado ya que no existe tal declaración en Oracle. Pero si aún necesita determinar si una tabla ya existe antes de crearla en Oracle, encontrará soluciones alternativas a este problema a continuación.

Si recibe un error (ORA-00955:el nombre ya está en uso por un objeto existente) al intentar crear una tabla, puede servir como un indicador de que dicha tabla ya está allí.

Cree una nueva tabla a partir de otra tabla usando CREATE TABLE AS SELECT

A veces, necesita copiar datos de una tabla e insertarlos en otra. Es bastante fácil crear una tabla como otra tabla en Oracle, además es muy útil. Te ahorras tiempo y esfuerzo si quieres crear una tabla con la misma estructura. También simplifica el proceso de prueba.

Para ver cómo crear una tabla a partir de otra tabla en Oracle, consulte el siguiente script:

CREATE TABLE table_name AS (
SELECT select_query
);

También se conoce como CREAR TABLA COMO SELECCIONAR (CTAS).

Puede ingresar el table_name para su nueva tabla o utilice SELECT Consulta para copiarlo. Además, puede ingresar SELECT * FROM tabla_antigua si necesita copiar todos los datos a la nueva tabla. Si necesita restringir los valores que se copiarán, el WHERE cláusula será útil para usted.

CREAR TABLA desde SELECCIONAR en PL/SQL

En Oracle, también puede crear una tabla a partir de otra ingresando SELECT instrucción al final de CREATE TABLE declaración. En este caso, todos los registros de la tabla anterior se copiarán en la nueva. La sintaxis de Oracle CREATE TABLE desde el SELECT es el siguiente:

CREATE TABLE new_table
  AS (SELECT * FROM old_table);

Como puede ver, la creación de tablas PL/SQL desde SELECT El comando es muy útil. Tenga en cuenta que también puede crear una tabla temporal desde SELECT .

Cómo crear e insertar datos en una tabla temporal

Las tablas temporales se utilizan en Oracle para almacenar los datos que pertenecen a una sesión o una transacción.

La tabla temporal ORACLE es un objeto DDL con todas las restricciones.

Entonces, ¿cómo crear una tabla temporal en Oracle? Puede utilizar la instrucción CREATE GLOBAL TEMPORARY TABLE para crear una tabla temporal. Para definir si los datos de la tabla son específicos de la transacción (predeterminado) o específicos de la sesión, utilice la cláusula ON COMMIT.

La sintaxis de los datos específicos de la transacción es la siguiente:

CREATE GLOBAL TEMPORARY TABLE admin_work_area
        (startdate DATE,
         enddate DATE,
         operation CHAR(20))
      ON COMMIT DELETE ROWS;

CREAR TABLA en un abrir y cerrar de ojos usando dbForge para Oracle

El tiempo siempre ha sido uno de los recursos más valiosos que existen. Por lo tanto, es posible que le resulte útil utilizar un IDE apropiado para ahorrar tiempo. Una de las mejores soluciones es dbForge Studio para Oracle. Es una herramienta universal que puede ser útil para desarrollar, administrar y gestionar bases de datos Oracle. Este eficiente cliente GUI es ideal para administradores de bases de datos, desarrolladores de bases de datos, ingenieros de software y analistas. dbForge Studio for Oracle permite la sincronización de datos entre varios servidores Oracle y facilita la automatización de procesos de desarrollo de bases de datos.

Al abrir el IDE por primera vez, verá las Propiedades de conexión de la base de datos ventana. Para abrirlo manualmente, seleccione Base de datos y haga clic en Nueva conexión .

Después de eso, complete los campos correspondientes y presione Probar conexión .

Si todo está configurado correctamente, verá el mensaje Conectado correctamente que se verá de alguna manera así:

Después de conectarse a su servidor Oracle, elija el usuario para el que desea crear una nueva tabla. Nuestra reciente publicación de blog sobre cómo crear un nuevo usuario en Oracle puede ser útil en este paso.

El primer paso para crear una nueva tabla es hacer clic derecho en el esquema requerido. Apunte a Nuevo objeto y haz clic en la primera opción:Tabla .

1. En el Nombre cuadro de texto del Editor de tablas , ingrese un nombre de tabla. En el siguiente ejemplo, estamos creando una tabla titulada empleados .

2. En la siguiente cuadrícula, escriba los nombres de las futuras columnas, elija el tipo de datos y si deben ser NO NULOS.

3. Las propiedades de la columna se mostrará en el lado derecho del Editor de tablas .

4. Verás que todas las acciones que realices en Editor de Tablas , se reflejan en la consulta SQL en la parte inferior de la ventana.

Una vez configuradas las propiedades de la tabla, haga clic en Aplicar cambios ¡y eso es todo!

Conclusión

La creación de tablas es una de las tareas más comunes cuando se trabaja con bases de datos Oracle, ya que ayuda a organizar los datos. En nuestra guía, hemos ofrecido un recorrido detallado de cómo crear una tabla en Oracle usando 10 formas diferentes. Puede usar la declaración Oracle SQL CREATE TABLE y ejecutar la consulta manualmente o usar un IDE adecuado para automatizar el proceso. En este caso, dbForge Studio para Oracle es la mejor opción.

Enlaces útiles

  • Crear una base de datos en Oracle
  • Cambie el nombre de la tabla en Oracle
  • Formatador PL/SQL