Practica5

19
Instituto Polit´ ecnico Nacional Escuela Superior de Computo Bases de Datos Pr´ actica 5 Alumno: Jos´ e Ricardo P´ erez P´ erez Profesora: M. en C. Idalia Maldonado Castillo Grupo: 2CV7 11 de marzo del 2013

Transcript of Practica5

Page 1: Practica5

Instituto Politecnico Nacional

Escuela Superior de Computo

Bases de Datos

Practica 5

Alumno:

Jose Ricardo Perez Perez

Profesora:

M. en C. Idalia Maldonado Castillo

Grupo:

2CV7

11 de marzo del 2013

Page 2: Practica5

Indice.

1 Introduccion Pg.3

2 Realizacion de la practica.4

3 Conclusiones Pg.19

2

Page 3: Practica5

Introduccion.

En las bases de datos muchas veces nosotros necesitaremos consultar infor-

macion que esta relacionada mediante llaves foraneas a llaves primarias, para

ello tambien necesitaemos consultar informacion muy particular ya que en

las vistas externas de nuestras aplicaciones los usuarios consultaran la infor-

macion de nuestra base de datos,la informacion consultada no sera la misma

que se presentara para todos es por eso quedebemos de conocer las consul-

tas para poder poyectar informacion de nuestra base de datos de manera

organizada y como se nos pida.

3

Page 4: Practica5

Realizacion de la practica 5.

Para nuestra practica 5 tuvimos que importar el script de una base de

datos ya existente de nombre COSTCO y asi poder trabajar en ella.

Analizar la informacion de la base de datos y visualizar el esquema de la base

de datos.

Realizar los siguientes puntos usando comandos SQL.

1)Lista el nombre ,estado y fecha de apertura de las sucursales.

Para poder listar determinada informacion de alguna tabla en especifico uti-

lizamos la consulta:

SELECT columna1,columna2,...,columnan from TABLA;

La informacion que pidamos individualmente de alguna tabla se podra

visualizar segun el orden que hayamos elegido en nuestra consulta.

4

Page 5: Practica5

Como podemos ver nustra se ha mostrado la informacion en particular

que nosostros requerimos.

2)Lista las sucursales que esten ubicadas en Distrito Federal y Estado deMexico.

Nuevamente con la consulta anterior podremos visualizar informacion en

particular que requieramos de una tabla en particular, en este caso tendemos

una condicion en particular para nuestra busqueda.

SELECT columna1,columna2,...,columnan from TABLA where condicion;

Como podemos ver nuestras condiciones son respetadas mostrando unica-

mente aquellas sucursales con ubicacion en el Distrito Federal o en el Estado

de Mexico.

5

Page 6: Practica5

3)Mostrar la informacion de los gerentes y a que sucursal pertenecen.

Nosotros para poder mostrar la informacion de los Gerentes de nuestras tien-

das y la sucursal a la que pertencen tendremos que utilizar una consulta como

la siguiente.

Select Alias1.Columnan,Alias2.Columnam,...,Aliasn.Columnanm ASNombre from Tabla1 Alias1,Tabla2 Alias2 where Alias1.PrimaryKey =

Alias2.PrimaryKey

Como podemos ver creamos un alias temporal de alguna de nuestras

tablas, si ha programado alguna vez en algun lenguaje de programacion ori-

entado a objetos lo podras relacionar como un metodo que es llamado por

un objeto de una clase, pero en este caso es temporal ya que solo funcionara

en la ejecucion de la consulta, si usamos la analogıa anterior nuestro ob-

jeto es el Alias creado y nuestro metodo es la columna que se mostrara;

despues de from definiremos a que Tabla corresponde cada alias y finalmente

las condiciones que se deberan proporcionar para que se pueda imprimir la

informacion solicitada.

6

Page 7: Practica5

4)Mostrar la antiguedad, el nombre de los gerentes y la sucursal a la quepertenecen.

Necesitamos mostrar una columna particular de todos los gerentes de

nuestra tabla asi como la sucurasl a la que pertenecen para ello utilizaremos

nuevamente la consulta anterior.

Select Alias1.Columnan,Alias2.Columnam,...,Aliasn.Columnanm ASNombre from Tabla1 Alias1,Tabla2 Alias2 where Alias1.PrimaryKey =

Alias2.PrimaryKey

5)Mostrar toda la informacion , el nombre de los gerentes y la sucursal ala que pertenecen.

Nuevamente utilizaremos la consulta anterior pero en este caso nuestra

condicion nos dice que cada uno de los datos extraidos deeben de ser equiv-

alentes a la cadena ’ARBOLEDAS’.

7

Page 8: Practica5

6)Hacer el Cross Product de los proveedores con los productos.Para hacer el Cross Product de dos tablas de nuestra base de datos nece-

sitamos realizar la consulta:

SELECT *FROM nombre Tabla1, nombre Tabla2,...

En base de datos el Cross Product o Join Implicito es la capacidad de

combinar filas de 2 o mas tablas en nuestra base de datos.

8

Page 9: Practica5

7)Mostrar la informacion de los productos con sus respectivos proveedores.

Para poder mostrar los productos y los proveedores que nos proporcionan di-

chos productos nuevamente utilizamos la consulta ”Select Alias1.Columnan,Alias2.Columnam,...,Aliasn.Columnanm

AS Nombre from Tabla1 Alias1,Tabla2 Alias2 where Alias1.PrimaryKey =

Alias2.PrimaryKey” pero con una pequena variacion

Select Alias1.*,...,Aliasn.Columnanm AS Nombre from Tabla1Alias1,Tabla2 Alias2 where Alias1.PrimaryKey = Alias2.PrimaryKey

Alias1.* indica que se debe de mostrar toda la informacion de la Tabla

indicada, en este caso deseamos ver toda la informacion de nuestro producto,

nuestro Alias de nuestra tabla PRODUCTO es J por lo que desamos ver toda

su informcion y solamente el nombre del proveedor donde su alias es I.

9

Page 10: Practica5

8)Proyectar solo la informacion del nombre ,proveedor y costo de cadaproducto.

Ahora deseamos ver solamente determinada informacion de nuestro provee-

dor y solo un dato de cada producto, crearemos un alias para nuestro provee-

dor y un alias para nuestro producto e imprimiremos cada columna registrada

de lo que deseamos.

10

Page 11: Practica5

9)Proyectar la informacion del nombre, proveedor y costo de cada pro-ducto que vende ProcteR & Gamble.

En este caso imprimiremos nuevamente determinada informacion de una

tabla relacionada con un determinado vendedor.

11

Page 12: Practica5

10)Proyectar la informacion del nombre, proveedor y costo de los produc-tos que cuestan mas de 1000 pesos.Imprimiremos ahora informacion de determinados productos con una condicion,

nuestra condicion es ue los productos deben costar mas de 1000. Esta

condicion se debe declarar en la consulta con un operador logico, en este

caso estamos hablando de nuestro precio por lo ue hablamos del Precio Uni-

tario de neustra tabla PRODUCTO.

12

Page 13: Practica5

11)Mostrar la informacion de que proveedores tiene cada sucursal.En este caso si vemos el diagrama de nuestra base de datos es algo como la

siguiente figura.

13

Page 14: Practica5

Si vemos bien nuestras Foreign Key se encuentran en nuestra tabla PROVEE-

DOR SUCURSAL donde las foreign key son las columnas Sucursal IdSucursal

y Proveedor IdProveedor; nuestras primarykey relacionadas a nuestras for-

eign key son IdProveedor de la tabla PROVEEDOR y IdSucursal de tabla

SUCURSAL.

Nosotros al querer proyectar la informacion de los proveedores de cada su-

cursal en nuestra consulta debemos establecer los alias de nuestras tablas

PROVEEDOR y SUCURSAL con sus respectivas columnas, en este caso uti-

lizaremos el Nombre del Proveedor y el Nombre de la sucursal. Al declarar

nuestras tablas no olvidemos declarar Sucursal IdSucursal ya que ahı se en-

cuentran nuestras llaves foraneas que establecen la conexion entre nuestras

llaves primarias. Nuestra condicion sera que nuestra llave Sucursal IdSucursal

debera ser igual nuestra llave primaria IdProveedor y que nuestra llave foranea

Sucursal IdProveedor debera ser igual a la llave primaria IdProveedor para

ası poder establecer la conexion.

14

Page 15: Practica5

12) Proyectar solo la informacion de los proveedores (nombre, Id) de lassucursales (nombre, id).

Ahora solamente necesitamos proyectar los Id y los nombres de los provee-

dores y sucursales, para ello por separado pero en la misma consulta creare-

mos los alias correspondientes para nuestras tablas PROVEEDOR, SUCUR-

SAL y PROVEEDOR SUCURSAL. El alias hara referencia a cada una de

las columnas que necesitaremos para proyectar la informacion requerida, en

este caso necesitamos el IdProveedor y el Nombre de la tabla PROVEEDOR,

tambien necesitamos el IdSucursal y Nombre de la tabla Sucursal, considere-

mos tambien hacer mencion de nuestra tabla Proveedor SUCURSAL con su

correspondiente alias ya que ahı se encuentran nuestras llaves foraneas. Para

poder conseguir la informacion delos proveedores y el ID nuestra condicion

debe de indicar que nuestra llave foranea Sucursal IdSucursal debe ser igual

a nuestra llave primaria Sucursal IdSucursal de nuestra tabla Sucursal, el

mismo caso para IdProveedor.

15

Page 16: Practica5

13)Proyectar solo la informacion de los proveedores (nombre, Id) de lasucursal de Satelite, tambien muestra su id y el nombre.

En este punto se realiza la misma consulta que el punto anterior solo que

nuestra condicion ahora es que el nombre de nuestra sucursal con su re-

spectivo alias debe ser igual a ’Satelite’ para filtrar los sucursales que no

deseamos.

16

Page 17: Practica5

14)Hacer el cross product de PROVEEDOR, SUCURSAL Y PROVEE-DOR SUCURSAL.

Para hacer el Cross Product de dos tablas de nuestra base de datos nece-

sitamos realizar la consulta:

SELECT *FROM nombre Tabla1, nombre Tabla2,...

17

Page 18: Practica5

15)Agregar 10 socios a la tabla socios (usa id incrementales a partir de 1en adelante).

Para poder agregar nuestros socios en nuestra tabla solamente utilizamos

nuestra consulta:

INSERT INTO TABLA1 VALUES(columna1,columna2,columna3,columna4,...,columnan);

18

Page 19: Practica5

Conclusiones.

En esta practica pudimos conocer nuevas consultas como Regresar tuplas de

columnas,realizar el cross product,agregar tuplas nuevas y seleccionar tuplas

de tablas diferentes. Para nosotros es muy necesario conocer esas consultas

ya que nos ayudan a poder obtener informacion que este relacionada entre si

y ver cual es el resultado que nosotros deseamos proyectar, tal vez alguna de

nuestras tablas no tenga la informacion que necesitemos pero una tabla con

la que este elacionada si la tenga, con nuestras consultas podremos obtener

la informacion de una tabla y su relacion con la segunda y poyectar los datos

de las dos tablas, filtrando los datos que no necesitemos proyectar ya que tal

vez no sean necesarios algunos datos en nuestras consultas.

19