Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE TABLE temp_region (
- region_padre VARCHAR2(70),
- region_hija VARCHAR2(70)
- );
- select count(*) from temp_region;
- CREATE TABLE temp_respuestas (
- pais VARCHAR2(70),
- respuesta VARCHAR2(5),
- pregunta VARCHAR2(300)
- );
- select *from temp_respuestas;
- CREATE TABLE temp_encuestas(
- encuesta VARCHAR2(70),
- pregunta VARCHAR2(300),
- letra VARCHAR2(5),
- respuesta VARCHAR2(70),
- correcta VARCHAR2(5)
- );
- select *from temp_encuestas;
- CREATE TABLE temp_datos(
- invento VARCHAR2(70),
- inventor VARCHAR2(70),
- profesional VARCHAR2(70),
- jefe VARCHAR2(70),
- fecha VARCHAR2(30),
- salario integer,
- comision integer,
- area VARCHAR2(70),
- ranking integer,
- ano integer,
- pais VARCHAR2(70),
- paisInventor VARCHAR2(70),
- region VARCHAR2(100),
- capital VARCHAR2(70),
- poblacion integer,
- areakm integer,
- frontera VARCHAR2(70)
- );
- CREATE TABLE area (
- id INTEGER generated always as identity (start with 1 increment by 1),
- nombre VARCHAR2(70),
- ranking INTEGER,
- id_jefe INTEGER NOT NULL
- );
- ALTER TABLE area ADD CONSTRAINT area_pk PRIMARY KEY ( id );
- CREATE TABLE asignacion (
- id INTEGER generated always as identity (start with 1 increment by 1),
- id_profesional INTEGER NOT NULL,
- id_area INTEGER NOT NULL
- );
- ALTER TABLE asignacion ADD CONSTRAINT asignacion_pk PRIMARY KEY ( id );
- CREATE TABLE contestacion (
- id INTEGER generated always as identity (start with 1 increment by 1),
- id_pais INTEGER NOT NULL,
- id_respuesta INTEGER NOT NULL
- );
- ALTER TABLE contestacion ADD CONSTRAINT contestacion_pk PRIMARY KEY ( id );
- CREATE TABLE encuesta (
- id INTEGER generated always as identity (start with 1 increment by 1),
- nombre VARCHAR2(70) NOT NULL
- );
- ALTER TABLE encuesta ADD CONSTRAINT encuesta_pk PRIMARY KEY ( id );
- CREATE TABLE frontera (
- id INTEGER generated always as identity (start with 1 increment by 1),
- id_pais INTEGER NOT NULL,
- id_pais2 INTEGER NOT NULL
- );
- ALTER TABLE frontera ADD CONSTRAINT frontera_pk PRIMARY KEY ( id );
- CREATE TABLE invension (
- id INTEGER generated always as identity (start with 1 increment by 1),
- id_invento INTEGER NOT NULL,
- id_inventor INTEGER NOT NULL
- );
- ALTER TABLE invension ADD CONSTRAINT invension_pk PRIMARY KEY ( id );
- CREATE TABLE invento (
- id INTEGER generated always as identity (start with 1 increment by 1),
- nombre VARCHAR2(70) NOT NULL,
- ano INTEGER NOT NULL,
- id_pais INTEGER NOT NULL,
- id_profesional INTEGER NOT NULL
- );
- ALTER TABLE invento ADD CONSTRAINT invento_pk PRIMARY KEY ( id );
- CREATE TABLE inventor (
- id INTEGER generated always as identity (start with 1 increment by 1),
- nombre VARCHAR2(70),
- id_pais INTEGER NOT NULL
- );
- ALTER TABLE inventor ADD CONSTRAINT inventor_pk PRIMARY KEY ( id );
- CREATE TABLE paiss (
- id INTEGER generated always as identity (start with 1 increment by 1),
- nombre VARCHAR2(70) NOT NULL,
- area INTEGER NOT NULL,
- poblacion INTEGER NOT NULL,
- capital VARCHAR2(70),
- id_region INTEGER NOT NULL
- );
- ALTER TABLE paiss ADD CONSTRAINT pais_pk PRIMARY KEY ( id );
- CREATE TABLE pregunta (
- id INTEGER generated always as identity (start with 1 increment by 1),
- pregunta VARCHAR2(70) NOT NULL,
- id_encuesta INTEGER NOT NULL
- );
- ALTER TABLE pregunta ADD CONSTRAINT pregunta_pk PRIMARY KEY ( id );
- CREATE TABLE profesional (
- id INTEGER generated always as identity (start with 1 increment by 1),
- nombre VARCHAR2(70) NOT NULL,
- fecha DATE,
- salario INTEGER,
- comision INTEGER
- );
- alter table profesional modify fecha varchar2(50)
- ALTER TABLE profesional ADD CONSTRAINT profesional_pk PRIMARY KEY ( id );
- CREATE TABLE regionn (
- id INTEGER generated always as identity (start with 1 increment by 1),
- nombre VARCHAR2(70) NOT NULL,
- id_padre INTEGER
- );
- ALTER TABLE regionn ADD CONSTRAINT region_pk PRIMARY KEY ( id );
- CREATE TABLE respuesta (
- id INTEGER generated always as identity (start with 1 increment by 1),
- respuesta VARCHAR2(20) NOT NULL,
- letra VARCHAR2(2) NOT NULL,
- correcta VARCHAR2(5) NOT NULL,
- id_pregunta INTEGER NOT NULL
- );
- ALTER TABLE respuesta ADD CONSTRAINT respuesta_pk PRIMARY KEY ( id );
- ALTER TABLE area
- ADD CONSTRAINT area_profesional_fk FOREIGN KEY ( id_jefe )
- REFERENCES profesional ( id );
- ALTER TABLE asignacion
- ADD CONSTRAINT asignacion_area_fk FOREIGN KEY ( id_area )
- REFERENCES area ( id );
- ALTER TABLE asignacion
- ADD CONSTRAINT asignacion_profesional_fk FOREIGN KEY ( id_profesional )
- REFERENCES profesional ( id );
- ALTER TABLE contestacion
- ADD CONSTRAINT contestacion_pais_fk FOREIGN KEY ( id_pais )
- REFERENCES paiss ( id );
- ALTER TABLE contestacion
- ADD CONSTRAINT contestacion_respuesta_fk FOREIGN KEY ( id_respuesta )
- REFERENCES respuesta ( id );
- ALTER TABLE frontera
- ADD CONSTRAINT frontera_pais_fk FOREIGN KEY ( id_pais )
- REFERENCES paiss ( id );
- ALTER TABLE frontera
- ADD CONSTRAINT frontera_pais_fkv2 FOREIGN KEY ( id_pais2 )
- REFERENCES paiss ( id );
- ALTER TABLE invension
- ADD CONSTRAINT invension_invento_fk FOREIGN KEY ( id_invento )
- REFERENCES invento ( id );
- ALTER TABLE invension
- ADD CONSTRAINT invension_inventor_fk FOREIGN KEY ( id_inventor )
- REFERENCES inventor ( id );
- ALTER TABLE invento
- ADD CONSTRAINT invento_pais_fk FOREIGN KEY ( id_pais )
- REFERENCES paiss ( id );
- ALTER TABLE invento
- ADD CONSTRAINT invento_profesional_fk FOREIGN KEY ( id_profesional )
- REFERENCES profesional ( id );
- ALTER TABLE inventor
- ADD CONSTRAINT inventor_pais_fk FOREIGN KEY ( id_pais )
- REFERENCES paiss ( id );
- ALTER TABLE paiss
- ADD CONSTRAINT pais_region_fk FOREIGN KEY ( id_region )
- REFERENCES regionn ( id );
- ALTER TABLE pregunta
- ADD CONSTRAINT pregunta_encuesta_fk FOREIGN KEY ( id_encuesta )
- REFERENCES encuesta ( id );
- ALTER TABLE regionn
- ADD CONSTRAINT region_region_fk FOREIGN KEY ( id_padre )
- REFERENCES regionn ( id );
- ALTER TABLE respuesta
- ADD CONSTRAINT respuesta_pregunta_fk FOREIGN KEY ( id_pregunta )
- REFERENCES pregunta ( id );
- select * from regionn
- select * from temp_region
- INSERT INTO REGIONN(nombre)
- SELECT DISTINCT region_hija as nombre
- FROM temp_region
- WHERE region_padre is null
- INSERT INTO REGIONN(nombre,id_padre)
- SELECT DISTINCT region_hija as nombre,regionn.id as id_padre
- FROM temp_region INNER JOIN regionn
- ON temp_region.region_padre = regionn.nombre
- select * from temp_encuestas
- select * from encuesta
- select * from pregunta
- select * from REGIONN
- INSERT INTO encuesta(nombre)
- SELECT DISTINCT encuesta as nombre
- FROM temp_encuestas
- select * from encuesta
- INSERT INTO pregunta(pregunta,id_encuesta)
- SELECT DISTINCT pregunta as nombre,encuesta.id as id_encuesta
- FROM temp_encuestas INNER JOIN encuesta
- ON temp_encuestas.encuesta = encuesta.nombre
- select * from pregunta
- INSERT INTO respuesta(respuesta,letra,correcta,id_pregunta)
- SELECT DISTINCT respuesta,letra,correcta,pregunta.id
- FROM temp_encuestas INNER JOIN pregunta
- ON temp_encuestas.pregunta = pregunta.pregunta
- order by pregunta.id
- select * from temp_datos
- select * from paiss
- insert into paiss(nombre,area,poblacion,capital,id_region) values('Belgica',30528,11409077,'Bruselas',13)
- INSERT INTO paiss(nombre,area,poblacion,capital,id_region)
- SELECT DISTINCT paisinventor,areakm,poblacion,capital,regionn.id
- FROM temp_datos INNER JOIN regionn
- ON temp_datos.region = regionn.nombre
- select * from temp_respuestas
- select * from contestacion
- select * from paiss
- order by nombre
- select d.respuesta,d.letra,c.pregunta, d.id_pregunta
- from respuesta d
- inner join pregunta c on c.id = d.id_pregunta
- select * from pregunta
- select * from respuesta
- create view aux3 as
- SELECT temp_respuestas.pais,temp_respuestas.respuesta,pregunta.id
- FROM temp_respuestas
- INNER JOIN pregunta
- ON temp_respuestas.pregunta = pregunta.pregunta
- order by pregunta.id
- select * from aux3
- select * from pregunta
- select pais from aux3 d
- inner join paiss
- ON d.pais like concat(paiss.nombre,'%')
- select * from aux3
- where pais not in(
- select pais from aux3 d
- inner join paiss
- ON d.pais like concat(paiss.nombre,'%')
- )
- INSERT INTO contestacion(id_pais,id_respuesta)
- SELECT paiss.id as id_pais,respuesta.id as id_respuesta
- FROM aux3 d
- INNER JOIN respuesta
- ON d.respuesta = respuesta.letra and d.id=respuesta.id_pregunta
- INNER JOIN paiss
- ON d.pais like concat(paiss.nombre,'%')
- select * from aux3
- select *from contestacion
- INSERT INTO profesional(nombre,fecha,salario,comision)
- SELECT DISTINCT profesional,fecha,salario,comision
- FROM temp_datos d
- where profesional is not null
- select *from profesional
- select *from temp_datos
- select *from invento order by nombre
- INSERT INTO invento(nombre,ano,id_pais,id_profesional)
- SELECT DISTINCT invento,ano,p.id,pr.id
- FROM temp_datos d
- INNER JOIN paiss p
- ON d.pais = p.nombre
- INNER JOIN profesional pr
- ON d.profesional = pr.nombre
- where invento is not null
- order by invento
- INSERT INTO inventor(nombre,id_pais)
- SELECT DISTINCT inventor,p.id
- FROM temp_datos d
- INNER JOIN paiss p
- ON d.pais = p.nombre
- where inventor is not null
- order by inventor
- INSERT INTO area(nombre,id_jefe)
- SELECT DISTINCT jefe,p.id
- FROM temp_datos d
- INNER JOIN profesional p
- ON d.profesional = p.nombre
- where jefe is not null
- insert into area(nombre,ranking) values('Electrónica',8)
- update area set ranking=6 where nombre='Biología'
- update area set ranking=7 where nombre='Matemática'
- update area set ranking=2 where nombre='Óptica'
- update area set ranking=6 where nombre='Mecánica'
- update area set ranking=4 where nombre='Química'
- update area set ranking=9 where nombre='Energía'
- select * from area
- INSERT INTO asignacion(id_profesional,id_area)
- SELECT DISTINCT p.id,a.id
- FROM temp_datos d
- INNER JOIN profesional p
- ON d.profesional = p.nombre
- INNER JOIN area a
- ON d.area = a.nombre
- where profesional is not null
- select * from asignacion
- INSERT INTO invension(id_invento,id_inventor)
- SELECT DISTINCT i.id,inn.id
- FROM temp_datos d
- INNER JOIN inventor inn
- ON d.inventor = inn.nombre
- INNER JOIN invento i
- ON d.invento = i.nombre
- delete from invension where id_invento=5 and id_inventor=127
- delete from invension where id_invento=123 and id_inventor=101
- select * from invension
- select *from frontera
- INSERT INTO frontera(id_pais,id_pais2)
- SELECT DISTINCT c.id,f.id
- FROM temp_datos d
- INNER JOIN paiss c
- ON d.paisinventor = c.nombre
- INNER JOIN paiss f
- ON d.frontera = f.nombre
- where d.frontera is not null
- ////////////////////////////////////////1/////////////////////////////////////////
- SELECT MAX(P.nombre) AS NOMBRE,COUNT(*) AS ASIGNADOS FROM INVENTO I
- INNER JOIN PROFESIONAL P
- ON P.id = I.id_profesional
- GROUP BY I.ID_PROFESIONAL
- ORDER BY ASIGNADOS DESC
- /////////////////////////////////2/////////////////////////////////////////////
- SELECT R.NOMBRE,COUNT(*)
- FROM PAISS P
- INNER JOIN REGIONN R
- ON R.id = P.ID_REGION
- GROUP BY R.NOMBRE
- ORDER BY R.NOMBRE
- SELECT * FROM
- (
- SELECT MAX(P.NOMBRE) AS NOMBRE,MAX(P.CAPITAL) AS CAPITAL,COUNT(*) RESPUESTAS
- FROM CONTESTACION C
- INNER JOIN PAISS P
- ON P.ID = C.ID_PAIS
- GROUP BY C.ID_PAIS
- ORDER BY RESPUESTAS
- )
- UNION
- SELECT * FROM
- (
- SELECT NOMBRE,CAPITAL,0 AS RESPUESTAS
- FROM PAISS
- WHERE ID NOT IN(SELECT ID_PAIS FROM CONTESTACION)
- )
- //////////////////////////////////3///////////////////////////////////////////////////
- SELECT * FROM PAISS
- WHERE ID NOT IN (SELECT ID_PAIS FROM FRONTERA)
- AND ID NOT IN (SELECT ID_PAIS2 FROM FRONTERA)
- AND ID NOT IN (SELECT ID_PAIS FROM INVENTOR)
- ORDER BY AREA
- ////////////////////////////////////////////4/////////////////////////////////////////
- //////////////////////////////////////////5//////////////////////////////////////////
- SELECT * FROM PROFESIONAL
- WHERE SALARIO>(
- SELECT AVG(SALARIO) FROM
- ARE
- )
- /////////////////////////////////////6///////////////////////////////////////////////////
- SELECT P.NOMBRE,COUNT(*) AS CORRECTAS
- FROM CONTESTACION C
- INNER JOIN RESPUESTA R
- ON R.ID = C.ID_RESPUESTA
- INNER JOIN PAISS P
- ON P.ID = C.ID_PAIS
- WHERE R.CORRECTA='si'
- GROUP BY P.NOMBRE
- ORDER BY CORRECTAS
- //////////////////////////////////7//////////////////////////////////////////////////
- SELECT I.NOMBRE
- FROM INVENTO I
- INNER JOIN PROFESIONAL P
- ON P.ID = I.ID_PROFESIONAL
- INNER JOIN ASIGNACION A
- ON A.ID_PROFESIONAL = P.ID
- INNER JOIN AREA AA
- ON AA.ID = A.ID_AREA
- WHERE AA.NOMBRE='Óptica';
- ////////////////////////////////////8////////////////////////////////////////////////////
- SELECT SUBSTR(NOMBRE,1,1) AS CARACTER, SUM(AREA) as AREA_TOTAL
- FROM PAISS
- GROUP BY SUBSTR(NOMBRE,1,1)
- ORDER BY CARACTER
- ////////////////////////////////////9//////////////////////////////////////////////////
- SELECT INN.NOMBRE,INN.ANO,INV.NOMBRE
- FROM INVENSION I
- INNER JOIN INVENTO INN
- ON INN.ID = I.ID_INVENTO
- INNER JOIN INVENTOR INV
- ON INV.ID = I.ID_INVENTOR
- WHERE INV.NOMBRE LIKE 'Be%'
- ///////////////////////////////10///////////////////////////////////////
- SELECT INV.NOMBRE
- FROM INVENSION I
- INNER JOIN INVENTO INN
- ON INN.ID = I.ID_INVENTO
- INNER JOIN INVENTOR INV
- ON INV.ID = I.ID_INVENTOR
- WHERE (INV.NOMBRE LIKE 'B%n' or INV.NOMBRE LIKE 'B%r') and INN.ANO<1900 AND INN.ANO>1800
- //////////////////////////////////////////11////////////////////////////////////////////
- SELECT P.NOMBRE,P.AREA,COUNT(*) TOTAL
- FROM FRONTERA F
- INNER JOIN PAISS P
- ON P.ID = F.ID_PAIS
- GROUP BY P.NOMBRE,P.AREA
- ORDER BY P.AREA
- /////////////////////////////////////////12/////////////////////////////////////////////
- SELECT *
- FROM INVENTO
- WHERE NOMBRE LIKE 'L%' and LENGTH(NOMBRE)<=4
- ///////////////////////////////13///////////////////////////////////////////////////////
- SELECT NOMBRE,SALARIO,COMISION,SALARIO+COMISION
- FROM PROFESIONAL
- WHERE COMISION>(25*SALARIO)/100
- //////////////////////////////////////14////////////////////////////////////
- SELECT MAX(E.NOMBRE),COUNT(*) AS CONTESTADAS
- FROM CONTESTACION C
- INNER JOIN RESPUESTA R
- ON R.ID = C.ID_RESPUESTA
- INNER JOIN PREGUNTA P
- ON P.ID = R.ID_PREGUNTA
- INNER JOIN ENCUESTA E
- ON E.ID = P.ID_ENCUESTA
- GROUP BY P.ID_ENCUESTA
- ORDER BY CONTESTADAS ASC
- ////////////////////////////////////15//////////////////////////////////////////
- SELECT *
- FROM PAISS
- WHERE POBLACION >
- (
- SELECT SUM(POBLACION)
- FROM PAISS
- WHERE ID_REGION=14
- )
- //////////////////////////////////////16////////////////////////////////////////////
- SELECT A.NOMBRE,A.RANKING,P.NOMBRE FROM AREA A
- INNER JOIN PROFESIONAL P
- ON P.ID = A.ID_JEFE
- WHERE A.ID !=
- (
- SELECT AA.ID
- FROM INVENSION I
- INNER JOIN INVENTO INN
- ON INN.ID = I.ID_INVENTO
- INNER JOIN INVENTOR INV
- ON INV.ID = I.ID_INVENTOR
- INNER JOIN ASIGNACION A
- ON A.ID_PROFESIONAL = INN.ID_PROFESIONAL
- INNER JOIN AREA AA
- ON AA.ID = A.ID_AREA
- WHERE INV.NOMBRE='Pasteur'
- )
- ///////////////////////////////////////17/////////////////////////////////////////
- SELECT *
- FROM INVENTO
- WHERE ANO =
- (SELECT INN.ANO
- FROM INVENSION I
- INNER JOIN INVENTO INN
- ON INN.ID = I.ID_INVENTO
- INNER JOIN INVENTOR INV
- ON INV.ID = I.ID_INVENTOR
- WHERE INV.NOMBRE = 'Benz'
- )
- //////////////////////////////////////18//////////////////////////////////////////
- SELECT NOMBRE,POBLACION,AREA FROM PAISS
- WHERE ID NOT IN(SELECT ID_PAIS FROM FRONTERA) AND ID NOT IN(SELECT ID_PAIS2 FROM FRONTERA) AND AREA>=(SELECT AREA FROM PAISS WHERE NOMBRE ='Japon')
- ///////////////////////////////////////19/////////////////////////////////////////
- SELECT P.NOMBRE,P2.NOMBRE
- FROM FRONTERA F
- INNER JOIN PAISS P
- ON P.ID = F.ID_PAIS
- INNER JOIN PAISS P2
- ON P2.ID = F.ID_PAIS2
- //////////////////////////////////////20/////////////////////////////////////////
- SELECT NOMBRE,SALARIO,COMISION
- FROM PROFESIONAL
- WHERE SALARIO>(2*COMISION) or comision is null
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement