Sommaire
En informatique, une base de données relationnelle est une base de données où l’information est organisée dans des tableaux à deux dimensions (colonnes et lignes) appelés relations ou tables.
Une base de données consiste en une ou plusieurs relations, reliées entre elles selon une organisation de réseau.
La structure d’une relation
Les relations sont structurées par une clé primaire et des attributs.
La clé primaire
La clé primaire est un attribut de la relation qui sera mentionnée en premier dans la relation et qui sera repérée sans ambiguïté par le logiciel. Une clé primaire ne doit présenter aucun doublon. On retient donc souvent un numéro ou un code spécifique.

Les attributs
Les attributs correspondent aux champs des colonnes (le type de données qui y sont intégrées. CpCli sera obligatoirement un nombre correspondant au code postal)

Les enregistrements
Les données sont appelées enregistrements. Par exemple, la donnée de la colonne D est une adresse, en ligne 18, correspondant au client 2319. Cet enregistrement est affecté à un attribut et à une clé primaire.

En conclusion, ma relation CLIENT est composée des attributs NumCli, NomCli, PrenomCli,AdrCli, CpCli, VilleCli, EmailCli, TelCli.

La clé primaire sera le numéro client
Elle sera formalisée ainsi : CLIENT (NumCli, NomCli, PrenomCli,AdrCli, CpCli, VilleCli, EmailCli, TelCli)
La clé étrangère
Une clé étrangère dans une relation permet le lien avec une autre relation. Ainsi, ma relation facture intégrera la clé primaire de la relation CLIENT pour que les deux bases puissent communiquer. Chaque relation doit être liée à une autre pour qu’on puisse ainsi exploiter le modèle relationnel.

Les commandes de manipulations de données
Le langage SQL se présente sous la forme d’instructions (ou requêtes), constituées de mots clés (écrits en anglais), indiquant une action (un ordre) que le SGBDD doit effectuer sur la base de données.
La projection : la fonction SELECT
La fonction SELECT permet de lire les données issues d’une relation/champs. Elle consiste à sélectionner des attributs d’une relation pour en extraire les enregistrements.
Par exemple, pour une relation CLIENT (NumCli, NomCLi, PrenomCli, AdresseCli, CPCli, VilleCli),

si l’on souhaite faire apparaître uniquement toutes les villes des clients
SELECT VilleCli
FROM CLIENT

Si je souhaite obtenir la liste complète de tous les clients, et toutes leurs informations (soit sélectionner la totalité des attributs)
SELECT *
FROM CLIENT
La fonction SELECT permet ainsi de sélectionner des colonnes d’une base de données. Cependant, à ce stade, la commande SELECT Attribut FROM Relation/table va systématiquement afficher l’ensemble des enregistrements de l’attribut, c’est à dire la totalité des données de la colonne, comme la totalité des clients alors que je ne souhaite que les clients résidant dans une ville précise par exemple. Il est ainsi possible de réduire le volume des données en y indiquant des conditions, qu’on appellera restriction.
La restriction : la fonction WHERE
La fonction WHERE permet d’introduire des critères de sélection pour les attributs sélectionnés.
Par exemple pour la relation ARTICLE (CodeArt, NomArt, PrixArt), je souhaite obtenir uniquement le nom des produits et leurs prix, si le prix est compris entre 50€ et 260€.

Les critères sont des critères classiques, =, >,< etc
SELECT NomArt, PrixArt
FROM ARTICLE
WHERE PrixArt BETWEEN 70 AND 260€

Les restrictions avec jointure ou comment lier deux relations
Il s’agit ici d’utiliser la fonction WHERE pour établir un lien entre deux tables. Il existe d’autres possibilités comme JOIN, mais ici nous nous contenterons du WHERE pour satisfaire à des exigences de référentiel.
Le principe : si deux tables sont utilisées, on effectue une jointure, si trois tables sont utilisées, on procède à deux jointures.
Ainsi, si je veux le nom et l’adresse du client de la facture 23-12-11, en disposant des relations suivantes
CLIENT( NumClient, NomClient, RueClient, CPClient, VilleClient)
FACTURE (NumFacture, DateFacture, DateRèglement, #NumClient)
Je vais pouvoir opérer ma jointure grâce à la clé étrangère de la relation facture, identifiée par un #, qui correspond à la clé primaire de la relation CLIENT.

Ma condition ( le numéro de facture) sera alors identifiée dans le AND.

Les tris : la fonction ORDER BY
Si je reprend l’exemple précédent, à propos de la relation ARTICLE (CodeArt, NomArt, PrixArt), je souhaite obtenir le nom des produits et leurs prix, mais je souhaite aussi que les résultats soient triés par ordre de prix croissant

