Sunteți pe pagina 1din 11

USO DE ORACLE DATABASE

Pulsaremos en "Explorador de Objetos" para crear las tablas:

Pulsaremos el botn "Crear" y seleccionaremos "Tabla":

Introduciremos los campos que queramos que contenga la tabla "cliente" y el tipo de datos. Tambin podremos indicar si queremos que la columna pueda estar vaca o no. En nuestro caso crearemos, para la tabla "cliente":

codigo

(NUMBER): ser el campo de clave primaria (primary key), ser un nmero generado automticamente y nico para toda la tabla. Este campo ser el que utilicemos para enlazar la factura con el cliente al que corresponda.

nombre (VARCHAR2). cif (VARCHAR2). telefono (VARCHAR2).


Introduciremos en "Nombre de la Tabla" el nombre que Oracle le pondr a la tabla, pulsaremos "Siguiente" para continuar:

A continuacin indicaremos los datos para establecer la clave primaria (primary key) de la tabla. Seleccionaremos "Rellenado a partir de Nueva Secuencia", en la parte inferior aparecern los siguientes campos:

Nombre de la Restriccin de Clave Primaria: ser el nombre interno que Oracle establecer para el ndice que genera, en nuestro caso "cliente_codigo_cp". Nombre de la Secuencia: puesto que queremos generar una clave primaria que sea un nmero que se autoincremente, Oracle crear una secuencia para almacenar el ltimo valor e ir autoincrementndolo. Indicaremos aqu el nombre para la secuencia, por ejemplo "CLIENTE_SEQ_CODIGO". Clave Primaria: seleccionaremos de todos los campos de la tabla el que contendr los valores que vaya generando la secuencia. El campo ser "codigo" y, obviamente, ha de ser de tipo NUMBER. Pulsaremos "Siguiente" para continuar:

En el siguiente paso de creacin de la tabla "cliente" para APEX podramos agregar las claves forneas (foreing keys) que quisiramos. Para el caso de la tabla "cliente" no habr ninguna, por lo que pulsaremos "Siguiente":

En este paso podremos indicar las restricciones que deseemos, por ejemplo que no haya dos clientes con el mismo "cif", para ello seleccionaremos "nico", nos aparecern los campos de la tabla, en la parte izquierda seleccionaremos el "cif" y pulsaremos la flecha hacia la derecha. De esta forma el asistente de creacin de nueva tabla para Oracle APEX crear un nuevo ndice para que el valor del campo "cif" de la tabla "cliente" no se repita. Iremos agregando todas las restricciones que deseemos pulsando el botn "Agregar":

Tambin podremos agregar restricciones de tipo lgico, por ejemplo impedir que el usuario introduzca un cif con menos de 6 caracteres, para ello seleccionaremos "Comprobar" y escribiremos el siguiente comando: LENGTH("cif") >=6 Pulsaremos "Agregar" para aadir esta restriccin. Una vez aadidas todas las restricciones pulsaremos "Terminar" para crear la tabla:

Por ltimo el asistente nos mostrar un resumen antes de crear la tabla. Pulsando en "SQL" podremos ver la consulta SQL que el asistente a generado para crear la tabla. Pulsaremos "Crear" para finalizar el proceso:

El SQL generado por el asistente para crear la tabla "cliente":

CREATE table "cliente" ( "codigo" NUMBER(6,0) NOT NULL, "nombre" VARCHAR2(100) NOT NULL, "cif" VARCHAR2(20) NOT NULL, "telefono" VARCHAR2(200), "direccion" VARCHAR2(200), constraint "cliente_codigo_cp" primary key ("codigo") ) / CREATE sequence "CLIENTE_SEQ_CODIGO" / CREATE trigger "BI_cliente" before insert on "cliente" for each row begin if :NEW."codigo" is null then select "CLIENTE_SEQ_CODIGO".nextval into :NEW."codigo" from dual; end if; end; / alter table "cliente" add constraint CLIENTE_CIF unique ("cif") / alter table "cliente" add constraint CLIENTE_CK1 check (LENGTH("cif") >=6) /
El asistente nos dejar en la ventana de edicin de la tabla "cliente", desde donde podremos modificar la tabla (ndices, restricciones, permisos, valores por defecto, cambiar nombre, aadir columnas, vaciar, etc):

De la misma forma, crearemos la tabla "factura":

Indicaremos la clave primaria y la secuencia que la generar automticamente:

En este caso s crearemos una clave fornea (foreing key) que ser "codigocliente" y har referencia a la tabla "cliente" y a la columna "codigo" de sta:

Tras crear las claves forneas necesarias pulsaremos "Siguiente" para continuar con la creacin de la tabla "factura":

Agregaremos las restricciones que deseemos y pulsaremos "Terminar":

Pulsaremos "Crear" para crear la tabla "factura":

La secuencia SQL generada para crear la tabla "factura":

CREATE table "factura" ( "codigo" NUMBER(6,0) NOT NULL, "numero" VARCHAR2(30) NOT NULL, "codigocliente" NUMBER(6,0) NOT NULL, "fecha" DATE NOT NULL, "importetotal" NUMBER(8,2), "cobrada" VARCHAR2(1), "observacion" VARCHAR2(1000), "tipo" VARCHAR2(30), constraint "factura_codigo_cp" primary key ("codigo") ) / CREATE sequence "FACTURA_SEQ_CODIGO" / CREATE trigger "BI_factura" before insert on "factura" for each row begin if :NEW."codigo" is null then select "FACTURA_SEQ_CODIGO".nextval into :NEW."codigo" from dual; end if; end; / ALTER TABLE "factura" ADD CONSTRAINT "FACTURA_FK_CODIGOCLIENTE" FOREIGN KEY ("codigocliente") REFERENCES "cliente" ("codigo") / alter table "factura" add constraint FACTURA_UK1 unique ("numero") /

Por ltimo y de la misma forma, crearemos la tabla "facturalinea" con los campos:

Y la secuencia para la clave primaria:

En este caso habr una clave fornea para enlazar la tabla "facturalinea" con la tabla "factura" por el campo "codigofactura" y "codigo" respectivamente:

La consulta SQL para crear la tabla "facturalinea":

CREATE table "facturalinea" ( "codigo" NUMBER(6,0) NOT NULL, "codigofactura" NUMBER(6,0) NOT NULL, "concepto" VARCHAR2(200), "cantidad" NUMBER(8,2), "precio" NUMBER(8,2), "importe" NUMBER(8,2), constraint "facturalinea_codigo_cp" primary key ("codigo") ) / CREATE sequence "FACTURALINEA_SEQ_CODIGO" / CREATE trigger "BI_facturalinea" before insert on "facturalinea" for each row begin if :NEW."codigo" is null then select "FACTURALINEA_SEQ_CODIGO".nextval into :NEW."codigo" from dual; end if; end; / ALTER TABLE "facturalinea" ADD CONSTRAINT "FACTURALINEA_FK" FOREIGN KEY ("codigofactura") REFERENCES "factura" ("codigo") /

S-ar putea să vă placă și