Le langage SQL

information-icon

Les premières épreuves du bac 2024 sont pour bientôt ! Consulte notre dossier sur le contrôle continu et le calcul des notes de ton bac pour maximiser ta préparation pour les révisions à ton examen 💪

La description des données

  • Le langage utilisé pour créer la structure d'une base de données est un LDD (SQL, en plus d'autres langages, est un LDD).
  • La structure de la base de données comporte l'ensemble de ses tables qu'il est nécessaire de créer une à une.
  • C'est lors de cette étape que, en plus de ses colonnes, on définit les contraintes d'intégrité de domaine, de relation et de référence.
  • Quelques éléments importants pour l’écriture des instructions :
  • chaque instruction de la syntaxe employée se termine obligatoirement par un « ; » ;
  • l'orthographe des termes écrits en lettre capitales uniquement doit être respectée : ce sont des mots-clés ;
  • les termes soulignés sont obligatoires ;
  • les autres termes sont les noms qui sont affectés librement aux attributs et aux tables.
  • Le type de donnée constitue en lui-même une contrainte de domaine. Il précise la nature d'un attribut qui peut-être :
  • numérique ;
  • caractère ;
  • binaire ;
  • date.
  • Le terme « PRIMARY KEY » désigne le ou les attributs qui constituent la clé primaire de la relation.
  • Le terme « FOREIGN KEY » désigne le ou les attributs qui constituent une clé étrangère dans la relation.
  • Le terme « REFERENCE » sert à désigner la table et la ou les colonnes de cette table dont la clé étrangère est issue.
  • Enfin, le terme « ON DELETE » permet de préciser l'option choisie en cas de suppression de la clé étrangère dans la table d'où celle-ci provient.
  • La syntaxe pour supprimer une table, et par conséquent son contenu, est la suivante : DROP TABLE nomTable;.
  • Notez qu’il sera nécessaire de supprimer au préalable les tables ou les lignes dont les clés étrangères se réfèrent à une ligne de la table que l'on veut supprimer (sans quoi l’opération sera impossible).
  • La commande ALTER TABLE permet de modifier la structure d'une table, que ce soit en ajoutant, supprimant ou modifiant ses colonnes.
  • Pour ajouter une colonne à une table :
    ALTER TABLE nomTable
    ADD COLUMN nouveauChamp TYPEDONNEE;
  • Pour supprimer une colonne d'une table :
    ALTER TABLE nomTable
    DROP COLUMN nomChamp;
  • Pour modifier une colonne :
    /* création d'une colonne portant le nom désiré et du type désiré */
    ALTER TABLE nomTable
    ADD COLUMN nouveaunomTable VARCHAR(100);

La manipulation des données

  • Pour insérer une ligne dans une table, les mécanismes suivants vont être sollicités :
  • contrôle des contraintes d'intégrité lors de l'insertion (domaine, relation et référentielle) ;
  • renseignement des champs avec la valeur « NULL » si aucune valeur n'est précisée et si « NULL » est autorisé pour ces champs.
  • La syntaxe est la suivante :
    INSERT INTO nomTable
    (champx, champY, ….)
    VALUES (valeurChampX, valeurChampY,…);
  • Les valeurs des colonnes doivent être renseignées dans le même ordre que celui de la liste des colonnes donnée juste avant.
  • Si la liste des colonnes n'est pas donnée, alors le SGBD se base sur la liste des colonnes de la table, dans l'ordre où celles-ci ont été définies lors de sa création.
  • Si certaines colonnes sont omises, elles prendront la valeur NULL.
  • Exemple pour insérer un ingrédient dans la base de données du club de cuisine :
    INSERT INTO ingredient
    (nomIngredient, type)
    VALUES ("oeuf","viande")
  • Pour supprimer une ou plusieurs lignes d’une table, les lignes concernées par l'opération doivent être désignées et donc identifiées avec une condition.
  • Ainsi, la syntaxe de la commande SQL pour supprimer une ou plusieurs lignes d'une table est la suivante :
    DELETE FROM nomTable
    WHERE condition;
  • La condition consiste en un ou plusieurs critères portant sur le contenu d'une ou plusieurs colonnes. Elle s'exprime à l'aide d'opérateurs de comparaison (cf. =, >, <, etc.)
  • Connecteurs logiques :

<condition1> AND <condition2> Les $2$ conditions sont vraies simultanément
<condition1> OR <condition2> Au moins une des $2$ conditions est vraie
NOT <condition> Inverse la condition
  • Pour modifier une ou plusieurs lignes d'une table il faut préciser :
  • les colonnes concernées ;
  • les nouvelles valeurs prises par ces colonnes ;
  • les lignes concernées, via la clause WHERE.
  • La syntaxe d'une modification est la suivante :
    UPDATE nomTable
    SET nomColonne1 = valeur 1, nomColonne2 = valeur2, …
    WHERE condition

Interrogation des données

  • Tout ce qui a été vu jusqu’à présent sert un objectif : consulter ces données, selon des critères variés en interrogeant la base.
  • Pour interroger les données d'une base, on a recours à un LID (Langage d'interrogation des données).
  • Lorsque l'on effectue une recherche dans une base de données, le résultat de celle-ci se présente lui-même sous forme d'une table, que l'on nommera par la suite « table résultat ».
  • Détaillons maintenant la syntaxe d'une requête (= instruction de recherche).
  • La syntaxe d'une recherche est la suivante :
    SELECT nomColonne1, nomColonne2, …
    FROM nomTable;
  • Si l'on souhaite que toutes les colonnes apparaissent dans la table résultat, il suffit alors d'employer la syntaxe suivante :
    SELECT *
    FROM nomTable;
  • Si l'on souhaite connaître toutes les valeurs prises par une colonne dans une table, sans que celles-ci soient répétées autant de fois qu'elles s'y retrouvent, on le précise avec la clause DISTINCT.
  • On peut affiner notre commande, par exemple :
    SELECT DISTINCT prenom
    FROM adherent;
  • La sélection (ou restriction) est le recours à un ou plusieurs critères pour retenir certaines lignes dans la table résultat de la requête.
  • C'est avec la clause WHERE que l'on précise ces critères.
  • Ainsi, si l'on souhaite effectuer une projection sur une sélection, la commande SQL prendra la forme :
    SELECT colonnex, colonney, …
    FROM nomTable
    WHERE conditions