Bases de Datos > Oracle

 problema con query y tabla foreign key

(1/1)

el_funa:
Hola a todos tengo unas consultas...
quiero saber si estas query se encuentran bien...
y los scrips de las tablas se encuentran abajo pero al parecer tengo malo el scrips de la tabla suministra en la parte de las foreign key, ya que al ingresar
datos no toma als foreign key :S y por eso no puedo revisar si estan bien los ejercicios...

espero que me puedan ayudar.



--------------------------------------
 ARTICULOS                  
                                   
CodArt  nvarchar(4) (PK)  
Nombre  Nvarchar (50)      
PrecVenta     Int                    
Procede Nvarchar (50)      
------------------------------------
SUMINISTRA                          
                                             
CodArt  nvarchar(4) (FK)      
CodPro  nvarchar(4) (FK)      
Precio  Int                          
---------------------------------------
PROVEEDORES                          
                                               
CodPro  nvarchar(4) (PK)      
Nombre  Nvarchar (50)          
Comuna  Nvarchar (50)          
--------------------------------------


1.   Obtener los nombres de todas los artículos que son suministrados por proveedores de ‘Santiago’ y son de procedencia china (Nombre)

--- Código: SQL --- SELECT a.nombreFROM artículos a INNER JOIN suministra s ON a.codArt=s.codArt          INNER JOIN proveedores p ON s.codPro=p.codProWHERE p.comuna=’Santiago’ AND a.procede=’china’  2.   Obtener todos los datos de todos los proveedores que sean de la comuna de “providencia” y que suministran artículos por un precio mayor a 6000 pesos. (Codigo, Nombre, Comuna)


--- Código: SQL --- SELECT p.*FROM artículos a INNER JOIN suministra s ON a.codArt=s.codArt          INNER JOIN proveedores p ON s.codPro=p.codProWHERE p.comuna=’providencia’ AND a.precVenta>6000  
3.   Obtener el promedio al que se suministran los artículos del proveedor “HomeroCenter”. (Promedio de precios)

--- Código: SQL --- SELECT avg(s.precio)FROM suministra a INNER JOIN proveedores p ON s.CodPro=p.CodProWHERE p.Nombre=’HomeroCenter’  
4.   Obtener los nombres de los proveedores que suministran el artículo “Martillo” y a que precio lo suministran. (nombre proveedor, precio)

--- Código: SQL --- SELECT p.Nombre, s.PrecioFROM proveedor p INNER JOIN suministra s ON p.CodPro=s.CodPro    INNER JOIN artículos a ON s.CodArt=a.CodArtWHERE a.Nombre=’martillo’  
5.   Obtener los nombres de los artículos  suministradas por el proveedor “HomeroCenter”.  (Nombre articulo)

--- Código: SQL --- SELECT a.NombreFROM artículos a INNER JOIN suministro s ON a.CodArt=s.CodArt        INNER JOIN proveedores p ON s.CodPro=p.CodProWHERE p.Nombre=’HomeroCenter’  
6.   Obtener el nombre del proveedor que suministra el artículo más caro, indicando el nombre y el precio al que la suministran. (Nombre Proveedor, Nombre articulo, Precio)

--- Código: SQL --- SELECT  p.nombre, a.nombre, MAX(s.precio)FROM proveedores p INNER JOIN suministra s ON p.CodPro=s.CodPro                INNER JOIN articulos a ON s.CodArt=a.CodArt  
7.   Mostrar el promedio de precios de venta  de los artículos por procedencia del artículo. (Procedencia, Promedio)

--- Código: SQL --- SELECT Procede, avg(PrecVenta)FROM artículosGROUP BY Procede  8.   Mostrar el nombre de los productos que son más caros que el promedio de todos los productos de procedencia “Alemana”. (Nombre producto)

--- Código: SQL --- SELECT nombreFROM articulosWHERE procede = ‘alemania' and precventa>( select avg(precventa)                                  from articulos )          9.   Agregar a la base de datos la Empresa “Lidera” (código P2), de Santiago que empezará suministrando tuercas (código A10) a 160 pesos cada tuerca.

--- Código: SQL --- INSERT INTO proveedores VALUES(‘p2’,’lidera’,’santiago’);INSERT INTO suministra VALUES(‘a10’,’p2’,160);  
10.   Aumentar los precios de venta en un 10% permanente a los productos que son de procedencia “alemana”.

--- Código: SQL --- SELECT (precio)*1.10FROM artículosWHERE procede=’alemania’  
11.   La empresa proveedora “Marcus S.A.” (código P3) de arica, no va seguir suministrando ninguna pieza (aunque la empresa en si va a seguir perteneciendo al los proveedores de la base de datos).

--- Código: SQL --- deteleFROM suministraWHERE codpro='p3'  
y estas  son las tablas para oracle


--- Código: SQL ---  (esta tiene problema...)CREATE TABLE Suministra (  codart VARCHAR(4) NOT NULL,  codpro VARCHAR(4) NOT NULL,  precio INTEGER NOT NULL,  FOREIGN KEY (codart) REFERENCES articulos(codart),  FOREIGN KEY (codpro) REFERENCES proveedores(codpro));  CREATE TABLE Proveedores (  CodPro VARCHAR(4) NOT NULL,  Nombre VARCHAR(20) NOT NULL,  Comuna VARCHAR(20) NOT NULL,  PRIMARY KEY (CodPro)); CREATE TABLE Articulos (  CodArt VARCHAR(4) NOT NULL,  Nombre VARCHAR(20) NOT NULL,  PrecVenta INTEGER NOT NULL,  Procede VARCHAR(50) NOT NULL,  PRIMARY KEY (CodArt));   

Navegación

[0] Índice de Mensajes

Ir a la versión completa