Retour

SQL : Langage de manipulation des données

🎲 Quiz GRATUIT

📝 Mini-cours GRATUIT

Le langage SQL

Le langage SQL est un langage informatique « Normalisé » ayant pour objet le dialogue avec une base de données.

Il couvre les trois fonctions indispensables à la mise en œuvre et à l'exploitation de bases de données :

  • La définition des données (LDD) : permet de créer (CREATE) des tables dans une base de données, d’en modifier la structure (ALTER) ou de les supprimer (DROP).

  • La manipulation des données (LMD) : permet de sélectionner (SELECT), d’insérer (INSERT), de modifier (UPDATE) ou de supprimer (DELETE) des données.

  • Le contrôle des données (LCD) : permet de définir des permissions au niveau des utilisateurs d'une base de données (GRANT / REVOKE).

Sélection d’enregistrements

La clause SQL SELECT constitue à elle seule le moyen d’interroger une base de données.

Elle permet :

  • De sélectionner plusieurs colonnes d’une ou de plusieurs tables (PROJECTION).
  • De sélectionner plusieurs lignes d’une ou de plusieurs tables selon certains critères grâce à la clause WHERE (SELECTION).
  • De combiner les informations de plusieurs tables (Jointure, union, intersection, différence et division).

La clause SELECT possède six clauses différentes. Seules les deux premières (SELECT et FROM) sont obligatoires.

SELECT …
FROM …
WHERE …
GROUP BY …
HAVING …
ORDER BY … ;

Ces six clauses sont données ici dans l’ordre dans lesquelles elles doivent obligatoirement apparaître. La clause ORDER BY sera toujours la dernière clause d’un ordre SQL.

La clause SELECT

Avec la clause SELECT, il est possible d’effectuer une « projection » qui permet de déterminer les colonnes de la table ou les expressions à afficher.

Syntaxe :
SELECT [DISTINCT] *
SELECT [DISTINCT] expr1 [[AS] nomColonne1], expr2 [[AS] nomColonne2], …

  • Expr1, expr2, … sont des expressions,
  • NomColonne1, nomColonne2, … sont des noms facultatifs donnés aux expressions projetées : chacun de ces noms est indiqué derrière l’expression, séparé de cette dernière par un espace ou par le mot clé AS (optionnel mais recommandé) : chaque nom déterminera le titre de la colonne dans l’affichage du résultat de la sélection. Si aucun nom n’est indiqué, c’est celui de la colonne qui sera affiché.

Le symbole * signifie que toutes les colonnes de la table sont projetées.

Le mot facultatif DISTINCT ajouté derrière le mot SELECT permet de ne pas afficher les doublons : si, dans le résultat, plusieurs lignes sont identiques, une seule sera affichée.

Exemples :

Les fonctions ORACLE prédéfinies

  • NVL permet de spécifier une valeur à prendre en compte si une colonne contient la valeur NULL. Il est nécessaire d’utiliser la fonction NVL lors de calculs basés sur des colonnes pouvant être nulles pour ne pas fausser les résultats : Null + 10000 = Null

  • TO_CHAR transforme, pour l’affichage, une date en une chaîne de caractères selon un format donné.

  • DECODE permet d’afficher différentes valeurs selon le contenu d’une colonne.

Selon le contenu de la colonne « civilite », la colonne affichée contiendra « Monsieur », « Madame » ou « Mademoiselle » suivi du nom de la personne, dans une colonne nommée « nom ».

La table Dual

Dans le langage SQL d'Oracle la clause FROM est obligatoire.

Ainsi, pour afficher la date du jour, on ne peut pas se contenter de l’ordre SQL :

SELECT SYSDATE ;

Ainsi que cela peut fonctionner dans d’autres SGBDR.

La table DUAL ne contient qu'une seule ligne. Elle est donc très utilisée pour cela.

Ainsi, pour obtenir la date du jour :

Cette pseudo-table (particularité d’Oracle) ne contient qu’une seule ligne et qu’une seule colonne et ne peut être utilisée qu’avec une requête SELECT.

Elle permet d’afficher une expression dont la valeur ne dépend d’aucune table en particulier : la date d’aujourd’hui (sysdate), le nom de l’utilisateur (user) ou le résultat d’un calcul.

Exemple :

Nomad+, Le pass illimité vers la réussite 🔥

NOMAD EDUCATION

L’app unique pour réussir !