57 - Unión |
Un supermercado almacena en una tabla denominada "proveedores" los datos de las compañías que le proveen de mercaderías; en una tabla llamada "clientes", los datos de los comercios que le compran y en otra tabla "empleados" los datos de los empleados. 1- Cree las tablas: create table proveedores( codigo serial, nombre varchar (30), domicilio varchar(30), primary key(codigo) ); create table clientes( codigo serial, nombre varchar (30), domicilio varchar(30), primary key(codigo) ); create table empleados( documento char(8) not null, nombre varchar(20), apellido varchar(20), domicilio varchar(30), primary key(documento) ); 2- Ingrese algunos registros: insert into proveedores(nombre,domicilio) values('Bebida cola','Colon 123'); insert into proveedores(nombre,domicilio) values('Carnes Unica','Caseros 222'); insert into proveedores(nombre,domicilio) values('Lacteos Blanca','San Martin 987'); insert into clientes(nombre,domicilio) values('Supermercado Lopez','Avellaneda 34'); insert into clientes(nombre,domicilio) values('Almacen Anita','Colon 987'); insert into clientes(nombre,domicilio) values('Garcia Juan','Sucre 345'); insert into empleados values('23333333','Federico','Lopez','Colon 987'); insert into empleados values('28888888','Ana','Marquez','Sucre 333'); insert into empleados values('30111111','Luis','Perez','Caseros 956'); 3- El supermercado quiere enviar una tarjeta de salutación a todos los proveedores, clientes y empleados y necesita el nombre y domicilio de todos ellos. Emplee el operador "union" para obtener dicha información de las tres tablas. 4- Agregue una columna con un literal para indicar si es un proveedor, un cliente o un empleado y ordene por dicha columna.Ver solución
drop table if exists proveedores; drop table if exists clientes; drop table if exists empleados; create table proveedores( codigo serial, nombre varchar (30), domicilio varchar(30), primary key(codigo) ); create table clientes( codigo serial, nombre varchar (30), domicilio varchar(30), primary key(codigo) ); create table empleados( documento char(8) not null, nombre varchar(20), apellido varchar(20), domicilio varchar(30), primary key(documento) ); insert into proveedores(nombre,domicilio) values('Bebida cola','Colon 123'); insert into proveedores(nombre,domicilio) values('Carnes Unica','Caseros 222'); insert into proveedores(nombre,domicilio) values('Lacteos Blanca','San Martin 987'); insert into clientes(nombre,domicilio) values('Supermercado Lopez','Avellaneda 34'); insert into clientes(nombre,domicilio) values('Almacen Anita','Colon 987'); insert into clientes(nombre,domicilio) values('Garcia Juan','Sucre 345'); insert into empleados values('23333333','Federico','Lopez','Colon 987'); insert into empleados values('28888888','Ana','Marquez','Sucre 333'); insert into empleados values('30111111','Luis','Perez','Caseros 956'); select nombre, domicilio from proveedores union select nombre, domicilio from clientes union select (apellido||' '||nombre), domicilio from empleados; select nombre, domicilio, 'proveedor' as categoria from proveedores union select nombre, domicilio, 'cliente' from clientes union select (apellido||' '||nombre), domicilio , 'empleado' from empleados order by categoria;