Maison >base de données >tutoriel mysql >Questions SQL essentielles que tout développeur devrait maîtriser

Questions SQL essentielles que tout développeur devrait maîtriser

Barbara Streisand
Barbara Streisandoriginal
2024-12-24 03:17:15845parcourir

Essential SQL Questions Every Developer Should Master

Maîtriser SQL avec 100 questions et exemples essentiels

SQL (Structured Query Language) est la pierre angulaire de la gestion et de la manipulation de bases de données. Ce guide explore 100 questions SQL pratiques et théoriques dans diverses catégories pour vous aider à améliorer vos compétences en matière de bases de données.


1. Questions de base sur les requêtes SQL

  1. Écrivez une requête pour récupérer tous les enregistrements d'une table.
   SELECT * FROM table_name;

Cette requête récupère chaque enregistrement de la table spécifiée.

  1. Écrivez une requête pour trouver le deuxième salaire le plus élevé dans un tableau.
   SELECT MAX(salary) AS second_highest_salary  
   FROM employees  
   WHERE salary < (SELECT MAX(salary) FROM employees);
  1. Écrivez une requête pour récupérer les employés dont les noms commencent par « A ».
   SELECT * FROM employees WHERE name LIKE 'A%';
  1. Écrivez une requête pour calculer les ventes totales regroupées par région.
   SELECT region, SUM(sales) AS total_sales  
   FROM sales_data  
   GROUP BY region;
  1. Écrivez une requête pour récupérer tous les enregistrements dont la valeur de colonne est NULL.
   SELECT * FROM table_name WHERE column_name IS NULL;
  1. Écrivez une requête pour supprimer les lignes en double d'une table.
   DELETE FROM table_name  
   WHERE id NOT IN (SELECT MIN(id) FROM table_name GROUP BY column_name);
  1. Écrivez une requête pour afficher les enregistrements par ordre décroissant.
   SELECT * FROM table_name ORDER BY column_name DESC;
  1. Écrivez une requête pour compter le nombre de lignes dans un tableau.
   SELECT COUNT(*) FROM table_name;
  1. Écrivez une requête pour joindre deux tables.
   SELECT employees.name, departments.department_name  
   FROM employees  
   JOIN departments  
   ON employees.department_id = departments.id;
  1. Écrivez une requête pour récupérer les trois premières lignes d'une table.

    SELECT * FROM table_name LIMIT 3;
    

2. Questions sur les performances SQL

  1. Qu'est-ce que l'optimisation des requêtes ?

    L'optimisation des requêtes consiste à modifier une requête pour améliorer son temps d'exécution et son efficacité.

  2. Comment améliorer les performances d'une requête SQL ?

    • Utilisez des index.
    • Évitez SELECT*.
    • Optimisez les jointures.
    • Utilisez les types de données appropriés.
    • Analyser le plan d'exécution.
  3. A quoi sert l'indexation ?

    L'indexation améliore la vitesse des opérations de récupération de données sur une table de base de données.

  4. Quels sont les inconvénients de l'indexation ?

    • Exigences de stockage accrues.
    • Opérations de modification de données plus lentes comme INSERT et DELETE.
  5. Comment analyser le plan d'exécution d'une requête ?

    Utilisez le mot-clé EXPLAIN pour afficher le plan d'exécution :

    EXPLAIN SELECT * FROM table_name;
    
  6. Qu'est-ce que la mise en cache des requêtes ?

    La mise en cache des requêtes stocke les résultats des requêtes pour les réutiliser, réduisant ainsi le temps de calcul.

  7. Qu'est-ce que le partitionnement dans les bases de données ?

    Le partage divise une base de données en parties plus petites, plus rapides et plus faciles à gérer, appelées fragments.

  8. Expliquez la différence entre la mise à l'échelle horizontale et verticale.

    • La mise à l'échelle horizontale ajoute plus de machines pour gérer plus de données.
    • La mise à l'échelle verticale ajoute des ressources (CPU, RAM) à une seule machine.
  9. Comment le partitionnement contribue-t-il aux performances de la base de données ?

    Le partitionnement divise une grande table en parties plus petites et plus faciles à gérer, améliorant ainsi les performances des requêtes.

  10. Qu'est-ce que la réplication de base de données ?

    La réplication implique la copie et la maintenance de copies de bases de données sur plusieurs serveurs pour plus de fiabilité et de redondance.


3. Questions sur les fonctions SQL

  1. Que sont les fonctions d'agrégation en SQL ?

    Les fonctions d'agrégation effectuent des calculs sur plusieurs lignes de données : SUM, AVG, COUNT, etc.

  2. Expliquez la différence entre COUNT, SUM et AVG.

    • COUNT : compte le nombre de lignes.
    • SOMME : ajoute des valeurs dans une colonne.
    • AVG : calcule la moyenne.
  3. Comment fonctionne la fonction ROUND en SQL ?

       SELECT * FROM table_name;
    
  4. A quoi sert la fonction LONGUEUR ?

    Il calcule le nombre de caractères dans une chaîne :

       SELECT MAX(salary) AS second_highest_salary  
       FROM employees  
       WHERE salary < (SELECT MAX(salary) FROM employees);
    
  5. Expliquez l'utilisation de l'instruction CASE en SQL.

       SELECT * FROM employees WHERE name LIKE 'A%';
    
  6. Quelle est la différence entre COALESCE et ISNULL ?

    • COALESCE : renvoie la première valeur non nulle d'une liste.
    • ISNULL : vérifie null et remplace par une valeur spécifiée.
  7. Comment utilisez-vous les fonctions de chaîne comme UPPER et LOWER ?

       SELECT region, SUM(sales) AS total_sales  
       FROM sales_data  
       GROUP BY region;
    
  8. Quel est le but de la fonction NOW() ?

    Renvoie la date et l'heure actuelles :

       SELECT * FROM table_name WHERE column_name IS NULL;
    
  9. Expliquez l'utilisation de la fonction CONCAT.

       DELETE FROM table_name  
       WHERE id NOT IN (SELECT MIN(id) FROM table_name GROUP BY column_name);
    
  10. Quelle est la différence entre TRUNCATE et DELETE ?

    • TRUNCATE : supprime toutes les lignes d'une table sans enregistrer les suppressions de lignes individuelles.
    • DELETE : supprime les lignes avec une condition et enregistre chaque suppression.

Bonjour, je m'appelle Abhay Singh Kathayat !
Je suis un développeur full-stack avec une expertise dans les technologies front-end et back-end. Je travaille avec une variété de langages et de frameworks de programmation pour créer des applications efficaces, évolutives et conviviales.
N'hésitez pas à me contacter à mon e-mail professionnel : kaashshorts28@gmail.com.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn