miércoles, 22 de abril de 2009

Practica en el Curso 06-04-2009

CREACION E INSERSION DE DATOS DE LAS TABLAS OTORGADAS POR EL INSTRUCTOR LIC. ELVIN GERMAN EL DIA 06-04-2009

 

---CREAR TABLA PIEZAS---

 

CREATE TABLE PIEZAS

(     ID_PIEZA VARCHAR(4),

      PNOMBRE VARCHAR(30),

      COLOR VARCHAR (20),

      PESO INT,

      PCIUDAD VARCHAR(20)

      CONSTRAINT PK_ID_PIEZA

      PRIMARY KEY (ID_PIEZA)

 )

---INSERTAR VALORES PIEZAS---

 

INSERT INTO PIEZAS

VALUES('P1','TUERCA','ROJO',12,'LONDRES')

 

INSERT INTO PIEZAS

VALUES('P2','PERNO','VERDE',17,'PARIS')

 

INSERT INTO PIEZAS

VALUES('P3','BIRLO','AZUL',17,'ROMA')

 

INSERT INTO PIEZAS

VALUES('P4','BIRLO','ROJO',14,'LONDRES')

 

INSERT INTO PIEZAS

VALUES('P5','LEVA','AZUL',12,'PAIS')

 

INSERT INTO PIEZAS

VALUES('P6','ENGRANE','ROJO',19,'LONDRES')

 

 

---CREAR TABLA PROVEEDORES---

 

CREATE TABLE PROVEEDORES

 

(

      ID_PROVEEDOR VARCHAR (4),

      PNOMBRE VARCHAR (20),

      SITUACION INT,

      PCIUDAD VARCHAR (20)

      CONSTRAINT PK_ID_PROVEEDOR

      PRIMARY KEY (ID_PROVEEDOR)

 

)

 

---INSERTAR VALORES PROVEEDORES---

INSERT INTO PROVEEDORES

VALUES ('S1','JUAN',20,'LONDRES')

 

INSERT INTO PROVEEDORES

VALUES ('S2','ANTONIO',10,'PARIS')

 

INSERT INTO PROVEEDORES

VALUES ('S3','MARIA',30,'PARIS')

 

INSERT INTO PROVEEDORES

VALUES ('S4','SUSANA',20,'LONDRES')

 

INSERT INTO PROVEEDORES

VALUES ('S5','FELIPE',30,'ATENAS')

 

---CREAR TABLA PROYECTO---

 

CREATE TABLE PROYECTO

(

      ID_Proyecto VARCHAR(4),

      Jnombre VARCHAR (20),

      Jciudad VARCHAR (20),

      CONSTRAINT PK_ID_PROYECTO

      PRIMARY KEY (ID_Proyecto),

)

 

---INSERTAR VALORES TABLA PROYECTO---

 

INSERT INTO PROYECTO

VALUES ('J1','CLASIFICADOR','PARIS')

 

INSERT INTO PROYECTO

VALUES ('J2','PERFORADORA','ROMA')

 

INSERT INTO PROYECTO

VALUES ('J3','LECTORA','ATENAS')

 

INSERT INTO PROYECTO

VALUES ('J4','CONSOLA','ATENAS')

 

INSERT INTO PROYECTO

VALUES ('J5','TERMINAL','LONDRES')

 

INSERT INTO PROYECTO

VALUES ('J6','CINTA','OSLO')

 

INSERT INTO PROYECTO

VALUES ('J7','IMPRESORA','LONDRES')

 

---CREAR TABLA DE UNION_TABLAS---

 

CREATE TABLE UNION_TABLAS

(

      ID_PROVEEDOR VARCHAR (4),

      CONSTRAINT FK_ID_PROYECTO

      FOREIGN KEY (ID_PROYECTO)

      REFERENCES PROYECTO (ID_PROYECTO),

      ID_PIEZA VARCHAR (4),

      CONSTRAINT FK_ID_PIEZA

      FOREIGN KEY (ID_PIEZA)

      REFERENCES PIEZAS (ID_PIEZA),

      ID_PROYECTO VARCHAR(4),

      CONSTRAINT FK_ID_PROVEEDOR

      FOREIGN KEY (ID_PROVEEDOR)

      REFERENCES PROVEEDORES (ID_PROVEEDOR),

      CANTIDAD INT

)

 

 

----PARA INSERTAR DATOS EN LA BASE DE DATOS DE UNION_TABLAS

 

INSERT INTO UNION_TABLAS

VALUES ('S1','P1','J1',200)

 

INSERT INTO UNION_TABLAS

VALUES ('S1','P1','J4',700)

 

INSERT INTO UNION_TABLAS

VALUES ('S2','P3','J1',800)

 

INSERT INTO UNION_TABLAS

VALUES ('S2','P3','J2',200)

 

INSERT INTO UNION_TABLAS

VALUES ('S2','P3','J3',100)

 

INSERT INTO UNION_TABLAS

VALUES ('S2','P3','J4',100)

 

INSERT INTO UNION_TABLAS

VALUES ('S2','P3','J5',500)

 

INSERT INTO UNION_TABLAS

VALUES ('S2','P3','J6',300)

 

INSERT INTO UNION_TABLAS

VALUES ('S2','P3','J7',500)

 

INSERT INTO UNION_TABLAS

VALUES ('S2','P5','J2',150)

 

INSERT INTO UNION_TABLAS

VALUES ('S2','P3','J1',125)

 

INSERT INTO UNION_TABLAS

VALUES ('S3','P4','J2',200)

 

INSERT INTO UNION_TABLAS

VALUES ('S4','P6','J3',200)

 

INSERT INTO UNION_TABLAS

VALUES ('S4','P6','J7',300)

 

INSERT INTO UNION_TABLAS

VALUES ('S5','P2','J4',8000)

 

INSERT INTO UNION_TABLAS

VALUES ('S5','P2','J2',500)

 

INSERT INTO UNION_TABLAS

VALUES ('S5','P5','J5',300)

 

INSERT INTO UNION_TABLAS

VALUES ('S5','P5','J7',700)

 

INSERT INTO UNION_TABLAS

VALUES ('S5','P1','J4',900)

 

INSERT INTO UNION_TABLAS

VALUES ('S5','P3','J4',100)

 

CONSULTAS SIMPLES

 

 

CONSULTA PUNTO 1, OBTENER PIEZAS Y SU PESO EN GRAMO

 

SELECT p.id_pieza,

         p.pnombre,

         p.peso * 454 as 'Peso En Gramos'

FROM PIEZAS as P

 

CONSULTA PUNTO 2, OBTENER ID_PROVEEDOR SITUACION >20 Y CIUDAD PARIS

 

SELECT  ID_PROVEEDOR

FROM PROVEEDORES

WHERE SITUACION >20 AND PCIUDAD = 'PARIS'

 

CONSULTA PUNTO 3, OBTENER ID_PROVEEDOR Y SITUACION DE PROVEEDORES DE PARIS EN ORDEN DESCENDENTE POR SITUACION

 

SELECT ID_PROVEEDOR AS NO_PROVEEDORES, SITUACION, PCIUDAD

FROM PROVEEDORES

WHERE PCIUDAD LIKE 'PARIS'

ORDER BY SITUACION DESC

 

 

CONSULTA DE REUNION (CON FILTRADO WHERE)

 

 

CONSULTA 4, OBTENER TODAS LAS COMBINACIONES DE (ID_PROVEEDOR, ID_PIEZA) TALES QUE EL PROVEEDOR Y LA PIEZA ESTEN UBICADOS EN EL MISMO LUGAR

 

SELECT *

FROM PROVEEDORES, PIEZAS

WHERE PROVEEDORES.PCIUDAD=PIEZAS.PCIUDAD

 

 

 

CONSULTA 5, OBTENER TODAS LAS COMBINACIONES DE INFORMACION DE PROVEEDOR Y PIEZA DONDE LA CIUDAD DEL PROVEEDOR SIGA A LA CIUDAD DE LA PIEZA EN ORDEN ALFABETICO.

 

SELECT *

FROM PROVEEDORES, PIEZAS

WHERE PROVEEDORES.PCIUDAD<PIEZAS.PCIUDAD

 

CONSULTA 6, OBTENER TODAS LAS COMBINACIONES DE INFORMACION DEL PROVEEDOR

Y PIEZA DONDE EL PROVEEDOR Y LA PIEZA EN CUESTION ESTEN CONSITUADOS

ES DECIR TENGAN LA MISMA CIUDAD, PERO OMITIENDO A LOS PROVEEDORES

CUYA SITUACION SEA 20

 

SELECT *

FROM PIEZAS, PROVEEDORES

WHERE (PIEZAS.PCIUDAD=PROVEEDORES.PCIUDAD AND PROVEEDORES.SITUACION<>20)

 

CONSULTA 7, OBTENER TODAS LAS PAREJAS DE NOMBRES DE CIUDAD TALES

QUE UN PROVEEDOR SITUADO EN LA PRIMERA CIUDAD SUMINISTRE UNA PIEZA

ALMACENADA EN LA SEGUNDA CIUDAD.

 

SELECT PR.PNOMBRE, PR.PCIUDAD, P.PNOMBRE, P.PCIUDAD

FROM PROVEEDORES AS PR, PIEZAS AS P, UNION_TABLAS AS U

WHERE PR.ID_PROVEEDOR = U.ID_PROVEEDOR AND P.ID_PIEZA=U.ID_PIEZA

 

 

 

OPERACIONES DE INSERCION

 

 

 

8)INSERTAR UN NUEVO ENVIO CON CODIGO DE PROVEEDOR S20, CODIGO DE PIEZA P20, CODIGO DE PROYECTO J4  Y CANTIDAD 1000.

 

Respuesta: para poder realizarse esta insercion es necesario que en las tablas con valores primarios existan dichos valores, ya que por integridad referencial esos valores no existen en las tablas  a las que se le hace referencia por eso no se pueden crear.

 

En este caso no puede insertarse un proveedor s20 por que en la tabla de proveedores solo hay proveedores hasta s5, en este tendriamos que crear en esa tabla toda una fila con los valores de s20, ya que no se puede insertar una llave primaria sola sin algun valor en las otras columnas ya que su valor debe ser unico y exige mas datos o al menos un dato de las columnas a la que esta atada, tambien eso pasa con codigo de pieza pero no con proyecto ya que existe ni con cantidad por que no es un valor referencial.

No hay comentarios:

Publicar un comentario