Chapitre 13 : Langage SQL.

🕐 Historique:

En juin 1970, Edgar Frank Codd publia l'article A Relational Model of Data for Large Shared Data Banks (« Un référentiel de données relationnel pour de grandes banques de données partagées ») dans la revue Communications of the ACM (Association for Computing Machinery). Ce référentiel relationnel fondé sur la logique des prédicats du premier ordre a été rapidement reconnu comme un modèle théorique intéressant, pour l'interrogation des bases de données, et a inspiré le développement du langage Structured English QUEry Language (SEQUEL) (« langage d'interrogation structuré en anglais »), renommé ultérieurement SQL pour cause de conflit de marque déposée.

Source : wikipedia

Avant de commencer :

Pour ce chapitre , nous allons utiliser la version portable de SQLiteBrowser : https://sqlitebrowser.org/dl/

1. Rappel :

A copier dans le cahier.

"SQL" désigne "Structured Query Language". Le mot query se traduit en français par "requète".

2. Activité d'introduction :

A faire dans le cahier.

On considère une agence de voyage qui doit gérer une base de données comportant :

  1. Faire le schéma entité/association de la base de données de cette agence
  2. Faire le schéma relationnel de cette base de données
  3. l'implémenter dans SQLite Browser (sans langage SQL)

3. Quelques commandes SQL :

Le langage SQL est un langage très simple d'utilisation :

4. Les jointures :

Le langage SQL permet de joindre les informations de différentes entités.

Nous pouvons par exemple faire une jointure interne :

En terminale, nous ne voyons que les jointures internes, simplement écrites JOIN :

SELECT lesattributs
FROM table1
JOIN table2
ON table1.attribut = table2.attribut
WHERE condition;

5. Exercice : l'agence de voyage

Après avoir testé vos commandes, vous les noterez dans le cahier.

A l'aide de la base de données précédente :

  1. Tester la commande SELECT.
  2. Tester les jointures.
  3. Ajouter des éléments en ligne de commande.
  4. Supprimer des éléments en ligne de commande.

6. Exercice de type BAC:

Avant propos : la base de donnée utilisée dans cet exercice est disponible au téléchargement ici. Il permet de pouvoir tester réellement les commandes.

Un supermarché utilise une base de données qui contient des informations sur les produits, les fournisseurs, les commandes passées et leurs détails. Le modèle relationnel de cette base est donné par le schéma ci-dessous :

Figure 1. Schéma relationnel de cette base

Dans ce schéma, les clés primaires sont soulignées et les clés étrangères sont précédées du symbole #. Le type de chaque attribut est indiqué entre parenthèses.

On considère l’extrait de la base de données ci-dessous :

Table Commandes

id_commande date_commande total_commande
1 03/06/2025 176.00
2 08/12/2024 1150.00
3 21/04/2025 155.00

Table Produits

id_produit nom categorie prix quantite_stock id_fournisseur
1 Yaourts blanc x 4 Alimentaire 2.80 50 2
2 Lait Alimentaire 1.20 200 2
3 Pain Alimentaire 1.50 100 4
4 Harry Potter 1 Livre 15.00 20 3
5 Jeu d’échecs Jeux 40.00 30 3
6 T-shirt taille M Vêtement 10.00 80 1
7 Jeans taille M Vêtement 25.00 60 5

Table Fournisseurs

id_fournisseur nom adresse ville pays
1 Moda e stile Via della Moda, 45 Milano Italie
2 Laiteries Unies 22 Avenue des Vaches Lisieux France
3 Livres en Folie 56 Boulevard des Livres Toulouse France
4 Boulangerie du Coin 34 Rue du Pain Nantes France
5 Estilo Español Calle de la Moda, 123 Madrid Espagne

Table Details

id_details id_commande id_produit quantite prix_unitaire
1 1 1 20 2.80
2 1 2 100 1.20
3 2 6 40 10.00
4 2 7 30 25.00
5 3 5 2 40.00
6 3 4 5 15.00

L’énoncé de cet exercice utilise tout ou une partie des mots clefs du langage SQL suivants : SELECT, DISTINCT, FROM, WHERE, JOIN … ON, UPDATE … SET, DELETE, INSERT INTO … VALUES.

Avant de mettre en vente un nouveau produit, il faut le créer dans la base.

  1. Écrire une requête SQL permettant d’ajouter le produit croissant référencé dans la base sous le numéro 10.

    Il est vendu au prix unitaire de 0,90 €. Le magasin se fournit, pour ce produit, auprès de Boulangerie du Coin.

  2. Le fournisseur Livres en Folie a changé d’entrepôt. Il se trouve maintenant au 78 Rue des Jeux à Elbeuf (France).

    Écrire la requête SQL permettant de mettre à jour la base de données.

  3. Décrire le résultat obtenu avec la requête SQL ci-dessous :

    SELECT nom
    FROM Produits
    WHERE categorie = 'Alimentaire' ;
  4. Écrire une requête SQL permettant d’afficher les détails des commandes passées ayant un total de commande supérieur ou égal à 1000 €.

  5. Écrire une requête SQL permettant d’afficher le nom des fournisseurs basés en Espagne ou en Italie.

  6. Écrire une requête SQL qui permet d’afficher le nom de tous les fournisseurs qui ont vendu des produits alimentaires.

  7. Écrire une requête SQL permettant d’afficher le numéro et la date des commandes ainsi que le nom des fournisseurs où des produits de catégories Vêtement ont été commandés.

7. Projet SQL:

Le but de ce projet est d'appréhender les bases de données de la conception jusqu'à l'implémentation.

Voici les exigences :