/* @pregBD_Piezas.sql */ SET ECHO ON /* mostrar los valores NULL como '' (SQLPLUS) */ SET NULL '' /* especificar los formatos de algunas columnas (SQLPLUS) */ column nombre format a20; column Pieza format a16; column color format a12; /* indicar que si no cabe en la columna, trunque el valor (SQLPLUS) */ SET WRAP OFF /* clave y nombre de los proveedores que suministran piezas, junto con las piezas que suministran */ SELECT V.clvProv "id.", nombProv "nombre", P.clvPieza "ref.", nombPieza "Pieza", color FROM Proveedor V, Suministrar S, Pieza P WHERE V.clvProv = S.clvProv AND S.clvPieza = P.clvPieza; SELECT clvProv "id.", nombProv "nombre", clvPieza "ref.", nombPieza "Pieza", color FROM Proveedor V NATURAL JOIN Suministrar S NATURAL JOIN Pieza P; /* especificar los formatos de las columnas (SQLPLUS) */ column nombPieza heading "Pieza" format a16; column nombProv heading "Vendedor" format a16; column clvProv heading "ID" format 999; column clvPieza heading "ref." format 999; /* clave y nombre de los proveedores, junto con las piezas que suministran */ SELECT V.clvProv "id.", nombProv "nombre", P.clvPieza "ref.", nombPieza "Pieza", color FROM Proveedor V, Suministrar S, Pieza P WHERE V.clvProv = S.clvProv (+) AND S.clvPieza = P.clvPieza (+); /* clave y nombre de los proveedores, junto con las piezas que suministran */ SELECT V.clvProv, nombProv, P.clvPieza, nombPieza, color FROM Proveedor V, Suministrar S, Pieza P WHERE V.clvProv = S.clvProv AND S.clvPieza = P.clvPieza UNION SELECT clvProv, nombProv, TO_NUMBER(NULL), NULL, NULL FROM Proveedor WHERE clvProv NOT IN (SELECT clvProv FROM Suministrar); SELECT clvProv "id.", nombProv "nombre", clvPieza "ref.", nombPieza "Pieza", color FROM Proveedor V NATURAL LEFT OUTER JOIN (Suministrar S NATURAL JOIN Pieza P); /* no es correcto */ SELECT clvProv "id.", nombProv "nombre", clvPieza "ref.", nombPieza "Pieza", color FROM Proveedor V NATURAL LEFT OUTER JOIN Suministrar S NATURAL JOIN Pieza P; SELECT * FROM Pieza;