lunes, 18 de julio de 2011

UTILIZACION DE TABLAS

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.

Tablas en Oracle

Tipos de tablas.

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 ).

Tablas en Oracle

Convenciones de 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’;

Tablas en Oracle

Operaciones con las tablas. DROP TABLE… Borrar ALTER TABLE… Modificar CREATE TABLE… Crear Sentencia Operaci ón

Crear 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

Crear tablas. 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:

Atributo Mínimo Máximo Defecto INITIAL 2 bloques * 5 bloques NEXT 1 bloque *

PCTUSED y PCTFREE

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.

Tablas en Oracle PCTUSED + PCTFREE < 100 !!!

PCTUSED y PCTFREE: Ejemplo.

Despu és que un bloque se llena hasta el l ím i te permitido por PCTFREE, Oracle considera que el bloque no esta disponible para la inserci ón de nuevas filas hasta que el porcentaje del bloque no cae por debajo del par ám etro PCTUSED.

Tablas en Oracle

Modificar tablas.

Para modificar tablas se utiliza ALTER TABLE.

EJEMPLOS:

ALTER TABLE empleado PCTUSED 30, PCTFREE 60;

ALTER TABLE empleado DROP UNUSED COLUMNS;

Esta sentencia elimina las columnas no utilizadas.

ALTER TABLE empleado ADD CONSTRAINT salesrep_pk PRIMARY KEY (id);

Añade una clave primaria en la columna id.

Tablas en Oracle

Borrar tablas.

Para borrar una tabla se utiliza DROP TABLE.

EJEMPLO:

DROP TABLE [usuario .] empleado [CASCADE CONSTRAINTS];

Inserción de tuplas
Para insertar tuplas en una relación se usa la instrucción INSERT de SQL:

SQL> INSERT INTO tabla VALUES (valor1, valor2, . . ., valorN);

Por ejemplo, para insertar una nueva tupla en la relación empleado, basta con escribir:

SQL> INSERT INTO empleado VALUES (
2 12325432, 'Juen Jose', 'Gil', 125000.00
3 );

Para la inserción de fechas, debe especificarse el formato en que se está intorduciendo la fecha, usando para ello:

TO_DATE ("string de fecha", "formato")

por ejemplo, si se quisiera ingresar en la relación empleado anterior, un atributo con la fecha de nacimiento, deberia agregarse la misma, de la siguiente manera:

SQL> INSERT INTO empleado VALUES (
2 12325432, 'Juen Jose', 'Gil',
3 125000.00, TO_DATE ('15-02-72', 'DD-MM-YY')
4 );

Si se quisiera ademas, agregar la hora de nacimiento, deberia usarse:

SQL> INSERT INTO empleado VALUES (
2 12325432, 'Juen Jose', 'Gil', 125000.00,
3 TO_DATE ('15-02-72 15:23', 'DD-MM-YY HH24:MI')
4 );

A continuación se presenta una tabla con algunos de los formatos mas usados:

Formato Descripción
HH, HH12 Hora en el formato tradicional 1-12
HH24 Hora en el formato de 24 horas (0-23)
MI Minutos (0-59)
DD Dia del mes (1-31 con restricciones)
D Dia de la semana (0=domingo)
MM Mes en formato numerico (1-12)
MON Nombre del mes abreviado a tres caracteres, en inglés (JAN=Enero)
MONTH Nombre del mes en inglés. En caso de ser un nombre corto, se rellena con espacios en blanco hasta nueve caracteres (MARCH=marzo, JANUARY=enero, . . .)
YY Año en formato de dos dígitos (se asume 19xx)
YYYY Año en formato de 4 dígitos.

No hay comentarios:

Publicar un comentario