Este documento presenta varios ejercicios sobre consultas SQL utilizando diferentes bases de datos. Incluye el modelo entidad-relación y la creación de tablas para una tienda de informática con fabricantes y productos. Luego propone consultas sobre una tabla, entre múltiples tablas, resúmenes y subconsultas para extraer y analizar datos de la base de datos.
La aplicación gestiona clientes, productos, pedidos y cuentas de pago. Los clientes pueden realizar pedidos simples o compuestos de productos siempre que tengan alguna cuenta con dinero disponible. Los pedidos pasan por estados de pendiente, cobrado y distribuido/confirmado. Existe un proceso diario de cobro que comprueba los pedidos pendientes y los cobra o rechaza según el saldo de las cuentas.
Este documento contiene 22 ejercicios resueltos sobre modelado entidad-relación de bases de datos. Cada ejercicio presenta un escenario diferente y propone el modelo E-R correspondiente, con las tablas y relaciones necesarias para representar dicho escenario en un esquema de base de datos relacional.
La bitácora registra todas las transacciones realizadas en una base de datos, como inserciones, eliminaciones y modificaciones. Esto permite auditar y analizar dichas transacciones posteriormente. Se crea una tabla bitácora y se definen triggers para cada tabla de la base de datos que registren las operaciones realizadas, el usuario, fecha y otros detalles cada vez que haya una inserción, eliminación o modificación. La implementación de una bitácora no requiere cambios en los sistemas de producción y permite hacer seguimiento de todos los cambios
En este material podrás encontrar información acerca de los tipos, caracteristicas, ejemplos de arquitecturas de computadoras. Nota: Esta es la actualización de mi material # 3
El documento describe los problemas de concurrencia que surgen cuando múltiples transacciones acceden a una base de datos de forma concurrente, y los mecanismos utilizados para controlar la concurrencia, como bloqueos y estampas de tiempo. Explica que el objetivo del control de concurrencia es garantizar que las transacciones concurrentes produzcan resultados equivalentes a una ejecución secuencial, para evitar problemas como actualizaciones perdidas o análisis inconsistentes.
El documento describe tres ejercicios para diseñar diagramas de clases. El primer ejercicio involucra una biblioteca con libros, autores, categorías, editoriales y copias. Los lectores pueden tener préstamos múltiples de libros con multas por retrasos. El segundo ejercicio es sobre una empresa de alquiler de autos con clientes, reservas de múltiples autos, y detalles como fechas y precios. El tercer ejercicio no proporciona detalles.
Este documento explica cómo crear y usar arreglos en PSeInt. Los arreglos permiten almacenar múltiples datos del mismo tipo usando un identificador y subíndices. Para crear un arreglo en PSeInt se usa la palabra clave "Dimension" seguida del nombre e identificador entre corchetes. El documento provee ejemplos como crear arreglos con números ingresados manualmente o por el usuario, sumar elementos de arreglos, y llenar arreglos con números aleatorios.
La aplicación gestiona clientes, productos, pedidos y cuentas de pago. Los clientes pueden realizar pedidos simples o compuestos de productos siempre que tengan alguna cuenta con dinero disponible. Los pedidos pasan por estados de pendiente, cobrado y distribuido/confirmado. Existe un proceso diario de cobro que comprueba los pedidos pendientes y los cobra o rechaza según el saldo de las cuentas.
Este documento contiene 22 ejercicios resueltos sobre modelado entidad-relación de bases de datos. Cada ejercicio presenta un escenario diferente y propone el modelo E-R correspondiente, con las tablas y relaciones necesarias para representar dicho escenario en un esquema de base de datos relacional.
La bitácora registra todas las transacciones realizadas en una base de datos, como inserciones, eliminaciones y modificaciones. Esto permite auditar y analizar dichas transacciones posteriormente. Se crea una tabla bitácora y se definen triggers para cada tabla de la base de datos que registren las operaciones realizadas, el usuario, fecha y otros detalles cada vez que haya una inserción, eliminación o modificación. La implementación de una bitácora no requiere cambios en los sistemas de producción y permite hacer seguimiento de todos los cambios
En este material podrás encontrar información acerca de los tipos, caracteristicas, ejemplos de arquitecturas de computadoras. Nota: Esta es la actualización de mi material # 3
El documento describe los problemas de concurrencia que surgen cuando múltiples transacciones acceden a una base de datos de forma concurrente, y los mecanismos utilizados para controlar la concurrencia, como bloqueos y estampas de tiempo. Explica que el objetivo del control de concurrencia es garantizar que las transacciones concurrentes produzcan resultados equivalentes a una ejecución secuencial, para evitar problemas como actualizaciones perdidas o análisis inconsistentes.
El documento describe tres ejercicios para diseñar diagramas de clases. El primer ejercicio involucra una biblioteca con libros, autores, categorías, editoriales y copias. Los lectores pueden tener préstamos múltiples de libros con multas por retrasos. El segundo ejercicio es sobre una empresa de alquiler de autos con clientes, reservas de múltiples autos, y detalles como fechas y precios. El tercer ejercicio no proporciona detalles.
Este documento explica cómo crear y usar arreglos en PSeInt. Los arreglos permiten almacenar múltiples datos del mismo tipo usando un identificador y subíndices. Para crear un arreglo en PSeInt se usa la palabra clave "Dimension" seguida del nombre e identificador entre corchetes. El documento provee ejemplos como crear arreglos con números ingresados manualmente o por el usuario, sumar elementos de arreglos, y llenar arreglos con números aleatorios.
Este taller presenta cuatro ejercicios de diseño de bases de datos. El primer ejercicio involucra el diseño de una base de datos para una agencia de seguros que registra accidentes, multas, personas y vehículos. El segundo ejercicio implica el diseño de una base de datos para una cadena de hoteles que almacena información sobre hoteles, categorías, habitaciones y reservas. El tercer ejercicio se refiere al diseño de una base de datos para una empresa que registra departamentos, empleados, hijos de empleados y habilidades. Cada
Características, componentes y arquitectura de los dbms.Julicamargo
El documento describe las características y componentes principales de los sistemas de gestión de bases de datos (DBMS). Los DBMS proporcionan abstracción, independencia y consistencia de los datos, así como seguridad, manejo de transacciones y rendimiento. Un DBMS típicamente incluye un procesador de consultas, gestor de base de datos, gestor de archivos y varios módulos como control de autorizaciones y gestor de transacciones. Siguen una arquitectura de tres niveles de abstracción de datos.
Este documento presenta un manual sobre SQL Server 2008. Explica la instalación de SQL Server 2008, incluyendo recomendaciones previas y los pasos a seguir. Luego cubre temas como ingresar a SQL Server, realizar consultas en la base de datos Northwind usando comandos como SELECT, FROM, WHERE, ORDER BY y LIKE. También explica comandos como INSERT, UPDATE, DELETE, DISTINCT y JOIN para manipular datos, y conceptos como procedimientos almacenados, reporting services y funciones.
Registros de control y estados de la CPUIvan Porras
El documento habla sobre la arquitectura de computadoras y los registros que utiliza el microprocesador para ejecutar instrucciones de manera eficiente. Menciona que los registros como el PC y el IR controlan la ejecución secuencial de instrucciones almacenando la dirección y contenido de cada una. También describe el registro de estado FLAGS y los bits individuales que indican resultados de operaciones como el acarreo, paridad, cero y signo.
Este documento presenta 14 ejercicios de modelado conceptual para diferentes dominios. Cada ejercicio describe los datos relevantes de una situación, como soldados realizando el servicio militar, estudiantes haciendo trabajos de fin de carrera, o un zoológico administrando especies animales, empleados y recorridos. El objetivo es diseñar bases de datos para almacenar y gestionar esta información de cada dominio.
Este documento presenta información sobre pruebas de sistemas y pruebas de aceptación. Explica que las pruebas de sistemas buscan discrepancias entre el programa y los requerimientos, enfocándose en errores durante la transición al diseño. También describe objetivos, tipos y la implementación de pruebas de sistemas. Luego, explica que las pruebas de aceptación verifican que el producto cumpla los estándares y satisfaga a los usuarios según los requerimientos iniciales. Finalmente, detalla la implementación de ambos
Este documento contiene 21 ejercicios sobre la creación de procedimientos y funciones en MySQL utilizando las bases de datos Sakila y World. Los ejercicios cubren temas como la creación de procedimientos con parámetros de entrada y salida, funciones, consultas condicionales y manejo de errores.
La llave primaria identifica de forma única cada registro en una tabla mediante un campo o grupo de campos. La llave foránea es un campo en una tabla que hace referencia a la llave primaria de otra tabla, permitiendo relacionar tablas. Las llaves primarias garantizan que no haya registros duplicados, mientras que las llaves foráneas vinculan información entre tablas.
Este documento compara diferentes sistemas gestores de bases de datos, describiendo sus características técnicas, ventajas, desventajas y empresas que los utilizan. Algunos de los SGBD más populares mencionados son MySQL, Oracle, SQL Server, PostgreSQL y SQLite. Cada uno tiene fortalezas específicas como rendimiento, escalabilidad, facilidad de uso y compatibilidad con diferentes plataformas y sistemas operativos.
Este documento trata sobre autómatas finitos. Explica la clasificación de autómatas finitos determinísticos y no determinísticos, y cómo convertir un autómata finito no determinístico a uno determinístico usando el algoritmo de subconjuntos. También cubre la representación de expresiones regulares usando autómatas finitos no determinísticos y la minimización de estados en un autómata finito. Por último, presenta un caso de estudio sobre la construcción de un vehículo que evade obstáculos us
Este documento describe un ejercicio en MySQL que involucra la creación de tablas, inserción de datos, y consultas SQL. Se crean tablas de fabricantes y artículos con claves primarias y foráneas. Luego se insertan datos de ejemplo y se realizan varias consultas como obtener datos filtrados, promedios, ordenar resultados y actualizar registros.
Este documento explica el modelo de entidad-relación (ER) para el diseño de bases de datos. El modelo ER representa el mundo real mediante entidades, atributos y relaciones. Las entidades tienen atributos como claves primarias y foráneas. Las relaciones pueden ser de uno a uno, uno a muchos o muchos a muchos. El documento recomienda utilizar diagramas ER extendidos que incluyen entidades fuertes y débiles y atributos en relaciones.
Ejercicio 2
Se quiere diseñar una base de datos relacional que almacene información relativa a los zoos existentes en el mundo, así como las especies animales que éstos albergan. De cada zoo se conoce el nombre, ciudad y país donde se encuentra, tamaño (en m2) y presupuesto anual. De cada especie animal se almacena el nombre vulgar y nombre científico, familia a la que pertenece y si se encuentra en peligro de extinción.
Además, se debe guardar información sobre cada animal que los zoos poseen, como su número de
Identificación, especie, sexo, año de nacimiento, país de origen y continente.
animal{ numidentificacion,especie, nombrevulgar,nombrecientifico,familiapertece,sexo,año,nacimiento,paisorigen,continente,peligroextincion
Este documento presenta una especificación de requisitos para un sistema de información web para gestionar procesos administrativos y académicos en un centro de formación. Se describen los requisitos funcionales y no funcionales, incluyendo la autenticación y registro de usuarios, consultar información sobre cursos e inventario, y gestionar un aula virtual. El sistema se desarrollará siguiendo estándares como IEEE 830 para especificaciones de requisitos de software.
El documento describe una entidad bancaria con sucursales, clientes, empleados y préstamos. Las sucursales tienen códigos únicos y están ubicadas en ciudades. Los clientes se identifican con cédulas y pueden tener cuentas y pedir préstamos. Los empleados tienen códigos de empleado y el banco almacena su información. Los préstamos se otorgan en sucursales particulares y tienen números únicos, importes y registros de pagos.
Este documento describe el modelo de datos para una academia de idiomas, incluyendo tablas para cursos, formas de pago, grupos, clientes, alumnos, matrículas, recibos y pagos. Explica los campos clave de cada tabla y cómo se relacionan mediante claves primarias y foráneas. También describe triggers y procedimientos almacenados para actualizar campos calculados y automatizar procesos como la creación de recibos.
El documento describe los requisitos para un sistema de información para una cadena de agencias de viaje. El sistema debe almacenar datos sobre hoteles, vuelos, clientes, agencias, y reservas de hoteles y vuelos realizadas por los clientes a través de las agencias.
Transformación del diagrama entidad relación al modelo relacional siguiendo estos pasos
conversion Entidad- Relacion a Modelo Relacional
Bases de Datos
Entidad Relacion
Las redes neuronales son modelos artificiales inspirados en el cerebro humano que pueden aprender a través de la experiencia. Consisten en unidades de procesamiento interconectadas que pueden reconocer patrones y mejorar su funcionamiento mediante aprendizaje. Aunque no pueden igualar a los seres humanos, las redes neuronales son útiles para realizar tareas intelectuales de apoyo.
El documento describe los requerimientos para un sistema de torneos de fútbol. El sistema permitirá 1) registrar equipos y jugadores, 2) planificar partidos de forma aleatoria o manual, y 3) generar tablas de posición automáticamente. Además, el sistema 4) identificará al mejor goleador y 5) publicará información del torneo en la web. El sistema tendrá una interfaz intuitiva y solo el organizador podrá realizar actualizaciones.
Este documento presenta un libro sobre bases de datos relacionales dirigido a estudiantes de ciclos formativos de desarrollo de aplicaciones. El libro cubre temas como los sistemas de almacenamiento de información, modelos de datos, diseño físico de bases de datos relacionales y realización de consultas SQL. Incluye ejemplos prácticos resueltos con Access, MySQL, Oracle y DB2.
Este documento presenta un libro sobre bases de datos. Explica conceptos clave como bases de datos, sistemas de gestión de bases de datos, modelos de datos y lenguajes de consultas. También cubre temas como el diseño de bases de datos, el modelo entidad-relación y el lenguaje SQL.
Este taller presenta cuatro ejercicios de diseño de bases de datos. El primer ejercicio involucra el diseño de una base de datos para una agencia de seguros que registra accidentes, multas, personas y vehículos. El segundo ejercicio implica el diseño de una base de datos para una cadena de hoteles que almacena información sobre hoteles, categorías, habitaciones y reservas. El tercer ejercicio se refiere al diseño de una base de datos para una empresa que registra departamentos, empleados, hijos de empleados y habilidades. Cada
Características, componentes y arquitectura de los dbms.Julicamargo
El documento describe las características y componentes principales de los sistemas de gestión de bases de datos (DBMS). Los DBMS proporcionan abstracción, independencia y consistencia de los datos, así como seguridad, manejo de transacciones y rendimiento. Un DBMS típicamente incluye un procesador de consultas, gestor de base de datos, gestor de archivos y varios módulos como control de autorizaciones y gestor de transacciones. Siguen una arquitectura de tres niveles de abstracción de datos.
Este documento presenta un manual sobre SQL Server 2008. Explica la instalación de SQL Server 2008, incluyendo recomendaciones previas y los pasos a seguir. Luego cubre temas como ingresar a SQL Server, realizar consultas en la base de datos Northwind usando comandos como SELECT, FROM, WHERE, ORDER BY y LIKE. También explica comandos como INSERT, UPDATE, DELETE, DISTINCT y JOIN para manipular datos, y conceptos como procedimientos almacenados, reporting services y funciones.
Registros de control y estados de la CPUIvan Porras
El documento habla sobre la arquitectura de computadoras y los registros que utiliza el microprocesador para ejecutar instrucciones de manera eficiente. Menciona que los registros como el PC y el IR controlan la ejecución secuencial de instrucciones almacenando la dirección y contenido de cada una. También describe el registro de estado FLAGS y los bits individuales que indican resultados de operaciones como el acarreo, paridad, cero y signo.
Este documento presenta 14 ejercicios de modelado conceptual para diferentes dominios. Cada ejercicio describe los datos relevantes de una situación, como soldados realizando el servicio militar, estudiantes haciendo trabajos de fin de carrera, o un zoológico administrando especies animales, empleados y recorridos. El objetivo es diseñar bases de datos para almacenar y gestionar esta información de cada dominio.
Este documento presenta información sobre pruebas de sistemas y pruebas de aceptación. Explica que las pruebas de sistemas buscan discrepancias entre el programa y los requerimientos, enfocándose en errores durante la transición al diseño. También describe objetivos, tipos y la implementación de pruebas de sistemas. Luego, explica que las pruebas de aceptación verifican que el producto cumpla los estándares y satisfaga a los usuarios según los requerimientos iniciales. Finalmente, detalla la implementación de ambos
Este documento contiene 21 ejercicios sobre la creación de procedimientos y funciones en MySQL utilizando las bases de datos Sakila y World. Los ejercicios cubren temas como la creación de procedimientos con parámetros de entrada y salida, funciones, consultas condicionales y manejo de errores.
La llave primaria identifica de forma única cada registro en una tabla mediante un campo o grupo de campos. La llave foránea es un campo en una tabla que hace referencia a la llave primaria de otra tabla, permitiendo relacionar tablas. Las llaves primarias garantizan que no haya registros duplicados, mientras que las llaves foráneas vinculan información entre tablas.
Este documento compara diferentes sistemas gestores de bases de datos, describiendo sus características técnicas, ventajas, desventajas y empresas que los utilizan. Algunos de los SGBD más populares mencionados son MySQL, Oracle, SQL Server, PostgreSQL y SQLite. Cada uno tiene fortalezas específicas como rendimiento, escalabilidad, facilidad de uso y compatibilidad con diferentes plataformas y sistemas operativos.
Este documento trata sobre autómatas finitos. Explica la clasificación de autómatas finitos determinísticos y no determinísticos, y cómo convertir un autómata finito no determinístico a uno determinístico usando el algoritmo de subconjuntos. También cubre la representación de expresiones regulares usando autómatas finitos no determinísticos y la minimización de estados en un autómata finito. Por último, presenta un caso de estudio sobre la construcción de un vehículo que evade obstáculos us
Este documento describe un ejercicio en MySQL que involucra la creación de tablas, inserción de datos, y consultas SQL. Se crean tablas de fabricantes y artículos con claves primarias y foráneas. Luego se insertan datos de ejemplo y se realizan varias consultas como obtener datos filtrados, promedios, ordenar resultados y actualizar registros.
Este documento explica el modelo de entidad-relación (ER) para el diseño de bases de datos. El modelo ER representa el mundo real mediante entidades, atributos y relaciones. Las entidades tienen atributos como claves primarias y foráneas. Las relaciones pueden ser de uno a uno, uno a muchos o muchos a muchos. El documento recomienda utilizar diagramas ER extendidos que incluyen entidades fuertes y débiles y atributos en relaciones.
Ejercicio 2
Se quiere diseñar una base de datos relacional que almacene información relativa a los zoos existentes en el mundo, así como las especies animales que éstos albergan. De cada zoo se conoce el nombre, ciudad y país donde se encuentra, tamaño (en m2) y presupuesto anual. De cada especie animal se almacena el nombre vulgar y nombre científico, familia a la que pertenece y si se encuentra en peligro de extinción.
Además, se debe guardar información sobre cada animal que los zoos poseen, como su número de
Identificación, especie, sexo, año de nacimiento, país de origen y continente.
animal{ numidentificacion,especie, nombrevulgar,nombrecientifico,familiapertece,sexo,año,nacimiento,paisorigen,continente,peligroextincion
Este documento presenta una especificación de requisitos para un sistema de información web para gestionar procesos administrativos y académicos en un centro de formación. Se describen los requisitos funcionales y no funcionales, incluyendo la autenticación y registro de usuarios, consultar información sobre cursos e inventario, y gestionar un aula virtual. El sistema se desarrollará siguiendo estándares como IEEE 830 para especificaciones de requisitos de software.
El documento describe una entidad bancaria con sucursales, clientes, empleados y préstamos. Las sucursales tienen códigos únicos y están ubicadas en ciudades. Los clientes se identifican con cédulas y pueden tener cuentas y pedir préstamos. Los empleados tienen códigos de empleado y el banco almacena su información. Los préstamos se otorgan en sucursales particulares y tienen números únicos, importes y registros de pagos.
Este documento describe el modelo de datos para una academia de idiomas, incluyendo tablas para cursos, formas de pago, grupos, clientes, alumnos, matrículas, recibos y pagos. Explica los campos clave de cada tabla y cómo se relacionan mediante claves primarias y foráneas. También describe triggers y procedimientos almacenados para actualizar campos calculados y automatizar procesos como la creación de recibos.
El documento describe los requisitos para un sistema de información para una cadena de agencias de viaje. El sistema debe almacenar datos sobre hoteles, vuelos, clientes, agencias, y reservas de hoteles y vuelos realizadas por los clientes a través de las agencias.
Transformación del diagrama entidad relación al modelo relacional siguiendo estos pasos
conversion Entidad- Relacion a Modelo Relacional
Bases de Datos
Entidad Relacion
Las redes neuronales son modelos artificiales inspirados en el cerebro humano que pueden aprender a través de la experiencia. Consisten en unidades de procesamiento interconectadas que pueden reconocer patrones y mejorar su funcionamiento mediante aprendizaje. Aunque no pueden igualar a los seres humanos, las redes neuronales son útiles para realizar tareas intelectuales de apoyo.
El documento describe los requerimientos para un sistema de torneos de fútbol. El sistema permitirá 1) registrar equipos y jugadores, 2) planificar partidos de forma aleatoria o manual, y 3) generar tablas de posición automáticamente. Además, el sistema 4) identificará al mejor goleador y 5) publicará información del torneo en la web. El sistema tendrá una interfaz intuitiva y solo el organizador podrá realizar actualizaciones.
Este documento presenta un libro sobre bases de datos relacionales dirigido a estudiantes de ciclos formativos de desarrollo de aplicaciones. El libro cubre temas como los sistemas de almacenamiento de información, modelos de datos, diseño físico de bases de datos relacionales y realización de consultas SQL. Incluye ejemplos prácticos resueltos con Access, MySQL, Oracle y DB2.
Este documento presenta un libro sobre bases de datos. Explica conceptos clave como bases de datos, sistemas de gestión de bases de datos, modelos de datos y lenguajes de consultas. También cubre temas como el diseño de bases de datos, el modelo entidad-relación y el lenguaje SQL.
Este documento presenta un libro sobre bases de datos. Explica conceptos clave como bases de datos, sistemas de gestión de bases de datos, modelos de datos y lenguajes de consultas. También cubre temas como el diseño de bases de datos, el modelo entidad-relación y el lenguaje SQL.
Wikilibro creado como parte de una actividad perteneciente a un postítulo. El wikilibro aborda vario conceptos informáticos generando un pantallaso general.
Este documento presenta una introducción a los conceptos básicos de algoritmos y estructuras de datos. Explica los componentes de una computadora y conceptos relacionados como lenguajes de programación, algoritmos, estructuras de datos como colas, y más. También incluye ejemplos y referencias a temas adicionales.
Los sistemas operativos más comunes que existen para los computadores o los que te van a ofrecer en el mercado cuando estés buscando un equipo son: Microsoft Windows, Mac OS X y Linux. Veremos la mayoría y sus paquetes de oficina correspondientes.
Este documento presenta una guía de MATLAB para ingenieros mecánicos. Explica conceptos básicos como tipos de datos, representación de datos, operadores y funciones matemáticas. También cubre temas como arrays, vectores, matrices, entrada y salida de datos, control de flujo, funciones y gráficas 2D. El objetivo es introducir el uso de MATLAB en ingeniería mecánica.
Este documento es un tutorial sobre JavaServer Faces. Explica los conceptos básicos de JSF como el modelo de vista controlador, incluyendo las secciones de modelo, vista y controlador. También cubre la instalación de JSF y entornos de desarrollo, etiquetas básicas de JSF, managed beans y navegación. El tutorial contiene varios capítulos que profundizan en estos temas.
Este documento es un tutorial sobre JavaServer Faces. Explica los conceptos básicos de JSF como el modelo de vista-controlador, incluyendo las secciones de modelo, vista y controlador. También cubre la instalación de JSF y entornos de desarrollo, etiquetas básicas como formularios y campos, y el uso de managed beans.
Este documento provee una guía para programadores de PostgreSQL. Explica conceptos clave de la arquitectura de PostgreSQL como tipos de datos definidos por el usuario, funciones, operadores y agregados. También cubre temas como el sistema de catálogo, optimización de consultas, lenguajes procedurales como PL/pgSQL y PL/Tcl, e índices como GiST. El objetivo es ayudar a los desarrolladores a extender las capacidades de PostgreSQL.
Este documento es un tutorial sobre JavaServer Faces. Explica los conceptos básicos de JSF como el modelo de vista-controlador, las características principales, los beneficios y una aplicación sencilla de ejemplo. Luego cubre temas como la instalación, entornos de desarrollo, etiquetas básicas, managed beans, navegación y etiquetas estándares de JSF. El tutorial contiene 5 capítulos y proporciona información detallada sobre cómo crear aplicaciones web dinámicas con JSF.
Este documento es un tutorial sobre JavaServer Faces. Explica los conceptos básicos de JSF como el modelo de vista-controlador, las características principales, los beneficios y una aplicación sencilla de ejemplo. Luego cubre temas como la instalación, entornos de desarrollo, etiquetas básicas, managed beans, navegación y etiquetas estándares de JSF. El tutorial consta de varios capítulos que profundizan en cada uno de estos temas.
Este documento trata sobre la educación a distancia. Explica las características de la educación a distancia, incluyendo sus ventajas y desventajas. También describe las diferentes generaciones de educación a distancia y los roles involucrados en este tipo de educación. Por último, discute brevemente la educación semipresencial y la educación a distancia en Hispanoamérica y España.
Este documento realiza un estudio comparativo entre las bases de datos de código abierto MySQL y la base de datos propietaria Oracle. Analiza puntos como el soporte, rendimiento, funcionalidad, sistemas operativos compatibles, características de seguridad y tipos de datos. El objetivo es que los gerentes y desarrolladores puedan decidir cuál motor de base de datos usar según sus necesidades y presupuesto.
Este documento realiza un estudio comparativo entre las bases de datos de código abierto MySQL y la base de datos propietaria Oracle. Analiza puntos como el soporte, rendimiento, funcionalidad, sistemas operativos compatibles, características de seguridad y tipos de datos. El objetivo es que los gerentes y desarrolladores puedan decidir cuál motor de base de datos usar según sus necesidades y presupuesto.
Este documento proporciona una introducción al software Minitab. Explica brevemente la historia de Minitab, cómo abrir una hoja de trabajo y describe los objetivos y contenidos de los capítulos siguientes sobre temas como graficar datos, análisis estadístico, evaluación de calidad y diseño de experimentos usando Minitab.
El documento presenta un curso avanzado de Microsoft Excel que cubre varias funciones y herramientas avanzadas de Excel como tablas, validación de datos, fórmulas matriciales, importación de datos, subtotales, análisis Y SI, la herramienta Solver y PowerPivot. El curso ayuda a los usuarios a analizar datos de manera más efectiva, realizar comparaciones rápidas, obtener análisis desde el escritorio y tomar mejores decisiones.
Este documento presenta un curso de programación en Python dividido en 10 capítulos. Cada capítulo cubre un tema como conceptos básicos, funciones, cadenas, listas, diccionarios y más. El documento proporciona contenidos detallados sobre cómo implementar cada tema en Python.
Algoritmos y programacion_i_-_con_lenguaDarío Herrera
Este documento presenta un curso de programación en Python dividido en 10 capítulos. Cada capítulo cubre un tema como conceptos básicos, funciones, cadenas, listas, diccionarios y más. El documento proporciona contenidos detallados sobre cómo implementar cada tema en Python.
Este documento presenta el plan de evaluación de la unidad curricular de Redes Avanzadas para el período II-2021. El plan incluye cinco unidades de entrega evaluadas a través de foros de discusión, prácticas de laboratorio con informes, y ponderaciones. Los contenidos a evaluar son tecnologías LAN Ethernet, diseño de redes, VLAN, protocolos de enrutamiento, servicios de red, ACL y VPN.
Este documento presenta cuatro casos de estudio que involucran consultas SQL a bases de datos relacionales. Cada caso de estudio describe un modelo de base de datos y solicita que se cree el modelo físico, se carguen datos de ejemplo y se ejecuten varias consultas SQL sobre una o más tablas. El objetivo es que el lector practique la construcción de sentencias SQL utilizando diferentes tipos de consultas como composición interna, composición externa y resumen.
El documento presenta 8 casos de estudio para normalizar bases de datos relacionadas con el control de despachos, control de viajes, facturación de un supermercado, registro de etapas ciclísticas, y control de recaudación de impuestos. Para cada caso se describen las entidades y atributos relevantes, y se presentan datos de ejemplo para cada tabla. El objetivo es que los estudiantes apliquen los conocimientos de normalización de bases de datos y lleven cada caso hasta la 3FN.
El documento presenta cinco casos de estudio para el diseño de bases de datos relacionales. El primer caso trata sobre un videoclub y registra películas, géneros, directores, actores, DVDs y alquileres de socios. El segundo caso trata sobre una universidad y registra docentes, estudiantes, tutorías, torneos y clubes académicos. El tercer caso trata sobre un centro de terapia física y registra médicos, pacientes, consultas, patologías, dietas y ejercicios. El cuarto caso tr
Este documento presenta 8 ejercicios de normalización de bases de datos hasta la tercera forma normal. Los ejercicios incluyen tablas de facturación, pagos de proyectos, gastos de empleados, ventas, órdenes, horarios de trabajo, préstamos de libros. El objetivo es normalizar cada tabla eliminando las dependencias funcionales transitorias y anómalas.
El documento describe los requisitos para crear una base de datos para gestionar la formación de empleados de una empresa. La base de datos almacenará información sobre cursos (código, nombre, descripción, horas, coste), empleados (datos personales, capacitado para impartir cursos), y la relación entre cursos y empleados (un empleado puede ser docente o alumno de un curso).
El documento presenta 9 ejercicios de modelado entidad-relación (MER) para diferentes casos de uso de bases de datos. Cada ejercicio describe los requisitos funcionales y de información para una base de datos relacional específica. Los ejercicios cubren temas como seguros de automóviles, alquiler de vehículos, universidades, recetas de cocina, taxis, tiendas departamentales, proyectos comunitarios, parques naturales y almacenamiento de fotos.
El documento presenta 11 ejercicios para diseñar diagramas entidad-relación (E/R) que modelen diferentes situaciones. Cada ejercicio describe las entidades e identifica las relaciones relevantes entre ellas para una base de datos, como las relaciones entre alumnos, asignaturas, profesores y cursos escolares (Ejercicio 1), clientes, reservas y vehículos de alquiler (Ejercicio 5), y proveedores, clientes, productos y ventas para una empresa (Ejercicio 11).
Este documento presenta el plan de actividades de evaluación para la unidad curricular de Base de Datos en la Universidad Politécnica Territorial Andrés Eloy Blanco. El plan incluye cuatro semanas con diferentes estrategias de evaluación como foros de discusión, cuestionarios, infografías y tareas prácticas sobre diseño de modelos de datos, normalización de bases de datos y consultas SQL. Las actividades están distribuidas en cuatro unidades y suman un total de 100 puntos.
Este documento presenta el perfil del profesor José Ricardo Tillero Giménez de la Universidad Politécnica Territorial Andrés Eloy Blanco. El profesor Tillero enseñará la unidad curricular de Base de Datos e impartirá asesorías los martes y jueves de 8 am a 12 pm a través de Telegram. El profesor Tillero tiene más de 20 años de experiencia en desarrollo de software, bases de datos y redes.
El documento presenta el plan de actividades de 15 semanas para la unidad curricular de Base de Datos. Cubre cuatro unidades temáticas: 1) Bases de datos y sistemas de gestión de bases de datos, 2) Modelo conceptual de datos, 3) Modelo relacional y normalización, y 4) Lenguaje SQL. Cada semana incluye objetivos, temas, actividades como debates, pruebas, tareas y prácticas sobre un sistema gestor de bases de datos, con porcentajes de evaluación. El plan concluye con la negociación de notas y encuestas
Este documento presenta una introducción a las bases de datos y los sistemas de gestión de bases de datos relacionales (SGBDR). Define una base de datos, describe los principales modelos de bases de datos como el jerárquico, de red, relacional, orientado a objetos y orientado a documentos, y explica los componentes clave de un SGBDR como tablas, campos, filas y ejemplos de SGBDR populares.
Este documento presenta los resultados de un curso sobre diseño de redes LAN, VLAN, enrutamiento estático y dinámico y ACL-VPN. Contiene la cédula, nombre y apellido de 13 estudiantes junto con sus calificaciones en cada unidad y acumulado. La mayoría de los estudiantes aprobaron el curso, excepto por dos que reprobaron.
Este documento presenta los resultados de los estudiantes en 5 áreas (JavaScript Básico, DOM, Validar, jQuery) y calcula su nota final. De los 30 estudiantes, 11 aprobaron con notas entre 11.5 y 15, mientras que 2 reprobaron por poco con notas entre 9.75 y 10.25. Los demás reprobaron obtendo notas menores a 10.
Este documento presenta los resultados de varios estudiantes en cuatro secciones (JavaScript Básico, DOM, Validar y jQuery) de un curso. Diez estudiantes aprobaron con notas de 12 a 17, mientras que el resto reprobaron con nota 0. El documento incluye el número de cédula, nombre y apellido de cada estudiante junto con su calificación en cada sección y nota final.
Este documento presenta los resultados de 14 estudiantes en una asignatura de base de datos. Incluye la cédula, apellido y nombre de cada estudiante, sus calificaciones en diferentes unidades y tareas del curso, su acumulado total y nota final. Al final indica que la asignatura es Base de Datos.
El documento explica qué son las VLAN y sus características principales. Una VLAN permite crear redes lógicas independientes dentro de una misma red física agrupando estaciones de forma lógica independientemente de su ubicación física. Las VLAN mejoran el rendimiento de la red al reducir los dominios de difusión y permiten una administración y segmentación más flexible de la red.
Este documento proporciona instrucciones para redistribuir rutas entre los protocolos de enrutamiento dinámico RIP, OSPF y EIGRP. Explica cómo configurar la redistribución de rutas desde RIP hacia OSPF y EIGRP, desde EIGRP hacia RIP y OSPF, y desde OSPF hacia EIGRP y RIP. También incluye ejemplos de configuración para redistribuir rutas entre EIGRP y OSPF, EIGRP y RIP, y OSPF y RIP.
Este documento describe los conceptos y configuraciones de redistribución de protocolos de ruteo. Explica cómo redistribuir rutas entre protocolos como RIP, IGRP, EIGRP, OSPF, IS-IS y rutas estáticas. También cubre temas como métricas, distancias administrativas y cómo evitar problemas de redistribución. Incluye ejemplos de configuración para redistribuir entre diferentes protocolos de ruteo.
Este documento presenta una introducción a jQuery en 5 sesiones. Cubre conceptos como selectores y manipulación del DOM con jQuery, manejo de eventos, efectos, y el uso de Ajax. Cada sesión incluye ejemplos de código y enlaces a lecturas recomendadas para profundizar en cada tema.
En la ciudad de Pasto, estamos revolucionando el acceso a microcréditos y la formalización de microempresarios informales con nuestra aplicación CrediAvanza. Nuestro objetivo es empoderar a los emprendedores locales proporcionándoles una plataforma integral que facilite el acceso a servicios financieros y asesoría profesional.
ROMPECABEZAS DE COMPETENCIAS OLÍMPICAS. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
El Mtro. JAVIER SOLIS NOYOLA, crea y diseña el ROMPECABEZAS DE COMPETENCIAS OLÍMPICAS. Esta actividad de aprendizaje lúdico se ha diseñado para ocultar gráficos representativos de las disciplinas olímpicas del pentatlón. La intención de esta actividad es, promover la ruptura de patrones del pensamiento de fijación funcional, a través de procesos lógicos y creativos, como: memoria, perspicacia, percepción (geométrica y conceptual), imaginación, inferencia, viso-espacialidad, toma de decisiones, etcétera. Su enfoque didáctico es por descubrimiento y transversal, ya que integra diversas áreas, entre ellas: matemáticas (geometría), arte, lenguaje (gráfico), neurociencias, etc.
FRASE CÉLEBRE OLÍMPICA EN ROMPECABEZAS. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
El Mtro. JAVIER SOLIS NOYOLA, crea y diseña el ACERTIJO DE FRASE CÉLEBRE OLÍMPICA EN ROMPECABEZAS. Esta actividad de aprendizaje lúdico y motricidad fina se ha diseñado para descifrar una frase célebre olímpica mediante secciones (piezas de rompecabezas) de gráficos representativos de diversas disciplinas olímpicas. La intención de esta actividad es, promover el aprendizaje lógico y creativo, a través de procesos cognitivos, como: memoria, lenguaje, perspicacia, percepción(geométrica y conceptual), imaginación, inferencia, viso-espacialidad, toma de decisiones, etcétera. Su enfoque didáctico es por descubrimiento y transversal, ya que integra diversas áreas, entre ellas: matemáticas (geometría), arte, lenguaje (gráfico y textual), neurociencias, etc.
Leyes de los gases según Boyle-Marriote, Charles, Gay- Lussac, Ley general de...Shirley Vásquez Esparza
Las diapositivas sobre las leyes de los gases están diseñadas para ofrecer una presentación visual y didáctica de conceptos fundamentales en la física y la química. Cada diapositiva explora una ley específica como la ley de Boyle, Charles y Gay-Lussac, utilizando gráficos claros que representan las relaciones matemáticas entre presión, volumen y temperatura.
4. Capítulo 1
Ejercicios. Realización de consultas SQL
1.1 Tienda de informática
1.1.1 Modelo entidad/relación
1.1.2 Base de datos para MySQL
DROP DATABASE IF EXISTS tienda;
CREATE DATABASE tienda CHARACTER SET utf8mb4;
USE tienda;
CREATE TABLE fabricante (
codigo INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL
);
CREATE TABLE producto (
codigo INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
3
5. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
nombre VARCHAR(100) NOT NULL,
precio DOUBLE NOT NULL,
codigo_fabricante INT UNSIGNED NOT NULL,
FOREIGN KEY (codigo_fabricante) REFERENCES fabricante(codigo)
);
INSERT INTO fabricante VALUES(1, 'Asus');
INSERT INTO fabricante VALUES(2, 'Lenovo');
INSERT INTO fabricante VALUES(3, 'Hewlett-Packard');
INSERT INTO fabricante VALUES(4, 'Samsung');
INSERT INTO fabricante VALUES(5, 'Seagate');
INSERT INTO fabricante VALUES(6, 'Crucial');
INSERT INTO fabricante VALUES(7, 'Gigabyte');
INSERT INTO fabricante VALUES(8, 'Huawei');
INSERT INTO fabricante VALUES(9, 'Xiaomi');
INSERT INTO producto VALUES(1, 'Disco duro SATA3 1TB', 86.99, 5);
INSERT INTO producto VALUES(2, 'Memoria RAM DDR4 8GB', 120, 6);
INSERT INTO producto VALUES(3, 'Disco SSD 1 TB', 150.99, 4);
INSERT INTO producto VALUES(4, 'GeForce GTX 1050Ti', 185, 7);
INSERT INTO producto VALUES(5, 'GeForce GTX 1080 Xtreme', 755, 6);
INSERT INTO producto VALUES(6, 'Monitor 24 LED Full HD', 202, 1);
INSERT INTO producto VALUES(7, 'Monitor 27 LED Full HD', 245.99, 1);
INSERT INTO producto VALUES(8, 'Portátil Yoga 520', 559, 2);
INSERT INTO producto VALUES(9, 'Portátil Ideapd 320', 444, 2);
INSERT INTO producto VALUES(10, 'Impresora HP Deskjet 3720', 59.99, 3);
INSERT INTO producto VALUES(11, 'Impresora HP Laserjet Pro M26nw', 180, 3);
1.1.3 Consultas sobre una tabla
1. Lista el nombre de todos los productos que hay en la tabla producto.
2. Lista los nombres y los precios de todos los productos de la tabla producto.
3. Lista todas las columnas de la tabla producto.
4. Lista el nombre de los productos, el precio en euros y el precio en dólares estadounidenses (USD).
5. Lista el nombre de los productos, el precio en euros y el precio en dólares estadounidenses (USD). Utiliza
los siguientes alias para las columnas: nombre de producto, euros, dólares.
6. Lista los nombres y los precios de todos los productos de la tabla producto, convirtiendo los nombres a
mayúscula.
7. Lista los nombres y los precios de todos los productos de la tabla producto, convirtiendo los nombres a
minúscula.
8. Lista el nombre de todos los fabricantes en una columna, y en otra columna obtenga en mayúsculas los
dos primeros caracteres del nombre del fabricante.
José Juan Sánchez Hernández 4
6. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
9. Lista los nombres y los precios de todos los productos de la tabla producto, redondeando el valor del
precio.
10. Lista los nombres y los precios de todos los productos de la tabla producto, truncando el valor del precio
para mostrarlo sin ninguna cifra decimal.
11. Lista el código de los fabricantes que tienen productos en la tabla producto.
12. Lista el código de los fabricantes que tienen productos en la tabla producto, eliminando los códigos que
aparecen repetidos.
13. Lista los nombres de los fabricantes ordenados de forma ascendente.
14. Lista los nombres de los fabricantes ordenados de forma descendente.
15. Lista los nombres de los productos ordenados en primer lugar por el nombre de forma ascendente y en
segundo lugar por el precio de forma descendente.
16. Devuelve una lista con las 5 primeras filas de la tabla fabricante.
17. Devuelve una lista con 2 filas a partir de la cuarta fila de la tabla fabricante. La cuarta fila también se
debe incluir en la respuesta.
18. Lista el nombre y el precio del producto más barato. (Utilice solamente las cláusulas ORDER BY y LIMIT)
19. Lista el nombre y el precio del producto más caro. (Utilice solamente las cláusulas ORDER BY y LIMIT)
20. Lista el nombre de todos los productos del fabricante cuyo código de fabricante es igual a 2.
21. Lista el nombre de los productos que tienen un precio menor o igual a 120€.
22. Lista el nombre de los productos que tienen un precio mayor o igual a 400€.
23. Lista el nombre de los productos que no tienen un precio mayor o igual a 400€.
24. Lista todos los productos que tengan un precio entre 80€ y 300€. Sin utilizar el operador BETWEEN.
25. Lista todos los productos que tengan un precio entre 60€ y 200€. Utilizando el operador BETWEEN.
26. Lista todos los productos que tengan un precio mayor que 200€ y que el código de fabricante sea igual a
6.
27. Lista todos los productos donde el código de fabricante sea 1, 3 o 5. Sin utilizar el operador IN.
28. Lista todos los productos donde el código de fabricante sea 1, 3 o 5. Utilizando el operador IN.
29. Listaelnombreyelpreciodelosproductosencéntimos(Habráquemultiplicarpor100elvalordelprecio).
Cree un alias para la columna que contiene el precio que se llame céntimos.
30. Lista los nombres de los fabricantes cuyo nombre empiece por la letra S.
31. Lista los nombres de los fabricantes cuyo nombre termine por la vocal e.
32. Lista los nombres de los fabricantes cuyo nombre contenga el carácter w.
33. Lista los nombres de los fabricantes cuyo nombre sea de 4 caracteres.
34. Devuelve una lista con el nombre de todos los productos que contienen la cadena Portátil en el nom-
bre.
José Juan Sánchez Hernández 5
7. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
35. Devuelve una lista con el nombre de todos los productos que contienen la cadena Monitor en el nombre
y tienen un precio inferior a 215 €.
36. Lista el nombre y el precio de todos los productos que tengan un precio mayor o igual a 180€. Ordene
el resultado en primer lugar por el precio (en orden descendente) y en segundo lugar por el nombre (en
orden ascendente).
1.1.4 Consultas multitabla (Composición interna)
Resuelva todas las consultas utilizando la sintaxis de SQL1 y SQL2.
1. Devuelve una lista con el nombre del producto, precio y nombre de fabricante de todos los productos de
la base de datos.
2. Devuelve una lista con el nombre del producto, precio y nombre de fabricante de todos los productos de
la base de datos. Ordene el resultado por el nombre del fabricante, por orden alfabético.
3. Devuelve una lista con el código del producto, nombre del producto, código del fabricante y nombre del
fabricante, de todos los productos de la base de datos.
4. Devuelve el nombre del producto, su precio y el nombre de su fabricante, del producto más barato.
5. Devuelve el nombre del producto, su precio y el nombre de su fabricante, del producto más caro.
6. Devuelve una lista de todos los productos del fabricante Lenovo.
7. Devuelve una lista de todos los productos del fabricante Crucial que tengan un precio mayor que 200€.
8. Devuelve un listado con todos los productos de los fabricantes Asus, Hewlett-Packardy Seagate. Sin
utilizar el operador IN.
9. Devuelve un listado con todos los productos de los fabricantes Asus, Hewlett-Packardy Seagate. Uti-
lizando el operador IN.
10. Devuelve un listado con el nombre y el precio de todos los productos de los fabricantes cuyo nombre
termine por la vocal e.
11. Devuelveunlistadoconelnombreyelpreciodetodoslosproductoscuyonombredefabricantecontenga
el carácter w en su nombre.
12. Devuelve un listado con el nombre de producto, precio y nombre de fabricante, de todos los productos
que tengan un precio mayor o igual a 180€. Ordene el resultado en primer lugar por el precio (en orden
descendente) y en segundo lugar por el nombre (en orden ascendente)
13. Devuelveunlistadoconelcódigoyelnombredefabricante,solamentedeaquellosfabricantesquetienen
productos asociados en la base de datos.
1.1.5 Consultas multitabla (Composición externa)
Resuelva todas las consultas utilizando las cláusulas LEFT JOIN y RIGHT JOIN.
José Juan Sánchez Hernández 6
8. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
1. Devuelve un listado de todos los fabricantes que existen en la base de datos, junto con los productos que
tiene cada uno de ellos. El listado deberá mostrar también aquellos fabricantes que no tienen productos
asociados.
2. Devuelve un listado donde sólo aparezcan aquellos fabricantes que no tienen ningún producto asociado.
3. ¿Pueden existir productos que no estén relacionados con un fabricante? Justifique su respuesta.
1.1.6 Consultas resumen
1. Calcula el número total de productos que hay en la tabla productos.
2. Calcula el número total de fabricantes que hay en la tabla fabricante.
3. Calcula el número de valores distintos de código de fabricante aparecen en la tabla productos.
4. Calcula la media del precio de todos los productos.
5. Calcula el precio más barato de todos los productos.
6. Calcula el precio más caro de todos los productos.
7. Lista el nombre y el precio del producto más barato.
8. Lista el nombre y el precio del producto más caro.
9. Calcula la suma de los precios de todos los productos.
10. Calcula el número de productos que tiene el fabricante Asus.
11. Calcula la media del precio de todos los productos del fabricante Asus.
12. Calcula el precio más barato de todos los productos del fabricante Asus.
13. Calcula el precio más caro de todos los productos del fabricante Asus.
14. Calcula la suma de todos los productos del fabricante Asus.
15. Muestra el precio máximo, precio mínimo, precio medio y el número total de productos que tiene el fa-
bricante Crucial.
16. Muestra el número total de productos que tiene cada uno de los fabricantes. El listado también debe
incluir los fabricantes que no tienen ningún producto. El resultado mostrará dos columnas, una con el
nombre del fabricante y otra con el número de productos que tiene. Ordene el resultado descendente-
mente por el número de productos.
17. Muestra el precio máximo, precio mínimo y precio medio de los productos de cada uno de los fabricantes.
El resultado mostrará el nombre del fabricante junto con los datos que se solicitan.
18. Muestra el precio máximo, precio mínimo, precio medio y el número total de productos de los fabricantes
que tienen un precio medio superior a 200€. No es necesario mostrar el nombre del fabricante, con el
código del fabricante es suficiente.
19. Muestra el nombre de cada fabricante, junto con el precio máximo, precio mínimo, precio medio y el
número total de productos de los fabricantes que tienen un precio medio superior a 200€. Es necesario
mostrar el nombre del fabricante.
José Juan Sánchez Hernández 7
9. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
20. Calcula el número de productos que tienen un precio mayor o igual a 180€.
21. Calcula el número de productos que tiene cada fabricante con un precio mayor o igual a 180€.
22. Lista el precio medio los productos de cada fabricante, mostrando solamente el código del fabricante.
23. Lista el precio medio los productos de cada fabricante, mostrando solamente el nombre del fabricante.
24. Lista los nombres de los fabricantes cuyos productos tienen un precio medio mayor o igual a 150€.
25. Devuelve un listado con los nombres de los fabricantes que tienen 2 o más productos.
26. Devuelve un listado con los nombres de los fabricantes y el número de productos que tiene cada uno con
un precio superior o igual a 220 €. No es necesario mostrar el nombre de los fabricantes que no tienen
productos que cumplan la condición.
Ejemplo del resultado esperado:
nombre total
Lenovo 2
Asus 1
Crucial 1
27. Devuelve un listado con los nombres de los fabricantes y el número de productos que tiene cada uno con
un precio superior o igual a 220 €. El listado debe mostrar el nombre de todos los fabricantes, es decir, si
hay algún fabricante que no tiene productos con un precio superior o igual a 220€ deberá aparecer en el
listado con un valor igual a 0 en el número de productos.
Ejemplo del resultado esperado:
nombre total
Lenovo 2
Crucial 1
Asus 1
Huawei 0
Samsung 0
Gigabyte 0
Hewlett-Packard 0
Xiaomi 0
Seagate 0
28. Devuelve un listado con los nombres de los fabricantes donde la suma del precio de todos sus productos
es superior a 1000 €.
José Juan Sánchez Hernández 8
10. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
29. Devuelve un listado con el nombre del producto más caro que tiene cada fabricante. El resultado debe
tener tres columnas: nombre del producto, precio y nombre del fabricante. El resultado tiene que estar
ordenado alfabéticamente de menor a mayor por el nombre del fabricante.
1.1.7 Subconsultas (En la cláusula WHERE)
1.1.7.1 Con operadores básicos de comparación
1. Devuelve todos los productos del fabricante Lenovo. (Sin utilizar INNER JOIN).
2. Devuelve todos los datos de los productos que tienen el mismo precio que el producto más caro del fa-
bricante Lenovo. (Sin utilizar INNER JOIN).
3. Lista el nombre del producto más caro del fabricante Lenovo.
4. Lista el nombre del producto más barato del fabricante Hewlett-Packard.
5. Devuelve todos los productos de la base de datos que tienen un precio mayor o igual al producto más
caro del fabricante Lenovo.
6. Lista todos los productos del fabricante Asus que tienen un precio superior al precio medio de todos sus
productos.
1.1.7.2 Subconsultas con ALL y ANY
8. Devuelve el producto más caro que existe en la tabla producto sin hacer uso de MAX, ORDER BY ni LIMIT.
9. Devuelve el producto más barato que existe en la tabla producto sin hacer uso de MIN, ORDER BY ni
LIMIT.
10. Devuelve los nombres de los fabricantes que tienen productos asociados. (Utilizando ALL o ANY).
11. Devuelve los nombres de los fabricantes que no tienen productos asociados. (Utilizando ALL o ANY).
1.1.7.3 Subconsultas con IN y NOT IN
12. Devuelve los nombres de los fabricantes que tienen productos asociados. (Utilizando IN o NOT IN).
13. Devuelve los nombres de los fabricantes que no tienen productos asociados. (Utilizando IN o NOT IN).
1.1.7.4 Subconsultas con EXISTS y NOT EXISTS
14. Devuelve los nombres de los fabricantes que tienen productos asociados. (Utilizando EXISTS o NOT
EXISTS).
15. Devuelve los nombres de los fabricantes que no tienen productos asociados. (Utilizando EXISTS o NOT
EXISTS).
José Juan Sánchez Hernández 9
11. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
1.1.7.5 Subconsultas correlacionadas
16. Lista el nombre de cada fabricante con el nombre y el precio de su producto más caro.
17. Devuelve un listado de todos los productos que tienen un precio mayor o igual a la media de todos los
productos de su mismo fabricante.
18. Lista el nombre del producto más caro del fabricante Lenovo.
1.1.8 Subconsultas (En la cláusula HAVING)
7. Devuelve un listado con todos los nombres de los fabricantes que tienen el mismo número de productos
que el fabricante Lenovo.
1.2 Gestión de empleados
1.2.1 Modelo entidad/relación
1.2.2 Base de datos para MySQL
DROP DATABASE IF EXISTS empleados;
CREATE DATABASE empleados CHARACTER SET utf8mb4;
USE empleados;
CREATE TABLE departamento (
codigo INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
presupuesto DOUBLE UNSIGNED NOT NULL,
gastos DOUBLE UNSIGNED NOT NULL
José Juan Sánchez Hernández 10
12. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
);
CREATE TABLE empleado (
codigo INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nif VARCHAR(9) NOT NULL UNIQUE,
nombre VARCHAR(100) NOT NULL,
apellido1 VARCHAR(100) NOT NULL,
apellido2 VARCHAR(100),
codigo_departamento INT UNSIGNED,
FOREIGN KEY (codigo_departamento) REFERENCES departamento(codigo)
);
INSERT INTO departamento VALUES(1, 'Desarrollo', 120000, 6000);
INSERT INTO departamento VALUES(2, 'Sistemas', 150000, 21000);
INSERT INTO departamento VALUES(3, 'Recursos Humanos', 280000, 25000);
INSERT INTO departamento VALUES(4, 'Contabilidad', 110000, 3000);
INSERT INTO departamento VALUES(5, 'I+D', 375000, 380000);
INSERT INTO departamento VALUES(6, 'Proyectos', 0, 0);
INSERT INTO departamento VALUES(7, 'Publicidad', 0, 1000);
INSERT INTO empleado VALUES(1, '32481596F', 'Aarón', 'Rivero', 'Gómez', 1);
INSERT INTO empleado VALUES(2, 'Y5575632D', 'Adela', 'Salas', 'Díaz', 2);
INSERT INTO empleado VALUES(3, 'R6970642B', 'Adolfo', 'Rubio', 'Flores', 3);
INSERT INTO empleado VALUES(4, '77705545E', 'Adrián', 'Suárez', NULL, 4);
INSERT INTO empleado VALUES(5, '17087203C', 'Marcos', 'Loyola', 'Méndez', 5);
INSERT INTO empleado VALUES(6, '38382980M', 'María', 'Santana', 'Moreno', 1);
INSERT INTO empleado VALUES(7, '80576669X', 'Pilar', 'Ruiz', NULL, 2);
INSERT INTO empleado VALUES(8, '71651431Z', 'Pepe', 'Ruiz', 'Santana', 3);
INSERT INTO empleado VALUES(9, '56399183D', 'Juan', 'Gómez', 'López', 2);
INSERT INTO empleado VALUES(10, '46384486H', 'Diego','Flores', 'Salas', 5);
INSERT INTO empleado VALUES(11, '67389283A', 'Marta','Herrera', 'Gil', 1);
INSERT INTO empleado VALUES(12, '41234836R', 'Irene','Salas', 'Flores', NULL);
INSERT INTO empleado VALUES(13, '82635162B', 'Juan Antonio','Sáez', 'Guerrero',
NULL);
1.2.3 Consultas sobre una tabla
1. Lista el primer apellido de todos los empleados.
2. Lista el primer apellido de los empleados eliminando los apellidos que estén repetidos.
3. Lista todas las columnas de la tabla empleado.
4. Lista el nombre y los apellidos de todos los empleados.
5. Lista el código de los departamentos de los empleados que aparecen en la tabla empleado.
6. Lista el código de los departamentos de los empleados que aparecen en la tabla empleado, eliminando
los códigos que aparecen repetidos.
José Juan Sánchez Hernández 11
13. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
7. Lista el nombre y apellidos de los empleados en una única columna.
8. Lista el nombre y apellidos de los empleados en una única columna, convirtiendo todos los caracteres en
mayúscula.
9. Lista el nombre y apellidos de los empleados en una única columna, convirtiendo todos los caracteres en
minúscula.
10. Lista el código de los empleados junto al nif, pero el nif deberá aparecer en dos columnas, una mostrará
únicamente los dígitos del nif y la otra la letra.
11. Lista el nombre de cada departamento y el valor del presupuesto actual del que dispone. Para calcular
este dato tendrá que restar al valor del presupuesto inicial (columna presupuesto) los gastos que se
han generado (columna gastos). Tenga en cuenta que en algunos casos pueden existir valores negativos.
Utilice un alias apropiado para la nueva columna columna que está calculando.
12. Lista el nombre de los departamentos y el valor del presupuesto actual ordenado de forma ascendente.
13. Lista el nombre de todos los departamentos ordenados de forma ascendente.
14. Lista el nombre de todos los departamentos ordenados de forma desscendente.
15. Lista los apellidos y el nombre de todos los empleados, ordenados de forma alfabética tendiendo en
cuenta en primer lugar sus apellidos y luego su nombre.
16. Devuelve una lista con el nombre y el presupuesto, de los 3 departamentos que tienen mayor presupues-
to.
17. Devuelve una lista con el nombre y el presupuesto, de los 3 departamentos que tienen menor presupues-
to.
18. Devuelve una lista con el nombre y el gasto, de los 2 departamentos que tienen mayor gasto.
19. Devuelve una lista con el nombre y el gasto, de los 2 departamentos que tienen menor gasto.
20. Devuelve una lista con 5 filas a partir de la tercera fila de la tabla empleado. La tercera fila se debe incluir
en la respuesta. La respuesta debe incluir todas las columnas de la tabla empleado.
21. Devuelve una lista con el nombre de los departamentos y el presupuesto, de aquellos que tienen un pre-
supuesto mayor o igual a 150000 euros.
22. Devuelve una lista con el nombre de los departamentos y el gasto, de aquellos que tienen menos de 5000
euros de gastos.
23. Devuelve una lista con el nombre de los departamentos y el presupesto, de aquellos que tienen un pre-
supuesto entre 100000 y 200000 euros. Sin utilizar el operador BETWEEN.
24. Devuelve una lista con el nombre de los departamentos que no tienen un presupuesto entre 100000 y
200000 euros. Sin utilizar el operador BETWEEN.
25. Devuelveunalistaconelnombredelos departamentosquetienenunpresupuestoentre100000y200000
euros. Utilizando el operador BETWEEN.
26. Devuelve una lista con el nombre de los departamentos que no tienen un presupuesto entre 100000 y
200000 euros. Utilizando el operador BETWEEN.
José Juan Sánchez Hernández 12
14. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
27. Devuelve una lista con el nombre de los departamentos, gastos y presupuesto, de quellos departamentos
donde los gastos sean mayores que el presupuesto del que disponen.
28. Devuelve una lista con el nombre de los departamentos, gastos y presupuesto, de aquellos departamen-
tos donde los gastos sean menores que el presupuesto del que disponen.
29. Devuelve una lista con el nombre de los departamentos, gastos y presupuesto, de aquellos departamen-
tos donde los gastos sean iguales al presupuesto del que disponen.
30. Lista todos los datos de los empleados cuyo segundo apellido sea NULL.
31. Lista todos los datos de los empleados cuyo segundo apellido no sea NULL.
32. Lista todos los datos de los empleados cuyo segundo apellido sea López.
33. Lista todos los datos de los empleados cuyo segundo apellido sea Díaz o Moreno. Sin utilizar el operador
IN.
34. Lista todos los datos de los empleados cuyo segundo apellido sea Díaz o Moreno. Utilizando el operador
IN.
35. Lista los nombres, apellidos y nif de los empleados que trabajan en el departamento 3.
36. Lista los nombres, apellidos y nif de los empleados que trabajan en los departamentos 2, 4 o 5.
1.2.4 Consultas multitabla (Composición interna)
Resuelva todas las consultas utilizando la sintaxis de SQL1 y SQL2.
1. Devuelve un listado con los empleados y los datos de los departamentos donde trabaja cada uno.
2. Devuelve un listado con los empleados y los datos de los departamentos donde trabaja cada uno. Ordena
el resultado, en primer lugar por el nombre del departamento (en orden alfabético) y en segundo lugar
por los apellidos y el nombre de los empleados.
3. Devuelve un listado con el código y el nombre del departamento, solamente de aquellos departamentos
que tienen empleados.
4. Devuelve un listado con el código, el nombre del departamento y el valor del presupuesto actual del que
dispone, solamente de aquellos departamentos que tienen empleados. El valor del presupuesto actual
lo puede calcular restando al valor del presupuesto inicial (columna presupuesto) el valor de los gastos
que ha generado (columna gastos).
5. Devuelve el nombre del departamento donde trabaja el empleado que tiene el nif 38382980M.
6. Devuelve el nombre del departamento donde trabaja el empleado Pepe Ruiz Santana.
7. Devuelve un listado con los datos de los empleados que trabajan en el departamento de I+D. Ordena el
resultado alfabéticamente.
8. Devuelve un listado con los datos de los empleados que trabajan en el departamento de Sistemas,
Contabilidad o I+D. Ordena el resultado alfabéticamente.
9. Devuelve una lista con el nombre de los empleados que tienen los departamentos que no tienen un pre-
supuesto entre 100000 y 200000 euros.
José Juan Sánchez Hernández 13
15. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
10. Devuelve un listado con el nombre de los departamentos donde existe algún empleado cuyo segundo
apellidoseaNULL.Tengaencuentaquenodebemostrarnombresdedepartamentosqueesténrepetidos.
1.2.5 Consultas multitabla (Composición externa)
Resuelva todas las consultas utilizando las cláusulas LEFT JOIN y RIGHT JOIN.
1. Devuelve un listado con todos los empleados junto con los datos de los departamentos donde trabajan.
Este listado también debe incluir los empleados que no tienen ningún departamento asociado.
2. Devuelve un listado donde sólo aparezcan aquellos empleados que no tienen ningún departamento aso-
ciado.
3. Devuelve un listado donde sólo aparezcan aquellos departamentos que no tienen ningún empleado aso-
ciado.
4. Devuelve un listado con todos los empleados junto con los datos de los departamentos donde trabajan.
El listado debe incluir los empleados que no tienen ningún departamento asociado y los departamentos
que no tienen ningún empleado asociado. Ordene el listado alfabéticamente por el nombre del departa-
mento.
5. Devuelve un listado con los empleados que no tienen ningún departamento asociado y los departamen-
tos que no tienen ningún empleado asociado. Ordene el listado alfabéticamente por el nombre del de-
partamento.
1.2.6 Consultas resumen
1. Calcula la suma del presupuesto de todos los departamentos.
2. Calcula la media del presupuesto de todos los departamentos.
3. Calcula el valor mínimo del presupuesto de todos los departamentos.
4. Calcula el nombre del departamento y el presupuesto que tiene asignado, del departamento con menor
presupuesto.
5. Calcula el valor máximo del presupuesto de todos los departamentos.
6. Calcula el nombre del departamento y el presupuesto que tiene asignado, del departamento con mayor
presupuesto.
7. Calcula el número total de empleados que hay en la tabla empleado.
8. Calcula el número de empleados que no tienen NULL en su segundo apellido.
9. Calcula el número de empleados que hay en cada departamento. Tienes que devolver dos columnas, una
con el nombre del departamento y otra con el número de empleados que tiene asignados.
10. Calcula el nombre de los departamentos que tienen más de 2 empleados. El resultado debe tener dos
columnas, una con el nombre del departamento y otra con el número de empleados que tiene asignados.
11. Calcula el número de empleados que trabajan en cada uno de los departamentos. El resultado de esta
consulta también tiene que incluir aquellos departamentos que no tienen ningún empleado asociado.
José Juan Sánchez Hernández 14
16. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
12. Calcula el número de empleados que trabajan en cada unos de los departamentos que tienen un presu-
puesto mayor a 200000 euros.
1.2.7 Subconsultas
1.2.7.1 Con operadores básicos de comparación
1. DevuelveunlistadocontodoslosempleadosquetieneeldepartamentodeSistemas.(SinutilizarINNER
JOIN).
2. Devuelve el nombre del departamento con mayor presupuesto y la cantidad que tiene asignada.
3. Devuelve el nombre del departamento con menor presupuesto y la cantidad que tiene asignada.
1.2.7.2 Subconsultas con ALL y ANY
4. Devuelveelnombredeldepartamentoconmayorpresupuestoylacantidadquetieneasignada.Sinhacer
uso de MAX, ORDER BY ni LIMIT.
5. Devuelveelnombredeldepartamentoconmenorpresupuestoylacantidadquetieneasignada.Sinhacer
uso de MIN, ORDER BY ni LIMIT.
6. Devuelve los nombres de los departamentos que tienen empleados asociados. (Utilizando ALL o ANY).
7. Devuelve los nombres de los departamentos que no tienen empleados asociados. (Utilizando ALL o ANY).
1.2.7.3 Subconsultas con IN y NOT IN
8. Devuelve los nombres de los departamentos que tienen empleados asociados. (Utilizando IN o NOT IN).
9. Devuelve los nombres de los departamentos que no tienen empleados asociados. (Utilizando IN o NOT
IN).
1.2.7.4 Subconsultas con EXISTS y NOT EXISTS
10. Devuelve los nombres de los departamentos que tienen empleados asociados. (Utilizando EXISTS o NOT
EXISTS).
11. Devuelve los nombres de los departamentos que tienen empleados asociados. (Utilizando EXISTS o NOT
EXISTS).
1.3 Gestión de ventas
José Juan Sánchez Hernández 15
17. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
1.3.1 Modelo entidad/relación
1.3.2 Base de datos para MySQL
DROP DATABASE IF EXISTS ventas;
CREATE DATABASE ventas CHARACTER SET utf8mb4;
USE ventas;
CREATE TABLE cliente (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
apellido1 VARCHAR(100) NOT NULL,
apellido2 VARCHAR(100),
ciudad VARCHAR(100),
categoría INT UNSIGNED
);
CREATE TABLE comercial (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
apellido1 VARCHAR(100) NOT NULL,
apellido2 VARCHAR(100),
comisión FLOAT
);
CREATE TABLE pedido (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
total DOUBLE NOT NULL,
fecha DATE,
id_cliente INT UNSIGNED NOT NULL,
id_comercial INT UNSIGNED NOT NULL,
FOREIGN KEY (id_cliente) REFERENCES cliente(id),
FOREIGN KEY (id_comercial) REFERENCES comercial(id)
);
José Juan Sánchez Hernández 16
18. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
INSERT INTO cliente VALUES(1, 'Aarón', 'Rivero', 'Gómez', 'Almería', 100);
INSERT INTO cliente VALUES(2, 'Adela', 'Salas', 'Díaz', 'Granada', 200);
INSERT INTO cliente VALUES(3, 'Adolfo', 'Rubio', 'Flores', 'Sevilla', NULL);
INSERT INTO cliente VALUES(4, 'Adrián', 'Suárez', NULL, 'Jaén', 300);
INSERT INTO cliente VALUES(5, 'Marcos', 'Loyola', 'Méndez', 'Almería', 200);
INSERT INTO cliente VALUES(6, 'María', 'Santana', 'Moreno', 'Cádiz', 100);
INSERT INTO cliente VALUES(7, 'Pilar', 'Ruiz', NULL, 'Sevilla', 300);
INSERT INTO cliente VALUES(8, 'Pepe', 'Ruiz', 'Santana', 'Huelva', 200);
INSERT INTO cliente VALUES(9, 'Guillermo', 'López', 'Gómez', 'Granada', 225);
INSERT INTO cliente VALUES(10, 'Daniel', 'Santana', 'Loyola', 'Sevilla', 125);
INSERT INTO comercial VALUES(1, 'Daniel', 'Sáez', 'Vega', 0.15);
INSERT INTO comercial VALUES(2, 'Juan', 'Gómez', 'López', 0.13);
INSERT INTO comercial VALUES(3, 'Diego','Flores', 'Salas', 0.11);
INSERT INTO comercial VALUES(4, 'Marta','Herrera', 'Gil', 0.14);
INSERT INTO comercial VALUES(5, 'Antonio','Carretero', 'Ortega', 0.12);
INSERT INTO comercial VALUES(6, 'Manuel','Domínguez', 'Hernández', 0.13);
INSERT INTO comercial VALUES(7, 'Antonio','Vega', 'Hernández', 0.11);
INSERT INTO comercial VALUES(8, 'Alfredo','Ruiz', 'Flores', 0.05);
INSERT INTO pedido VALUES(1, 150.5, '2017-10-05', 5, 2);
INSERT INTO pedido VALUES(2, 270.65, '2016-09-10', 1, 5);
INSERT INTO pedido VALUES(3, 65.26, '2017-10-05', 2, 1);
INSERT INTO pedido VALUES(4, 110.5, '2016-08-17', 8, 3);
INSERT INTO pedido VALUES(5, 948.5, '2017-09-10', 5, 2);
INSERT INTO pedido VALUES(6, 2400.6, '2016-07-27', 7, 1);
INSERT INTO pedido VALUES(7, 5760, '2015-09-10', 2, 1);
INSERT INTO pedido VALUES(8, 1983.43, '2017-10-10', 4, 6);
INSERT INTO pedido VALUES(9, 2480.4, '2016-10-10', 8, 3);
INSERT INTO pedido VALUES(10, 250.45, '2015-06-27', 8, 2);
INSERT INTO pedido VALUES(11, 75.29, '2016-08-17', 3, 7);
INSERT INTO pedido VALUES(12, 3045.6, '2017-04-25', 2, 1);
INSERT INTO pedido VALUES(13, 545.75, '2019-01-25', 6, 1);
INSERT INTO pedido VALUES(14, 145.82, '2017-02-02', 6, 1);
INSERT INTO pedido VALUES(15, 370.85, '2019-03-11', 1, 5);
INSERT INTO pedido VALUES(16, 2389.23, '2019-03-11', 1, 5);
1.3.3 Consultas sobre una tabla
1. Devuelve un listado con todos los pedidos que se han realizado. Los pedidos deben estar ordenados por
la fecha de realización, mostrando en primer lugar los pedidos más recientes.
2. Devuelve todos los datos de los dos pedidos de mayor valor.
3. Devuelve un listado con los identificadores de los clientes que han realizado algún pedido. Tenga en cuen-
ta que que no debe mostrar identificadores que estén repetidos.
4. Devuelve un listado de todos los pedidos que se realizaron durante el año 2017, cuya cantidad total sea
superior a 500€.
José Juan Sánchez Hernández 17
19. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
5. Devuelve un listado con el nombre y los apellidos de los comerciales que tienen una comisión entre 0.05
y 0.11.
6. Devuelve el valor de la comisión de mayor valor que existe en la tabla comercial.
7. Devuelve el identificador, nombre y primer apellido de aquellos clientes cuyo segundo apellido no es
NULL. El listado deberá estar ordenado alfabéticamente por apellidos y nombre.
8. Devuelve un listado de los nombres de los clientes que empiezan por A y terminan por n y también los
nombres que empiezan por P. El listado deberá estar ordenado alfabéticamente.
9. Devuelve un listado de los nombres de los clientes que no empiezan por A. El listado deberá estar orde-
nado alfabéticamente.
10. Devuelve un listado con los nombres de los comerciales que terminan por el o o. Tenga en cuenta que
se deberán eliminar los nombres repetidos.
1.3.4 Consultas multitabla (Composición interna)
Resuelva todas las consultas utilizando la sintaxis de SQL1 y SQL2.
1. Devuelve un listado con el identificador, nombre y los apellidos de todos los clientes que han realizado
algún pedido. El listado debe estar ordenado alfabéticamente y se deben eliminar los elementos repeti-
dos.
2. Devuelve un listado que muestre todos los pedidos que ha realizado cada cliente. El resultado debe mos-
trar todos los datos de los pedidos y del cliente. El listado debe mostrar los datos de los clientes ordena-
dos alfabéticamente.
3. Devuelve un listado que muestre todos los pedidos en los que ha participado un comercial. El resultado
debe mostrar todos los datos de los pedidos y de los comerciales. El listado debe mostrar los datos de los
comerciales ordenados alfabéticamente.
4. Devuelve un listado que muestre todos los clientes, con todos los pedidos que han realizado y con los
datos de los comerciales asociados a cada pedido.
5. Devuelve un listado de todos los clientes que realizaron un pedido durante el año 2017, cuya cantidad
esté entre 300 € y 1000 €.
6. Devuelveelnombreylosapellidosdetodosloscomercialesquehaparticipadoenalgúnpedidorealizado
por María Santana Moreno.
7. Devuelve el nombre de todos los clientes que han realizado algún pedido con el comercial Daniel Sáez
Vega.
1.3.5 Consultas multitabla (Composición externa)
Resuelva todas las consultas utilizando las cláusulas LEFT JOIN y RIGHT JOIN.
1. Devuelve un listado con todos los clientes junto con los datos de los pedidos que han realizado. Este lista-
do también debe incluir los clientes que no han realizado ningún pedido. El listado debe estar ordenado
alfabéticamente por el primer apellido, segundo apellido y nombre de los clientes.
José Juan Sánchez Hernández 18
20. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
2. Devuelve un listado con todos los comerciales junto con los datos de los pedidos que han realizado. Este
listado también debe incluir los comerciales que no han realizado ningún pedido. El listado debe estar
ordenado alfabéticamente por el primer apellido, segundo apellido y nombre de los comerciales.
3. Devuelve un listado que solamente muestre los clientes que no han realizado ningún pedido.
4. Devuelve un listado que solamente muestre los comerciales que no han realizado ningún pedido.
5. Devuelve un listado con los clientes que no han realizado ningún pedido y de los comerciales que no han
participado en ningún pedido. Ordene el listado alfabéticamente por los apellidos y el nombre. En en
listado deberá diferenciar de algún modo los clientes y los comerciales.
6. ¿Se podrían realizar las consultas anteriores con NATURAL LEFT JOIN o NATURAL RIGHT JOIN? Justi-
fique su respuesta.
1.3.6 Consultas resumen
1. Calcula la cantidad total que suman todos los pedidos que aparecen en la tabla pedido.
2. Calcula la cantidad media de todos los pedidos que aparecen en la tabla pedido.
3. Calcula el número total de comerciales distintos que aparecen en la tabla pedido.
4. Calcula el número total de clientes que aparecen en la tabla cliente.
5. Calcula cuál es la mayor cantidad que aparece en la tabla pedido.
6. Calcula cuál es la menor cantidad que aparece en la tabla pedido.
7. Calcula cuál es el valor máximo de categoría para cada una de las ciudades que aparece en la tabla
cliente.
8. Calcula cuál es el máximo valor de los pedidos realizados durante el mismo día para cada uno de los clien-
tes. Es decir, el mismo cliente puede haber realizado varios pedidos de diferentes cantidades el mismo
día. Se pide que se calcule cuál es el pedido de máximo valor para cada uno de los días en los que un
cliente ha realizado un pedido. Muestra el identificador del cliente, nombre, apellidos, la fecha y el valor
de la cantidad.
9. Calcula cuál es el máximo valor de los pedidos realizados durante el mismo día para cada uno de los
clientes, teniendo en cuenta que sólo queremos mostrar aquellos pedidos que superen la cantidad de
2000 €.
10. Calcula el máximo valor de los pedidos realizados para cada uno de los comerciales durante la fecha
2016-08-17. Muestra el identificador del comercial, nombre, apellidos y total.
11. Devuelve un listado con el identificador de cliente, nombre y apellidos y el número total de pedidos que
ha realizado cada uno de clientes. Tenga en cuenta que pueden existir clientes que no han realizado nin-
gún pedido. Estos clientes también deben aparecer en el listado indicando que el número de pedidos
realizados es 0.
12. Devuelve un listado con el identificador de cliente, nombre y apellidos y el número total de pedidos que
ha realizado cada uno de clientes durante el año 2017.
José Juan Sánchez Hernández 19
21. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
13. Devuelve un listado que muestre el identificador de cliente, nombre, primer apellido y el valor de la máxi-
ma cantidad del pedido realizado por cada uno de los clientes. El resultado debe mostrar aquellos clien-
tes que no han realizado ningún pedido indicando que la máxima cantidad de sus pedidos realizados es
0. Puede hacer uso de la función IFNULL.
14. Devuelve cuál ha sido el pedido de máximo valor que se ha realizado cada año.
15. Devuelve el número total de pedidos que se han realizado cada año.
1.3.7 Subconsultas
1.3.7.1 Con operadores básicos de comparación
1. Devuelve un listado con todos los pedidos que ha realizado Adela Salas Díaz. (Sin utilizar INNER
JOIN).
2. Devuelve el número de pedidos en los que ha participado el comercial Daniel Sáez Vega. (Sin utilizar
INNER JOIN)
3. Devuelve los datos del cliente que realizó el pedido más caro en el año 2019. (Sin utilizar INNER JOIN)
4. Devuelve la fecha y la cantidad del pedido de menor valor realizado por el cliente Pepe Ruiz Santana.
5. Devuelve un listado con los datos de los clientes y los pedidos, de todos los clientes que han realizado un
pedido durante el año 2017 con un valor mayor o igual al valor medio de los pedidos realizados durante
ese mismo año.
1.3.7.2 Subconsultas con ALL y ANY
6. Devuelve el pedido más caro que existe en la tabla pedido si hacer uso de MAX, ORDER BY ni LIMIT.
7. Devuelve un listado de los clientes que no han realizado ningún pedido. (Utilizando ANY o ALL).
8. Devuelve un listado de los comerciales que no han realizado ningún pedido. (Utilizando ANY o ALL).
1.3.7.3 Subconsultas con IN y NOT IN
9. Devuelve un listado de los clientes que no han realizado ningún pedido. (Utilizando IN o NOT IN).
10. Devuelve un listado de los comerciales que no han realizado ningún pedido. (Utilizando IN o NOT IN).
1.3.7.4 Subconsultas con EXISTS y NOT EXISTS
11. Devuelve un listado de los clientes que no han realizado ningún pedido. (Utilizando EXISTS o NOT
EXISTS).
12. Devuelve un listado de los comerciales que no han realizado ningún pedido. (Utilizando EXISTS o NOT
EXISTS).
José Juan Sánchez Hernández 20
22. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
1.4 Jardinería
1.4.1 Modelo entidad/relación
1.4.2 Base de datos para MySQL
José Juan Sánchez Hernández 21
23. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
DROP DATABASE IF EXISTS jardineria;
CREATE DATABASE jardineria CHARACTER SET utf8mb4;
USE jardineria;
CREATE TABLE oficina (
codigo_oficina VARCHAR(10) NOT NULL,
ciudad VARCHAR(30) NOT NULL,
pais VARCHAR(50) NOT NULL,
region VARCHAR(50) DEFAULT NULL,
codigo_postal VARCHAR(10) NOT NULL,
telefono VARCHAR(20) NOT NULL,
linea_direccion1 VARCHAR(50) NOT NULL,
linea_direccion2 VARCHAR(50) DEFAULT NULL,
PRIMARY KEY (codigo_oficina)
);
CREATE TABLE empleado (
codigo_empleado INTEGER NOT NULL,
nombre VARCHAR(50) NOT NULL,
apellido1 VARCHAR(50) NOT NULL,
apellido2 VARCHAR(50) DEFAULT NULL,
extension VARCHAR(10) NOT NULL,
email VARCHAR(100) NOT NULL,
codigo_oficina VARCHAR(10) NOT NULL,
codigo_jefe INTEGER DEFAULT NULL,
puesto VARCHAR(50) DEFAULT NULL,
PRIMARY KEY (codigo_empleado),
FOREIGN KEY (codigo_oficina) REFERENCES oficina (codigo_oficina),
FOREIGN KEY (codigo_jefe) REFERENCES empleado (codigo_empleado)
);
CREATE TABLE gama_producto (
gama VARCHAR(50) NOT NULL,
descripcion_texto TEXT,
descripcion_html TEXT,
imagen VARCHAR(256),
PRIMARY KEY (gama)
);
CREATE TABLE cliente (
codigo_cliente INTEGER NOT NULL,
nombre_cliente VARCHAR(50) NOT NULL,
nombre_contacto VARCHAR(30) DEFAULT NULL,
apellido_contacto VARCHAR(30) DEFAULT NULL,
telefono VARCHAR(15) NOT NULL,
fax VARCHAR(15) NOT NULL,
linea_direccion1 VARCHAR(50) NOT NULL,
linea_direccion2 VARCHAR(50) DEFAULT NULL,
ciudad VARCHAR(50) NOT NULL,
José Juan Sánchez Hernández 22
24. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
region VARCHAR(50) DEFAULT NULL,
pais VARCHAR(50) DEFAULT NULL,
codigo_postal VARCHAR(10) DEFAULT NULL,
codigo_empleado_rep_ventas INTEGER DEFAULT NULL,
limite_credito NUMERIC(15,2) DEFAULT NULL,
PRIMARY KEY (codigo_cliente),
FOREIGN KEY (codigo_empleado_rep_ventas) REFERENCES empleado (codigo_empleado)
);
CREATE TABLE pedido (
codigo_pedido INTEGER NOT NULL,
fecha_pedido date NOT NULL,
fecha_esperada date NOT NULL,
fecha_entrega date DEFAULT NULL,
estado VARCHAR(15) NOT NULL,
comentarios TEXT,
codigo_cliente INTEGER NOT NULL,
PRIMARY KEY (codigo_pedido),
FOREIGN KEY (codigo_cliente) REFERENCES cliente (codigo_cliente)
);
CREATE TABLE producto (
codigo_producto VARCHAR(15) NOT NULL,
nombre VARCHAR(70) NOT NULL,
gama VARCHAR(50) NOT NULL,
dimensiones VARCHAR(25) NULL,
proveedor VARCHAR(50) DEFAULT NULL,
descripcion text NULL,
cantidad_en_stock SMALLINT NOT NULL,
precio_venta NUMERIC(15,2) NOT NULL,
precio_proveedor NUMERIC(15,2) DEFAULT NULL,
PRIMARY KEY (codigo_producto),
FOREIGN KEY (gama) REFERENCES gama_producto (gama)
);
CREATE TABLE detalle_pedido (
codigo_pedido INTEGER NOT NULL,
codigo_producto VARCHAR(15) NOT NULL,
cantidad INTEGER NOT NULL,
precio_unidad NUMERIC(15,2) NOT NULL,
numero_linea SMALLINT NOT NULL,
PRIMARY KEY (codigo_pedido, codigo_producto),
FOREIGN KEY (codigo_pedido) REFERENCES pedido (codigo_pedido),
FOREIGN KEY (codigo_producto) REFERENCES producto (codigo_producto)
);
CREATE TABLE pago (
codigo_cliente INTEGER NOT NULL,
forma_pago VARCHAR(40) NOT NULL,
José Juan Sánchez Hernández 23
25. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
id_transaccion VARCHAR(50) NOT NULL,
fecha_pago date NOT NULL,
total NUMERIC(15,2) NOT NULL,
PRIMARY KEY (codigo_cliente, id_transaccion),
FOREIGN KEY (codigo_cliente) REFERENCES cliente (codigo_cliente)
);
1.4.3 Datos
Acceder al script SQL para la creación de la base de datos y la inserción de datos: jardineria.sql.
1.4.4 Consultas sobre una tabla
1. Devuelve un listado con el código de oficina y la ciudad donde hay oficinas.
2. Devuelve un listado con la ciudad y el teléfono de las oficinas de España.
3. Devuelve un listado con el nombre, apellidos y email de los empleados cuyo jefe tiene un código de jefe
igual a 7.
4. Devuelve el nombre del puesto, nombre, apellidos y email del jefe de la empresa.
5. Devuelveunlistadoconelnombre,apellidosypuestodeaquellosempleadosquenoseanrepresentantes
de ventas.
6. Devuelve un listado con el nombre de los todos los clientes españoles.
7. Devuelve un listado con los distintos estados por los que puede pasar un pedido.
8. Devuelveunlistadoconelcódigodeclientedeaquellosclientesquerealizaronalgúnpagoen2008.Tenga
en cuenta que deberá eliminar aquellos códigos de cliente que aparezcan repetidos. Resuelva la consulta:
• Utilizando la función YEAR de MySQL.
• Utilizando la función DATE_FORMAT de MySQL.
• Sin utilizar ninguna de las funciones anteriores.
9. Devuelve un listado con el código de pedido, código de cliente, fecha esperada y fecha de entrega de los
pedidos que no han sido entregados a tiempo.
10. Devuelve un listado con el código de pedido, código de cliente, fecha esperada y fecha de entrega de los
pedidos cuya fecha de entrega ha sido al menos dos días antes de la fecha esperada.
• Utilizando la función ADDDATE de MySQL.
• Utilizando la función DATEDIFF de MySQL.
11. Devuelve un listado de todos los pedidos que fueron rechazados en 2009.
12. Devuelve un listado de todos los pedidos que han sido entregados en el mes de enero de cualquier año.
13. Devuelve un listado con todos los pagos que se realizaron en el año 2008 mediante Paypal. Ordene el
resultado de mayor a menor.
José Juan Sánchez Hernández 24
26. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
14. Devuelve un listado con todas las formas de pago que aparecen en la tabla pago. Tenga en cuenta que no
deben aparecer formas de pago repetidas.
15. Devuelve un listado con todos los productos que pertenecen a la gama Ornamentales y que tienen más
de 100 unidades en stock. El listado deberá estar ordenado por su precio de venta, mostrando en primer
lugar los de mayor precio.
16. Devuelve un listado con todos los clientes que sean de la ciudad de Madrid y cuyo representante de
ventas tenga el código de empleado 11 o 30.
1.4.5 Consultas multitabla (Composición interna)
Resuelva todas las consultas utilizando la sintaxis de SQL1 y SQL2. Las consultas con sintaxis de SQL2 se deben
resolver con INNER JOIN y NATURAL JOIN.
1. Obtén un listado con el nombre de cada cliente y el nombre y apellido de su representante de ventas.
2. Muestra el nombre de los clientes que hayan realizado pagos junto con el nombre de sus representantes
de ventas.
3. Muestra el nombre de los clientes que no hayan realizado pagos junto con el nombre de sus representan-
tes de ventas.
4. Devuelve el nombre de los clientes que han hecho pagos y el nombre de sus representantes junto con la
ciudad de la oficina a la que pertenece el representante.
5. Devuelve el nombre de los clientes que no hayan hecho pagos y el nombre de sus representantes junto
con la ciudad de la oficina a la que pertenece el representante.
6. Lista la dirección de las oficinas que tengan clientes en Fuenlabrada.
7. Devuelve el nombre de los clientes y el nombre de sus representantes junto con la ciudad de la oficina a
la que pertenece el representante.
8. Devuelve un listado con el nombre de los empleados junto con el nombre de sus jefes.
9. Devuelve el nombre de los clientes a los que no se les ha entregado a tiempo un pedido.
10. Devuelve un listado de las diferentes gamas de producto que ha comprado cada cliente.
1.4.6 Consultas multitabla (Composición externa)
Resuelva todas las consultas utilizando las cláusulas LEFT JOIN, RIGHT JOIN, NATURAL LEFT JOIN y
NATURAL RIGHT JOIN.
1. Devuelve un listado que muestre solamente los clientes que no han realizado ningún pago.
2. Devuelve un listado que muestre solamente los clientes que no han realizado ningún pedido.
3. Devuelve un listado que muestre los clientes que no han realizado ningún pago y los que no han realizado
ningún pedido.
4. Devuelve un listado que muestre solamente los empleados que no tienen una oficina asociada.
José Juan Sánchez Hernández 25
27. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
5. Devuelve un listado que muestre solamente los empleados que no tienen un cliente asociado.
6. Devuelve un listado que muestre solamente los empleados que no tienen un cliente asociado junto con
los datos de la oficina donde trabajan.
7. Devuelve un listado que muestre los empleados que no tienen una oficina asociada y los que no tienen
un cliente asociado.
8. Devuelve un listado de los productos que nunca han aparecido en un pedido.
9. Devuelve un listado de los productos que nunca han aparecido en un pedido. El resultado debe mostrar
el nombre, la descripción y la imagen del producto.
10. Devuelve las oficinas donde no trabajan ninguno de los empleados que hayan sido los representantes
de ventas de algún cliente que haya realizado la compra de algún producto de la gama Frutales.
11. Devuelve un listado con los clientes que han realizado algún pedido pero no han realizado ningún pago.
12. Devuelve un listado con los datos de los empleados que no tienen clientes asociados y el nombre de su
jefe asociado.
1.4.7 Consultas resumen
1. ¿Cuántos empleados hay en la compañía?
2. ¿Cuántos clientes tiene cada país?
3. ¿Cuál fue el pago medio en 2009?
4. ¿Cuántos pedidos hay en cada estado? Ordena el resultado de forma descendente por el número de pe-
didos.
5. Calcula el precio de venta del producto más caro y más barato en una misma consulta.
6. Calcula el número de clientes que tiene la empresa.
7. ¿Cuántos clientes tiene la ciudad de Madrid?
8. ¿Calcula cuántos clientes tiene cada una de las ciudades que empiezan por M?
9. Devuelve el nombre de los representantes de ventas y el número de clientes al que atiende cada uno.
10. Calcula el número de clientes que no tiene asignado representante de ventas.
11. Calcula la fecha del primer y último pago realizado por cada uno de los clientes. El listado deberá mostrar
el nombre y los apellidos de cada cliente.
12. Calcula el número de productos diferentes que hay en cada uno de los pedidos.
13. Calcula la suma de la cantidad total de todos los productos que aparecen en cada uno de los pedidos.
14. Devuelve un listado de los 20 productos más vendidos y el número total de unidades que se han vendido
de cada uno. El listado deberá estar ordenado por el número total de unidades vendidas.
15. La facturación que ha tenido la empresa en toda la historia, indicando la base imponible, el IVA y el total
facturado. La base imponible se calcula sumando el coste del producto por el número de unidades ven-
didas de la tabla detalle_pedido. El IVA es el 21 % de la base imponible, y el total la suma de los dos
campos anteriores.
José Juan Sánchez Hernández 26
28. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
16. La misma información que en la pregunta anterior, pero agrupada por código de producto.
17. La misma información que en la pregunta anterior, pero agrupada por código de producto filtrada por los
códigos que empiecen por OR.
18. Lista las ventas totales de los productos que hayan facturado más de 3000 euros. Se mostrará el nombre,
unidades vendidas, total facturado y total facturado con impuestos (21% IVA).
1.4.8 Subconsultas
1.4.8.1 Con operadores básicos de comparación
1. Devuelve el nombre del cliente con mayor límite de crédito.
2. Devuelve el nombre del producto que tenga el precio de venta más caro.
3. Devuelve el nombre del producto del que se han vendido más unidades. (Tenga en cuenta que tendrá que
calcular cuál es el número total de unidades que se han vendido de cada producto a partir de los datos
de la tabla detalle_pedido. Una vez que sepa cuál es el código del producto, puede obtener su nombre
fácilmente.)
4. Los clientes cuyo límite de crédito sea mayor que los pagos que haya realizado. (Sin utilizar INNER JOIN).
5. Devuelve el producto que más unidades tiene en stock.
6. Devuelve el producto que menos unidades tiene en stock.
7. Devuelve el nombre, los apellidos y el email de los empleados que están a cargo de Alberto Soria.
1.4.8.2 Subconsultas con ALL y ANY
8. Devuelve el nombre del cliente con mayor límite de crédito.
9. Devuelve el nombre del producto que tenga el precio de venta más caro.
10. Devuelve el producto que menos unidades tiene en stock.
1.4.8.3 Subconsultas con IN y NOT IN
11. Devuelve el nombre, apellido1 y cargo de los empleados que no representen a ningún cliente.
12. Devuelve un listado que muestre solamente los clientes que no han realizado ningún pago.
13. Devuelve un listado que muestre solamente los clientes que sí han realizado ningún pago.
14. Devuelve un listado de los productos que nunca han aparecido en un pedido.
15. Devuelve el nombre, apellidos, puesto y teléfono de la oficina de aquellos empleados que no sean repre-
sentante de ventas de ningún cliente.
16. Devuelve las oficinas donde no trabajan ninguno de los empleados que hayan sido los representantes
de ventas de algún cliente que haya realizado la compra de algún producto de la gama Frutales.
17. Devuelve un listado con los clientes que han realizado algún pedido pero no han realizado ningún pago.
José Juan Sánchez Hernández 27
29. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
1.4.8.4 Subconsultas con EXISTS y NOT EXISTS
18. Devuelve un listado que muestre solamente los clientes que no han realizado ningún pago.
19. Devuelve un listado que muestre solamente los clientes que sí han realizado ningún pago.
20. Devuelve un listado de los productos que nunca han aparecido en un pedido.
21. Devuelve un listado de los productos que han aparecido en un pedido alguna vez.
1.4.8.5 Subconsultas correlacionadas
1.4.9 Consultas variadas
1. Devuelve el listado de clientes indicando el nombre del cliente y cuántos pedidos ha realizado. Tenga en
cuenta que pueden existir clientes que no han realizado ningún pedido.
2. Devuelve un listado con los nombres de los clientes y el total pagado por cada uno de ellos. Tenga en
cuenta que pueden existir clientes que no han realizado ningún pago.
3. Devuelve el nombre de los clientes que hayan hecho pedidos en 2008 ordenados alfabéticamente de
menor a mayor.
4. Devuelve el nombre del cliente, el nombre y primer apellido de su representante de ventas y el número
de teléfono de la oficina del representante de ventas, de aquellos clientes que no hayan realizado ningún
pago.
5. Devuelve el listado de clientes donde aparezca el nombre del cliente, el nombre y primer apellido de su
representante de ventas y la ciudad donde está su oficina.
6. Devuelve el nombre, apellidos, puesto y teléfono de la oficina de aquellos empleados que no sean repre-
sentante de ventas de ningún cliente.
7. Devuelveunlistadoindicandotodaslasciudadesdondehayoficinasyelnúmerodeempleadosquetiene.
1.5 Universidad
José Juan Sánchez Hernández 28
30. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
1.5.1 Modelo entidad/relación
1.5.2 Base de datos para MySQL
DROP DATABASE IF EXISTS universidad;
CREATE DATABASE universidad CHARACTER SET utf8mb4;
USE universidad;
CREATE TABLE departamento (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(50) NOT NULL
);
CREATE TABLE persona (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nif VARCHAR(9) UNIQUE,
nombre VARCHAR(25) NOT NULL,
apellido1 VARCHAR(50) NOT NULL,
apellido2 VARCHAR(50),
ciudad VARCHAR(25) NOT NULL,
direccion VARCHAR(50) NOT NULL,
telefono VARCHAR(9),
fecha_nacimiento DATE NOT NULL,
José Juan Sánchez Hernández 29
31. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
sexo ENUM('H', 'M') NOT NULL,
tipo ENUM('profesor', 'alumno') NOT NULL
);
CREATE TABLE profesor (
id_profesor INT UNSIGNED PRIMARY KEY,
id_departamento INT UNSIGNED NOT NULL,
FOREIGN KEY (id_profesor) REFERENCES persona(id),
FOREIGN KEY (id_departamento) REFERENCES departamento(id)
);
CREATE TABLE grado (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL
);
CREATE TABLE asignatura (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
creditos FLOAT UNSIGNED NOT NULL,
tipo ENUM('básica', 'obligatoria', 'optativa') NOT NULL,
curso TINYINT UNSIGNED NOT NULL,
cuatrimestre TINYINT UNSIGNED NOT NULL,
id_profesor INT UNSIGNED,
id_grado INT UNSIGNED NOT NULL,
FOREIGN KEY(id_profesor) REFERENCES profesor(id_profesor),
FOREIGN KEY(id_grado) REFERENCES grado(id)
);
CREATE TABLE curso_escolar (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
anyo_inicio YEAR NOT NULL,
anyo_fin YEAR NOT NULL
);
CREATE TABLE alumno_se_matricula_asignatura (
id_alumno INT UNSIGNED NOT NULL,
id_asignatura INT UNSIGNED NOT NULL,
id_curso_escolar INT UNSIGNED NOT NULL,
PRIMARY KEY (id_alumno, id_asignatura, id_curso_escolar),
FOREIGN KEY (id_alumno) REFERENCES persona(id),
FOREIGN KEY (id_asignatura) REFERENCES asignatura(id),
FOREIGN KEY (id_curso_escolar) REFERENCES curso_escolar(id)
);
José Juan Sánchez Hernández 30
32. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
1.5.3 Datos
Acceder al script SQL para la creación de la base de datos y la inserción de datos: universidad.sql.
1.5.4 Consultas sobre una tabla
1. Devuelve un listado con el primer apellido, segundo apellido y el nombre de todos los alumnos. El listado
deberá estar ordenado alfabéticamente de menor a mayor por el primer apellido, segundo apellido y
nombre.
2. Averigua el nombre y los dos apellidos de los alumnos que no han dado de alta su número de teléfono
en la base de datos.
3. Devuelve el listado de los alumnos que nacieron en 1999.
4. Devuelve el listado de profesores que no han dado de alta su número de teléfono en la base de datos y
además su nif termina en K.
5. Devuelve el listado de las asignaturas que se imparten en el primer cuatrimestre, en el tercer curso del
grado que tiene el identificador 7.
1.5.5 Consultas multitabla (Composición interna)
1. Devuelve un listado con los datos de todas las alumnas que se han matriculado alguna vez en el Grado
en Ingeniería Informática (Plan 2015).
2. Devuelve un listado con todas las asignaturas ofertadas en el Grado en Ingeniería Informática (
Plan 2015).
3. Devuelve un listado de los profesores junto con el nombre del departamento al que están vinculados. El
listado debe devolver cuatro columnas, primer apellido, segundo apellido, nombre y nombre del depar-
tamento. El resultado estará ordenado alfabéticamente de menor a mayor por los apellidos y el nombre.
4. Devuelve un listado con el nombre de las asignaturas, año de inicio y año de fin del curso escolar del
alumno con nif 26902806M.
5. Devuelve un listado con el nombre de todos los departamentos que tienen profesores que imparten al-
guna asignatura en el Grado en Ingeniería Informática (Plan 2015).
6. Devuelve un listado con todos los alumnos que se han matriculado en alguna asignatura durante el curso
escolar 2018/2019.
1.5.6 Consultas multitabla (Composición externa)
Resuelva todas las consultas utilizando las cláusulas LEFT JOIN y RIGHT JOIN.
1. Devuelve un listado con los nombres de todos los profesores y los departamentos que tienen vinculados.
El listado también debe mostrar aquellos profesores que no tienen ningún departamento asociado. El
listado debe devolver cuatro columnas, nombre del departamento, primer apellido, segundo apellido y
José Juan Sánchez Hernández 31
33. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
nombre del profesor. El resultado estará ordenado alfabéticamente de menor a mayor por el nombre del
departamento, apellidos y el nombre.
2. Devuelve un listado con los profesores que no están asociados a un departamento.
3. Devuelve un listado con los departamentos que no tienen profesores asociados.
4. Devuelve un listado con los profesores que no imparten ninguna asignatura.
5. Devuelve un listado con las asignaturas que no tienen un profesor asignado.
6. Devuelve un listado con todos los departamentos que tienen alguna asignatura que no se haya impar-
tido en ningún curso escolar. El resultado debe mostrar el nombre del departamento y el nombre de la
asignatura que no se haya impartido nunca.
1.5.7 Consultas resumen
1. Devuelve el número total de alumnas que hay.
2. Calcula cuántos alumnos nacieron en 1999.
3. Calculacuántosprofesoreshayencadadepartamento.Elresultadosólodebemostrardoscolumnas,una
con el nombre del departamento y otra con el número de profesores que hay en ese departamento. El
resultado sólo debe incluir los departamentos que tienen profesores asociados y deberá estar ordenado
de mayor a menor por el número de profesores.
4. Devuelve un listado con todos los departamentos y el número de profesores que hay en cada uno de ellos.
Tenga en cuenta que pueden existir departamentos que no tienen profesores asociados. Estos departa-
mentos también tienen que aparecer en el listado.
5. Devuelve un listado con el nombre de todos los grados existentes en la base de datos y el número de
asignaturas que tiene cada uno. Tenga en cuenta que pueden existir grados que no tienen asignaturas
asociadas. Estos grados también tienen que aparecer en el listado. El resultado deberá estar ordenado
de mayor a menor por el número de asignaturas.
6. Devuelve un listado con el nombre de todos los grados existentes en la base de datos y el número de
asignaturas que tiene cada uno, de los grados que tengan más de 40 asignaturas asociadas.
7. Devuelve un listado que muestre el nombre de los grados y la suma del número total de créditos que hay
paracadatipodeasignatura.Elresultadodebetenertrescolumnas:nombredelgrado,tipodeasignatura
y la suma de los créditos de todas las asignaturas que hay de ese tipo. Ordene el resultado de mayor a
menor por el número total de crédidos.
8. Devuelve un listado que muestre cuántos alumnos se han matriculado de alguna asignatura en cada uno
de los cursos escolares. El resultado deberá mostrar dos columnas, una columna con el año de inicio del
curso escolar y otra con el número de alumnos matriculados.
9. Devuelve un listado con el número de asignaturas que imparte cada profesor. El listado debe tener en
cuenta aquellos profesores que no imparten ninguna asignatura. El resultado mostrará cinco columnas:
id, nombre, primer apellido, segundo apellido y número de asignaturas. El resultado estará ordenado de
mayor a menor por el número de asignaturas.
José Juan Sánchez Hernández 32
34. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
1.5.8 Subconsultas
1. Devuelve todos los datos del alumno más joven.
2. Devuelve un listado con los profesores que no están asociados a un departamento.
3. Devuelve un listado con los departamentos que no tienen profesores asociados.
4. Devuelve un listado con los profesores que tienen un departamento asociado y que no imparten ninguna
asignatura.
5. Devuelve un listado con las asignaturas que no tienen un profesor asignado.
6. Devuelve un listado con todos los departamentos que no han impartido asignaturas en ningún curso
escolar.
1.6 Employees
La base de datos Employees está disponible en la página web oficial de MySQL. Se trata de una base de datos
creada por Patrick Crews y Giuseppe Maxia.
José Juan Sánchez Hernández 33
35. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
1.6.1 Modelo entidad/relación
1.6.2 Base de datos para MySQL
La base de datos está disponible en GitHub.
1.7 Sakila
La base de datos Sakila está disponible en la página web oficial de MySQL. Se trata de una base de datos
creada por Mike Hillyers.
José Juan Sánchez Hernández 34
36. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
1.7.1 Modelo entidad/relación
1.7.2 Base de datos para MySQL
La base de datos está disponible en la web oficial de MySQL.
1.8 Sakila (En Español)
Se trata de la base de datos Sakila creada por Mike Hillyers, con los nombres de las tablas y columnas en
español.
José Juan Sánchez Hernández 35
37. Ejercicios. Realización de consultas SQL IES Celia Viñas (Almería) - 2019/2020
1.8.1 Modelo entidad/relación
1.8.2 Base de datos para MySQL
• Esquema.
• Datos.
José Juan Sánchez Hernández 36
38. Capítulo 2
SQL Playground
Puedes practicar todas las consultas que aparecen en esta web en SQL Playground:
• http://sql-playground.com.
SQL Playground es un recurso educativo diseñado para aprender a realizar consultas SQL. La versión actual del
proyecto utiliza el SGBD MySQL.
El proyecto fue desarrollado para el alumnado de los módulos Gestión de Bases de Datos y Bases de Datos de
los CFGS del IES Celia Viñas (Almería) durante el curso 2017/2018.
37
39. Capítulo 3
Referencias
• Wikibook SQL Exercises.
• Tutorial SQL de w3resource.
• Bases de Datos. 2ª Edición. Grupo editorial Garceta. Iván López Montalbán, Manuel de Castro Vázquez y
John Ospino Rivas.
• MySQL Sample Databases. Chua Hock-Chuan.
• SQL Playground.
38
40. Capítulo 4
Licencia
El contenido de esta web está bajo una licencia de Creative Commons Reconocimiento-NoComercial-
CompartirIgual 4.0 Internacional.
39