0% encontró este documento útil (0 votos)
67 vistas5 páginas

Estructura de Base de Datos SQL Cliente

Cargado por

morebecerril879
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
67 vistas5 páginas

Estructura de Base de Datos SQL Cliente

Cargado por

morebecerril879
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

CREATE TABLE CLIENTE(

ID_CLIENTE NUMBER,
ID_CUENTA NUMBER,
NUM_CUENTA NUMBER,
NOMBRE VARCHAR2 (30),
APELLIDO_P VARCHAR2 (30),
APELLIDO_M VARCHAR2 (30),
FECHA_NACIMIENTO DATE,
TEL_CASA VARCHAR2 (10),
TEL_CEL VARCHAR2(10),
CORREO VARCHAR2 (25),
CALLE VARCHAR2 (30),
NUM_INTERIOR VARCHAR2 (10),
NUM_EXTERIOR VARCHAR2 (10),
CP VARCHAR2 (10),
MUNICIPIO VARCHAR2 (15),
ESTADO VARCHAR2 (20),
SALDO FLOAT,
LIMITE_CREDITO NUMBER);

INSERT INTO CLIENTE VALUES (1,25,98785,'YATIZIRI','RESENDIZ','BECERRIL','14-10-


1997','21640580','5519869236','[email protected]','1RA
CERRADA','8','30','58741','ATIZAPAN','MEXICO',500.00,2000);
INSERT INTO CLIENTE VALUES (2,26,25974,'FANNY','BELLO','SOLANO','23-03-
1998','26495100','5591242623','[email protected]','ALCANFORES','2A','EDIF
2A','54467','NICOLAS','MEXICO',1000.00,2000);
INSERT INTO CLIENTE VALUES (3,27,29874,'JORGE','ACOSTA','GUZMAN','18-10-
1998','9874563','5567570457','[email protected]','ABETO','254','983','9874','NICOLAS
','MEXICO',1500.00,2000);
INSERT INTO CLIENTE VALUES (4,28,36471,'BRYAN','MENDOZA','MARTINEZ','24-03-
1996','9874163','566128644','[email protected]','DEL
RIO','S/N','S/N','54400','NICOLAS','MEXICO',2000.00,2000);

CREATE TABLE CUENTA(


ID_CUENTA NUMBER,
ID_CLIENTE NUMBER,
NUM_CUENTA NUMBER);

INSERT INTO CUENTA VALUES(1,875,987457);


INSERT INTO CUENTA VALUES(2,369,748968);
INSERT INTO CUENTA VALUES(3,987,369743);
INSERT INTO CUENTA VALUES(4,1036,369871);
INSERT INTO CUENTA VALUES(5,3698,98756);

CREATE TABLE OPERACIONES(


ID_OPERACIONES NUMBER,
ID_SUCURSAL NUMBER,
ID_CUENTA NUMBER,
FECHA_OPERACION DATE,
TIPO_OPERACION VARCHAR2 (20),
CARGO FLOAT);

INSERT INTO OPERACIONES VALUES (1,274,984,'02-11-2019','EN LINEA','500.00');


INSERT INTO OPERACIONES VALUES (2,369,874,'03-10-2019','CAJERO','1500.00');
INSERT INTO OPERACIONES VALUES (3,748,3698,'23-03-2019','CAJAS','2000.00');
INSERT INTO OPERACIONES VALUES (4,956,4598,'24-07-2019','EN LINEA','5000.00');
INSERT INTO OPERACIONES VALUES (5,698,3874,'22-04-2019','EN LINEA','8000.00');

CREATE TABLE SUCURSALES(


ID_SUCURSAL NUMBER,
COD_SUCURSAL NUMBER,
TELEFONO VARCHAR2 (15),
EMAIL VARCHAR2 (30),
MUNICIPIO VARCHAR2 (10),
LOCALIDAD VARCHAR2 (15),
ZONA VARCHAR2 (15),
COLONIA VARCHAR2 (15),
CALLE VARCHAR2 (15),
CP VARCHAR2 (15),
NUM_INTERIOR VARCHAR2 (10),
NUM_EXTERIOR VARCHAR2 (10));

INSERT INTO SUCURSALES VALUES


(1,258,'258748','[email protected]','ATIZAPAN','HIGUERA','ZONA1','HIGUERA','BUGAN
BILIAS','8745','8','97')
INSERT INTO SUCURSALES VALUES
(2,259,'214785','[email protected]','NICOLAS','COLMENA','ZONA2','LA
COLMENA','ALCANFORES','54467','257','98');
INSERT INTO SUCURSALES VALUES
(3,260,'26495100','[email protected]','AZCAPO','PASTORES','ZONA3','PASTORES','P
INO','987','274','01');
INSERT INTO SUCURSALES VALUES
(4,261,'24783','[email protected]','CUAUTITLAN','CERRADA 1','ZONA4','CERRADA
1','SAUCES','974','98','23');
INSERT INTO SUCURSALES VALUES
(5,262,'36984','[email protected]','ATIZAPN','MEXICO','ZONA5','JUAN ANGULO','BAJA
CALIFORNIA','9874','3','39');
___________________________________________________________________________________
_____________________________________________________________________________
CURSORES SIMPLES

SET SERVEROUTPUT ON;


DECLARE
CURSOR SUC1 IS
SELECT TELEFONO, EMAIL FROM SUCURSALES
ORDER BY EMAIL;
VTELEFONO VARCHAR2 (15);
VEMAIL VARCHAR2 (30);
BEGIN
OPEN SUC1;
LOOP
FETCH SUC1 INTO VTELEFONO, VEMAIL;
EXIT WHEN SUC1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(VTELEFONO||'*'||VEMAIL);
END LOOP;
CLOSE SUC1;
END;
/

SET SERVEROUTPUT ON;


DECLARE
CURSOR OPE2 IS
SELECT FECHA_OPERACION,TIPO_OPERACION,CARGO FROM OPERACIONES;
VFECHA_OPERACION DATE;
VTIPO_OPERACION VARCHAR2 (20);
VCARGO FLOAT;
BEGIN
OPEN OPE2;
LOOP
FETCH OPE2 INTO VFECHA_OPERACION,VTIPO_OPERACION,VCARGO;
EXIT WHEN OPE2%NOTFOUND;
DBMS_OUTPUT.PUT_LINE (VFECHA_OPERACION||'*'||VTIPO_OPERACION||'*'||VCARGO);
END LOOP;
CLOSE OPE2;
END;
/
___________________________________________________
CURSORES CON PARAMETROS

SET SERVEROUTPUT ON;


DECLARE
CURSOR CL1 IS SELECT * FROM CLIENTE WHERE ID_CLIENTE=1;
CLIENTE CL1%ROWTYPE;
BEGIN
OPEN CL1;
LOOP
FETCH CL1 INTO CLIENTE;
EXIT WHEN CL1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE (CLIENTE.NOMBRE);
END LOOP;
CLOSE CL1;
END;
/

SET SERVEROUTPUT ON;


DECLARE
CURSOR SUC IS SELECT * FROM SUCURSALES WHERE ID_SUCURSAL=4;
SUCURSALES SUC%ROWTYPE;
BEGIN
OPEN SUC;
LOOP
FETCH SUC INTO SUCURSALES;
EXIT WHEN SUC%NOTFOUND;
DBMS_OUTPUT.PUT_LINE (SUCURSALES.ID_SUCURSAL);
END LOOP;
CLOSE SUC;
END;
/
___________________________________________________________________________________
____________________________________________________________________________
TRIGGERS

CREATE OR REPLACE TRIGGER CUENTA


BEFORE INSERT OR UPDATE OR DELETE
ON CUENTA
FOR EACH ROW
BEGIN
IF INSERTING THEN
INSERT INTO CUENTA VALUES(
ID_CUENTA,
ID_CLIENTE,
NUM_CUENTA,
:NEW.ID_CUENTA,
:NEW.ID_CLIENTE,
:NEW.NUM_CUENTA);
END IF;
IF UPDATING THEN
INSERT INTO CUENTA VALUES
(ID_CUENTA,
ID_CLIENTE,
NUM_CUENTA,
:OLD.ID_CUENTA,
:OLD.ID_CLIENTE,
:OLD.NUM_CUENTA);
END IF;
IF DELETING THEN
INSERT INTO CUENTA VALUES
(ID_CUENTA,
ID_CLIENTE,
NUM_CUENTA,
:OLD.ID_CUENTA,
:OLD.ID_CLIENTE,
:OLD.NUM_CUENTA);
END IF;
END;
/

INSERT INTO CUENTA VALUES(6,2647,321574);

CREATE OR REPLACE TRIGGER CLIENTE


BEFORE UPDATE
ON CLIENTE
FOR EACH ROW
BEGIN
IF UPDATING('NOMBRE') THEN
INSERT INTO CLIENTE ('NOMBRE')
VALUES ('NUEVO NOMBRE' ||:NEW.NOMBRE||'VIEJO NOMBRE'
||:OLD.NOMBRE||'FECHA_NACIMIENTO'||SYSDATE);
END IF;
END;
/

update CLIENTE set nombre = 'SAMANTHA' where ID_CLIENTE=2;

CREATE OR REPLACE TRIGGER DIS1


BEFORE UPDATE
ON CUENTA
FOR EACH ROW
BEGIN
IF UPDATING('CARGO') THEN
INSERT INTO DIS1
___________________________________________________________________________________
_____________________________________________________________________________
PROCEDIMIENTOS

Crear un procedimiento que visualice el nombre y la fecha de nacimiento de algunos


clientes.
SET SERVEROUTPUT ON;
DECLARE CURSOR FALTAEM
IS
SELECT NOMBRE,FECHA_NACIMIENTO FROM CLIENTE;
ALTAS FALTAEM % ROWTYPE;
BEGIN
IF (NOT FALTAEM % ISOPEN) THEN
OPEN FALTAEM;
END IF;
FETCH FALTAEM INTO ALTAS;
WHILE (FALTAEM % FOUND) LOOP
DBMS_OUTPUT.PUT_LINE(ALTAS.NOMBRE||'*'||ALTAS.FECHA_NACIMIENTO);
FETCH FALTAEM INTO ALTAS;
END LOOP;
IF (FALTAEM % ISOPEN) THEN
CLOSE FALTAEM;
END IF;
END;
/

SET SERVEROUTPUT ON;


DECLARE CURSOR FALTAEM
IS
SELECT ID_OPERACIONES, FECHA_OPERACION, TIPO_OPERACION ,CARGO FROM OPERACIONES;
ALTAS FALTAEM % ROWTYPE;
BEGIN
IF (NOT FALTAEM % ISOPEN) THEN
OPEN FALTAEM ;
END IF;
FETCH FALTAEM INTO ALTAS;
WHILE (FALTAEM % FOUND) LOOP
DBMS_OUTPUT.PUT_LINE(ALTAS.ID_OPERACIONES||'*'||ALTAS.FECHA_OPERACION||'*'||
ALTAS.TIPO_OPERACION||'*'||ALTAS.CARGO);
FETCH FALTAEM INTO ALTAS;
END LOOP;
IF (FALTAEM % ISOPEN) THEN
CLOSE FALTAEM;
END IF;
END;
/

SET SERVEROUTPUT ON;


CREATE PROCEDURE PA_CLIENTE_NOMBRE
NOMBRE VARCHAR2 (30)
AS
SELECT NOMBRE,APELLIDO_P,APELLIDO_M
FROM CLIENTE
WHERE NOMBRE= NOMBRE;

____________________________________________________}

También podría gustarte