0% encontró este documento útil (0 votos)
4 vistas5 páginas

Consultas SQL para Base de Datos Universitaria

Este documento describe un ejercicio sobre el uso de consultas SQL con una base de datos relacional que contiene información sobre estudiantes, países y formaciones. El ejercicio incluye varias preguntas que piden escribir consultas SQL para seleccionar y manipular los datos de estas tablas.

Traducido por

ScribdTranslations
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas5 páginas

Consultas SQL para Base de Datos Universitaria

Este documento describe un ejercicio sobre el uso de consultas SQL con una base de datos relacional que contiene información sobre estudiantes, países y formaciones. El ejercicio incluye varias preguntas que piden escribir consultas SQL para seleccionar y manipular los datos de estas tablas.

Traducido por

ScribdTranslations
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Módulo C216

Primer semestre 2017


Deber 2–SQL y MySQL
Datos

Una universidad posee una base de datos relacional en la que enumera sus
estudiantes inscritos.

Esta base contiene tres tablas:


pays(id_pays*, nom)
formation(id_formation*, nom)
etudiant(id_etudiant*, nom, prenom, date_naissance, id_pays, id_formation)

Aquí hay un extracto del contenido de estas tablas:

paga

id_pays nombre
1 Francia
2 Marruecos
3 Burkina Faso
4 Irlanda
5 Senegal

formación

id_formation nombre
1 Maestro M1
2 Máster M2
3 TU CPM
4 DU TBM

1/5
estudiante

id_etudiant nom prenom date_naissance id_pays id_formation


1 Draogo Désiré 1986-10-02 5 1
2 Mercier María 1979-03-15 1 2
3 O'Malley Kevin 1976-11-01 4 2
4 Kindo Mounia 1983-06-10 3 4
5 Leroy Justina 1985-05-28 1 1
6 Aswad Ousmane 22-04-1978 2 3
7 M'Baye Mamadou 1982-05-10 5 3
8 Kabore Hervé 1978-09-30 5 1
9 Leroy Jules 1982-07-12 1 4

Ejercicio 1

Nos ponemos en el lugar del sistema de gestión de bases de datos para interpretar consultas
SQL. Proporcione la tabla resultante de cada una de las siguientes consultas:

1. SELECT * FROM pays ORDER BY nom DESC ;

2. SELECT id_pays, id_formation FROM etudiant


DONDE id_pays = 5 O id_formation = 1
ORDENAR POR fecha_nacimiento ;

3. SELECCIONAR id_formation, id_pays DE etudiant


DONDE id_pays EN (1, 5)
Y id_formation ENTRE 2 Y 4
ORDENAR POR id_pays, id_formation ;

4. SELECCIONAR DISTINCT [Link] DE etudiant, pays


DONDE pays.id_pays = etudiant.id_pays
Y AÑO(date_naissance) > 1981 ;

5. SELECCIONAR [Link], prenom DE etudiant, formation


DONDE formation.id_formation = etudiant.id_formation
Y [Link] LIKE 'Master%'
ORDENAR POR [Link], prenom LÍMITAR 3 ;

6. SELECCIONAR DISTINTO [Link], [Link] COMO pays DE etudiant, pays


DONDE pays.id_pays = etudiant.id_pays
Y [Link] NO ESTÁ EN ('Burkina Faso', 'Sénégal')
Y prenom NO LIKE '%a';

2/5
7. SELECCIONAR CONCAT(UPPER([Link]), ' ', [Link]) COMO E1,
CONCAT(UPPER([Link]), ' ', [Link]) AS E2
DE etudiant e1, etudiant e2
DONDE e1.id_etudiant = (SELECCIONAR id_etudiant DE etudiant
ORDENAR POR date_naissance DESC LÍMITE 1)
Y e2.id_etudiant = (SELECT id_etudiant FROM etudiant
ORDENAR POR date_naissance LIMIT 1) ;

8. SELECCIONAR [Link], prenom, [Link] COMO formation, AÑO(date_naissance) COMO


naissance FROM etudiant, pays, formation
DONDE pays.id_pays = etudiant.id_pays
Y la formación.id_formation = estudiante.id_formation
Y (fecha_nacimiento <= '1980-03-01' O fecha_nacimiento >= '1984-03-01')
Y [Link] <> 'Francia'
ORDENAR POR date_naissance DESC ;

Nota: la palabra clave "AS" permite asignar un alias (es decir, otro nombre) a una tabla o a
una columna.

Ejercicio 2

Ahora se trata de escribir las consultas SQL necesarias para realizar tareas formuladas en
lenguaje natural

1. Seleccionar el nombre y el apellido de todos los estudiantes nacidos el mismo año que Jules Leroy
(este estudiante aparece él mismo en la lista de resultados).

2. Seleccionar los diferentes años de nacimiento de los estudiantes residentes en Francia o en


Marruecos, con clasificación en orden decreciente.

[Link] el nombre de la formación del estudiante más viejo que vive en Senegal.

4. Seleccionar en una sola columna el nombre y el apellido de los estudiantes inscritos en DU no


residente ni en Francia ni en Marruecos.

5. Seleccionar y poner en mayúsculas los nombres de los diferentes países de residencia de los estudiantes
inscritos en Master M1 y nacidos antes del 1serjulio de 1990.

6. Seleccionar el nombre, el apellido y el nombre del país de todos los estudiantes nacidos entre 1980 y
1990, cuyo nombre contiene la letra « e » (en minúscula o en mayúscula), con clasificación
por orden alfabético por el nombre del país, luego por el nombre del estudiante, y luego por su apellido.

[Link] à la base de données l’étudiante nommée Marianne Paris, née le 10 juin 1996,
residente en el país con identificador 1 e inscrita en la formación con identificador 3.

8. Modificar los datos del estudiante con identificador 2 de la siguiente manera: su nombre es
Mary y su fecha de nacimiento es el 15 de marzo de 1989.

3/5
Ejercicio 3

Se desea mejorar el programa de Mastermind realizado en el deber 1. Así, para cada


parte ganadora, se le ofrecerá al jugador guardar su partida, después de haber ingresado un
seudónimo.

Más precisamente, para una parte ganadora, se desea poder almacenar en una base de
datos MySQL :
un nombre que identifica la parte de manera única

el seudónimo del jugador (limitado a una longitud de 20 caracteres)

la fecha y la hora de inicio del partido

la duración de la parte (en horas, minutos y segundos)

el número de jugadas de la partida

una cadena de caracteres que describe las combinaciones propuestas sucesivamente por el
jugador y sus resultados en términos de piezas bien colocadas y mal colocadas.

Si por ejemplo una partida ganadora se llevó a cabo en tres movimientos de la siguiente manera:
1) ABCD 0 4
2) BADC 0 4
3) DCBA 4 0

Entonces, la cadena que codifica la parte será: « ABCD04BADC04DCBA40 ».

1. Proponer un nombre y untipo MySQLpor cada columna de una tabla llamada


« mastermind » que permite guardar las partidas ganadoras de la manera descrita
anteriormente. Justifique brevemente las elecciones realizadas.

2. Deduzca la consulta SQL para crear esta tabla (vacía) en un SGBD MySQL.

3. L'un des objectifs de la sauvegarde est de proposer sur le site un classement des meilleures
partidas realizadas por todos los jugadores. Las mejores partidas serán clasificadas por número
de golpes crecientes, luego, a números de golpes iguales, por duración creciente, y finalmente a duraciones
égales, por fecha (y hora) de inicio de partida creciente.
Dar la consulta SQL que permite seleccionar la identificación, el seudónimo del jugador, el
nombre de golpes y la duración de las 10 mejores partidas.

4. Dar la consulta SQL que permite seleccionar toda la información de la parte cuyo
el identificador vale 17.

4/5
Modalidades de entrega

Documento a entregar: las soluciones de los ejercicios, agrupadas en un documento único en formato
PDF, nommé par exemple « M1_C216_2017semestre1_devoir2_xxx.pdf » (xxx = votre nom).

Fecha límite de entrega: martes 18 de abril de 2017

Un trabajo entregado tarde obtendrá automáticamente la calificación de 0 sobre 20.


Si su agenda está ocupada y/o es impredecible, o si además su acceso a Internet es
inestable, ¡no esperen los últimos días para entregar sus tareas en INES!

Los tres deberes deben ser realizados y entregados en el orden de su numeración.

No dude en contactar a su tutor para cualquier pregunta.

¡Buen trabajo!

5/5

También podría gustarte