Aller au contenu principal

C’est quoi SQL ? On le retrouve où ?

« SQL, pour agir sur des données dans une base relationnelle »

Fiche signalétique

AcronymeStructured Query Language (SQL)
UtilitéAccéder aux données stockées dans une base de données relationnelle. Les données ne sont accessibles qu’au travers de ce langage. Si l’on veut ajouter, modifier, supprimer ou récupérer des données, il est nécessaire d’interagir avec du SQL.
Où peut-on en voirDifficile à voir, le code est caché
Langage algorithmiqueNon
Langage Orienté ObjetPas du tout
Difficulté ressentieMoyenne (beaucoup de concepts s’entrecroisent)

Exemple SQL

                    
                        SELECT CONCAT(a.first_name, a.last_name) AS actor_name, c.name, COUNT(*) as nb
                        FROM category c
                        JOIN film_category fc ON c.category_id = fc.category_id
                        JOIN film f ON f.film_id = fc.film_id
                        JOIN film_actor fa ON fa.film_id = f.film_id
                        JOIN actor a ON a.actor_id = fa.actor_id
                        GROUP BY a.actor_id, c.category_id
                        HAVING nb > 6
                        ORDER BY nb DESC
                        LIMIT 10;
                    
                

Ce que les gens ratent souvent avec SQL

  • La syntaxe : Si le langage est construit de manière à être lu par des anglophones, la syntaxe est parfois perturbante pour des dev habitué(e)s à utiliser des langages algorithmiques
  • La modélisation : Interroger une base de données nécessite de connaître la base de données, et par définition, cette structure change à chaque projet.

ORMs connus

Avec une base de données, on n’utilise pas de framework. Par contre, on utilise ce qu’on appelle un ORM (Object Relational Mapper) qui simplifie les échanges entre le code et la base de données. Cet ORM est constitué de fichiers de code et est très souvent intégré à un framework.

  • Eloquent (au sein de Laravel)
  • Doctrine (au sein de Symfony)
  • Entity Framework (avec C#)
  • Hibernate et JPA (avec Java)
  • Sequelize (avec JavaScript)

Navigation rapide