Documentos de Académico
Documentos de Profesional
Documentos de Cultura
fk_apuesta_usuario
CREATE TABLE usuario(
idUsuario NUMBER(9) NOT NULL, FOREIGN KEY(idUsuario) REFERENCES
numeroTelefono VARCHAR(15) NOT NULL, usuario(idUsuario)
saldo VARCHAR(20) NOT NULL,
ON DELETE CASCADE;
correo VARCHAR(50) NOT NULL,
tipoId VARCHAR(20) NOT NULL, CONSULTAS
fechaNacimiento DATE NOT NULL,
ciudadExpedicionID VARCHAR(100) NOT NULL, SELECT usuario.idUsuario,AVG(ValorApostado) AS
otros XMLTYPE NOT NULL PROMEDIOVALORAPOSTADO FROM apuesta,usuario
); WHERE apuesta.idUsuario = usuario.idUsuario AND
XTABLAS FECHA BETWEEN (SYSDATE-30) AND SYSDATE
DROP TABLE usuario CASCADE CONSTRAINTS; GROUP BY usuario.idUsuario, apuesta.idUsuario;
PRIMARIAS SELECT usuario.idUsuario,valorApostado FROM
ALTER TABLE usuario ADD CONSTRAINT Pk_usuario usuario,apuesta WHERE
usuario.idUsuario=apuesta.idUsuario AND
PRIMARY KEY(idUsuario); valorApostado>300;
FORANEAS SELECT
usuario.idUsuario,usuario.saldo,apuesta.valorApostad
ALTER TABLE cupon ADD CONSTRAINT fk_cupon
o FROM usuario,apuesta WHERE
FOREIGN KEY(idUsuario) REFERENCES usuario.idUsuario=apuesta.idUsuario ;
usuario(idUsuario);
POBLADO
UNICAS
INSERT INTO usuario values (343, '4238996042',
ALTER TABLE usuario ADD CONSTRAINT 73660831, 'dgarford9i@squidoo.com', 'F',
UK_Usuarios_nTelefono UNIQUE (numeroTelefono); TO_DATE( '26-Nov-1968', 'DD-MON-YYYY'),
'Salinggara' ,
ALTER TABLE usuario ADD CONSTRAINT
'<?xml version="1.0"?>
UK_Usuarios_Correo UNIQUE (correo);
<Otros>
CHECKS <Personal>
<Nombres>johan</Nombres>
ALTER TABLE usuario ADD CONSTRAINT <Apellidos>rueda</Apellidos>
CHK_correo_usuario CHECK (correo LIKE '%@%' AND <Direccion>girardot</Direccion>
correo NOT LIKE '%@%@%' ); </Personal>
ALTER TABLE usuario ADD CONSTRAINT </Otros>'
CHK_saldo_usuario CHECK (saldo >= 0 ); );
xPOBLAR
ALTER TABLE encuentro ADD CONSTRAINT DELETE FROM usuario;
CHK_estado_encuentro CHECK (estado IN ('A','T','S') ); INDICES
TUPLAS CREATE INDEX In_apuesta_valor ON
apuesta(valorApostado);
ALTER TABLE cupon ADD CONSTRAINT xINDICES
CH_Cupon_valorI DROP INDEX In_apuesta_valor;
VISTAS
CHECK( valorActual<=valorInicial);
CREATE OR REPLACE VIEW view_estado_encuentro
ACCIONES AS
(SELECT
ALTER TABLE apuesta DROP CONSTRAINT
idUsuario,numeroApuesta,valorApado,tnormal,estado
fk_apuesta_usuario;
,nombreDeporte,tipoEncuentroFROM apuesta A ,
encuentro E WHERE estado = 'A' and (A.fecha FOR EACH ROW
BETWEEN (SYSDATE-7) and SYSDATE) ); BEGIN
RAISE_APPLICATION_ERROR(-20004,'NO SE PUEDE
CREATE OR REPLACE VIEW view_apuesta_mayor AS MODIFICAR EL ID, INTENTE CON OTRO CAMPO');
(SELECT END;
idUsuario,valorApostado,numeroApuesta,idEncuentro /
FROM apuesta CREATE OR REPLACE TRIGGER
WHERE valorApostado>=300.000 TR_USUARIO_TELEFONO
); BEFORE INSERT
xVISTAS ON usuario
DROP VIEW view_promedio_apuestas; FOR EACH ROW
DROP VIEW view_estado_encuentro; BEGIN
TRIGGERS IF(:NEW.numeroTelefono IS NULL) THEN
---GENERAR CODIGO DE CUPON AUTOMATICO :NEW.numeroTelefono:='0000000000';
CREATE SEQUENCE CODIGOCUPON END IF;
INCREMENT BY 1; END;
CREATE OR REPLACE TRIGGER TR_CODIGOCUPON /
BEFORE INSERT CREATE SEQUENCE IDCONTRINCANTE
ON cupon INCREMENT BY 1;
FOR EACH ROW CREATE OR REPLACE TRIGGER TR_IDCONTRINCANTE
BEGIN BEFORE INSERT
:NEW.codigoCupon:=CODIGOCUPON.nextval; ON contrincante
END; FOR EACH ROW
/ BEGIN
CREATE OR REPLACE TRIGGER TR_INS_APUESTA :NEW.idContrincante:=IDCONTRINCANTE.nextval;
BEFORE INSERT END;
ON APUESTA /
FOR EACH ROW TRIGGERSOK
DECLARE UPDATE apuesta
x DATE; SET valorApostado = 73
BEGIN WHERE idUsuario = 609;
SELECT (fecha) INTO x FROM encuentro SELECT * FROM apuesta;
WHERE (encuentro.idEncuentro=:new.idEncuentro); ------
IF (:NEW.fecha>=x) THEN DELETE apuesta
RAISE_APPLICATION_ERROR(-20001,'NO SE WHERE idUsuario = 609;
PUEDE INSERTAR EL MISMO DIA DE EL ENCUENTRO'); SELECT * FROM apuesta;
END IF; XTRIGGERS
END; DROP TRIGGER TR_CODIGOCUPON;
/ DROP TRIGGER TR_USUARIO_IDUSUARIO;
CREATE OR REPLACE TRIGGER TR_MOD_APUESTA CRUDE
BEFORE UPDATE OF CREATE OR REPLACE PACKAGE PC_ENCUENTROS IS
NUMEROAPUESTA,FECHA,MARCADORA,MARCADORB PROCEDURE AD_ENCUENTRO(idEncuentro IN
,TNORMAL,IDUSUARIO,IDENCUENTRO NUMBER,xMarcadorA IN NUMBER, xMarcadorB IN
ON APUESTA NUMBER, xFecha IN DATE, xEstado IN VARCHAR,
FOR EACH ROW xnombreDeporte IN VARCHAR, xtipoEncuentro IN
BEGIN VARCHAR);
RAISE_APPLICATION_ERROR(-20003,'SOLO SE PUEDE PROCEDURE MO_ENCUENTRO(xidEncuentro IN
MODIFICAR EL VALOR APOSTADO'); NUMBER,xfecha IN DATE, xestado IN VARCHAR) ;
END; PROCEDURE EL_ENCUENTRO(xidEncuentro IN
/ NUMBER) ;
CREATE TRIGGER TR_USUARIO_IDUSUARIO FUNCTION CO_ESTADO_ENCUENTROS RETURN
BEFORE UPDATE OF idUsuario SYS_REFCURSOR;
ON usuario END PC_ENCUENTROS;
/
CRUDI
CREATE OR REPLACE PACKAGE BODY PC_ENCUENTROS IS