base datos guia lab

Upload: rafael-acevedo-rivera

Post on 07-Mar-2016

219 views

Category:

Documents


0 download

DESCRIPTION

Guía laboratorios Base de datos

TRANSCRIPT

  • 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 DATABASE DROP 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 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.

    b. Creacin de una tabla

    CREATE TABLE PROVEEDORES (VNRO CHAR(4) NOT NULL, VNOMBRE CHAR(30) NOT NULL, SITUACION INT, CIUDAD CHAR(15), PRIMARY KEY (VNRO)); CREATE TABLE PARTES (PNRO CHAR(4) NOT NULL, PNOMBRE CHAR(30) NOT NULL, COLOR CHAR(15), PESO DECIMAL(4,1), PRIMARY KEY (PNRO)); CREATE TABLE SUMINISTROS (VNRO CHAR(4) NOT NULL, PNRO CHAR(4) NOT NULL, CANTIDAD INT, PRIMARY KEY (VNRO,PNRO), FOREIGN KEY VNRO REFERENCE PROVEEDORES(VNRO), FOREIGN KEY PNRO REFERENCE PARTES (PNRO)); Vase que la tabla de suministros tiene dos campos que heredan de las tablas proveedores y partes, por lo que son llaves forneas.

    c. Creacin de ndices

    CREATE INDEX PROV_CIUDAD ON PROVEEDORES(CIUDAD);

    d. Creacin de Vistas

    CREATE VIEW VISTA_PROVE ON (SELECT VNRO,VNOMBRE FROM PROVEEDORES);

    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

  • 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;