Fiche signalétique
| Acronyme | Structured 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 voir | Difficile à voir, le code est caché |
| Langage algorithmique | Non |
| Langage Orienté Objet | Pas du tout |
| Difficulté ressentie | Moyenne (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)