jueves, 2 de junio de 2011

Query's del caso "Campeonato" en 4 Diferentes Motores de Base de Datos

Modelo 1:  "Campeonato"

  1. SQL Server 2008
  • Creación de las tablas 
CREATE TABLE CAMPEONATO(
  C_CAMPEONATO CHAR(3) NOT NULL,
  N_CAMPEONATO VARCHAR(220),
  Q_PARTIDOS INT,
  PRIMARY KEY (C_CAMPEONATO))

CREATE TABLE EQUIPO(
  C_EQUIPO CHAR(2) NOT NULL,
  N_EQUIPO VARCHAR(220),
  PRIMARY KEY (C_EQUIPO))

CREATE TABLE JUGADOR(
  C_JUGADOR CHAR(3) NOT NULL,
  N_JUGADOR VARCHAR(220),
  D_NACIMIENTO DATE,
  PRIMARY KEY (C_JUGADOR));
 
CREATE TABLE JUG_EQ_CAMP(
  C_JUGADOR CHAR(3) NOT NULL,
  C_CAMPEONATO CHAR(3) NOT NULL,
  C_EQUIPO CHAR(2),
  PRIMARY KEY (C_JUGADOR, C_CAMPEONATO),
  FOREIGN KEY (C_JUGADOR) REFERENCES JUGADOR(C_JUGADOR)
)

-- ADICIONA CLAVES FORANEAS
ALTER TABLE JUG_EQ_CAMP
  ADD FOREIGN KEY (C_CAMPEONATO)
  REFERENCES CAMPEONATO(C_CAMPEONATO)

ALTER TABLE JUG_EQ_CAMP
  ADD FOREIGN KEY (C_EQUIPO)
  REFERENCES EQUIPO(C_EQUIPO)

-- BORRA UNA CLAVE FORANEA
-- ALTER TABLE JUG_EQ_CAMP
--   DROP FK__JUG_EQ_CA__C_CAM__1A14E395

CREATE TABLE ESTADIO(
  C_ESTADIO CHAR(3) NOT NULL,
  N_ESTADIO VARCHAR(220),
  PRIMARY KEY (C_ESTADIO))

CREATE TABLE PARTIDO(
  NRO_PARTIDO INT NOT NULL,
  C_ESTADIO_PART CHAR(3),
  C_EQUIPO_1 CHAR(2),
  C_EQUIPO_2 CHAR(2),
  C_CAMPEONATO CHAR(3),
  D_PARTIDO DATE,
  N_JUEZ_LINEA1 VARCHAR(250),
  N_JUEZ_LINEA2 VARCHAR(250),
  Q_GOLES_E1 INT,
  Q_GOLES_E2 INT,
  N_ARBITRO VARCHAR(220),
  C_RESULTADO VARCHAR(20),
  PRIMARY KEY (NRO_PARTIDO),
  FOREIGN KEY (C_ESTADIO_PART)
              REFERENCES ESTADIO(C_ESTADIO),
  FOREIGN KEY (C_EQUIPO_1)
              REFERENCES EQUIPO(C_EQUIPO),
  FOREIGN KEY (C_EQUIPO_2)
              REFERENCES EQUIPO(C_EQUIPO),
  FOREIGN KEY (C_CAMPEONATO)
              REFERENCES CAMPEONATO(C_CAMPEONATO)                                          
)

CREATE TABLE JUG_PARTIDO(
  C_JUGADOR   CHAR(3) NOT NULL,
  NRO_PARTIDO INT NOT NULL,
  N_POSICION  VARCHAR(220),
  NRO_CAMISETA INT NOT NULL,
  F_EXPULSADO  CHAR(1),
  F_AMONESTADO CHAR(1),
  F_GOLEADOR   CHAR(1),
  PRIMARY KEY (C_JUGADOR, NRO_PARTIDO),
  FOREIGN KEY (C_JUGADOR)
              REFERENCES JUGADOR(C_JUGADOR),
  FOREIGN KEY (NRO_PARTIDO)
              REFERENCES PARTIDO(NRO_PARTIDO)
             
)
  •  Diagrama del caso

  • Ingreso de datos
INSERT INTO EQUIPO VALUES
('E1', 'ALIANZA LIMA'),
('E2', 'UNIVERSITARIO'),
('E3', 'SPORT ANCASH'),
('E4', 'CRISTAL'),
('E5', 'BOYS')



INSERT INTO CAMPEONATO
(N_CAMPEONATO, Q_PARTIDOS, C_CAMPEONATO)
VALUES
('APERTURA 2011', 32, 'A11'),
('APERTURA 2010', 12, 'A10'),
('CLAUSURA 2011', 28, 'C11'),
('CLAUSURA 2010', 24, 'C10')



INSERT INTO JUGADOR(C_JUGADOR, N_JUGADOR)
VALUES
('J01','WALDIR SAENZ'),
('J02','JOSE LUIS CARRANZA'),
('J03','Roberto Palacios'),
('J04','Héctor Chumpitaz'),
('J05','Jorge Soto'),
('J06','Juan Jayo'),
('J07','Nolberto Solano'),
('J08','Rubén Díaz'),
('J09','Juan Reynoso'),
('J10','Percy Olivares'),
('J11','José Velásquez'),
('J12','Teófilo Cubillas'),
('J13','Teodoro Fernández'),
('J14','Franco Navarro'),
('J15','Hugo Sotil'),
('J16','Oswaldo Ramírez'),
('J17','Pedro Pablo León'),
('J18','Óscar Gómez Sánchez'),
('J19','Jorge Alcalde'),
('J20','Claudio Pizarro')



INSERT INTO JUG_EQ_CAMP VALUES
('J01','A10','E1'),
('J02','A10','E1'),
('J03','A10','E1'),
('J04','A10','E1'),
('J05','A10','E1'),
('J07','A10','E2'),
('J08','A10','E2'),
('J09','A10','E2'),
('J10','A10','E2'),
('J11','A10','E2'),
('J06','A10','E3'),
('J12','A10','E3'),
('J13','A10','E3'),
('J14','A10','E3'),
('J15','A10','E3'),
('J16','A10','E4'),
('J17','A10','E4'),
('J18','A10','E4'),
('J19','A10','E5'),
('J20','A10','E5'),
('J01','C10','E5'),
('J02','C10','E5'),
('J03','C10','E5'),
('J04','C10','E5'),
('J05','C10','E5'),
('J07','C10','E3'),
('J08','C10','E3'),
('J09','C10','E3'),
('J10','C10','E3'),
('J11','C10','E3'),
('J06','C10','E2'),
('J12','C10','E2'),
('J13','C10','E2'),
('J14','C10','E2'),
('J15','C10','E2'),
('J16','C10','E1'),
('J17','C10','E1'),
('J18','C10','E1'),
('J19','C10','E1'),
('J20','C10','E1')

INSERT INTO ESTADIO VALUES
('ES1','ESTADIO MONUMENTAL'),
('ES2','ESTADIO NACIONAL'),
('ES3','ESTADIO SAN GUSTIN'),
('ES4','ESTADIO GARCILASO DE LA VEGA'),
('ES5','ESTADIO ALIANZA LIMA')


INSERT INTO PARTIDO VALUES
(1, 'ES1', 'E1', 'E2', 'A10', '20100120',
'Albán Ynga,Edgard', 'Ávila Minchola,Julio César', 1, 2,
'López Cruz,Raúl Eduardo', 'GA GANADOR'),
(2, 'ES2', 'E4', 'E3', 'A10', '20100120',
'Albán', 'Ávila', 2, 2, 'López', 'EM EMPATE'),



  • Consultas realizadas
SELECT * FROM JUGADOR;
SELECT * FROM EQUIPO;
SELECT * FROM CAMPEONATO;
SELECT * FROM JUG_EQ_CAMP;

-- LOS JUGADORES QUE SE LLAMEN JORGE
SELECT *
FROM JUGADOR J
WHERE J.N_JUGADOR LIKE '%JORGE%'



-- CAMPEONATOS EN LOS QUE JUGO JORGE
SELECT J.N_JUGADOR, C.N_CAMPEONATO, E.N_EQUIPO
FROM JUGADOR J JOIN JUG_EQ_CAMP JEC ON (J.C_JUGADOR = JEC.C_JUGADOR)
               JOIN CAMPEONATO C ON (C.C_CAMPEONATO = JEC.C_CAMPEONATO)
               JOIN EQUIPO E ON (E.C_EQUIPO = JEC.C_EQUIPO)
WHERE J.N_JUGADOR LIKE '%JORGE%'



-- LISTADO DE JUGADORES POR EQUIPO
SELECT C.N_CAMPEONATO, E.C_EQUIPO, E.N_EQUIPO, J.C_JUGADOR, J.N_JUGADOR
FROM JUGADOR J JOIN JUG_EQ_CAMP JEC ON (J.C_JUGADOR = JEC.C_JUGADOR)
               JOIN CAMPEONATO C ON (C.C_CAMPEONATO = JEC.C_CAMPEONATO)
               JOIN EQUIPO E ON (E.C_EQUIPO = JEC.C_EQUIPO)
ORDER BY C.N_CAMPEONATO, E.N_EQUIPO



SELECT * FROM PARTIDO
SELECT * FROM ESTADIO
SELECT * FROM JUG_PARTIDO

SELECT J.C_JUGADOR, J.N_JUGADOR, E1.N_EQUIPO, E2.N_EQUIPO, P.NRO_PARTIDO,
       JP.F_GOLEADOR 'GOLEADOR'
FROM JUGADOR J JOIN JUG_PARTIDO JP ON(J.C_JUGADOR = JP.C_JUGADOR)
               JOIN PARTIDO P ON (JP.NRO_PARTIDO = P.NRO_PARTIDO)
               JOIN EQUIPO E1 ON (E1.C_EQUIPO = P.C_EQUIPO_1)
               JOIN EQUIPO E2 ON (E2.C_EQUIPO = P.C_EQUIPO_2)
             
SELECT J.C_JUGADOR, J.N_JUGADOR, E1.N_EQUIPO, E2.N_EQUIPO, P.NRO_PARTIDO,
       JP.F_GOLEADOR 'GOLEADOR'
FROM JUGADOR J JOIN JUG_PARTIDO JP ON(J.C_JUGADOR = JP.C_JUGADOR)
               JOIN PARTIDO P ON (JP.NRO_PARTIDO = P.NRO_PARTIDO)
               JOIN EQUIPO E1 ON (E1.C_EQUIPO = P.C_EQUIPO_1)
               JOIN EQUIPO E2 ON (E2.C_EQUIPO = P.C_EQUIPO_2)
WHERE JP.F_GOLEADOR = 'S'
              

    2. ORACLE
  • Ingreso del código



  • Ingreso de datos a las tablas








    3. MySQL
  • Código
CREATE TABLE ARBITRO (
       C_ARBITRO            VARCHAR(3) NOT NULL,
       Q_AÑOS               INTEGER
);

CREATE UNIQUE INDEX XPKARBITRO ON ARBITRO
(
       C_ARBITRO
);


ALTER TABLE ARBITRO
       ADD PRIMARY KEY (C_ARBITRO);


CREATE TABLE HOTEL (
       C_HOTEL              VARCHAR(3) NOT NULL,
       N_HOTEL              VARCHAR(250),
       T_DIRECCION          VARCHAR(250),
       NRO_TELEFONO         NUMERIC(12)
);

CREATE UNIQUE INDEX XPKHOTEL ON HOTEL
(
       C_HOTEL
);


ALTER TABLE HOTEL
       ADD PRIMARY KEY (C_HOTEL);


CREATE TABLE JORNADA (
       C_JORNADA            VARCHAR(3) NOT NULL,
       D_FECHA_JORNADA      DATE
);

CREATE UNIQUE INDEX XPKJORNADA ON JORNADA
(
       C_JORNADA
);


ALTER TABLE JORNADA
       ADD PRIMARY KEY (C_JORNADA);


CREATE TABLE JUGADOR (
       C_JUGADOR            VARCHAR(3) NOT NULL,
       Q_NIVEL              INTEGER DEFAULT 5
                                   CHECK (Q_NIVEL BETWEEN 1 AND 12)
);

CREATE UNIQUE INDEX XPKJUGADOR ON JUGADOR
(
       C_JUGADOR
);


ALTER TABLE JUGADOR
       ADD PRIMARY KEY (C_JUGADOR);


CREATE TABLE MEDIO_COMUNICACION (
       C_MEDIO              VARCHAR(3) NOT NULL,
       N_MEDIO              VARCHAR(120)
);

CREATE UNIQUE INDEX XPKMEDIO_COMUNICACION ON MEDIO_COMUNICACION
(
       C_MEDIO
);


ALTER TABLE MEDIO_COMUNICACION
       ADD PRIMARY KEY (C_MEDIO);


CREATE TABLE MOVIMIENTO (
       NUM_ORDEN              INTEGER NOT NULL,
       NUM_PARTIDA            VARCHAR(3) NOT NULL,
       N_FICHA              VARCHAR(20),
       T_POS_INICIAL        VARCHAR(20),
       T_POS_FINAL          VARCHAR(20),
       T_COMENTARIO         VARCHAR(20)
);

CREATE UNIQUE INDEX XPKMOVIMIENTO ON MOVIMIENTO
(
       NUM_ORDEN,
       NUM_PARTIDA
);

CREATE INDEX XIF12MOVIMIENTO ON MOVIMIENTO
(
       NUM_PARTIDA
);


ALTER TABLE MOVIMIENTO
       ADD PRIMARY KEY (NUM_ORDEN, NUM_PARTIDA);


CREATE TABLE PAIS (
       C_PAIS               VARCHAR(2) NOT NULL,
       N_PAIS               VARCHAR(20),
       N_FEDERACION         VARCHAR(120),
       Q_CLUBS_AJEDREZ      INTEGER
                                   CHECK (Q_CLUBS_AJEDREZ >= 0)
);

CREATE UNIQUE INDEX XPKPAIS ON PAIS
(
       C_PAIS
);


ALTER TABLE PAIS
       ADD PRIMARY KEY (C_PAIS);


CREATE TABLE PARTICIPANTE (
       C_ASOCIADO           VARCHAR(3) NOT NULL,
       C_PAIS               VARCHAR(2) NOT NULL,
       N_NOMBRE             VARCHAR(120),
       T_DIRECCION          VARCHAR(250),
       D_FECHA_NAC          DATE
);

CREATE UNIQUE INDEX XPKPARTICIPANTE ON PARTICIPANTE
(
       C_ASOCIADO
);

CREATE INDEX XIF4PARTICIPANTE ON PARTICIPANTE
(
       C_PAIS
);


ALTER TABLE PARTICIPANTE
       ADD PRIMARY KEY (C_ASOCIADO);


CREATE TABLE PARTICIPANTE_HOTEL (
       C_ASOCIADO           VARCHAR(3) NOT NULL,
       C_HOTEL              VARCHAR(3) NOT NULL,
       D_INICIO             DATE NOT NULL,
       D_FIN                DATE
);

CREATE UNIQUE INDEX XPKPARTICIPANTE_HOTEL ON PARTICIPANTE_HOTEL
(
       C_ASOCIADO,
       C_HOTEL,
       D_INICIO
);

CREATE INDEX XIF6PARTICIPANTE_HOTEL ON PARTICIPANTE_HOTEL
(
       C_ASOCIADO
);

CREATE INDEX XIF7PARTICIPANTE_HOTEL ON PARTICIPANTE_HOTEL
(
       C_HOTEL
);


ALTER TABLE PARTICIPANTE_HOTEL
       ADD PRIMARY KEY (C_ASOCIADO, C_HOTEL, D_INICIO);


CREATE TABLE PARTIDA (
       NUM_PARTIDA            VARCHAR(3) NOT NULL,
       C_HOTEL              VARCHAR(3) NOT NULL,
       N_SALA               VARCHAR(120) NOT NULL,
       C_ARBITRO            VARCHAR(3) NOT NULL,
       C_JUGADOR2           VARCHAR(3) NOT NULL,
       C_JORNADA            VARCHAR(3) NOT NULL,
       C_JUGADOR1           VARCHAR(3) NOT NULL,
       N_COLOR_J1           VARCHAR(50),
       N_COLOR_J2           VARCHAR(50),
       Q_ENTRADAS           INTEGER
);

CREATE UNIQUE INDEX XPKPARTIDA ON PARTIDA
(
       NUM_PARTIDA
);

CREATE INDEX XIF10PARTIDA ON PARTIDA
(
       C_JUGADOR1
);

CREATE INDEX XIF11PARTIDA ON PARTIDA
(
       C_ARBITRO
);

CREATE INDEX XIF17PARTIDA ON PARTIDA
(
       C_HOTEL,
       N_SALA
);

CREATE INDEX XIF8PARTIDA ON PARTIDA
(
       C_JORNADA
);

CREATE INDEX XIF9PARTIDA ON PARTIDA
(
       C_JUGADOR2
);


ALTER TABLE PARTIDA
       ADD PRIMARY KEY (NUM_PARTIDA);


CREATE TABLE SALA (
       C_HOTEL              VARCHAR(3) NOT NULL,
       N_SALA               VARCHAR(120) NOT NULL,
       Q_CAPACIDAD          INTEGER
);

CREATE UNIQUE INDEX XPKSALA ON SALA
(
       C_HOTEL,
       N_SALA
);

CREATE INDEX XIF13SALA ON SALA
(
       
C_HOTEL
);


ALTER TABLE SALA
       ADD PRIMARY KEY (C_HOTEL, N_SALA);


CREATE TABLE SALA_MEDIO_COMUNICACION (
       C_HOTEL              VARCHAR(3) NOT NULL,
       N_SALA               VARCHAR(120) NOT NULL,
       C_MEDIO              VARCHAR(3) NOT NULL
);

CREATE UNIQUE INDEX XPKSALA_MEDIO_COMUNICACION ON SALA_MEDIO_COMUNICACION
(
       C_HOTEL,
       N_SALA,
       C_MEDIO
);

CREATE INDEX XIF15SALA_MEDIO_COMUNICACION ON SALA_MEDIO_COMUNICACION
(
       C_HOTEL,
       N_SALA
);

CREATE INDEX XIF16SALA_MEDIO_COMUNICACION ON SALA_MEDIO_COMUNICACION
(
       C_MEDIO
);


ALTER TABLE SALA_MEDIO_COMUNICACION
       ADD PRIMARY KEY (C_HOTEL, N_SALA, C_MEDIO);


ALTER TABLE ARBITRO
       ADD FOREIGN KEY (C_ARBITRO)
                             REFERENCES PARTICIPANTE
                             ON DELETE CASCADE
                             ON UPDATE CASCADE;


ALTER TABLE JUGADOR
       ADD FOREIGN KEY (C_JUGADOR)
                             REFERENCES PARTICIPANTE
                             ON DELETE CASCADE
                             ON UPDATE CASCADE;


ALTER TABLE MOVIMIENTO
       ADD FOREIGN KEY (NUM_PARTIDA)
                             REFERENCES PARTIDA
                             ON DELETE RESTRICT
                             ON UPDATE RESTRICT;


ALTER TABLE PARTICIPANTE
       ADD FOREIGN KEY (C_PAIS)
                             REFERENCES PAIS
                             ON DELETE RESTRICT
                             ON UPDATE RESTRICT;


ALTER TABLE PARTICIPANTE_HOTEL
       ADD FOREIGN KEY (C_HOTEL)
                             REFERENCES HOTEL
                             ON DELETE RESTRICT
                             ON UPDATE RESTRICT;


ALTER TABLE PARTICIPANTE_HOTEL
       ADD FOREIGN KEY (C_ASOCIADO)
                             REFERENCES PARTICIPANTE
                             ON DELETE RESTRICT
                             ON UPDATE RESTRICT;


ALTER TABLE PARTIDA
       ADD FOREIGN KEY (C_HOTEL, N_SALA)
                             REFERENCES SALA
                             ON DELETE RESTRICT
                             ON UPDATE RESTRICT;


ALTER TABLE PARTIDA
       ADD FOREIGN KEY (C_ARBITRO)
                             REFERENCES ARBITRO
                             ON DELETE RESTRICT
                             ON UPDATE RESTRICT;


ALTER TABLE PARTIDA
       ADD FOREIGN KEY (C_JUGADOR1)
                             REFERENCES JUGADOR
                             ON DELETE RESTRICT
                             ON UPDATE RESTRICT;


ALTER TABLE PARTIDA
       ADD FOREIGN KEY (C_JUGADOR2)
                             REFERENCES JUGADOR
                             ON DELETE RESTRICT
                             ON UPDATE RESTRICT;


ALTER TABLE PARTIDA
       ADD FOREIGN KEY (C_JORNADA)
                             REFERENCES JORNADA
                             ON DELETE RESTRICT
                             ON UPDATE RESTRICT;


ALTER TABLE SALA
       ADD FOREIGN KEY (C_HOTEL)
                             REFERENCES HOTEL
                             ON DELETE RESTRICT
                             ON UPDATE RESTRICT;


ALTER TABLE SALA_MEDIO_COMUNICACION
       ADD FOREIGN KEY (C_MEDIO)
                             REFERENCES MEDIO_COMUNICACION
                             ON DELETE RESTRICT
                             ON UPDATE RESTRICT;


ALTER TABLE SALA_MEDIO_COMUNICACION
       ADD FOREIGN KEY (C_HOTEL, N_SALA)
                             REFERENCES SALA
                             ON DELETE RESTRICT
                             ON UPDATE RESTRICT;
  • Ingreso de datos
  Insertar datos a la tabla Equipo


    Insertar datos a la tabla Campeonato

    Insertar datos a la tabla Estadio


    Insertar datos a la tabla JugadorxEquipoxCampeonato



    Insertar datos a la tabla Jugador



    Insertar datos a la tabla jugadorxPartido

    Insertar datos a la tabla Partido


  • Consultas realizadas
 Extraer todos los datos de la tabla Jugador

Extraer todos los datos de la tabla Equipo


Extraer todos los datos de la tabla Campeonato



Extraer todos los datos de la tabla JugadorxEquipoxCampeonato

Extraer todos los datos de los jugadores que se llamen Jorge



Extraer todos los datos de los equipos y campeonatos en los que jugo Jorge

Extraer todos los datos de la tabla JugadorxEquipo


Extraer todos los datos de la tabla Partido


Extraer todos los datos de la tabla Estadio



Extraer todos los datos de la tabla JugadorxPartido



Extraer todos los datos de los equipos, partidos y si fue goleador o no de un jugador



Extraer todos los datos de los jugadores que fueron goleadores



4. PostgreSQL

  • Codigo
CREATE TABLE CAMPEONATO (
C_CAMPEONATO CHAR(3) NOT NULL,
N_CAMPENATO VARCHAR(220),
Q_PARTIDOS INTEGER
);

CREATE UNIQUE INDEX XPKCAMPEONATO ON CAMPEONATO
(
C_CAMPEONATO
);

ALTER TABLE CAMPEONATO
ADD PRIMARY KEY (C_CAMPEONATO);

CREATE TABLE EQUIPO (
C_EQUIPO CHAR(2) NOT NULL,
 N_EQUIPO VARCHAR(220)
);

CREATE UNIQUE INDEX XPKEQUIPO ON EQUIPO
(C_EQUIPO
);

ALTER TABLE EQUIPO
ADD PRIMARY KEY (C_EQUIPO);

CREATE TABLE ESTADIO (
C_ESTADIO CHAR(3) NOT NULL,
N_ESTADIO VARCHAR(220)
);

CREATE UNIQUE INDEX XPKESTADIO ON ESTADIO
(
C_ESTADIO
);

ALTER TABLE ESTADIO
ADD PRIMARY KEY (C_ESTADIO);

CREATE TABLE JUG_X_EQ_X_CAMP (C_JUGADOR CHAR(3) NOT NULL,
 C_CAMPEONATO CHAR(3) NOT NULL,
 C_EQUIPO CHAR(2) NOT NULL
);

CREATE UNIQUE INDEX XPKJUG_X_EQ_X_CAMP ON JUG_X_EQ_X_CAMP
(
 C_JUGADOR,C_CAMPEONATO
);

CREATE INDEX XIF11JUG_X_EQ_X_CAMP ON JUG_X_EQ_X_CAMP
(C_JUGADOR
);

CREATE INDEX XIF6JUG_X_EQ_X_CAMP ON JUG_X_EQ_X_CAMP
(C_CAMPEONATO
);

CREATE INDEX XIF7JUG_X_EQ_X_CAMP ON JUG_X_EQ_X_CAMP
(
C_EQUIPO
);

ALTER TABLE JUG_X_EQ_X_CAMP
ADD PRIMARY KEY (C_JUGADOR, C_CAMPEONATO);

CREATE TABLE JUGADOR (
C_JUGADOR CHAR(3) NOT NULL, N_JUGADOR VARCHAR(220), D_NACIMIENTO DATE
);

CREATE UNIQUE INDEX XPKJUGADOR ON JUGADOR
(C_JUGADOR
);

ALTER TABLE JUGADOR
ADD PRIMARY KEY (C_JUGADOR);

CREATE TABLE JUGADOR_X_PARTIDO (C_JUGADOR CHAR(3) NOT NULL, NRO_PARTIDO INTEGER NOT NULL, N_POSICION VARCHAR(220),
NRO_CAMISETA INTEGER, F_EXPULSADO CHAR(1), F_AMONESTADO CHAR(1), F_GOLEADOR CHAR(1)
);

CREATE UNIQUE INDEX XPKJUGADOR_X_PARTIDO ON JUGADOR_X_PARTIDO
(
C_JUGADOR,
 NRO_PARTIDO
);

CREATE INDEX XIF12JUGADOR_X_PARTIDO ON JUGADOR_X_PARTIDO
(
C_JUGADOR
);

CREATE INDEX XIF13JUGADOR_X_PARTIDO ON JUGADOR_X_PARTIDO
(NRO_PARTIDO
);

ALTER TABLE JUGADOR_X_PARTIDO
ADD PRIMARY KEY (C_JUGADOR, NRO_PARTIDO);

CREATE TABLE PARTIDO (NRO_PARTIDO INTEGER NOT NULL, C_ESTADIO CHAR(3) NOT NULL, C_EQUIPO_2 CHAR(2) NOT NULL,
C_CAMPEONATO CHAR(3) NOT NULL, C_EQUIPO_1 CHAR(2) NOT NULL,
 D_PARTIDO DATE, N_JUEZ_LINEA2 VARCHAR(220), N_JUEZ_LINEA1 VARCHAR(250), Q_GOLES_E1 INTEGER, Q_GOLES_E2 INTEGER, N_ARBITRO VARCHAR(220),
 C_RESULTADO VARCHAR(20)
);

CREATE UNIQUE INDEX XPKPARTIDO ON PARTIDO
(
NRO_PARTIDO
);

CREATE INDEX XIF1PARTIDO ON PARTIDO
(C_CAMPEONATO
);

CREATE INDEX XIF2PARTIDO ON PARTIDO
(
C_EQUIPO_2
);

CREATE INDEX XIF3PARTIDO ON PARTIDO
(
C_EQUIPO_1
);

CREATE INDEX XIF4PARTIDO ON PARTIDO
(C_ESTADIO
);

ALTER TABLE PARTIDO
ADD PRIMARY KEY (NRO_PARTIDO);

ALTER TABLE JUG_X_EQ_X_CAMP
ADD FOREIGN KEY (C_JUGADOR)
    REFERENCES JUGADOR
    ON DELETE RESTRICT
    ON UPDATE RESTRICT;

ALTER TABLE JUG_X_EQ_X_CAMP
ADD FOREIGN KEY (C_EQUIPO)
   REFERENCES EQUIPO
   ON DELETE RESTRICT ON UPDATE RESTRICT;

ALTER TABLE JUG_X_EQ_X_CAMP
ADD FOREIGN KEY (C_CAMPEONATO)
   REFERENCES CAMPEONATO
   ON DELETE RESTRICT ON UPDATE RESTRICT;

ALTER TABLE JUGADOR_X_PARTIDO
ADD FOREIGN KEY (NRO_PARTIDO)
   REFERENCES PARTIDO
   ON DELETE RESTRICT ON UPDATE RESTRICT;

ALTER TABLE JUGADOR_X_PARTIDO
ADD FOREIGN KEY (C_JUGADOR)
    REFERENCES JUGADOR ON DELETE RESTRICT
    ON UPDATE RESTRICT;

ALTER TABLE PARTIDO
ADD FOREIGN KEY (C_ESTADIO)
    REFERENCES ESTADIO
    ON DELETE RESTRICT ON UPDATE RESTRICT;

ALTER TABLE PARTIDO
ADD FOREIGN KEY (C_EQUIPO_1)
   REFERENCES EQUIPO
   ON DELETE RESTRICT ON UPDATE RESTRICT;

ALTER TABLE PARTIDO
ADD FOREIGN KEY (C_EQUIPO_2)
    REFERENCES EQUIPO
   ON DELETE RESTRICT
   ON UPDATE RESTRICT;

ALTER TABLE PARTIDO
ADD FOREIGN KEY (C_CAMPEONATO)
    REFERENCES CAMPEONATO ON DELETE RESTRICT ON UPDATE RESTRICT;
  • Ingreso de datos
Insertar equipos

INSERT INTO EQUIPO VALUES
('E1', 'ALIANZA LIMA'),
('E2', 'UNIVERSITARIO'),
('E3', 'SPORT ANCASH'),
('E4', 'CRISTAL'),
('E5', 'BOYS');

Insertar campeonatos

INSERT INTO CAMPEONATO VALUES
('A11','APERTURA 2011', 32),
('A10','APERTURA 2010', 12),
('C11','CLAUSURA 2011', 28),
('C10','CLAUSURA 2010', 24);



Insertar jugadores

INSERT INTO JUGADOR(C_JUGADOR, N_JUGADOR)
VALUES
('J01','WALDIR SAENZ'),('J02','JOSE LUIS CARRANZA'),
('J03','Roberto Palacios'),('J04','Héctor Chumpitaz'),
('J05','Jorge Soto'),('J06','Juan Jayo'),
('J07','Nolberto Solano'),('J08','Rubén Díaz'),
('J09','Juan Reynoso'),('J10','Percy Olivares'),
('J11','José Velásquez'),('J12','Teófilo Cubillas'),
('J13','Teodoro Fernández'),('J14','Franco Navarro'),
('J15','Hugo Sotil'),('J16','Oswaldo Ramírez'),
('J17','Pedro Pablo León'),('J18','Óscar Gómez Sánchez'),
('J19','Jorge Alcalde'),('J20','Claudio Pizarro');


Insertar datos en la tabla JugadorxEquipoxPartido

INSERT INTO JUG_EQ_CAMP VALUES
('J01','A10','E1'),('J02','A10','E1'),('J03','A10','E1'),('J04','A10','E1'),
('J05','A10','E1'),('J07','A10','E2'),('J08','A10','E2'),('J09','A10','E2'),
('J10','A10','E2'),('J11','A10','E2'),('J06','A10','E3'),('J12','A10','E3'),
('J13','A10','E3'),('J14','A10','E3'),('J15','A10','E3'),('J16','A10','E4'),
('J17','A10','E4'),('J18','A10','E4'),('J19','A10','E5'),('J20','A10','E5'),
('J01','C10','E5'),('J02','C10','E5'),('J03','C10','E5'),('J04','C10','E5'),
('J05','C10','E5'),('J07','C10','E3'),('J08','C10','E3'),('J09','C10','E3'),
('J10','C10','E3'),('J11','C10','E3'),('J06','C10','E2'),('J12','C10','E2'),
('J13','C10','E2'),('J14','C10','E2'),('J15','C10','E2'),('J16','C10','E1'),
('J17','C10','E1'),('J18','C10','E1'),('J19','C10','E1'),('J20','C10','E1');




Insertar estadios
INSERT INTO ESTADIO VALUES
('ES1','ESTADIO MONUMENTAL'),
('ES2','ESTADIO NACIONAL'),
('ES3','ESTADIO SAN GUSTIN'),
('ES4','ESTADIO GARCILASO DE LA VEGA'),
('ES5','ESTADIO ALIANZA LIMA');




Insertar partidos

INSERT INTO PARTIDO VALUES
(1, 'ES1', 'E1','E2', 'A10', '2010/01/20',
'Albán Ynga,Edgard', 'Ávila Minchola,Julio César', 1, 2,
'López Cruz,Raúl Eduardo', 'GA GANADOR'),
(2, 'ES2', 'E4', 'E3','A10',  '2010/01/20',
'Albán', 'Ávila', 2, 2, 'López', 'EM EMPATE'),
(3, 'ES3', 'E1', 'E3', 'A10', '2010/03/20',
'Albán', 'Ávila', 2, 3, 'López', 'GA GANADOR'),
(4, 'ES1', 'E2','E5', 'A10',  '2010/02/20',
'Albán', 'Ávila', 3, 2, 'López', 'GA GANADOR');



Insertar datos en la tabla JugadorxEquipoINSERT INTO JUG_PARTIDO VALUES
('J01', 1, 'DELANTERO'     ,10, 'N', 'S', 'S'),
('J02', 1, 'DEFENSA'       , 5, 'N', 'N', 'N'),
('J03', 1, 'MEDIO CAMPISTA', 8, 'S', 'N', 'N'),
('J04', 1, 'ARQUERO'       , 1, 'N', 'N', 'N'),
('J05', 1, 'VOLANTE'       , 6, 'N', 'S', 'N'),
('J07', 1, 'DELANTERO'     ,12, 'N', 'S', 'N'),
('J08', 1, 'DEFENSA'       , 7, 'S', 'N', 'N'),
('J09', 1, 'MEDIO CAMPISTA', 9, 'S', 'N', 'N'),
('J10', 1, 'ARQUERO'       , 1, 'N', 'N', 'N'),
('J11', 1, 'VOLANTE'       ,11, 'N', 'S', 'N'),
('J17', 2, 'DELANTERO'     ,10, 'N', 'S', 'S'),
('J18', 2, 'DEFENSA'       , 5, 'N', 'N', 'N'),
('J16', 2, 'MEDIO CAMPISTA', 8, 'S', 'N', 'N'),
('J06', 2, 'ARQUERO'       , 1, 'N', 'N', 'N'),
('J12', 2, 'VOLANTE'       , 6, 'N', 'S', 'N'),
('J13', 2, 'DELANTERO'     ,12, 'N', 'S', 'N'),
('J15', 2, 'DEFENSA'       , 7, 'S', 'N', 'N'),
('J14', 2, 'MEDIO CAMPISTA', 9, 'S', 'N', 'N');



No hay comentarios:

Publicar un comentario