C’est quoi le SQL ? 8

C’est quoi le SQL ?

sql

 

sql
SQL by phatplus from flaticon.com

Au sommaire :

 

Définition de SQL

Allez soyons très scolaire pour une fois et commençons par la définition de SQL. SQL veut dire Langage de requête structurée. (en anglais : Structured Query Language). Bon avec ça, vous en savez plus mais je ne suis pas sûr que vous avez compris de quoi on parle.

Alors essayons de regarder de quoi il s’agit précisément. 

 

Petit rappel sur les bases de données.

Si vous avez lu les articles sur les bases de données (c’est quoi une base de données ? et comment ça marche une base de données ?), vous avez compris que le plus simple pour stocker des données c’est d’utiliser un Système de Gestion des Bases de Données (SGBD).

Les données sont stockées de façon structurée et c’est le moteur de base qui s’occupe de l’enregistrement et de la mise à disposition des données. C’est donc le système (moteur) qui va gérer la lecture et  l’écriture. En conséquence, il suffit de dire au moteur ce qu’il doit faire et il s’occupe de tout.

L’avantage d’utiliser une base de données, c’est que le point d’entrée pour tous les logiciels est le même et  les logiciels s’adressent directement au moteur de base de données (SGBD). Comme dans le schéma ci-dessous :

 

Schéma avec utilisation d’une base de données

 

A quoi ça sert le SQL ?

Comme dans la vie, pour que des personnes puissent se comprendre, elles doivent parler le même langage et bien en informatique, c’est pareil.

Pour que les différents logiciels et le moteur de base de données puissent se comprendre, ils utilisent un langage appelé SQL.

Ce langage est complet. Il va être utilisé pour :

  • Lire les données,
  • Ecrire les données,
  • Modifier les données,
  • Supprimer les données
  • Il permettra aussi de modifier la structure de la base de données :
    • Ajouter des tables,
    • Modifier les tables,
    • les supprimer
    • Ajouter, ou supprimer des utilisateurs,
    • Gérer les droits des utilisateurs,
    • Gérer les bases de données  : en créer de nouvelles, les modifier, etc …

Comme vous pouvez le voir, les possibilités sont nombreuses.

Ce langage est structuré (comme son nom l’indique), c’est à dire que la syntaxe est toujours la même et respecte des normes très précises. 

 

Les avantages du SQL

Comme nous l’avons vu au-dessus, un des principal intérêt du SQL est la portabilité. Cela veut dire qu’un logiciel qui utilise une base de données peut fonctionner avec n’importe quelle base de données. Il suffira de lui indiquer avec quelle base de données il doit dialoguer.

Le gros avantage, c’est que si pour une raison X, on doit changer la base, il suffit de modifier la relation entre le logiciel et la base de données. Et hop, le tour est joué ! 

Je m’adresse ici, à tous les étudiants en informatique:

  • Du fait de son utilisation sur un très grand nombre de bases de données, une bonne connaissance de SQL est souvent un gros plus sur un CV.
  • Un autre avantage, est que ce langage étant un langage à part entière, il existe des formations spécifiques et qu’un spécialiste SQL peut très bien intégrer une équipe de développeurs programmant dans différents langages de programmation. 

 

Les inconvénients

Le principal inconvénient est qu’il faut à nouveau apprendre un langage pour utiliser correctement le SQL.
Un autre inconvénient, mais qui n’est pas lié directement au SQL, est que certains éditeurs de logiciels n’hésitent pas à proposer des versions de SQL différentes du standard pour proposer de nouvelles fonctionnalités ou être le plus près possible de leur base de données. Cela à pour effet de diminuer la portabilité entre les logiciels et les bases de données. (la portabilité est le fait de pouvoir inter changer certaines parties d’un système : le logiciel ou la base de données).

 

Les principales instructions du SQL

Instruction SELECT

L’instruction SELECT va interroger la base de données pour fournir le contenu de certaines tables en fonction de critères.

Dans l’instruction SELECT, on peut :

  • Choisir les champs à afficher,
  • Choisir les tables d’ou proviennent les données,
  • faire des tris pour afficher les résultats dans un ordre choisi,
  • regrouper certaines valeurs en fonction de critères,
  • réaliser des calculs (des sommes par exemple), des tris pour affiner les résultats,
  • etc …

Vous l’aurez compris, l’instruction SELECT est sans aucun doute la plus utilisée.

Syntaxe de l’instruction SELECT

Syntaxe des principales de l’instruction SELECT et de ses principales options :
(toutes les options écrites en italique sont facultatives)

SELECT champ1[, champ2, champ…] Instruction et la liste des champs à afficher (le champ * remplace tous les champs)
FROM table1[, table2, table…] Extraire à partir de la ou les tables …
WHERE condition [AND/OR/NOT condition2, …] N’afficher que les valeurs dont les conditions sont respectées
GROUP BY champ, expression Regrouper les données en fonction du champ ou de l’expression (cela est utilisé pour les calculs) 
ORDER BY champ, expression Trier les résultats en fonction de champs ou d’expression
LIMIT x Limiter les résultats aux x premiers .

Exemples

Voici quelques exemples de “SELECT” 
(j’ai volontairement mis en GRAS et ROUGE les mots réservés du langage SQL)

Instructions SQL Explications
SELECT nom, prenom
FROM tb_salaries
Extrait les valeurs des champs “nom” et “prenom” de toutes les personnes présentes dans la table “tb_salaries” 
SELECT *
FROM tb_salaries
Extrait les valeurs de tous les champs de toutes les personnes présentes dans la table “tb_salaries”
SELECT *
FROM tb_salaries 
ORDER BY date_naissance
idem au-dessus mais en triant le résultat sur la valeur du champs “date_naissance”
SELECT *
FROM tb_salaries 
WHERE date_sortie is null
ORDER BY date_naissance
idem au-dessus mais en sélectionnant uniquement les salariés présents (ceux dont la date de sortie est nulle) et toujours en triant sur la valeur du champs “date_naissance”
SELECT *
FROM tb_salaries s, bulletins_salaire bs
WHERE s.date_sortie is null AND bs.salaire_net_mensuel < 10000
AND s.id_salarie = bs.id_salarie
ORDER BY date_naissance

Attention : ça se corse, on fait une requête sur 2 tables : il faut faire ce qu’on appelle une jointure. La jointure est le lien entre plusieurs tables.

La jointure dans ce cas est la condition  : s.id_salarie=bs.id_salarie, elle indique à la requête qu’il ne faut prendre les résultats que des champs qui correspondent entre ces champs.

Notez au passage qu’en tant que bon informaticien fainéant, j’ai ajouté un alias sur les tables. En effet, j’aurai pu écrire la jointure sous la forme : tb_salaries.id_salarie=bulletins_salaire.id_salarie mais en ajoutant une lettre (“s” pour “id_salarie”) ou un groupe de lettre (“bs” pour “bulletins_salaire”), la requête comprend que lorsque j’utilise ces abréviations, je veux parler des tables. 

on pourrait continuer longtemps comme ça tellement les possibilités sont nombreuses.

Nous allons nous arrêter ici pour l’instant.

 

Instructions INSERT, UPDATE et DELETE

Ces instructions, vous l’aurez compris vont permettre d’ajouter, de modifier ou de supprimer des données.

Instructions SQL Explications
INSERT INTO tb_salaries (nom, prenom), (“ARMSTRONG”, “Louis”)

Ajoute le salarié “Louis ARMSTRONG” dans la table “tb_salarie”. Dans ce cas, je précise les champs dans lesquels il faut mettre les valeurs passées en paramètres.
INSERT INTO tb_salaries (“ARMSTRONG”, “Neil”, “1930/08/05”) Ajoute le salarié “Neil ARMSTRONG” avec sa date de naissance dans la table “tb_salarie”. Les champs n’étant pas spécifiés, ils doivent forcément être donnés dans l’ordre de la structure de la table.

UPDATE tb_salaries
SET date_naissance = “1901/08/04”
WHERE nom=”ARMSTRONG” AND prenom=”Louis”

Comme au-dessus, j’ai oublié de renseigner la date de naissance de Louis Armstrong, je vais modifier l’enregistrement en indiquant la date de naissance sur l’enregistrement dont le nom et le prénom correspondent aux critères.
DELETE FROM tb_salaries  OUPS : je viens de supprimer tous les enregistrements de la table : tb_salaries !

DELETE FROM tb_salaries
WHERE nom=”ARMSTRONG” AND prenom=”Louis”

C’est mieux de ne supprimer qu’un seul salarié. (ou plusieurs en fonction des critères de la classe WHERE)

Je pense que vous avez compris le principe. Nous explorerons les différentes possibilités dans la partie Exemples.

 

Deux instructions importantes : COMMIT ou ROLLBACK

Ces 2 instructions permettent d’écrire définitivement toutes les actions effectuées précédemment (toutes les actions qui modifient les données ou la structure des tables).

L’instruction COMMIT valide définitivement toutes les opérations en attente. Par exemple, si vous avez effectué plusieurs ajouts dans des tables, ces données ne seront réellement écrites qu’après l’instruction COMMIT.

Et vous l’aurez compris, l’instruction ROLLBACK annule toutes les opérations qui n’auraient pas encore été écrites par un COMMIT. Dans l’exemple ci-dessus, j’écrivais “OUPS : je viens de tout supprimer” : pas de panique, tapez ROLLBACK et tout redevient comme avant … OUF !

 

Attention toutefois, ces 2 instructions ne sont pas prises en compte pour toutes les bases de données. En effet, certaines “petites bases de données” n’acceptent pas ces instructions. Par contre, toutes les bases professionnelles autorisent ces fonctions.

 

Autres instructions :  CREATE TABLE, ALTER TABLE, DROP TABLE

Et enfin, pour terminer voici les instructions qui permettent de créer, de modifier et de supprimer des tables. Je vous ai mis des exemples de CREATE TABLE et d’ALTER TABLE dans les exemples que vous pourrez retrouver dans la 2ème partie de cet article.

 

 

Exemples de requêtes SQL

Pour tout bien comprendre, rien ne vaut des exemples.

Dans la 2ème partie, je vous propose des exemples concrets. 

La 2 ème partie de cet article est en cours de rédaction. Revenez dans quelques jours …

 

 

Comme d’habitude, tous les commentaires sont les bienvenus.

N’hésitez pas à vous inscrire à la lettre d’information pour être informé de la parution de nouveaux articles. (vous trouverez la zone d’inscription à la lettre d’information sur la droite de l’écran).

 

Cliquez ici pour retrouver tous les articles classés par thèmes.

 

 

Partager cet article ...

8 thoughts on “C’est quoi le SQL ?

  1. Répondre Olivier Jan 7,2019 15 h 53 min

    Encore une belle explication. Et cette fois-ci sur le SQL
    Merci

  2. Répondre Mathieu Jan 13,2019 17 h 20 min

    Excellent, comme d’hab quoi… Merci pour ce partage !! 😉

    À bientôt

  3. Répondre .AK47 Juin 16,2019 11 h 31 min

    bref et concis, j’suis content. j’attend impatiemment l’exemple pour pouvoir créer ma propre base de donnée!

  4. Répondre ahlem Juin 22,2019 12 h 08 min

    le nom de l’auteur svp pour une ref

Laisser un commentaire