Sunteți pe pagina 1din 16

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA

ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA


CURSO: 301330 BASES DE DATOS BSICO
GUA PRCTICA DE LABORATORIOS PRESENCIAL

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
PROGRAMA DE INGENIERA DE SISTEMAS

301330 BASES DE DATOS BSICO


MARA DORA ALBA SNCHEZ GMEZ
(Directora Nacional)

MEDELLN
NOVIEMBRE DE 2014

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA
CURSO: 301330 BASES DE DATOS BSICO
GUA PRCTICA DE LABORATORIOS PRESENCIAL

INSTRUCCIONES GENERALES
El curso Bases de datos bsico por ser de tipo Metodolgico, requiere fortalecer la
fundamentacin terica que se lleva a cabo en el aula virtual con el desarrollo del componente
prctico que el estudiante debe realizar en la sala de sistema del CEAD en el cual est
matriculado. Todos los estudiantes deben entregar un informe por cada prctica, al tutor que
orienta el componente prctico en cada Cead. En ese sentido cada Cead dispone de un Tutor
del rea que estar a cargo de la motivacin, del acompaamiento, de la valoracin de estas
actividades prcticas, y el cual todos los estudiantes deben asistir a ella. El tutor, debe reportar
la nota del resultado individual del componente prctico desarrollado por cada estudiante
haciendo entrega a ste de la rbrica calificada con su firma, de tal forma, que cada estudiantes
suba este archivo escaneado al campus virtual en el entorno de evaluacin y seguimiento
para hacerle reconocimiento de su nota en el campus virtual, as mismo, el tutor debe hacer
una relacin de todos los estudiantes que hicieron la prctica con su respectiva nota, firmarla y
subirla a la red de tutores.
Se debe realizar mnimo dos prctica, la cual ser de mucha ayuda para el desarrollo del trabajo
colaborativo 2. Se espera que este espacio sea aprovechado para despejar dudas e inquietudes
relacionadas con la temtica.

Reporte y evaluacin de la prctica

Cada tutor asignado al componente prctico del curso una vez que valore las dos secciones de
la prctica, debe entregarle al estudiante un archivo con la rbrica calificada y firmada por l,
de tal forma que el estudiante suba este archivo en el espacio de tarea para ser reconocida en
el curso virtual. La valoracin mxima de la prctica es de 30 puntos. Este puntaje, se encuentra
en la tarea que est creada en el curso virtual.
Se recomienda que las dos secciones de la prctica se realice antes de la entrega del trabajo
colaborativo 2, as los estudiantes tendrn herramientas para desarrollar y hacer aportes en ste.
Por lo tanto los rangos de fechas para la realizacin de stas son:
Practica No 1 Modelo Relacional y Lenguaje de Definicin de datos entre el mes de septiembre
y la primera semana de octubre de 2015
Prctica No 2 Lenguaje de Manipulacin de datos entre el mes de septiembre y una semana
antes de finalizar octubre del 2015

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA
CURSO: 301330 BASES DE DATOS BSICO
GUA PRCTICA DE LABORATORIOS PRESENCIAL

SESIN No. 1 MODELO RELACIONAL Y LENGUAJE DE DEFINICIN DE DATOS


Objetivos de la prctica de laboratorio
Con base en el modelo lgico de datos generado en el taller presencial aplicar las reglas para pasar ste
al modelo relacional y crear la estructura en una herramienta de bases de datos relacional, utilizando el
DDL.
Competencias a desarrollar
Aplica bien las reglas para pasar del modelo lgico al modelo relacional y crear la estructura de la base de
datos en una herramienta de bases de datos relacional, con sus respectivas tablas, campos, campos claves
y llaves forneas.

Descripcin de la prctica / actividad:


.
Transformar el diagrama Entidad-Relacin a un Modelo Relacional (Tablas, Columnas, campos
claves y llaves forneas) e implementarlo en una herramienta de base de datos relacional.
Software a utilizar en la prctica
Se propone utilizar el siguiente software. Sin embargo, los que manejen otro software quedan en libertad
de realizar el diagrama relacional en el paquete que mejor se acomoda.
mysql-workbench es una aplicacin grfica que sirve para realizar tanto el diagrama Entidad-Relacin,
como el diagrama relacional para bases de datos en MySql. Se puede descargar en el sitio:
http://dev.mysql.com/doc/refman/5.5/en/wb-installing.html.
Equipos / instrumentos a utilizar en la prctica: Laboratorio de Sistemas o equipos de casa u oficina.
Resultados a obtener en la prctica: El estudiante debe generar el Modelo Relacional con base en el
modelo entidad relacin, una vez haya realizado la conversin del Modelo que se gener en el taller virtual.
Informe a entregar: Modelo Relacional del Modelo Entidad Relacin del taller virtual.
Duracin de la Prctica: Cinco (3) horas, de la cuales una es para el paso del modelo lgico al modelo
relacional, dos para la implementacin en la herramienta y una para sustentacin de la misma.
Fundamentacin Terica
El modelo relacional, se basa en llevar el modelo lgico de datos o modelo conceptual a un modelo
relacional o diseo fsico, de tal forma que quede listo para ser implementado en una herramienta de bases
de datos relacional. En este modelo ya se habla de tablas, columnas o campos, llaves primarias o campos
claves, llaves forneas y campos o columnas. En las siguientes pginas, se encuentra la forma como se
pasa un modelo lgico de datos a un modelo relacional

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA
CURSO: 301330 BASES DE DATOS BSICO
GUA PRCTICA DE LABORATORIOS PRESENCIAL

A. Paso Diagrama Entidad-Relacin al Modelo Relacional


Existen unas reglas muy sencillas que se deben entrar a aplicar:
1) Toda entidad es una tabla.
2) Todos los atributos de una entidad, son columnas o campos de la tabla. El atributo clave es campo
clave.
3) Toda Relacin Uno a Varios (1-N), la tabla hija hereda de la tabla padre el campo clave. Si la
relacin es fuerte (lleva i), entonces el campo clave heredado es campo clave del hijo.
Ejemplo: Suponiendo que se tiene el siguiente modelo.

Antes de empezar a aplicar las reglas anteriores, se debe tener en cuenta las siguientes
recomendaciones:
1) Empezar a relacionar las entidades que son padres, es decir, aquellas que no tienen pata de gallina
como son la ENTIDAD_A y la ENTIDAD_E.
2) Despus se relacionan las entidades que son hijas, tienen pata de gallina con las entidades que ya
fueron descritas en el punto anterior: En este caso, observamos que la ENTIDAD_B y la ENTIDAD_C
tienen relacin con la ENTIDAD_A.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA
CURSO: 301330 BASES DE DATOS BSICO
GUA PRCTICA DE LABORATORIOS PRESENCIAL

3) El proceso se contina hasta finalizar. As tenemos que las entidades que faltan son hijas de
entidades que ya estn relacionadas; en este ejemplo la ENTIDAD_D y la ENTIDAD_F, estn
relacionadas, la primera con la ENTIDAD_C y la ENTIDAD_E; la segunda con la ENTIDAD_B.
De acuerdo a lo anterior y a la aplicacin de la primera regla "Toda entidad es una tabla", quedara as:
ENTIDAD_A (
ENTIDAD_E (
ENTIDAD_B (
ENTIDAD_C (
ENTIDAD_D (
ENTIDAD_F (
Obsrvese que se abre un parntesis, eso es con el fin de comenzar a aplicar la segunda regla "Todo
atributo es un campo de la tabla y si es atributo clave, tambin es campo clave". Luego entonces
quedara as:
ENTIDAD_A (A1, A2)
ENTIDAD_E (E1, E2)
ENTIDAD_B (B1, B2, B3
ENTIDAD_C (C1, C2, C3, C4
ENTIDAD_D (
ENTIDAD_F (F1, F2
En las tablas anteriores, se observa que la ENTIDAD_A y la ENTIDAD_E se le cerr el parntesis,
esto debido a que son entidades que no heredan de nadie. Haciendo analoga con un rbol, son la raz
del rbol, son solo padres. Sin embargo las dems quedan con el parntesis abierto pues las dems, en
ciertas relaciones, son todas hijas de alguien.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA
CURSO: 301330 BASES DE DATOS BSICO
GUA PRCTICA DE LABORATORIOS PRESENCIAL

Ahora se contina aplicando la tercera regla "Toda relacin uno a varios, la entidad hija hereda el campo
clave de la tabla padre; si la relacin es fuerte, entonces la hereda como campo clave tambin" Miremos
como quedara:
Como la tablas ENTIDAD_A y la ENTIDAD_E, ya estn finalizadas, entonces seguimos con nuestro
anlisis con la tabla ENTIDAD_B, donde vemos que esta entidad es hija de la ENTIDAD_A y el campo
clave de la tabla ENTIDAD_A es A1, pero adems, como la relacin es fuerte (tiene i), entonces este
campo clave es tambin campo clave de la tabla ENTIDAD_D. Grficamente se tiene:
ENTIDAD_A (A1, A2)
ENTIDAD_E (E1, E2)
ENTIDAD_B (B1, B2, B3, A1)
Se sigue con la tabla ENTIDAD_C, se observa que esta entidad es hija de la ENTIDAD_A, por lo tanto
hereda el campo clave A1, pero en este caso NO es parte del campo clave. Grficamente se tiene:
ENTIDAD_A (A1, A2)
ENTIDAD_E (E1, E2)
ENTIDAD_B (B1, B2, B3, A1)
ENTIDAD_C (C1, C2, C3, C4, A1)
Se contina con la tabla ENTIDAD_D, sta es una entidad asociativa, por lo tanto es dbil de mnimo dos
entidades que en este caso es la ENTIDAD_C y la ENTIDAD_E. Aplicando la regla encontramos que hereda
el campo clave C1 y C2 de la primera tabla y el campo clave E1 de la segunda tabla, pero como tambin
las relaciones que tiene con las dos entidades son fuertes (i), entonces estos campos claves a su vez son
campos claves de la tabla hija. Grficamente se tiene:
ENTIDAD_A (A1, A2)
ENTIDAD_E (E1, E2)
ENTIDAD_B (B1, B2, B3, A1)
ENTIDAD_C (C1, C2, C3, C4, A1)
ENTIDAD_D (C1, C2, E1)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA
CURSO: 301330 BASES DE DATOS BSICO
GUA PRCTICA DE LABORATORIOS PRESENCIAL

Lenguaje de Consulta Estructurada (SQL)

El SQUARE, fue un leguaje que fue mejorando hasta que en el ao 1976, apareci el SQL, el cual se ha
convertido en una estndar en la industria de los fabricantes de herramientas de bases de datos. Este
lenguaje se divide en dos grupos de instrucciones, el DDL y el DML. El DDL, es el lenguajes de definicin
de datos y el DML es el lenguaje de definicin de datos.
A. Lenguaje de Definicin de Datos DDL
Consta de tres instrucciones bsicas como es el CREATE, el ALTER y el DROP. Los elementos de las
bases de datos que se le puede aplicar estas instrucciones son bases de datos (DATABASE), tablas
(TABLE), ndices (INDEX) y vistas (VIEW). Miremos esquemticamente lo anterior:

CREATE
DROP

DATABASE
INDEX
VIEW

ALTER
TABLE
Obsrvese que las bases de datos, ndices y vistas solo pueden ser creadas (CREATE) o borradas
(DROP), mientras que las tablas pueden tambin de las anteriores alterarse. La sentencia general es:

Creacin de Elementos

NOMB_INSTRUCCION ELEMENTO Nomb_Elemento


Miremos un ejemplo de cada uno, para ellos trabajaremos con una base de datos ejemplo. Ver anexo 1. la
base de datos es de COMPRAS, las cuales tienen unos proveedores, unas partes y suministros;
empezaremos creando la base de datos.
a. Creacin de una base de datos
CREATE DATABASE COMPRAS;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA
CURSO: 301330 BASES DE DATOS BSICO
GUA PRCTICA DE LABORATORIOS PRESENCIAL

SESIN
2: ENTORNO
DE UN MOTOR DE BASES DE DATOS DDL y DML
b.NO.
Creacin
de una tabla
En
esta sesin
sePROVEEDORES
sugiere trabajar con el motor de bases de datos MySql. Sin embargo, se tiene la libertad
CREATE
TABLE
de trabajar en cualquier motor de bases de datos que garantice la utilizacin de las sentencias estndar
de
SQL.CHAR(4) NOT NULL,
(VNRO
VNOMBRE CHAR(30) NOT NULL,
Objetivos
deINT,
la prctica de laboratorio: Crear, llenar y consultar una base de datos.
SITUACION
CIUDAD CHAR(15),
Competencias
a desarrollar
PRIMARY KEY (VNRO));
Identifica
usa lasPARTES
estructuras del lenguaje de definicin de datos y el lenguaje de manipulacin de
CREATE yTABLE
datos.
(PNRO CHAR(4) NOT NULL,
PNOMBRE CHAR(30) NOT NULL,
Descripcin
de la prctica / actividad: Con base en el motor de base de datos seleccionado se debe
COLOR CHAR(15),
entrar
crear el esquema de la base de datos diseada en la sesin 2, y realizar el llenado con datos de
PESO aDECIMAL(4,1),
la
base
de
datos.
Las sentencias de SQL a utilizar son todas las del Lenguaje de Definicin de Datos
PRIMARY KEY
(PNRO));
(CREATE, DROP, ALTER, ADD) y parte del Lenguaje de Manipulacin de datos (INSERT, UPDATE y
DELETE)
CREATE TABLE SUMINISTROS
(VNRO CHAR(4) NOT NULL,
Software
a utilizar
enNULL,
la prctica: MySQL u otro motor que contenga sentencia SQL.
PNRO CHAR(4)
NOT
CANTIDAD INT,
Equipos
a utilizar en la prctica: Laboratorio de Sistemas
PRIMARY/ instrumentos
KEY (VNRO,PNRO),
FOREIGN KEY VNRO REFERENCE PROVEEDORES(VNRO),
Resultados
a obtener
en la prctica:PARTES
El estudiante
debe generar la base de datos de la sesin 2 con
FOREIGN KEY
PNRO REFERENCE
(PNRO));
datos.
Vase que la tabla de suministros tiene dos campos que heredan de las tablas proveedores y partes, por
Informe a entregar: Documento con todas las sentencias utilizadas para:
lo que son llaves forneas.

Crear
la basede
dendices
datos, con sus respectivas tablas, campos, campos claves y llaves forneas. Los
c.
Creacin
que realicen el laboratorio en la casa u oficina, debern incluir una copia del esquema de la base
de datos.
CREATE INDEX PROV_CIUDAD ON PROVEEDORES(CIUDAD);

Ingresar,
Actualizar
y Borrar datos de la base de datos. Los que realicen el laboratorio en la casa u
d.
Creacin
de Vistas
oficina, debern incluir una copia de los pantallazos donde se evidencie la ejecucin de las
diferentes
sentencias de Insercin,
Actualizacin y Borrado de datos en la base de datos creada.
CREATE
VIEW VISTA_PROVE
ON
(SELECT VNRO,VNOMBRE
Duracin de la Prctica: tres (5) horas, de la cuales dos son para creacin y llenado de datos de la base
FROM PROVEEDORES);
de datos, dos para la realizacin de la consulta y una para sustentacin de la misma.

Borrado de Elementos
a. Borrado de una base de datos

DROP DATABASE COMPRAS;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA
CURSO: 301330 BASES DE DATOS BSICO
GUA PRCTICA DE LABORATORIOS PRESENCIAL

b. Borrado de una tabla


DROP TABLE PROVEEDORES;
c. Borrado de un ndice
DROP INDEX PROV_CIUDAD;
d. Borrado de una vista
DROP VIEW VISTA_PROVE;

Modificacin de Tablas

Aqu vamos a adicionarle el precio a las partes.


ALTER TABLE PARTES ADD PRECIO DECIMAL(7,2);

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA
CURSO: 301330 BASES DE DATOS BSICO
GUA PRCTICA DE LABORATORIOS PRESENCIAL

SESIN NO. 2: ENTORNO DE UN MOTOR DE BASES DE DATOS DDL y DML


En esta sesin se sugiere trabajar con el motor de bases de datos MySql. Sin embargo, se tiene la libertad
de trabajar en cualquier motor de bases de datos que garantice la utilizacin de las sentencias estndar
de SQL.
Objetivos de la prctica de laboratorio: Crear, llenar y consultar una base de datos.
Competencias a desarrollar
Identifica y usa las estructuras del lenguaje de definicin de datos y el lenguaje de manipulacin de
datos.
Descripcin de la prctica / actividad: Con base en el motor de base de datos seleccionado se debe
entrar a crear el esquema de la base de datos diseada en la sesin 2, y realizar el llenado con datos de
la base de datos. Las sentencias de SQL a utilizar son todas las del Lenguaje de Definicin de Datos
(CREATE, DROP, ALTER, ADD) y parte del Lenguaje de Manipulacin de datos (INSERT, UPDATE y
DELETE)
Software a utilizar en la prctica: MySQL u otro motor que contenga sentencia SQL.
Equipos / instrumentos a utilizar en la prctica: Laboratorio de Sistemas
Resultados a obtener en la prctica: El estudiante debe generar la base de datos de la sesin 2 con
datos.
Informe a entregar: Documento con todas las sentencias utilizadas para:

Crear la base de datos, con sus respectivas tablas, campos, campos claves y llaves forneas. Los
que realicen el laboratorio en la casa u oficina, debern incluir una copia del esquema de la base
de datos.

Ingresar, Actualizar y Borrar datos de la base de datos. Los que realicen el laboratorio en la casa u
oficina, debern incluir una copia de los pantallazos donde se evidencie la ejecucin de las
diferentes sentencias de Insercin, Actualizacin y Borrado de datos en la base de datos creada.

Duracin de la Prctica: tres (5) horas, de la cuales dos son para creacin y llenado de datos de la base
de datos, dos para la realizacin de la consulta y una para sustentacin de la misma.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA
CURSO: 301330 BASES DE DATOS BSICO
GUA PRCTICA DE LABORATORIOS PRESENCIAL

Fundamentacin Teorica
B. Lenguaje de Manipulacin de Datos DML
Como se dijo, este lenguaje permite la creacin, modificacin, borrado y consultas de datos. Para ello
cuenta con las siguientes instrucciones:
INSERTE: sirve para insertar filas a las tablas
UPDATE: sirve para modificar datos de una tabla
DELETE: sirve para borrar datos de una tabla
SELECT: sirve para consultar datos de una o varias tablas. Esta sentencia es la razn de ser de toda la
filosofa de las bases de datos relacional, ya que con esto se creo un mtodo para consultar los datos en
una forma no procedimental, es aqu donde mas aplica las operaciones algebraicas vistas en el captulo
anterior.

Insertar filas en una tabla

INSERT INTO PROVEEDORES


(VNRO,VNOMBRE,CIUDAD,SITUACION)
VALUES(P01,Arturo Seplveda,Cartagena);
Aqu, cada vez que se necesite insertar una fila debe repetirse toda la instruccin, pues ella sirve solo
para inserta UNA SOLA FILA, no varias.

Actualizar un dato en una o varias fila, segn la condicin.

Vamos a actualizar la ciudad de los proveedores que se encuentran en la ciudad de Venecia, lo


colocamos Bogot.
UPDATE PROVEEDORES
SET CIUDAD = Bogota
WHERE CIUDAD = Venecia:
Aqu es conveniente hacer varias precisiones. La clusula WHERE, es opcional, si es as, entonces
todas las ciudades de los proveedores quedan con Bogot, cosa que no es comn que ocurra. En
cambio, con la clusula WHERE, solo quedan con Bogot, aquellos proveedores cuya ciudad es
Venecia. Viendo as las cosas, podemos decir que la clusula WHERE en la prctica, no es tan
opcional.

Borrar Filas

Vamos a borrar todas las filas de la tabla de proveedores que se encuentran en la ciudad de Armenia.
DELETE FROM PROVEEDORES
WHERE CIUDAD = Armenia;
Aqu vale la pena hacer la misma aclaracin que hicimos con UPDATE, y es que la clusula WHERE es
opcional. De tal forma, que si no se coloca, entonces BORRA TODOS LOS DATOS DE LA TABLA, pero
no la estructura.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA
CURSO: 301330 BASES DE DATOS BSICO
GUA PRCTICA DE LABORATORIOS PRESENCIAL

Consultas de datos

Para mirar toda la potencialidad de la sentencia SELECT, hemos organizado las consultas de menor a
mayor grado de dificultad, por cuestiones pedaggicas. Comenzaremos con consultas sobre una sola
tabla hasta finalizar con subconsultas, donde intervienen ms de una tabla. Miremos la sentencia general
SELECT Campo1[,Campo 2, R..]
FROM Tabla 1[,Tabla 2, RR]
WHERE Condicin 1 [AND Condicin 2][OR Condicin 2][RR.]
ORDER BY Campo 1 [,Campo 2, R.]
GROUP BY Campo 1 [,Campo 2, R.]
HAVING Condicin de Grupo [AND Condicin 2][OR Condicin 2][RR.]
a. Consultas Simples
a. Consulta de un determinado campo. Consultar el nombre del proveedor con su
respectiva ciudad.
SELECT PROVEEDORE,CIUDAD
FROM PROVEEDORES;
b. Consultas de todos los campos. Consultar todos los datos de las partes.
SELECT *
FROM PARTES;
c. Consultas con DISTINCT. Consultar el nmero de proveedores que han suministrado
partes en algn proyecto.
SELECT DISTINCT VNRO
FROM SUMINISTROS;
d. Consultas de valores calculado. Consultar el nombre de las partes con su respectivos
pesos aumentados en un 10%.
SELECT PARTES, Peso aumentado en 10%,PESO*1.1
FROM PARTES;
e. Consultas con campos cualificados. Consultar el nmero y nombre del proyecto.
SELECT PROYECTOS.YNRO,PROYECTOS.PROYECTO
FROM PROYECTOS;
f.

Consultas con condicin. Consultar el nmero del proveedor que ha suministrado


partes a los proyectos Y1 y `Y2.

SELECT DISTINCT VNRO


FROM SUMINISTROS
WHERE YNRO=Y1 OR YNRO= Y2;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA
CURSO: 301330 BASES DE DATOS BSICO
GUA PRCTICA DE LABORATORIOS PRESENCIAL

g. Consultas con ordenamiento. Consultar el nmero de proveedores y el nmero de


proyectos que le han suministrado, organizado por proyectos.
SELECT DISTINCT VNRO,YNRO
FROM SUMINISTROS
ORDER BY YNRO;

b. Consultas de Reunin
a. Reunin simple. Consultar el nombre de los proveedores que han suministrado partes
a algn proyecto.
SELECT DISTINCT PROVEEDORES
FROM PROVEEDORES,SUMINISTROS
WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO;
Nota: Obsrvese que se utiliza el distinct para que no salgan repetidos el nombre del proveedor. Si desea
qutele el distinct y observe el resultado.
a. Reunin con condicin. Consultar el nombre del proveedor, el nombre de las partes y
el nombre del proyecto, con sus respectivas cantidas suministradas, solo para los
proyectos de MONITOR y CONSOLA.
SELECT PROVEEDOR,PARTE,PROYECTO
FROM PROVEEDORES,PARTES,PROYECTOS,SUMINISTROS
WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO AND PARTES.PNRO=SUMINISTROS.PNRO
AND PROYECTOR.YNRO=SUMINISTROS.YNRO AND (PROYECTO=MONITOR OR
PROYECTO=CONSOLA);
b. Reunin de una tabla consigo misma. Consultar las parejas de nmeros de proveedor
y la ciudad, que se encuentran en la misma ciudad.
SELECT PRIMERA.VNRO,SEGUNDA.VNRO
FROM PROVEEDORES PRIMERA,PROVEEDORES SEGUNDA
WHERE PRIMERA.VNRO<SEGUNDA.VNRO AND PRIMERA.CIUDAD=SEGUNDA.CIUDAD;
Nota: Obsrvese que el JOIN, es decir, la IGUALACIN, se esta realizando por el campo de CIUDAD y
no por el campo llave VNRO. Adems, se utilizan alias en el nombre de las tablas, con el fin de poder
combinar la tabla consigo misma.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA
CURSO: 301330 BASES DE DATOS BSICO
GUA PRCTICA DE LABORATORIOS PRESENCIAL

c. Consultas con Funciones Agregadas.


COUNT(*): Cuenta los registros de una tabla
COUNTO(Campo): Cuenta los registros por un campo determinado. Si el campo tiene un valor nulo, no lo
cuenta.
SUM(Campo): Suma todos los valores del campo. No suma nulos. el campo debe ser numrico.
AVG(Campo): Promedia el campo. No tiene en cuenta los nulos y el campo debe ser numrico.
MAX(Campo): Selecciona el valor mximo del campo. No cuenta el valor nulo.
MIN(Campo): Selecciona el valor mnimo del campo. No cuenta el valor nulo.
a. Consultas para contar filas. Consultar el nmero total de proyectos.
SELECT COUNT(*)
FROM PROYECTOS;

b. Consultas para contar final con condicin. Obtener la cantidad total de proveedores
que se encuentran en la ciudad de LONDRES.
SELECT COUNT(VNRO)
FROM PROVEEDORES
WHERE CIUDAD=LONDRES ;
a. Consultas con agrupacin. Obtener el nmero total de proyectos por proveedor
SELECT VNRO,COUNT(YNRO)
FROM SUMINISTROS
GROUP BY VNRO;
b. Consultas con agrupacin y reunin de tablas. Consultar el nombre del proveedor con
su respectivo nmero total de proyectos.
SELECT PROVEEDOR,COUNT(YNRO)
FROM PROVEEDORES,SUMINISTROS
WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO
GROUP BY PROVEEDOR;
c. Consultas con condicin de agrupacin. Consultar el nombre del proveedor, con su
respectiva cantidad total suministrada; solo aquellos proveedores que han
suministrado cantidades mayores a 800.
SELECT PROVEEDOR,SUM(CANT)
FROM PROVEEDORES,SUMINISTROS
WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO
GROUP BY PROVEEDOR
HAVING SUM(CANT)>800;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA
CURSO: 301330 BASES DE DATOS BSICO
GUA PRCTICA DE LABORATORIOS PRESENCIAL

d. Consultas con condicin y agrupamiento varios. Consultar el nombre del proveedor, y


el nombre de las partes, con su respectiva cantidad suministrada. Solo los proveedores
de la ciudad de LONDRES Y PARIS, y que hayan suministrado mas de 500.
SELECT PROVEEDOR,PARTE,SUM(CANT)
FROM PROVEEDORES,PARTES,SUMINISTROS
WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO AND PARTES.PNRO=SUMINISTROS.PNRO
AND (PROVEEDORES.CIUDAD=LONDRES OR PROVEEDORES.CIUDAD=PARIS)
GROUP BY PROVEEDOR,PARTE
HAVING SUM(CANT)>500;

d. Consultas Avanzadas.
a. Consultas con el operador LIKE. Consultar los proveedores cuyo nombre empiezan
con la letra A.
SELECT *
FROM PROVEEDORES
WHERE PROVEEDOR LIKE A% ;
a. Consultar los proveedores cuya segunda letra sea l.
SELECT *
FROM PROVEEDORES
WHERE PROVEEDOR LIKE _A% ;
b. Consultar los proveedores cuya ltima letra sea igual a E.
SELECT *
FROM PROVEEDORES
WHERE PROVEEDOR LIKE %E ;
c. Consultar los proveedores que tengan en el nombre la letra S.
SELECT *
FROM PROVEEDORES
WHERE PROVEEDOR LIKE %S% ;
d. Subconsultas. Consultar los proveedores que no han suministrado partes.
SELECT *
FROM PROVEEDORES
WHERE VNRO NOT IN
(SELECT VNRO
FROM SUMINISTROS) ;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA
CURSO: 301330 BASES DE DATOS BSICO
GUA PRCTICA DE LABORATORIOS PRESENCIAL

Nota: Esta consulta se puede realizar tambin utilizando el EXISTS


SELECT *
FROM PROVEEDORES
WHERE NOT EXISTS
(SELECT VNRO
FROM SUMINISTROS
WHERE SUMINISTROS.VNRO=PROVEEDORES.VNRO)
e. Otras Operaciones
a. Crear tablas temporales con INSERT INTO. Crear una tabla temporal llamada
TEMP_PROV, que contenga el nombre del proveedor, la ciudad y la cantidad total
suministrada por partes.
SELECT PROVEEDOR,CIUDAD,SUM (CANT) AS TOT_CANT
INTO TEMP_PROV
FROM PROVEEDORES, SUMINISTROS
WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO
GROUP BY PROVEEDOR,CIUDAD;
a. Crear una vista con CREATE VIEW. Crear una vista con todas las partes y su
respectivo numero total de proyectos que han suministrado y cantidad total
suministrada.
CREATE VIEW VISTA_PARTES AS
(SELECT PARTE,COUNT(YNRO),SUM(CANT)
FROM PARTES,SUMINISTROS
WHERE PARTES.PNRO=SUMINISTROS.PNRO
GROUP BY PARTE);
b. Consultar sobre una tabla temporal. Consultar la mayor cantidad suministrada
SELECT MAX(TOT_CANT)
FROM TEMP_PROV;

S-ar putea să vă placă și