Ir al contenido principal

Creando una Tabla

Las tablas pueden ser almacenadas en la base de datos de varias formas. La más simple es la Tabla HEAP. La tabla HEAP es de filas de longitud variable en orden aleatorio. Hay estructuras más avanzadas. Tales como las siguientes, que obligan el ordenamiento y agrupamiento sobre las filas o forzar distribución aleatoria.

Index Organized Table. Almacena Filas en Orden de una Llave Índice.
Index Cluster. Puede desnormalizar tablas en relaciones Padre e Hijos. Así las filas relacionadas de diferentes tablas son almacenadas juntas.
Hash Cluster. Forza la distribución aleatoria de las filas.
Partitioned Tables. Almacena filas en estructuras físicas separadas. La asignación de filas a una partición es de acuerdo al valor de una columna.

El uso de cualquier tipo de estructura, la más simple o la más avanzada es transparente para el SQL, la sentencias ejecutadas contra la Tabla devuelve el mismo resultado. Pero el rendimiento de cada estructura es diferente.

Creando Tablas
Sintaxis de la Tabla HEAP

CREATE TABLE [esquema.] tabla [ORGANIZATION HEAP]
(
columna tipodato [DEFAULT expresion]
[,columna tipodato [DEFAULT expresion], ]
);

Como mínimo, se debe especificar el nombre de la tabla y al menos un columna con u tipo de datos. Hay pocos desarrolladores que especifican ORGANIZATION HEAP esta es por defecto y es el estándar  de SQL. La palabra DEFAULT en la definición de una columna permite proveer una expresión que genere un valor para la columna cuando una fila es insertada y el valor para esa columna no sea proveído en el INSERT.

Ejemplos
CREATE TABLE EMPLEADO
(
  EMPNO    NUMBER(4),
  ENAME    VARCHAR2(10),
  HIREDATE DATE DEFAULT TRUNC(SYSDATE),
  SAL      NUMBER(7,2),
  COMM     NUMBER(7,2) DEFAULT 0.03
)
Este comando crear una tabla llamada EMPLEADO en el esquema actual del usuario, ya que no se está especificando tal.
EMPNO es un numero de 4 dígitos, sin decimales, si cualquier decimal es incluido en una sentencia INSERT este será redondeado al número entero más cercano.
ENAME puede almacenar cualquier carácter, hasta 10.
HIREDATE acepta cualquier fecha valida, opcionalmente con hora, minuto y segundo, sino es provista será asignada la fecha actual del sistema con hora de medianoche por defecto.
SAL Acepta 7 dígitos, 5 números a la izquierda y 2 a la derecha.
COMM por defecto le asigna 0.03, acepta 7 dígitos, 5 a la izquierda y 2 a la derecha.

Al insertar en esta tabla las columnas con la palabra DEFAULT y que no se le provean valores, se les asignara por defecto la expresión declarada en la columna.

Ejemplos de INSERT’S a la tabla.
INSERT INTO empleados VALUES(1,'SANTIAGO',SYSDATE,1000.01,0.4);
INSERT INTO empleados(empno, ename, sal) VALUES(2,'LUIS',2300);
INSERT INTO empleados(empno, ename, sal) VALUES((SELECT MAX(EMPNO) + 1 FROM empleados),'ALFREDO',232.234);
INSERT INTO empleados VALUES(4,NULL,NULL,NULL,NULL);

COMMIT;

Comentarios