0% ont trouvé ce document utile (0 vote)
3 vues17 pages

Le Language SQL

Le document présente le langage SQL, essentiel pour manipuler et analyser des bases de données relationnelles. Il décrit son histoire, ses fonctionnalités, ses avantages et inconvénients, ainsi que son importance croissante dans le domaine de la Data Science. SQL permet de réaliser diverses opérations sur les données, et sa maîtrise est devenue indispensable pour les professionnels du secteur.

Transféré par

emmanueladon840
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues17 pages

Le Language SQL

Le document présente le langage SQL, essentiel pour manipuler et analyser des bases de données relationnelles. Il décrit son histoire, ses fonctionnalités, ses avantages et inconvénients, ainsi que son importance croissante dans le domaine de la Data Science. SQL permet de réaliser diverses opérations sur les données, et sa maîtrise est devenue indispensable pour les professionnels du secteur.

Transféré par

emmanueladon840
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

LE LANGUAGE

SQL
NOTE OBSERVATION

NOM DE L’ELEVE NOM DU PROFESSEUR


ADON Gnangui Emmanuel KOFFI Bernardin
INTRODUCTION

Chaque année, les entreprises modernes acquièrent de plus en


plus de données de toute nature. Elles doivent être capables
d’analyser ces données afin de prendre de bonnes décisions
stratégiques ou opérationnelles. Grâce à des requêtes SQL, il est
possible de manipuler de grandes bases de données et de leur
donner du sens. C’est pourquoi la maîtrise du langage SQL est
une compétence particulièrement recherchée et valorisée par les
recruteurs.

I. SQL, c’est quoi ce langage de


programmation ?

Le SQL est un des outils préférés du Data Analyst (et bientôt le


tien !).

SQL, ou Structured Query Language, est un langage de


programmation qui fait aujourd’hui référence dans l’utilisation des
bases de données relationnelles.

SQL est un langage de programmation :

1. De définition de données, ou Data Definition


Language (DDL) : il permet de créer, modifier ou
supprimer des tables dans une base de données
relationnelle,
2. De manipulation de données, ou Data Manipulation
Language (DML) : il permet de sélectionner, insérer,
modifier ou supprimer des données dans une table d'une
base de données relationnelle,
3. De contrôle de données, ou Data Control
Language (DCL) : il permet de définir des permissions au
niveau des utilisateurs d'une base de données)

1974 : la naissance du Structured Query Language

Avant d’être purement un langage de programmation,


SQL germe d’une idée d’un mathématicien hollandais : David L.
CHILDS.

Ce chercheur de l’université de Michigan s'intéresse à


l'informatique, notamment aux problèmes de performance des
structures de stockage. Dans un de ses papiers il affirme que l’on
peut exprimer toutes questions posées à une base de
données par seulement 3 types de fonction :

1. La "sélection",
2. La "relation",
3. Le “regroupement”.
Cela semble utopiste mais ce coup de génie marque le début
d’une grande aventure.

Cependant, sans la création du modèle de base de données


relationnelle, la théorie de D.L Childs n’aurait jamais trouvé son
application en informatique.

En 1969, le chercheur Edgar [Link] développe ce modèle de base


de données relationnelles. En se basant sur l’association de “clés
primaires” ou de “clés étrangères” avec diverses données, il
crée la relation entre deux ou plusieurs bases de données.

Enfin, c'est en 1974 que deux informaticiens d'IBM, D.D.


Chamberlin et R.F. Boyce, publient Sequel : a structured english
query language.

Les premiers mots du futur langage SQL apparaissent.

Chamberlin et Boyce s'inspirent des travaux D.L Childs en


traduisant ses 3 fonctions ensemblistes :
1. "sélection" par SELECT/WHERE,
2. "relation" par FROM
3. "regroupement" par GROUP BY.
Le SQL est né.

Depuis la création du SQL :

Après la publication de D.D. Chamberlin et R.F. Boyce, IBM se


concentre sur le développement de ce langage et met au point
une série d’amélioration et de version du langage :

 En 1981 : IBM sort SQL/DS


 En 1982 : IBM sort SQL/DS pour son environnement
VM/CMS et l'ANSI (American National Standard Institute)
lance un projet de normalisation d'un langage relationnel.
 En 1983 : IBM lance DB2 pour l'environnement MVS.
Dans les années 1980, la première norme SQL (SQL-1) de l'ISO
(International Standard Organisation) apparaît. Depuis, les
différents produits phares ont évolué, la norme SQL est passée
à SQL-2, puis SQL-3.

SQL est désormais un langage incontournable pour


tout système de gestion de base de données (SGBD)
moderne.

Cependant, bien qu'une norme SQL existe, on assiste à


l’apparition de “dialectes” propres à chaque produit :

 Soit des sous-ensembles de la norme (certaines


fonctionnalités n'étant pas implantées),
 Soit des sur-ensembles de la norme (ajout de certaines
fonctionnalités, propres à chaque produit).
Aujourd’hui, Oracle et Informix dominent le marché, bien
que SQL-Server (de Microsoft) tente de s'imposer dans le monde
des PC. À côté de ces produits très chers, il existe heureusement
des systèmes libres et gratuits. MySQL et PostgreSQL sont les
plus connus, nous en parlons plus bas dans cet article.
Aujourd’hui, SQL est le deuxième langage le plus utilisé
dans le monde de la Data analysis et de la Data Science.

II. A quoi sert le langage SQL ?

Avec SQL, il est possible de :

 Créer une base de données,


 Réaliser des tables dans une base de données,
 Interroger ou demander des informations à partir d'une
base de données,
 Insérer des enregistrements dans une base de données,
 Mettre à jour ou modifier des enregistrements dans une
base de données,
 Supprimer des enregistrements de la base de données,
 Définir les permissions ou le contrôle d'accès dans la
base de données pour la sécurité des données,
 Définir des vues pour éviter de taper des requêtes
complexes fréquemment utilisées,
Remarque : la liste ne se termine pas ici ! Grâce à des requêtes
SQL, tu peux effectuer de nombreuses autres tâches liées à la
base de données.

Le langage SQL permet de manipuler des bases de


données beaucoup plus importantes que sur un tableur
Excel.

Sur Excel, les données sont stockées sur ton ordinateur et sont
limitées par la taille du tableur (nombre de lignes et nombre de
colonnes). Les bases de données SQL sont stockées sur
un cloud et peuvent donc être beaucoup plus volumineuses :
allant de plusieurs millions à plusieurs milliards de cellules.
La taille du tableau n’a pas d’impact sur les performances car les
machines qui stockent ces données sont beaucoup plus
puissantes que ton ordinateur ! Ce n’est pas étonnant que le SQL
se soit vite développé pour devenir un must-have parmi les
entreprises de la Tech.

Bien souvent, les bases de données sont composées de plusieurs


tableaux, mis en relation par un système de clé primaire et de
clé étrangère. C’est ce qu’on appelle des bases de données
relationnelles.

Imaginons une base de données relationnelles composées de


deux tables :

 La première table s’appelle “Cinéma”. Elle contient des


informations relatives à des films.
 La seconde table s’appelle “Acteurs”. Elle contient des
informations relatives aux acteurs qui ont joué dans les
films de la table “Cinéma”.
Table "Cinema"
Id Film Nom Réalisateur
11223344 Jaws Steven Spielberg
22334455 Stars Wars George Lucas
... ... ...

Table "Acteurs"

Id Film Nom Prénom Salair


11223344 Scheider Roy 50
22334455 Hamill Mark 10
... ... ... ...

Ici les deux tables sont mises en relation grâce à la colonne “Id
Film”.
Par exemple, grâce à une requête SQL, il est possible de filtrer la
table “Acteurs” avec l’ID “11223344” et obtenir la liste des
acteurs qui ont joué dans “Jaws”.

Ainsi, afin de faciliter son analyse avec des requêtes SQL, une
base de données relationnelle est composée de plusieurs tables
mises en relation.

Les utilisations sont multiples et la simplicité du langage rend


toutes manipulations de données beaucoup plus simple à qui
connaît le SQL.

III. Pourquoi apprendre le SQL ?

Dans le monde de la Technologie, on entend souvent parler de


Data et de ses applications révolutionnaires. Cependant, pour être
capable d’analyser cette data brute, il faut pouvoir
la manipuler en exécutant des requêtes dessus.

C’est là que SQL devient utile.

Aujourd’hui presque toutes les entreprises et les startups utilisent


des données pour leurs activités. Ces données sont stockées pour
la plupart dans des bases de données relationnelles, hébergées
par les Data Center (type Amazon, Google ou Microsoft).

L’explosion de la demande en base de données a donc engendré


une explosion de la demande d’experts en base de
données qui doivent être capable de maîtriser le SQL. C’est
pourquoi un Data Analyst doit savoir coder en SQL. Cette
compétence est indispensable pour candidater à un poste
d’expert Big Data, de Data Analyst ou de Data Scientist.

IV. Les avantages et inconvénients du


langage SQL

[Link] langage SQL et ses avantages

Le SQL possède beaucoup d’avantages, c’est pour ça qu’il s’est


vite imposé comme un leader dans la manipulation de base de
données relationnelles.

SQL est un langage compact et puissant. Il permet de


consulter et modifier des bases de données avec des
requêtes courtes et simples. Contrairement à un langage de
programmation classique qui demande plusieurs lignes de code et
une syntaxe complexe, en SQL une seule ligne permet de réaliser
des requêtes complexes tout en utilisant que quelques
instructions (voir plus bas la partie dédiée aux instructions et
aux clauses incontournables de SQL).
SQL est compatible avec de nombreux langages de
programmation Web ([Link], JSP, PHP, …) et réseau (Perl,
Delphi, …). Par exemple, on peut écrire, avec le langage Python,
un code qui exécute des requêtes SQL sur une base de données.

Par ailleurs, une bonne connaissance de SQL est un gros atout


sur un CV. Un spécialiste SQL peut même intégrer une équipe de
développeurs maîtrisant différents langages de programmation
car le SQL est un langage à part entière.

[Link] langage SQL et ses inconvénients

Cependant, le langage apporte aussi certains inconvénients. Tout


d’abord, une mauvaise manipulation peut engendrer
une destruction ou une modification de la base de données
(requête UPDATE par exemple).

Enfin, il faut bien faire attention à la version SQL que tu


apprends car certaines fonctionnalités changent entre les
versions.

V. Les requêtes SQL incontournables

Le langage SQL se base sur l’utilisation de requêtes qui vont


venir extraire des informations dans les différentes bases de
données auxquelles tu peux avoir accès.

Reprenons l’exemple précédent : la base de données contient


des informations réparties des deux tables séparées.
Comme ces tables sont en relation, nous pourrions répondre à la
question : "Quel est l'acteur qui a joué dans Star Wars. Dans ce
cas, nous devons utiliser une des jointures SQL existantes afin
de fusionner les deux tables et en créer une nouvelle. Pour
plus d'informations, consulte l'article dédiée aux Jointures SQL.
Cependant, nous avons a déjà accès à une base de données,
nommée "Cinéma" dans laquelle on trouve différentes
informations sur des films. Les données sont réparties en
plusieurs colonnes : nom du film, date de sortie, réalisateur,
genre, revenus générés, note IMDB.

Grâce à une requête SQL, il est par exemple possible de


demander à la base de données : “affiche les réalisateurs qui ont
sorti un film entre 1990 et 2000 et dont la moyenne IMBD des
films est supérieure à 4 »

En langage SQL, cela se traduit par :


SELECT realisateur,
AVG (note_IMDB) FROM Cinema
WHERE date_de_sortie BETWEEN 1990 AND 2000
GROUP BY realisateur
HAVING AVG (note_IMDB) > 4
Vous n’y comprenez rien ? Décomposons les différents éléments
de cette requête.

[Link] instructions SELECT, FROM et WHERE

Les instructions SELECT, FROM et WHERE sont les requêtes


fondamentales du SQL. Elles permettent de guider la requête
afin de sélectionner certaines informations, à l’endroit souhaité.

Reprenons l’exemple précédent mais cette fois-ci nous avons une


base de données relationnelle composées de deux tables :

 La table “Cinéma” contient une liste de films. Elle est


composée des colonnes : Nom du film, date de sortie,
réalisateur, genre, revenus générés, note IMDB.
 La table “Acteurs” contient la liste des acteurs qui ont joué
dans ces films. Elle est composée des colonnes : Id Film,
Nom, Prénom, Salaire.
L’instruction FROM permet d’effectuer une recherche au sein
des données de la table “Cinéma” ou de la table “Acteurs”.
L’instruction SELECT permet de sélectionner les données
appartenant à une colonne en particulier.

L’instruction WHERE permet de filtrer les données de la


colonne étudiée.

Par exemple, avec ces trois instructions, tu peux répondre à la


question : “Combien d’acteurs ont joué dans un film d’action sorti
en 2018 ou après ?".

Le langage SQL est en quelque sorte le “Siri” des Data Analyst. Il


existe une requête pour chaque question qu’il est possible de
formuler oralement. Certaines requêtes SQL courtes sont parfois
très longues à traduire littéralement.

[Link] clause GROUP BY

La clause GROUP BY regroupe les lignes ayant les mêmes


valeurs dans des lignes récapitulatives. Cette instruction s’utilise
le plus souvent avec une fonction d’agrégation :

 La fonction COUNT () permet de compter dans une


colonne,
 La fonction MAX () permet d’extraire la valeur maximum
d’un groupe de données,
 La fonction MIN () permet d’extraire la valeur minimum
d’un groupe de données,
 La fonction AVG () permet d’extraire la moyenne des
valeurs d’un groupe de données,
 La fonction SUM () permet d’extraire la somme des
valeurs d’un groupe de données.
Le plus souvent, GROUP BY applique la fonction d’agrégation à
une colonne particulière. Par exemple, écrivons requête SQL du
type : « Donne-moi, pour chaque réalisateur, la somme des
revenus de tous leurs films ».
Pour écrire cette requête, on utilise d’abord
SELECT et FROM pour appeler les colonnes “réalisateur” et
“revenus” de la table “Cinéma”.

Ensuite, l’instruction GROUP BY permet de regrouper le résultat


par réalisateur et enfin, la fonction SUM appliquée à “revenus”
affiche la somme des recettes des films de chaque réalisateur.

[Link] clause HAVING

La clause HAVING a été ajoutée à SQL parce que le mot-clé


WHERE n’est pas compatible avec les fonctions d'agrégation.
Elle permet de rajouter une contrainte de recherche (= un
filtre) supplémentaire dans la base de données.

Prenons le même exemple que pour l’instruction GROUP BY que


nous allons enrichir.

L’instruction HAVING pourra me permettre de répondre à la


question :

« Donne-moi pour chaque réalisateur, la somme des revenus de


tous leurs films et filtre les résultats pour n’afficher que les
réalisateurs dont les films ont généré plus de 100 millions de
dollars de revenus »

Ça commence à devenir un peu complexe, non ? Pas de panique,


en SQL, on peut répondre à cette requête assez simplement.

Comme précédemment, on utilise SELECT et FROM pour appeler


les colonnes « réalisateur » et « revenus » de la table « Cinéma »,
ensuite l’instruction GROUP BY permet de regrouper le résultat
par réalisateur et enfin le fonction SUM appliquée à « revenus »
affiche la somme des recettes des films de chaque réalisateur.

Enfin, on ajoute la clause HAVING pour filtrer la liste et ne garder


que les réalisateurs dont la somme des recettes de leurs films
dépasse 100 M$.
Voici donc un aperçu de la simplicité et de la puissance du
langage SQL !

Chez Databird, la formation à temps plein, à temps partiel ou à


distance te donne les connaissances, la méthode et les bonnes
pratiques des experts de l’analyse de bases de données. Aucun
pré-requis n’est exigé ! (à part une bonne capacité d’analyse)

Le monde de la data t’intéresse mais tu ne sais pas par où


commencer ? Fonce découvrir notre formation dédiée !

VI. L
‍ es différents systèmes de
base de données

[Link]

MySQL est un système de gestion de base de données


relationnelle (SGBDR) open source. Il fait partie des logiciels
de gestion de base de données les plus utilisés au monde, autant
par le grand public (applications web principalement) que par des
professionnels. Il est donc important d'en apprendre plus sur ce
système qu'est MySQL

Cet outil devient indispensable dans le développement de sites


web. Il est actuellement le leader du marché des bases de
données, il est utilisé par exemple par Google, Amazon,
LinkedIn et Netflix, pour la gestion de leurs sites !

MySQL permet d’enregistrer, gérer, stocker ou supprimer toutes


les informations nécessaires au bon fonctionnement d’un site, ce
qui le rendra plus performant, plus réactif et donc beaucoup
plus agréable pour les futurs visiteurs de tes sites web.

Cette base de données apporte certains avantages et


inconvénients qui vont vous orienter ou non vers son utilisation.

L’avantage de MySQL est qu’il utilise une technologie de


défragmentation qui le rend beaucoup plus performant que ses
concurrents (pour faire plus simple, il a besoin d’une puissance de
calcul moins importante pour fonctionner). Si tu vises
la performance pour ton projet car tes ressources sont limitées ;
il sera l’outil parfait !

De plus, il est fortement recommandé pour la qualité de son


service de sauvegarde. Il ne te fera jamais défaut, ce qui est
particulièrement intéressant si tu manipules des données
sensibles dont les sauvegardes sont essentielles.

Cependant, pour les amateurs de commandes complexes, qui


demandent de créer beaucoup de tables temporaires qui serviront
à créer une table finale, MySQL fait défaut. En effet, il ne fournit
qu’une quantité limitée de place pour ce type d’opérations.

Enfin, pour les grosses bases de données du type Big Data, le


système d’indexage de MySQL fait qu’il est difficile d’effectuer
des recherches flexibles. Il faut être très précis dans les requêtes
pour ne pas se perdre.

MySQL s’oriente donc vers une utilisation pour des projets visant
la simplicité d’utilisation et la performance. Maintenant jetons
un coup d'œil du côté du principal concurrent de MySQL :
PostgreSQL !

[Link]
‍ ostgreSQL et MySQL sont deux systèmes de gestion de bases
P
de données relationnelles open source. Cependant, tandis que
MySQL met la priorité sur la performance et la
flexibilité, PostgreSQL lui choisit de favoriser l’exploitation de
bases de données lourdes et complexes (type Big Data).

La spécificité de PostgreSQL est qu’il est focalisé sur l’intégrité


des données et plus respectueux des normes SQL. C’est à dire
que lorsque que tu utilises PostgreSQL tu as peu de chance de
rencontrer des problèmes lors d'interactions entre la base de
données et d’autres logiciels. Cette compatibilité est importante
car très souvent un développeur ou un Data Analyst est amené à
travailler sur des outils différents qui doivent communiquer entre
eux.

PostgreSQL est un outil robuste et puissant car il permet de


manipuler des gros volumes de données sans les altérer.

Il est également compatible avec les langages de


programmation les plus utilisés dans le monde de l’industrie et
de la tech : Java, Python, Perl, C/C++, SQL et bien d’autres !

Lorsqu'un Data Analyst veut automatiser son traitement de


données SQL avec un programme informatique, cette
caractéristique de PostgreSQL en fait un outil idéal.

Enfin, PostgreSQL est open-source donc constamment amélioré


par la communauté, et l’accès aux améliorations est gratuit. De
plus, au moindre problème, un membre de la communauté a une
réponse pour toi !

Cependant, ses inconvénients principaux sont sa complexité et


sa lenteur d’exécution.

Finalement, si tu souhaites développer un projet complexe et de


grande envergure qui aura une grande interaction avec d’autres
outils alors ton choix se portera sur PostgreSQL.

[Link]

Maintenant que tu as eu un aperçu de l’utilisation des bases de


données relationnelles qui utilisent SQL. Il est temps de te
parler des bases de données non relationnelles, c'est-à-
dire NoSQL.

En effet, de plus en plus de données sont stockées dans des bases


de données qui ne suivent plus le schéma classique
des tables, colonnes et clés. Ces bases de données sont
appelées NoSQL.

Par exemple, au lieu de stocker des tables avec des colonnes et


des clés qui les relient entre elles. Un type de base NoSQL va
stocker les informations sous deux formes : une Clé et
une Valeur. Si tu possèdes un magasin et que tu veux stocker tes
produits alors ta clé sera le code barre et la valeur du nom du
produit ! Il existe plein d’autres bases de données de type NoSQL
qui répondent à différents besoins.
Depuis le développement du NoSQL, le débat est lancé sur l’utilité
ou non du SQL : que choisir entre SQL vs NoSQL ?

Ces deux technologies amènent leur lot d’avantages et


d’inconvénients et ne répondent parfois pas au même problème.

Les particularités des bases de données NoSQL sont les


suivantes :

 Elles ne sont pas relationnelles et ne suivent pas l’ordre


tables, colonnes. Il n’est donc plus nécessaire d’utiliser un
langage de requêtes complexe pour faire dialoguer les
bases de données.
 Les bases de données sont distribuées, ce qui permet une
meilleure performance.
Les base de données NoSQL ont aussi des interfaces
faciles d’utilisation qui permettent des requêtes simplifiées
(NoSQL).

CONCLUSION

Le langage SQL est un langage de programmation conçu pour


gérer, interroger et manipuler des bases de données, ainsi que
de définir la structure des tables. Le requêtes SQL sont utilisées
pour extraire des informations spécifiques en utilisant des
commandes telles que SELECT, FROM ET WHERE. SQL est un
langage qui permet de faciliter la gestion de données et est
essentiel pour la gestion efficace de celle-ci dans diverses
applications.

Vous aimerez peut-être aussi