SQL - Exercices (1)#

Le but de cette section est d'entraîner les concepts vus dans la section Langage SQL - Notions de base.

Voici la table canton contenant certaines informations de différents cantons suisses.

Exercice 1#

Sans les exécutez, indiquez ce qu'afficheront les requêtes suivantes et vérifiez ensuite vos réponses.

  1. select * from canton where nb_communes = 45;
    
  2. select * from canton where chef_lieu = Coire;
    
  3. select nom, superficie from canton where nom = 'Fribourg';
    
  4. select * from canton where population > 500000;
    
  5. select * from canton where abr < 'GR';
    
  6. select * from canton order by superficie asc;
    

Exercice 2#

Voici à nouveau la table canton.

Créez et complétez la table canton, comme ci-dessus, avec des requêtes SQL. La table ne doit pas accepter les valeurs null.


Exercice 3#

  1. Écrivez une requête SQL qui retourne toutes les colonnes du canton dont le chef-lieu est Bellinzone.

    
    
  2. Écrivez une requête SQL qui retourne toutes les colonnes des cantons dont la population est inférieure à 300'000 habitants.

    
    
  3. Écrivez une requête SQL qui retourne toutes les colonnes des cantons dans l'ordre alphabétique des abréviations.

    
    
  4. Écrivez une requête SQL qui retourne le nom, l'abréviation et le chef-lieu des cantons.

    
    
  5. Écrivez une requête SQL qui retourne le nom, l'abréviation et le chef-lieu des cantons ordonnés selon le nombre d'habitants du plus grand au plus petit.

    
    
  6. Écrivez une requête SQL qui retourne toutes les colonnes des cantons qui ont plus de 100 communes et une population inférieure à 500'000 habitants.

    
    
  7. Écrivez une requête SQL qui retourne toutes les colonnes des cantons dont le chef-lieu est Altdorf ou le nombre de communes supérieur ou égal à 150.

    
    
  8. Écrivez une requête SQL qui retourne le nom des cantons dont l'abréviation n'est pas FR.

    
    
  9. Écrivez une requête SQL qui retourne le nom et l'abréviation des cantons dont la population se trouve entre 300'000 et 500'000 habitants.

    
    

Exercice 4#

Voici le code d'une base de données qui contient des informations sur différents pays.

create table pays (
  nom text not null,
  abr text not null,
  prefixe text not null,
  capitale text not null,
  population int not null,
  nourriture text
);
insert into pays values
  ('Suisse', 'CH', '+41', 'Zurich', 8776000, 'fondue'),
  ('France', 'FR', '+33', 'Paris', 67970000, null),
  ('Allemagne', 'AL', '+49', 'Berlin', 83800000, null),
  ('Italie', 'IT', '+39', 'Rome', 58940000, null),
  ('Autriche', 'AT', '+43', 'Vienne', 9042000, 'Kaiserschmarrn'),
  ('Yougoslavie', 'YU', '+38', 'Belgrade', 10656929, null),
  ('Lichtenstein', 'LI', '+423', 'Vaduz', 39327, null);
  1. Affichez le contenu de la table pays.

    
    
  2. La Yougoslavie n'existe plus depuis de nombreuses années. Supprimez cette ligne.

    
    
  3. Corrigez les deux erreurs qui se sont produites lors de la création de la base de donnée.

    • La capitale de la Suisse n'est pas Zurich.

    • L'abréviation de l'allemagne n'est pas AL, mais DE.

    
    
  4. Complétez la colonne nourriture par un plat connu pour la France et pour l'Italie.

    
    

Exercice 5#

Une application de rencontres demande, à l'enregistrement sur son site, les informations suivantes: le nom, le prénom, l'email, le sexe, la date de naissance, le statut, le lieu et les intérêts principaux.
Les champs obligatoires sont le nom, le prénom, l'adresse mail, le sexe et la date de naissance.

La table contact ressemble à cela:

  1. Recherchez l'email de toutes les personnes célibataires.

    
    
  2. Recherchez toutes les personnes qui habitent à Lausanne.

    
    
  3. Recherchez toutes les personnes qui habitent à Val-d'Illiez.

    Astuce

    Le guillemet simple est utilisé en SQL pour indiquer le début et la fin d'une chaîne de caractères. Si une chaîne de caractères contient une apostrophe (ou un guillemet simple), il faut doubler le guillemet pour indiquer que ce n'est pas la fin de la chaîne de caractères, mais une apostrophe.

    
    
  4. Recherchez toutes les personnes qui habitent dans la région lausannoise (le code postal doit commencer par 10..).

    
    

    Astuce

    Pour chercher des chaînes de caractères dans un mot, utilisez le mot réservé like et les caractères % pour remplacer plusieurs caractères ou _ qui remplace un seul caractère.

    Pour trouver tous les contacts dont le prénom commence par Ma, utilisez:

    select * from contact where prenom like 'Ma%';
    

    Pour trouver toutes les Laure ou les Laura dans la liste de contacts, utilisez:

    select * from contact where prenom like 'Laur_';
    
  5. Recherchez le nom, le prénom et la date de naissance de toutes les personnes nées en 1995.

    
    
  6. Recherchez les contacts qui aiment le cinéma.

    
    
  7. Recherchez le nom, le prénom et la date de naissance de toutes les personnes nées en juin.

    
    
  8. Recherchez tous les hommes qui sont célibataires et qui habitent dans la région genevoise (12..).

    
    
  9. Recherchez toutes les femmes qui sont divorcées et qui sont nées entre 1984 et 1994.

    
    

Exercice 6 (facultatif)#

Reprenons la base de données des pays de l'exercice 4.

  1. Ajoutez une colonne monnaie. Pour cela, il faut utiliser l'instruction alter table. Recherchez sur le Web comment faire.

    Astuce

    Utilisez une valeur par défaut pour la colonne monnaie.

    
    
  2. Complétez cette nouvelle colonne pour chaque pays.

    
    
  3. Supprimez la colonne nourriture.