Questions d'entretien pour les développeurs SQL : Questions et réponses sur les entretiens SQL courants – Partie 3

En SQL, quels types joins avez-vous utilisés et expliquez leur fonctionnement ?

Répondre:

  • INNER JOIN: renvoie les lignes avec les données correspondantes des deux tables.
  • LEFT JOIN: renvoie toutes les lignes du tableau de gauche et les lignes correspondantes du tableau de droite.
  • RIGHT JOIN: renvoie toutes les lignes du tableau de droite et les lignes correspondantes du tableau de gauche.
  • FULL JOIN: renvoie toutes les lignes des deux tables, y compris les lignes non correspondantes.

 

Expliquer les concepts ACID dans SQL et leur rôle dans la gestion des transactions

Réponse: ACID signifie Atomicity, Consistency, Isolation, Durability. Ce sont des propriétés essentielles dans la gestion des transactions en SQL :

  • Atomicity garantit qu'une transaction est soit entièrement traitée, soit pas traitée du tout.
  • Consistency garantit que les données doivent respecter les règles, les contraintes et les conditions définies.
  • Isolation garantit que les transactions simultanées n'interfèrent pas les unes avec les autres.
  • Durability garantit qu'une fois qu'une transaction est terminée, les modifications apportées à la base de données sont enregistrées de manière sécurisée et permanente.

 

Quelle est la différence entre ROW_NUMBER(), RANK(), DENSE_RANK() les fonctions en SQL ?

Réponse : ROW_NUMBER(), RANK(), DENSE_RANK() sont tous utilisés pour numéroter les lignes dans un résultat de requête, mais ils présentent les différences suivantes :

  • ROW_NUMBER(): attribue des nombres continus aux lignes dans le résultat de la requête, sans tenir compte des doublons.
  • RANK(): attribue des numéros aux lignes dans le résultat de la requête et saute le numéro suivant en cas d'égalité.
  • DENSE_RANK(): attribue des numéros aux lignes dans le résultat de la requête et ne saute pas le numéro suivant en cas d'égalité.

 

Comment l'utiliser window functions dans SQL, et fournissez un exemple.

Réponse : Window functions permettre d'effectuer des calculs sur un ensemble de lignes liées sans modifier le résultat de la requête principale. Par exemple, nous pouvons utiliser des fonctions de fenêtre pour calculer les totaux cumulés ou récupérer les N premières lignes dans un ensemble de résultats.

SELECT ProductID, UnitPrice,   
       SUM(UnitPrice) OVER(ORDER BY ProductID) AS RunningTotal  
FROM Products;  

 

Comment utiliser les expressions régulières en SQL pour la correspondance de modèles

Réponse : Les expressions régulières dans SQL sont utilisées pour les recherches de modèles de texte complexes. Ils sont souvent utilisés avec l' LIKE opérateur ou des fonctions comme REGEXP_LIKE(dans Oracle) ou REGEXP_MATCHES(dans PostgreSQL).

SELECT * FROM Employees WHERE LastName LIKE '%son%';

 

Comment utiliser les fonctions JSON dans SQL pour travailler avec des données JSON

Réponse : Les fonctions JSON dans SQL permettent d'interroger, d'insérer, de mettre à jour et de supprimer des données au format JSON dans la base de données.

Par exemple, nous pouvons utiliser des fonctions comme JSON_VALUE, JSON_QUERY, JSON_MODIFY(dans SQL Server), ou des opérateurs comme ->, ->>, #>, #>>, etc.(dans PostgreSQL) pour manipuler les propriétés JSON.

SELECT JSON_VALUE(CustomerInfo, '$.Name') AS CustomerName  
FROM Customers;  

 

Techniques avancées pour l'optimisation des requêtes SQL et le réglage des performances de la base de données

Réponse : Pour optimiser les requêtes SQL et les performances de la base de données, nous pouvons utiliser des techniques telles que :

  • Utilisation d'index pour les colonnes fréquemment interrogées.
  • Optimisation JOIN et WHERE clauses pour une récupération efficace des données.
  • Utilisation des fonctions de fenêtre et de la pagination si nécessaire.
  • Éviter SELECT * pour ne récupérer que les colonnes nécessaires.
  • Utilisation d'indicateurs de requête dans certains cas.
  • Assurer la normalisation des données et supprimer les doublons.
  • Utiliser des outils de surveillance des performances pour suivre et affiner la base de données.

 

Expliquer comment utiliser SET les opérations (UNION, INTERSECT, EXCEPT) dans SQl

Réponse: SET les opérations (UNION, INTERSECT, EXCEPT) sont utilisées pour combiner et manipuler les ensembles de résultats de différentes requêtes.

  • UNION: combine les résultats de deux ou plusieurs requêtes en un seul ensemble de données et supprime les doublons.
  • INTERSECT: renvoie les lignes qui apparaissent dans les deux ensembles de résultats de requête.
  • EXCEPT: renvoie les lignes qui apparaissent dans le premier jeu de résultats de la requête mais pas dans le second.

 

Comment utiliser les fonctions de requête comme LEAD, LAG, FIRST_VALUE, LAST_VALUE dans SQL

Réponse : Les fonctions de requête telles que LEAD, LAG, FIRST_VALUE, LAST_VALUE sont utilisées pour récupérer des valeurs à partir de lignes associées dans le même résultat de requête.

  • LEAD: Obtient la valeur d'une colonne à partir de la ligne suivante dans le résultat de la requête.
  • LAG: Obtient la valeur d'une colonne de la ligne précédente dans le résultat de la requête.
  • FIRST_VALUE: Récupère la première valeur d'une colonne dans le résultat de la requête.
  • LAST_VALUE: Récupère la dernière valeur d'une colonne dans le résultat de la requête.