AlgebraRelacionalSQL

Loading....

Loading....

Loading....

Loading....

Loading....

Texto completo

(1)

Algebra Relacional

/*Seleccion*/

1.- Mostrar todos los registros de las entidades de la Base de datos

select * from directivos;

select * from genero; select * from localidad;

select * from personal; select * from proyectos;

select * from tipopersonal;

select * from unidadorganizativa;

2.- Otras formas de selección:

a.- Unidades organizativas cuyos numero de empleados sea mayor a 10 y menor a 50 trabajadores:

select * from unidadorganizativa where num_emp >10 and num_emp < 70; /* Respuesta: 13*/

b.- Unidades organizativas cuya localidad sea 1:

select * from unidadorganizativa where id_localidad=1; /* Respuesta: 75*/

c.- Unidades organizativas por id_directivo:

select * from unidadorganizativa where id_directivo=1; /* Respuesta: 1*/ select * from unidadorganizativa where id_directivo=2; /* Respuesta: 4*/

select * from unidadorganizativa where id_directivo=3; /* Respuesta: 1*/ select * from unidadorganizativa where id_directivo=4; /* Respuesta: 17*/

select * from unidadorganizativa where id_directivo=5; /* Respuesta: 27*/

select * from unidadorganizativa where id_directivo=6; /* Respuesta: 29*/

d.- Personal cuya edad sea menor o igual a 50 años:

select * from personal where edad<=50; /* Respuesta: 162*/

e.- Personal por unidad organizativa:

select * from personal where id_unidadorg=1; /* Respuesta: 4*/ select * from personal where id_unidadorg=2; /* Respuesta: 8*/

select * from personal where id_unidadorg=3; /* Respuesta: 4*/ select * from personal where id_unidadorg=4; /* Respuesta: 4*/

select * from personal where id_unidadorg=5; /* Respuesta: 4*/ select * from personal where id_unidadorg=6; /* Respuesta: 4*/

select * from personal where id_unidadorg=7; /* Respuesta: 4*/ select * from personal where id_unidadorg=8; /* Respuesta: 4*/

select * from personal where id_unidadorg=9; /* Respuesta: 4*/ select * from personal where id_unidadorg=10; /* Respuesta: 4*/

select * from personal where id_unidadorg=11; /* Respuesta: 4*/ select * from personal where id_unidadorg=12; /* Respuesta: 4*/

select * from personal where id_unidadorg=13; /* Respuesta: 4*/ select * from personal where id_unidadorg=14; /* Respuesta: 4*/

select * from personal where id_unidadorg=15; /* Respuesta: 4*/ select * from personal where id_unidadorg=16; /* Respuesta: 4*/

select * from personal where id_unidadorg=17; /* Respuesta: 4*/ select * from personal where id_unidadorg=18; /* Respuesta: 4*/

select * from personal where id_unidadorg=19; /* Respuesta: 4*/

select * from personal where id_unidadorg=20; /* Respuesta: 4*/ select * from personal where id_unidadorg=21; /* Respuesta: 4*/

(2)

select * from personal where id_unidadorg=24; /* Respuesta: 4*/ select * from personal where id_unidadorg=25; /* Respuesta: 4*/

select * from personal where id_unidadorg=26; /* Respuesta: 4*/

select * from personal where id_unidadorg=27; /* Respuesta: 4*/ select * from personal where id_unidadorg=28; /* Respuesta: 4*/

select * from personal where id_unidadorg=29; /* Respuesta: 4*/ select * from personal where id_unidadorg=30; /* Respuesta: 4*/

select * from personal where id_unidadorg=31; /* Respuesta: 4*/ select * from personal where id_unidadorg=32; /* Respuesta: 4*/

select * from personal where id_unidadorg=33; /* Respuesta: 4*/ select * from personal where id_unidadorg=34; /* Respuesta: 4*/

select * from personal where id_unidadorg=35; /* Respuesta: 4*/ select * from personal where id_unidadorg=36; /* Respuesta: 4*/

select * from personal where id_unidadorg=37; /* Respuesta: 4*/ select * from personal where id_unidadorg=38; /* Respuesta: 4*/

select * from personal where id_unidadorg=39; /* Respuesta: 4*/ select * from personal where id_unidadorg=40; /* Respuesta: 4*/

select * from personal where id_unidadorg=41; /* Respuesta: 4*/ select * from personal where id_unidadorg=42; /* Respuesta: 4*/

select * from personal where id_unidadorg=43; /* Respuesta: 4*/ select * from personal where id_unidadorg=44; /* Respuesta: 4*/

select * from personal where id_unidadorg=45; /* Respuesta: 4*/ select * from personal where id_unidadorg=46; /* Respuesta: 4*/

select * from personal where id_unidadorg=47; /* Respuesta: 4*/ select * from personal where id_unidadorg=48; /* Respuesta: 4*/

select * from personal where id_unidadorg=49; /* Respuesta: 4*/ select * from personal where id_unidadorg=50; /* Respuesta: 4*/

select * from personal where id_unidadorg=51; /* Respuesta: 4*/

select * from personal where id_unidadorg=52; /* Respuesta: 4*/ select * from personal where id_unidadorg=53; /* Respuesta: 4*/

select * from personal where id_unidadorg=54; /* Respuesta: 4*/ select * from personal where id_unidadorg=55; /* Respuesta: 4*/

select * from personal where id_unidadorg=56; /* Respuesta: 4*/ select * from personal where id_unidadorg=57; /* Respuesta: 4*/

select * from personal where id_unidadorg=58; /* Respuesta: 4*/ select * from personal where id_unidadorg=59; /* Respuesta: 4*/

select * from personal where id_unidadorg=60; /* Respuesta: 4*/ select * from personal where id_unidadorg=61; /* Respuesta: 4*/

select * from personal where id_unidadorg=62; /* Respuesta: 4*/ select * from personal where id_unidadorg=63; /* Respuesta: 4*/

select * from personal where id_unidadorg=64; /* Respuesta: 4*/ select * from personal where id_unidadorg=65; /* Respuesta: 4*/

select * from personal where id_unidadorg=66; /* Respuesta: 4*/ select * from personal where id_unidadorg=67; /* Respuesta: 4*/

select * from personal where id_unidadorg=68; /* Respuesta: 4*/ select * from personal where id_unidadorg=69; /* Respuesta: 4*/

select * from personal where id_unidadorg=70; /* Respuesta: 4*/ select * from personal where id_unidadorg=71; /* Respuesta: 4*/

select * from personal where id_unidadorg=72; /* Respuesta: 4*/ select * from personal where id_unidadorg=73; /* Respuesta: 4*/

select * from personal where id_unidadorg=74; /* Respuesta: 4*/ select * from personal where id_unidadorg=75; /* Respuesta: 4*/

select * from personal where id_unidadorg=76; /* Respuesta: 4*/

select * from personal where id_unidadorg=77; /* Respuesta: 4*/ select * from personal where id_unidadorg=78; /* Respuesta: 4*/

(3)

f.- Personal cuya direccion sea CARIACO:

select * from personal where direccion='CARIACO'; /* Respuesta: 107*/

select * from personal where direccion='CUMANACOA'; /* Respuesta: 96*/

select * from personal where direccion='CUMANA'; /* Respuesta: 108*/

g.- Personal por tipo de personal:

select * from personal where id_tipopersonal = 1 /* Respuesta: 108*/

select * from personal where id_tipopersonal = 2 /* Respuesta: 107*/ select * from personal where id_tipopersonal = 3 /* Respuesta: 96*/

h.- Personal por tipo de genero:

select * from personal where id_genero = 1 /* Respuesta: 172*/ select * from personal where id_genero = 2 /* Respuesta: 139*/

select * from personal where id_genero = 3 /* Respuesta: 0*/

/*Proyección*/

1.- Mostrar la cedula, apellidos y nombres del personal que pertenezcan a Rectoria como Unidad Organizativa

select id_unidadorg, cedula, apellidos, nombre from personal where id_unidadorg=1;

2.- Mostrar el codigo de las unidades organizativas que tengan 50 trabajadores en adelante select id_unidadorg from unidadorganizativa where num_emp<=50

/*Unión*/

1.- Mostrar el codigo de la localidad presentes en las unidades organizativas, en proyectos

o en ambas cuyo id_directivo sea 5

select id_localidad from unidadorganizativa where id_directivo=5 union select id_localidad from proyectos where id_directivo=5

/*Diferencia*/

1.- Mostrar el codigo de la localidad presentes en las unidades organizativas cuyo

id_directivo sea 5, pero que no esten en proyectos y cuyo id_directivo sea 5

MINUS

select id_localidad from unidadorganizativa where id_directivo=5 minus select id_localidad

from proyectos where id_directivo=5

/*POSTGRES*/ EXCEPT

select id_localidad from unidadorganizativa where id_directivo=5 EXCEPT (select id_localidad from proyectos where id_directivo=5)

/*Intersección*/

1.- Mostrar el codigo de la localidad presentes en las unidades organizativas y en proyectos

cuyo id_directivo sea 5

Usando Intersect

select id_localidad from unidadorganizativa where id_directivo=5 intersect select

id_localidad from proyectos where id_directivo=5

Usando IN

(4)

/*Producto Cartesiano y Renombramiento*/

1.- Mostrar el nombre de la localidad en las tablas de proyectos y unidad organizativa si

id_localidad de proyectos es igual al id_localidad de unidad orgaizativa

select loc.nombre from proyectos proy, unidadorganizativa unidad, localidad loc where proy.id_localidad=unidad.id_localidad

/*Reunion Natural*/

1.- Caso INNER JOIN o Reunion Interna

a.- Mostrar todos los atributos de la tabla localidad que esten presentes en proyectos siempre y cuando el id de localidad de localidad sea igual al id de localidad de proyectos

(6)

select * from localidad loc inner join proyectos proy on loc.id_localidad = proy.id_localidad;

b.- Mostrar todos los atributos de la tabla unidad organizativa que esten presentes en

localidad siempre y cuando el id de localidad de unidad organizativa sea igual al id de localidad de localidad (79)

select * from unidadorganizativa unidad inner join localidad loc on unidad.id_localidad = loc.id_localidad;

c.- Mostrar todos los atributos de la tabla proyectos que esten presentes en localidad

siempre y cuando el id de localidad de proyectos sea igual al id de localidad de localidad y tambien el id de proyecto sea 1 (1)

select * from proyectos proy inner join localidad loc on proy.id_localidad =

loc.id_localidad where proy.id_proyecto=1;

d.- Otra (79)

select unidad.nombre NOMBREUNIDADORGANIZATIVA, concat(per.apellidos,',',per.nombre)NOMBRES

from unidadorganizativa unidad inner join personal per on unidad.id_unidadorg =

per.id_unidadorg inner join localidad loc on unidad.id_localidad = loc.id_localidad order by

unidad.nombre, per.apellidos, per.nombre;

2.- Caso OUTER JOIN o Reunion Externa a.- Usando Left Join

a.1.- select * from localidad loc left outer join proyectos proy on loc.id_localidad = proy.id_localidad;

a.2.- select * from unidadorganizativa unidad left outer join localidad loc on unidad.id_localidad = loc.id_localidad;

a.3.- select * from proyectos proy left outer join localidad loc on proy.id_localidad = loc.id_localidad where proy.id_proyecto=1;

a.4.- select unidad.nombre NOMBREUNIDADORGANIZATIVA,

concat(per.apellidos,',',per.nombre)NOMBRES from unidadorganizativa unidad left outer join

personal per on unidad.id_unidadorg = per.id_unidadorg left outer join localidad loc on unidad.id_localidad = loc.id_localidad order by unidad.nombre, per.apellidos, per.nombre;

b.- Usando Rignt Join

a.1.- select * from localidad loc right join proyectos proy on loc.id_localidad = proy.id_localidad;

a.2.- select * from unidadorganizativa unidad right join localidad loc on

unidad.id_localidad = loc.id_localidad;

a.3.- select * from proyectos proy right join localidad loc on proy.id_localidad =

loc.id_localidad where proy.id_proyecto=1;

(5)

concat(per.apellidos,',',per.nombre)NOMBRES from unidadorganizativa unidad right join personal per on unidad.id_unidadorg = per.id_unidadorg right join localidad loc on

Figure

Actualización...

Referencias

Actualización...