manipulacion de datos y funciones agregadas informix

42
PRÁCTICOS 3 Y 4 Julián Araneda Gonzalo Berger Antonio Lena Sebastián Urrutia Gastón Martini Sistemas de Bases de Datos II

Upload: sebastian-urrutia

Post on 16-Feb-2017

38 views

Category:

Software


3 download

TRANSCRIPT

Page 1: Manipulacion de datos y funciones agregadas   informix

PRÁCTICOS 3 Y 4Julián Araneda

Gonzalo BergerAntonio Lena

Sebastián UrrutiaGastón Martini

Sistemas de Bases de Datos II

Page 2: Manipulacion de datos y funciones agregadas   informix

Base de DatosLa base de datos sobre la que trabajamos está constituida por partes, proveedores y proyectos, los cuáles a su vez se encuentran relacionados, formando una cuarta tabla de envíos.

Page 3: Manipulacion de datos y funciones agregadas   informix

TablasLas tablas resultantes son:

• S (proveedores).• P (partes).• J (proyectos).• SPJ (envíos).

Page 4: Manipulacion de datos y funciones agregadas   informix

ProveedoresLa tabla de proveedores está constituida por los siguientes atributos:

sid: Identificador del proveedor.snombre: Nombre del proveedor.situacion: Situación del proveedor.ciudad: Ciudad del proveedor.

Page 5: Manipulacion de datos y funciones agregadas   informix

PartesLa tabla de partes está constituida por los siguientes atributos:

pid: Identificador de la parte.pnombre: Nombre de la parte.color: Color de la parte.peso: Peso de la parte.ciudad: Ciudad de la parte.

Page 6: Manipulacion de datos y funciones agregadas   informix

ProyectosLa tabla de proyectos está constituida por los siguientes atributos:

jid: Identificador del proyecto.jnombre: Nombre del proyecto.ciudad: Ciudad del proyecto.

Page 7: Manipulacion de datos y funciones agregadas   informix

Manipulación DMLA continuación, veremos algunos ejemplos de consultas simples hechas con SELECT.La sintaxis del SELECT es:

select [distinct] elemento(s) from tabla(s)[where condición][group by campo(s)][having condición][order by campo(s)]

Page 8: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 1 Obtener el numero y la situación de

todos los proveedores de París Select sid, situacion from s where

ciudad=“París”;

Page 9: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 2 Obtener los números de partes de todas

las partes suministrados. Select distinct p.pid as P1 from s,p;

Page 10: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 3 Obtener los datos completos de todos

los proveedores: Select * from s;

Page 11: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 4 Obtener los números de los

proveedores radicados en parís cuya situación sea mayor que 20:

Select sid from s where ciudad=“París” and situacion > 20;

Page 12: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 5 Obtener los números de proveedor y

situación de los proveedores radicados en parís en orden descendiente por situación.

Select sid, situacion from s where ciudad=“París” order by situacion desc;

Page 13: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 6 Obtener todas las combinación de

información de proveedores y partes tales que el proveedor y la parte en cuestión este situados en la misma ciudad.

Select * from s,p where s.ciudad = p.ciudad;

Page 14: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 6

Page 15: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 6

Page 16: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 6

Page 17: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 7 Obtener todas las combinaciones de

información de proveedor y parte donde la ciudad que el proveedor siga a la cuidad de la parte en orden alfabético.

Select * from s,p where s.ciudad > p.ciudad;

Page 18: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 7

Page 19: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 7

Page 20: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 8 Obtener todas las combinaciones de

información de proveedor y parte donde el proveedor y la parte en cuestión estén cosituados, pero omitiendo a los proveedores cuya situación sea 20.

Select * from s,p where s.ciudad = p.ciudad and s.situacion <> 20;

Page 21: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 8

Page 22: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 8

Page 23: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 9 Obtener todas las combinaciones de

numero de proveedor/numero de parte tales que el proveedor y la parte en cuestión estén cosituados.

Select sid, pid from s,p where s.ciudad = p.ciudad;

Page 24: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 9

Page 25: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 10 Obtener todas las parejas de nombres

de ciudad tales que un proveedor situado en la primera ciudad suministre una parte almacenada en la segunda ciudad.

Select distinct s.ciudad, p.ciudad from s, spj, p where s.sid = spj.sid and spj.pid = p.pid;

Page 26: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 10

Page 27: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 11 Obtener todas las parejas de las bases

de datos de numero de proveedor tales que los dos proveedores estén cosituados.

Select primera.sid, segunda.sid from s primera, s segunda where primera.ciudad = segunda.sid;

Page 28: Manipulacion de datos y funciones agregadas   informix

Consulta Nº 11

Page 29: Manipulacion de datos y funciones agregadas   informix

Funciones agregadas Count (atributo clave) – Numero de valores en la

columna. Count (*) – Numero de valores en la columna, los

valores nulos se manejan igual a los no nulos. Sum (atributo clave numérico) - Suma de los

valores de la columna. Avg (Atributo clave numérico) – Promedio de los

valores de la columna. Max () – Valor mas grande en la columna. Min () – Valor mas pequeño en la columna.

Page 30: Manipulacion de datos y funciones agregadas   informix

Consulta 1 Obtener el numero de proveedores

Select count (*) from s;

Page 31: Manipulacion de datos y funciones agregadas   informix

Consulta 2 Obtener el numero total de proveedores

que suministran partes en la actualidad. Select count (distinct sid) from spj;

Page 32: Manipulacion de datos y funciones agregadas   informix

Consulta 3 Obtener el numero de envíos de la parte

P2. Select count (*) from spj where pid=‘P2’;

Page 33: Manipulacion de datos y funciones agregadas   informix

Consulta 4 Obtener la cantidad total suministrada

de la parte P2 Select sum(cantidad) from spj where

pid=‘P2’

Page 34: Manipulacion de datos y funciones agregadas   informix

Consulta 5 Obtener para cada parte suministrada el

numero de parte y la cantidad enviada de esa parte.

Select pid, sum(cantidad) from spj group by pid;

Page 35: Manipulacion de datos y funciones agregadas   informix

Consulta 6 Obtener los números de todas las

partes suministradas por mas de un proveedor.

Select pid from spj group by pid having count(*) > 1;

Page 36: Manipulacion de datos y funciones agregadas   informix

Consulta 7 Obtener todas las partes cuyos nombres

comiencen con “B”. Select * from p where pnombre like ‘B

%’;

Page 37: Manipulacion de datos y funciones agregadas   informix

Consulta 9 Obtener todos los nombres de los

proveedores que suministran la parte P2.

Select snombre from s where sid in (select sid from spj where pid = ‘P2’)

Page 38: Manipulacion de datos y funciones agregadas   informix

Consulta 10 Obtener todos los nombres de los

proveedores que suministran la parte P2 Select snombre from s,spj where s.sid =

spj.sid and spj.pid=‘P2’

Page 39: Manipulacion de datos y funciones agregadas   informix

Consulta 11 Obtener los nombres de los

proveedores que suministran por lo menos una parte roja.

Select distinct s.snombre from s, p, spj where s.sid=spj.sid and p.pid=spj.pid and p.color=‘Rojo’

Page 40: Manipulacion de datos y funciones agregadas   informix

Consulta 12 Obtener los números de proveedores

situados en la misma ciudad que el proveedor “S1”.

Select sid from s where ciudad = (select ciudad from s where sid=‘S1’)

Page 41: Manipulacion de datos y funciones agregadas   informix

Consulta 13 Obtener los números de proveedores

cuya situación sea menor que el valor máximo actual de la situación en la tabla s.

Select sid from s where situacion < (select max (situacion) from s)

Page 42: Manipulacion de datos y funciones agregadas   informix

Consulta 14 Obtener los nombres de proveedores

que suministran la parte P2. Select snombre from s where exists

(select * from spj where spj.sid = s.sid and pid=‘P2’)