Sesión de aprendizaje Planifica Textos argumentativo.docx
Base de datos COSTCO práctica 5 SQL
1. 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
3. Introducci´on.
En las bases de datos muchas veces nosotros necesitaremos consultar infor-
maci´on que esta relacionada mediante llaves foraneas a llaves primarias, para
ello tambien necesitaemos consultar informaci´on muy particular ya que en
las vistas externas de nuestras aplicaciones los usuarios consultaran la infor-
maci´on de nuestra base de datos,la informaci´on 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
4. Realizaci´on de la pr´actica 5.
Para nuestra pr´actica 5 tuvimos que importar el script de una base de
datos ya existente de nombre COSTCO y asi poder trabajar en ella.
Analizar la informaci´on 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 informaci´on que pidamos individualmente de alguna tabla se podr´a
visualizar segun el orden que hayamos elegido en nuestra consulta.
4
5. Como podemos ver nustra se ha mostrado la informaci´on en particular
que nosostros requerimos.
2)Lista las sucursales que est´en ubicadas en Distrito Federal y Estado de
M´exico.
Nuevamente con la consulta anterior podremos visualizar informaci´on en
particular que requieramos de una tabla en particular, en este caso tendemos
una condici´on en particular para nuestra b´usqueda.
SELECT columna1,columna2,...,columnan from TABLA where condici´on;
Como podemos ver nuestras condiciones son respetadas mostrando unica-
mente aquellas sucursales con ubicaci´on en el Distrito Federal o en el Estado
de M´exico.
5
6. 3)Mostrar la informaci´on de los gerentes y a que sucursal pertenecen.
Nosotros para poder mostrar la informaci´on 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 AS
Nombre 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 alg´un lenguaje de programaci´on ori-
entado a objetos lo podras relacionar como un m´etodo que es llamado por
un objeto de una clase, pero en este caso es temporal ya que solo funcionara
en la ejecuci´on de la consulta, si usamos la analog´ıa anterior nuestro ob-
jeto es el Alias creado y nuestro m´etodo es la columna que se mostrar´a;
despu´es de from definiremos a que Tabla corresponde cada alias y finalmente
las condiciones que se deberan proporcionar para que se pueda imprimir la
informaci´on solicitada.
6
7. 4)Mostrar la antig¨uedad, el nombre de los gerentes y la sucursal a la que
pertenecen.
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 AS
Nombre from Tabla1 Alias1,Tabla2 Alias2 where Alias1.PrimaryKey =
Alias2.PrimaryKey
5)Mostrar toda la informaci´on , el nombre de los gerentes y la sucursal a
la que pertenecen.
Nuevamente utilizaremos la consulta anterior pero en este caso nuestra
condici´on nos dice que cada uno de los datos extraidos deeben de ser equiv-
alentes a la cadena ’ARBOLEDAS’.
7
8. 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
9. 7)Mostrar la informaci´on 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,...,Ali
AS Nombre from Tabla1 Alias1,Tabla2 Alias2 where Alias1.PrimaryKey =
Alias2.PrimaryKey” pero con una peque˜na variaci´on
Select Alias1.*,...,Aliasn.Columnanm AS Nombre from Tabla1
Alias1,Tabla2 Alias2 where Alias1.PrimaryKey = Alias2.PrimaryKey
Alias1.* indica que se debe de mostrar toda la informaci´on de la Tabla
indicada, en este caso deseamos ver toda la informaci´on de nuestro producto,
nuestro Alias de nuestra tabla PRODUCTO es J por lo que desamos ver toda
su informci´on y solamente el nombre del proveedor donde su alias es I.
9
10. 8)Proyectar solo la informaci´on del nombre ,proveedor y costo de cada
producto.
Ahora deseamos ver solamente determinada informaci´on 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
11. 9)Proyectar la informacion del nombre, proveedor y costo de cada pro-
ducto que vende ProcteR & Gamble.
En este caso imprimiremos nuevamente determinada informaci´on de una
tabla relacionada con un determinado vendedor.
11
12. 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 condici´on,
nuestra condici´on es ue los productos deben costar mas de 1000. Esta
condici´on se debe declarar en la consulta con un operador l´ogico, en este
caso estamos hablando de nuestro precio por lo ue hablamos del Precio Uni-
tario de neustra tabla PRODUCTO.
12
13. 11)Mostrar la informaci´on 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
14. 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 informaci´on 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 for´aneas que establecen la conexi´on entre nuestras
llaves primarias. Nuestra condici´on ser´a 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 conexi´on.
14
15. 12) Proyectar solo la informaci´on de los proveedores (nombre, Id) de las
sucursales (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 informaci´on requerida, en
este caso necesitamos el IdProveedor y el Nombre de la tabla PROVEEDOR,
tambi´en 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 informaci´on delos proveedores y el ID nuestra condici´on
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
16. 13)Proyectar solo la informaci´on de los proveedores (nombre, Id) de la
sucursal 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 ’Sat´elite’ para filtrar los sucursales que no
deseamos.
16
17. 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
18. 15)Agregar 10 socios a la tabla socios (usa id incrementales a partir de 1
en adelante).
Para poder agregar nuestros socios en nuestra tabla solamente utilizamos
nuestra consulta:
INSERT INTO TABLA1 VALUES
(columna1,columna2,columna3,columna4,...,columnan);
18
19. Conclusi´ones.
En est´a 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 informaci´on que este relacionada entre si
y ver cual es el resultado que nosotros deseamos proyectar, tal vez alguna de
nuestras tablas no tenga la informaci´on 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