Portfolio de Dasek Joiakim - Semestre 4
Semestre 2
Module
Introduction SQL

SQL

Le SQL (Structured Query Language) est un langage de programmation utilisé pour communiquer avec les systèmes de gestion de bases de données (SGBD). Il permet de créer, modifier et interroger des bases de données relationnelles.

Le SQL est un langage standardisé qui est utilisé par de nombreux SGBD, tels que MySQL, Oracle, Microsoft SQL Server, PostgreSQL, etc. Cependant, bien que la syntaxe et les fonctionnalités de base soient les mêmes pour tous les SGBD, il existe des différences dans les détails de l'implémentation, notamment en ce qui concerne les syntaxes, les mots-clés et les fonctions.

Ces différences peuvent être dues à plusieurs raisons, telles que :

  • Les différents SGBD ont des implémentations différentes pour certaines fonctionnalités du langage SQL.
  • Les différents SGBD peuvent avoir des types de données différents, ce qui peut nécessiter l'utilisation de fonctions et de syntaxes différentes pour effectuer les mêmes opérations.
  • Les différents SGBD ont des implémentations différentes pour l'optimisation des requêtes, ce qui peut conduire à des différences dans les performances et la syntaxe des requêtes.

Par exemple, voici quelques exemples de syntaxes, de mots-clés et de fonctions qui peuvent différer entre les SGBD :

  • La syntaxe de la commande CREATE TABLE peut varier selon le SGBD. Par exemple, MySQL utilise le mot-clé ENGINE pour spécifier le moteur de stockage de la table, tandis que PostgreSQL utilise le mot-clé TABLESPACE pour spécifier l'emplacement de stockage de la table.
  • Les fonctions de date et d'heure peuvent avoir des noms et des syntaxes différentes selon les SGBD. Par exemple, la fonction pour ajouter une durée à une date peut être appelée DATEADD dans Microsoft SQL Server et ADDDATE dans MySQL.
  • Les mots-clés utilisés pour spécifier les types de données peuvent varier selon les SGBD. Par exemple, PostgreSQL utilise le mot-clé SERIAL pour spécifier une colonne de type auto-incrément, tandis que MySQL utilise le mot-clé AUTO_INCREMENT.

En résumé, bien que le SQL soit un langage standardisé, il existe des différences dans les syntaxes, les mots-clés et les fonctions selon les SGBD. Il est important de prendre en compte ces différences lorsque vous travaillez avec plusieurs SGBD ou lorsque vous migrez des bases de données d'un SGBD à un autre.

Auto-jointure

Une auto-jointure (ou self-join en anglais) est une opération de jointure dans laquelle une table est jointe à elle-même. Cela peut être utile lorsque vous avez besoin de comparer des enregistrements dans la même table ou de hiérarchiser les données.

Pour effectuer une auto-jointure en SQL Server, vous devez utiliser un alias de table pour différencier la table de gauche de la table de droite dans la requête JOIN.

Voici un exemple de requête pour une auto-jointure simple :

SELECT t1.column1, t2.column2
FROM myTable t1
         INNER JOIN myTable t2 ON t1.column1 = t2.column1

Sous requête

Une sous-requête est une requête SQL qui est incorporée dans une autre requête SQL. Elle est souvent utilisée pour filtrer les résultats ou pour fournir des données à une clause WHERE ou HAVING.

Voici un exemple simple de sous-requête dans une clause WHERE:

SELECT column1, column2
FROM myTable
WHERE column1 = (SELECT column1 FROM myTable2 WHERE column2 = 'value')