Tablas en Oracle

Aproximación a las tablas en Oralce


Introducción.

Las tablas son la unidad básica de almacenamiento de datos en Oracle. Los datos son almacenados en filas y columnas.
Se define a través de:
  • Nombre.
  • Conjunto de columnas (nombre y tipo).

Al crear una tabla Oracle asigna un segmento de datos en el tablespace. Se puede controlar el espacio y el uso de ese segmento.

Tipos de Tablas.
  • Regulares.
        Forma comúnmente usada para almacenar los datos.
            • Tipo por defecto.
            • Se tiene muy poco control sobre la distribución de las filas de la tabla en su almacenamiento físico:
  • Particionadas.
  • Organizadas por Índices.
  •  Agrupadas (clusterizadas).

Convención en los nombres.

  • El nombre debe ser tan descriptivo como sea posible:
  • Hasta 30 caracteres.
  • Debe empezar por una letra.
  • Puede contener letras, números y caracteres especiales ($, # Y _)

Se puede documentar añadiendo comentarios:
    COMMENT ON TABLE MITABLA IS ‘Este es un comentario ’;
    COMMENT ON COLUMN MITABLA.COLUMN1 “Este es un comentario’;

Creación de Tablas.

La sentencia básica es:
CREATE TABLE nombre_tabla (nombre_columna TIPO, {nombre_columna TIPO});
EJEMPLO:
    CREATE TABLE empleado (nombre VARCHAR(20), id INTEGER);

Dentro de la sintaxis de la creación de tablas hay las siguientes opciones interesantes para comentar:
TABLESPACE
STORAGE
PCTUSED / PCTFREE


Cláusula Storage:
Las opciones que se pueden definir en esta cláusula son:
STORAGE( INITIAL entero{K|M} NEXT entero{K|M} {MINEXTENTS entero} {MAXEXTENTS entero|UNLIMITED} {PCTINCREASE %entero} )

Tamaño de los bloques:

PCTFREE y PCTUSED:

Controlan el espacio libre para  inserciones y eliminaciones de filas en los bloques de un segmento.
PCTFREE:
Valor por defecto 10.
En cualquier otro caso: PCTFREE=100*upd/(upd + ins)
PCTUSED:
Valor por defecto 40.
PCTUSED=100-(PCTFREE +100*upd/blocksize) + 100ins/blocksize.


Modificación de tablas.

Para modificar tablas se utiliza ALTER TABLE.
EJEMPLOS:

ALTER TABLE empleado PCTUSED 30, PCTFREE 60;

La siguiente sentencia elimina las columnas no utilizadas.
ALTER TABLE empleado DROP UNUSED COLUMNS;

Para añadir una clave primaria en la columna id:
ALTER TABLE empleado ADD CONSTRAINT salesrep_pk PRIMARY KEY (id);

Borrado de tablas.

Para borrar una tabla se utiliza DROP TABLE.
EJEMPLO:
DROP TABLE [usuario .] empleado [CASCADE CONSTRAINTS];

Comentarios