Langage SQL

Le langage SQL (Structured Query Language) a été créé en 1974 par Donald D. Chamberlin et Raymond F. Boyce. Il est utilisé pour la communication avec des bases de données relationnelles. Il permet notamment de lire, créer, modifier et supprimer des données et peut par exemple servir à gérer des utilisateurs ou des référentiels de produits.

Contexte d'utilisation

J’ai rapidement commencé à voir le SQL, et je m’en suis servi sur tous mes projets depuis. L’utilisation d’une base de données est quasiment systématique dans chaque projet, et le SQL est un langage qui permet de facilement gérer les données de ces bases en question à l’aide de scripts.
Il existe aussi des gestionnaires de bases de données, comme MySQL, PostgreSQL ou encore SQL Server Management Studio (SSMS). Ces outils permettent principalement de faciliter le développement des scripts, mais permettent aussi de faire des manipulations pour changer la structure des bases de données de manière simplifiée.

Le premier projet où j'ai pu commencer à faire du SQL est le projet K2017 durant mon semestre 2 du cursus IN’TECH. Comme indiqué dans le dernier paragraphe de la partie “Mise en œuvre” de l’article lié, nous avons dû faire une partie de gestion de comptes utilisateurs avec système d’authentification, afin qu’un utilisateur puisse entrer des données liées à son véhicule.
Nous avons donc créé une base de données pour cette gestion, et avons dû développer des scripts SQL permettant notamment d’ajouter les données d’un nouveau compte lors de l’inscription, afin que l’utilisateur puisse ensuite se connecter. Il peut ensuite ajouter des données sur son véhicule, afin d'améliorer son expérience utilisateur sur l’outil. Mais s’il a fait une erreur lors de l’ajout de son véhicule et veut changer une valeur, il peut faire la modification sur une interface utilisateur, qui va ensuite enclencher l'exécution du script SQL permettant de modifier cette valeur dans la base de données.

Un autre exemple où le SQL était une partie importante du projet était notre projet Crawl’Immo, où nous avons dû faire de la récupération d’offres immobilières présentes sur plusieurs autres sites partenaires. La récupération de ces données implique le stockage de celles-ci, afin de ne pas avoir à les récupérer à chaque fois qu’un utilisateur ouvre la page des offres.
Nous avons donc dû concevoir une base de données permettant de stocker les informations dont nous avions besoin pour le développement du site, comme le prix ou la superficie des logements. Nous avons donc dû faire des scripts SQL permettant d'insérer les données que nous récupérions des autres sites dans notre base. Nous avons aussi dû faire la gestion de la suppression de ces annonces sur notre site lorsqu’elles n'étaient plus disponibles sur les sites partenaires. Cela nous a conduit à faire des scripts SQL de suppression, ce qui peut parfois être compliqué si les données sont liées dans plusieurs tables de la base.

Pour élaborer un peu plus, voila un diagramme représentant la structure de la base de données que nous avons faites pour Crawl’Immo :

Structure de la base de données

Chaque bloc représente une "table", qui est l'endroit où vont être stockée les données. Par exemple la table "user" va contenir toutes les informations liées aux utilisateurs, à noter que le mot de passe (champ "password") est chiffré avant d’être stockée afin de ne pas l’avoir en clair dans la base.
Chaque champ souligné dans les tables est ce que l’on appelle une clé primaire. Cette clé représente un identifiant unique pour chaque entrée dans les tables afin de pouvoir facilement faire des liens entre les tables.

Voici maintenant notre script de création de la table "image" :

Script de création de table

On commence par supprimer la table si elle existe. Cela permet d'être sûr que la table soit créée en repartant de 0 afin d'éviter de créer des champs dupliqués. La table est ensuite créée avec les différents champs et leurs paramètres. On va aussi indiquer quel champ est la clé primaire de la table, et créer le lien entre la table "image" et la table "offer" avec l'aide d'une clé étrangère.
C’est cette table qui nous permet de stocker les images des offres immobilières afin de garder le lien avec les offres stockées dans "offer".

Retour d'expérience

SQL est le langage de requête le plus célèbre et le plus utilisé dans le monde. Comme dit précédemment, quasiment toute application a besoin d’une base de données, et SQL est le langage le plus efficace et le plus lisible dans la gestion de ces bases. C’est pourquoi en tant que développeur, je me dois d’avoir le minimum de connaissances dans un langage de requête afin de pouvoir comprendre et développer des scripts, et le SQL est le langage que je conseillerai sans hésitation de part sa popularité.

Ayant, de par mes expériences avec le langage, des bonnes connaissances en SQL, je pense être compétent pour aider une équipe dans la mise en place d’une base de données SQL et le développement des scripts pour utiliser et maintenir la base.
Ce sont ces expériences et mon travail actuel à Infomil qui me permettent de continuer à m’améliorer et pouvoir me projeter dans mon projet professionnel.

Le SQL a une syntaxe qui rend les requêtes lisibles et compréhensibles, et donc est un langage qui est très facile à prendre en main. Un débutant peut très facilement et très rapidement commencer à s'en servir. J’ai pu voir ça lorsque j’ai dû m'en servir pour la première fois. Je trouvais le principe de base de données un peu compliqué à comprendre, mais le SQL étant facile à lire, il m’a permis d’assimiler ces points que je ne comprenais pas forcément bien. C’est un langage dans lequel je me sens à l'aise, ce qui booste ma confiance en mes capacités de développeur.