DISPARADORES SENTENCIAS EN BASE DE DATOS

by ALFJZ 0


Sentencias

 

Create table proveedor (id_proveedor varchar (10) not null primary key, nombre varchar (10), telefono varchar (15), direccion varchar (12));

 

Create table Suministro (id_suministro varchar (10) not null primary key, fecha date, cantidad integer, id_proveedor varchar(10), foreign key (id_suministro) references  proveedor (id_proveedor));

 

Create table productos (id_productos varchar (10) not null primary key, nombre varchar (10), descripcion varchar (30), precio integer, id.categoria varchar (10), id suministro varchar (10) foreign key (id_suministro) References  suministro (id_suministro));

 

Create table categoría (id_categoria varchar (10) not null primary key, nombre varchar (10));

 

 

Create table factura_maestra (id_factura varchar (10 ) not null primary key, id_producto varchar (10), id_cliente varchar (10), Fecha Date, id_empleado varchar (10), iva (float));

 

Create table cliente (id_cliente varchar (10) not null primary key, nombre varchar (10), sexo char, telefono varchar (12), direccion varchar (15), fechadenaci date);

 

Create table factura_detalle (id_detalle varchar (10) not null primary key, nid_factura varchar (10), id_producto varchar (10), cantidad integer, fecha date, id_cliente varchar (10), valor_unitario integer, valor_total float, id_formadepago varchar (10));

 

Create table empleado (id_empleado varchar (10) not null primary key, nombre varchar (10), sexo char, teléfono number, id_cargo varchar (10), id_sucursal varchar (10));

 

Create table sucursal (id_sucursal varchar (10) not null primary key, nombre varchar (10), dirección varchar (12));

 

Create table cargo (id_cargo varchar (10) not null primary key, nombre varchar (10), salario number);

 

Create table forma_de_pago (id_formadepago varchar (10) not null primary key, nombre varchar (10), descripción varchar (30));

 

Create table cartera (id_factura varchar (10) not null primary key, abonos number, estado char, fecha date, valor_total varchar (20), id_cliente varchar (10), id_formadepago varchar (10), id_abono varchar (10));

 

Create table abonos (id_abono varchar (10) not null primary key, id_factura varchar (10), fecha date, valor_abono varchar (20));

 

 

Alter table producto add (constraint producto_fk  foreign key (id_categoria) references categoria (id_categoria));

 

Alter table factura_maestra add (constraint factura_maestra_fk foreign key (id_producto) references producto (id_producto), foreign key (id_cliente) references cliente (id_cliente), foreign key (id_empleado) references empleado (id_empleado));

 

Alter table factura_detalle add (constraint facture_detalle_fk foreign (id_factura) references factura_maestra (id_factura), foreign key (id_producto) references factura_maestra (id_producto), foreign key (id_formadepago) references forma_de_pago (id_formadepago));

 

Alter table empleado add (constraint empleado_fk foreign key (id_sucursal) references sucursal (id_sucursal), foreign key (id_cargo) references cargo (id_cargo));

 

Alter table cartera add (constraint cartera_fk foreign key (id_abono) references abonos (id_abono), foreign key (id_formadepago) references forma_de_pago (id_formadepago), foreign key (fecha) references abonos (fecha));

 

Alter table abonos add (constraint abono_fk foreign key (id_factura) references cartera (id_factura));

 

Insert into proveedor (id_proveedor, nombre, telefono, dirección) values  (001, Juan Manuel, 5600023, Calle 15 n° 12 - 58);

 

Insert into Suministro (id_suministro, fecha, cantidad, id_proveedor) values (A01, to_date(‘15/03/2010’, ‘dd/mm/yyyy’), 5, 001);

 

Insert into productos (id_productos, nombre, descripción, precio, id.categoria, id suministro) values (tele, televisor, Aparato electrodoméstico, 500000, te, A01);

 

Insert into categoría (id_categoria, nombre) values (te, Electrodomesticos);

 

Insert into factura_maestra (id_factura, id_producto, id_cliente, Fecha, id_empleado, iva ) values (A1B1, tele, 0101, to_date(‘15/03/2010’, ‘dd/mm/yyyy’), 0110, 5%);

 

Insert into cliente (id_cliente, nombre, sexo, teléfono, dirección, fechadenaci) values (0101, Lucia Figueroa, F, 3005602596, Travs 23 n° 5- 95, to_date(‘15/03/2010’, ‘dd/mm/yyyy’));

 

Insert into factura_detalle (id_detalle, id_factura, id_producto, cantidad, fecha, id_cliente, valor_unitario, valor_total, id_formadepago) values (t0e0, A1B1, tele, 5, to_date(‘15/03/2010’, ‘dd/mm/yyyy’), 0101, 500000, 2500000, cre);

 

Insert into empleado (id_empleado, nombre, sexo, teléfono, id_cargo, id_sucursal) values (0110, Maribel Fontalvo, F, 3009635221, sss, prac);

 

Insert into sucursal (id_sucursal, nombre, dirección) values (prac, olímpica, Calle 15 n° 30-59);

 

 Insert into cargo (id_cargo, nombre, salario) values (sss, cajera, 600000);

 

Insert into forma_de_pago (id_formadepago, nombre, descripción) values (cre, crédito, manual);

 

Insert into cartera (id_factura, abonos, estado, fecha, valor_total, id_cliente id_formadepago, id_abono) values (A1B1, 200000, pendiente, to_date(‘20/03/2010’, ‘dd/mm/yyyy’), 2300000, 0101, cre, cred1);

 

Insert into abonos (id_abono, id_factura, fecha, valor_abono) values (cred1, A1B1, to_date(‘dd/mm/yyyy’, ‘20/05/2010’), 200000);

 

 

 

Triggers

 

Create or replace trigger Tabono

Before insert

On abonos

Referencing new as new old as old

For each row

Declare

Begin

   update cartera set abonos=abonos+:new.valor where id_factura=:new.id_factura;

 End Tabono;

 

Create or replace trigger Tdetalle

After insert

On Factura_maestra

Referencing new as new old as old

For each row

Declare

Begin

   update Factura_detalle set id.producto=new.valor where id_factura=:new.id_factura;

End Tdetalle;

 

Create or replace trigger TFecha

before insert

On Factura_maestra

Referencing new as new old as old

For each row

Declare

Begin

   update Factura_detalle set fecha=now()

End Tdetalle;

 

 

Create or replace trigger TdetalleClien

After insert

On Factura_maestra

Referencing new as new old as old

For each row

Declare

Begin

   update Factura_detalle set id.cliente=new.valor where id_factura=:new.id_factura;

End Tdetalle;

 

 

 

 

 

Leave a Reply