100% ont trouvé ce document utile (1 vote)
193 vues3 pages

Exercices AR-SQL

Le document décrit des exercices SQL portant sur l'interrogation de bases de données relationnelles. Il présente la création de tables, l'insertion de données et plusieurs requêtes avec jointures et agrégats.

Transféré par

Yass Tae's
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (1 vote)
193 vues3 pages

Exercices AR-SQL

Le document décrit des exercices SQL portant sur l'interrogation de bases de données relationnelles. Il présente la création de tables, l'insertion de données et plusieurs requêtes avec jointures et agrégats.

Transféré par

Yass Tae's
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Exercice 1

1. Donner les joueurs nés avant 1987 (inclus) et faisant plus de 78kg (strict) 

{ б [Link] <= 1987 AND [Link] > 78} (JOUEUR)

2. Donner les nationalités présentes dans la table joueur.

π_ [Link](JOUEUR)
3. Donner le nom des joueurs de plus 1m80. Le résultat aura pour nom "NomDesGrands"

NomDesGrands ← { б [Link] > 180} ([Link])

4. Donner le nom et le prénom des joueurs ayant eu un palmarès en 2014.

π_ [Link], [Link]
((JOUEUR ⨝ [Link] = [Link] ⨝ [Link] = 2014)

5. Donner le nom des joueurs sans palmarès.

π_ [Link] { б [Link] NOT IN ([Link])} (JOUEUR)


6. Donner le nom des joueurs titré en 2010 et 2014.

π_ [Link] { б ([Link] = [Link])


AND ([Link] = 2010 AND [Link] = 2014)} ( PALMARES)

7. Donner le nom des joueurs titré tous les ans (i.e. pour toutes les années stockées dans la base)

π_ [Link] { б (∀Annee∈ [Link], ([Link] = [Link]))}( JOUEUR)

8. Donner le nom du/des joueurs le(s) plus jeune(s) stocké(s) dans la base.

π_ [Link] { б [Link] = MAX([Link])}( JOUEUR)


9. Donner le nombre de titre obtenu par le joueur le plus titré.

MAX(π_COUNT([Link])( [Link]))

Exercice 2:
I. Création de la base de donnée :

CREATE DATABASE ANYS;

Utilisation de la base de données :

USE ANYS;

Création de la table JOUEUR :


CREATE TABLE JOUEUR (codeJ INT PRIMARY KEY, Nom VARCHAR(50), Prenom VARCHAR(50),
AnNaiss INT, Nation VARCHAR(50), Taille INT, Poids INT);

Création de la table PALMARES :

CREATE TABLE PALMARES (codeP INT PRIMARY KEY, Nom VARCHAR(50), Annee INT, Titre INT);

Pour insérer des données dans les tables JOUEUR et PALMARES, voici des exemples de requêtes :

INSERT INTO JOUEUR (codeJ, Nom, Prenom, AnNaiss, Nation, Taille, Poids) VALUES (1, 'Moufid',
'Yassine', 1989, 'KSA', 188, 85);

INSERT INTO PALMARES (codeP, Nom, Annee, Titre) VALUES (1, 'Moufid', 2010, 1);

II. Requetes SQL


1. Donner les joueurs nés avant 1987 (inclus) et faisant plus de 78kg (strict).

SELECT Nom, Prenom FROM JOUEUR WHERE AnNaiss <= 1987 AND Poids > 78

SELECT Nom FROM JOUEUR WHERE AnNaiss <= 1987 AND Poids > 78;

2. Donner les nationalités présentes dans la table joueur.

SELECT DISTINCT Nation FROM JOUEUR


SELECT DISTINCT Nation FROM JOUEUR;
3. Donner le nom des joueurs de plus 1m80. Le résultat aura pour nom "NomDesGrands".

SELECT Nom AS NomDesGrands FROM JOUEUR WHERE Taille > 180

SELECT Nom AS NomDesGrands FROM JOUEUR WHERE Taille > 180;

4. Donner le nom et le prénom des joueurs ayant eu un palmarès en 2014.

SELECT [Link], [Link] FROM JOUEUR INNER JOIN PALMARES ON


[Link] = [Link] WHERE [Link] = 2014

SELECT Nom, Prenom FROM JOUEUR JOIN PALMARES ON [Link] = [Link]


WHERE Annee = 2014;

5. Donner le nom des joueurs sans palmarès.

SELECT Nom FROM JOUEUR WHERE codeJ NOT IN (SELECT codeP FROM PALMARES)

SELECT Nom FROM JOUEUR WHERE codeJ NOT IN (SELECT codeP FROM PALMARES);

6. Donner le nom des joueurs titré en 2010 et 2014.


SELECT Nom FROM JOUEUR INNER JOIN PALMARES ON [Link] = [Link]
WHERE Annee IN (2010, 2014)
SELECT Nom FROM JOUEUR JOIN PALMARES ON [Link] = [Link] WHERE
Annee IN (2010, 2014) GROUP BY Nom HAVING COUNT(DISTINCT Annee) = 2;
7. Donner le nom des joueurs titré tous les ans (i.e. pour toutes les années stockées dans la
base)

SELECT Nom FROM JOUEUR WHERE codeJ IN (SELECT DISTINCT codeP FROM PALMARES)

SELECT Nom FROM JOUEUR WHERE codeJ NOT IN (SELECT codeP FROM PALMARES WHERE
Annee NOT IN (SELECT DISTINCT Annee FROM PALMARES));

8. Donner le nom du/des joueurs le(s) plus jeune(s) stocké(s) dans la base.
SELECT Nom FROM JOUEUR WHERE AnNaiss = (SELECT MAX(AnNaiss) FROM JOUEUR)

SELECT Nom FROM JOUEUR WHERE AnNaiss = (SELECT MAX(AnNaiss) FROM JOUEUR);

9. Donner le nombre de titre obtenu par le joueur le plus titré.

SELECT MAX(nbTitres) FROM (SELECT codeP, COUNT(Titre) AS nbTitres FROM PALMARES


GROUP BY codeP)

SELECT COUNT() AS NbTitres FROM PALMARES WHERE codeP = (SELECT codeJ FROM JOUEUR
JOIN PALMARES ON [Link] = [Link] GROUP BY codeJ ORDER BY COUNT()
DESC LIMIT 1);

III. Exporter la base de données (y compris les requêtes) dans un fichier .sql à votre nom de famille

mysqldump -u sqlite -p ANYS > [Link]

Remplacez "username" par ton nom d'utilisateur MySQL

Vous aimerez peut-être aussi