logo

Questions d'entretien SQL

SQL est un langage de base de données standard utilisé pour accéder et manipuler les données dans les bases de données. Ça signifie Langage de requêtes structurées et a été développé par les informaticiens d'IBM dans les années 1970. En exécutant des requêtes, SQL peut créer, mettre à jour, supprimer et récupérer des données dans des bases de données comme MySQL, Oracle, PostgreSQL, etc. Dans l'ensemble, SQL est un langage de requête qui communique avec les bases de données.

Dans cet article, nous couvrons Plus de 70 questions d'entretien SQL avec réponses » a demandé lors des entretiens avec les développeurs SQL chez MAANG et d'autres entreprises bien rémunérées. Que vous soyez un professionnel débutant ou expérimenté avec 2, 5 ou 10 ans d'expérience, cet article vous donne toute la confiance dont vous avez besoin pour réussir votre prochain entretien SQL.



Table des matières

Questions et réponses d'entretien SQL pour les débutants

1. Qu’est-ce que SQL ?

SQL signifie Structured Query Language. C'est un langage utilisé pour interagir avec la base de données, c'est à dire créer une base de données, créer une table dans la base de données, récupérer des données ou mettre à jour une table dans la base de données, etc. SQL est une norme ANSI (American National Standards Institute). Avec SQL, nous pouvons faire beaucoup de choses. Par exemple, nous pouvons exécuter des requêtes, insérer des enregistrements dans une table, mettre à jour des enregistrements, créer une base de données, créer une table, supprimer une table, etc.



2. Qu'est-ce qu'une base de données ?

UN Base de données est défini comme une forme structurée de stockage de données dans un ordinateur ou une collection de données de manière organisée et peut être consulté de différentes manières. Il s'agit également d'une collection de schémas, de tables, de requêtes, de vues, etc. Les bases de données nous aident à stocker, accéder et manipuler facilement les données conservées sur un ordinateur. Le système de gestion de base de données permet à un utilisateur d'interagir avec la base de données.

3. SQL prend-il en charge les fonctionnalités du langage de programmation ?

Il est vrai que SQL est un langage, mais il ne prend pas en charge la programmation car ce n'est pas un langage de programmation, c'est un langage de commande. Nous n'avons pas d'instructions conditionnelles en SQL comme les boucles for ou if..else, nous n'avons que des commandes que nous pouvons utiliser pour interroger, mettre à jour, supprimer, etc. des données dans la base de données. SQL nous permet de manipuler des données dans une base de données.

4. Quelle est la différence entre les types de données CHAR et VARCHAR2 en SQL ?

Ces deux types de données sont utilisés pour les caractères, mais varchar2 est utilisé pour les chaînes de caractères de longueur variable, tandis que char est utilisé pour les chaînes de caractères de longueur fixe. Par exemple , si nous spécifions le type comme char(5) alors nous ne serons pas autorisés à stocker une chaîne d'une autre longueur dans cette variable, mais si nous spécifions le type de cette variable comme varchar2(5) alors nous serons autorisés à stocker chaînes de longueur variable. Nous pouvons stocker une chaîne de longueur 3 ou 4 ou 2 dans cette variable.



5. Qu'entendez-vous par langage de définition de données ?

Langage de définition des données ou DDL permet l'exécution de requêtes comme CREATE, DROP et ALTER. Ce sont ces requêtes qui définissent les données.

6. Qu’entendez-vous par langage de manipulation de données ?

Le langage de manipulation de données ou DML est utilisé pour accéder ou manipuler les données de la base de données. Il nous permet d'exécuter les fonctions énumérées ci-dessous :

  • Insérer des données ou des lignes dans une base de données
  • Supprimer des données de la base de données
  • Récupérer ou récupérer des données
  • Mettre à jour les données dans une base de données.

7. Qu'est-ce que la vue en SQL ?

Vues en SQL sont une sorte de table virtuelle. Une vue comporte également des lignes et des colonnes telles qu'elles se trouvent sur une vraie table de la base de données. Nous pouvons créer une vue en sélectionnant des champs dans une ou plusieurs tables présentes dans la base de données. Une vue peut contenir toutes les lignes d'un tableau ou des lignes spécifiques en fonction de certaines conditions.

L'instruction CREATE VIEW de SQL est utilisée pour créer des vues.

Syntaxe de base :

CREATE VIEW view_name AS SELECT column1, column2..... FROM table_name WHERE condition;    view_name  : Name for the View   table_name  : Name of the table   condition  : Condition to select rows>

8. Qu'entendez-vous par clé étrangère ?

UN Clé étrangère est un champ qui peut identifier de manière unique chaque ligne d'une autre table. Et cette contrainte est utilisée pour spécifier un champ comme clé étrangère. C'est-à-dire que ce champ pointe vers la clé primaire d'une autre table. Cela crée généralement une sorte de lien entre les deux tables.

Considérez les deux tableaux présentés ci-dessous :

Ordres

O_ID N ° DE COMMANDE ID_C
1 2253 3
2 3325 3
3 4521 2
4 8532 1

Clients

ID_C NOM ADRESSE
1 RAMÈS DELHI
2 SURESH NOIDA
3 DHARMESH GURGAON

Comme nous pouvons le voir clairement, le champ C_ID de la table Commandes est la clé primaire de la table Clients, c'est-à-dire qu'il identifie de manière unique chaque ligne de la table Clients. Il s’agit donc d’une clé étrangère dans la table Commandes.

Syntaxe:

préparer le test mockito
CREATE TABLE Orders ( O_ID int NOT NULL, ORDER_NO int NOT NULL, C_ID int, PRIMARY KEY (O_ID), FOREIGN KEY (C_ID) REFERENCES Customers(C_ID) )>

9. Que sont la table et le champ ?

Tableau: Un tableau comporte une combinaison de lignes et de colonnes. Les lignes sont appelées enregistrements et les colonnes sont appelées champs. Dans MS SQL Server, les tables sont désignées dans les noms de base de données et de schéma.

Champ: Dans le SGBD, un champ de base de données peut être défini comme – une seule information provenant d’un enregistrement.

10. Quelle est la clé primaire ?

UN Clé primaire est l'une des clés candidates. L'une des clés candidates est sélectionnée comme la plus importante et devient la clé primaire. Il ne peut pas y avoir plus d'une clé primaire dans une table.

11. Qu'est-ce qu'une contrainte par défaut ?

Le DÉFAUT la contrainte est utilisée pour remplir une colonne avec des valeurs par défaut et fixes. La valeur sera ajoutée à tous les nouveaux enregistrements lorsqu'aucune autre valeur n'est fournie.

12. Qu'est-ce que la normalisation ?

Il s'agit d'un processus d'analyse des schémas de relation donnés en fonction de leurs dépendances fonctionnelles et de leurs clés primaires pour obtenir les propriétés souhaitables suivantes :

  1. Minimiser la redondance
  2. Minimiser les anomalies d'insertion, de suppression et de mise à jour

Les schémas de relation qui ne répondent pas aux propriétés sont décomposés en schémas de relation plus petits qui pourraient répondre aux propriétés souhaitables.

13. Qu'est-ce que la dénormalisation ?

Denormalization est une technique d'optimisation de base de données dans laquelle nous ajoutons des données redondantes à une ou plusieurs tables. Cela peut nous aider à éviter des jointures coûteuses dans une base de données relationnelle. Notez que la dénormalisation ne signifie pas ne pas faire de normalisation. C'est une technique d'optimisation qui est appliquée après normalisation.

Dans une base de données normalisée traditionnelle, nous stockons les données dans des tables logiques distinctes et essayons de minimiser les données redondantes. Nous pouvons nous efforcer de n’avoir qu’une seule copie de chaque élément de données dans la base de données.

14. Qu'est-ce qu'une requête ?

Un SQL La requête est utilisée pour récupérer les données requises de la base de données. Cependant, plusieurs requêtes SQL peuvent produire les mêmes résultats mais avec des niveaux d'efficacité différents. Une requête inefficace peut épuiser les ressources de la base de données, réduire la vitesse de la base de données ou entraîner une perte de service pour les autres utilisateurs. Il est donc très important d’optimiser la requête pour obtenir les meilleures performances de la base de données.

15. Qu'est-ce qu'une sous-requête ?

En SQL, un Sous-requête peut être simplement défini comme une requête dans une autre requête. En d’autres termes, nous pouvons dire qu’une sous-requête est une requête intégrée dans la clause WHERE d’une autre requête SQL.

16. Quels sont les différents opérateurs disponibles en SQL ?

Il existe trois opérateurs disponibles en SQL à savoir :

  1. Opérateurs arithmétiques
  2. Opérateurs logiques
  3. Opérateurs de comparaison

17. Qu'est-ce qu'une contrainte ?

Les contraintes sont les règles que nous pouvons appliquer au type de données dans un tableau. Autrement dit, nous pouvons spécifier la limite du type de données pouvant être stockées dans une colonne particulière d'une table à l'aide de contraintes. Pour plus de détails, veuillez vous référer à SQL|Contraintes article.

18. Qu'est-ce que l'intégrité des données ?

L'intégrité des données est définie comme les données contenues dans la base de données étant à la fois correctes et cohérentes. A cet effet, les données stockées dans la base de données doivent satisfaire à certains types de procédures (règles). Les données d'une base de données doivent être correctes et cohérentes. Ainsi, les données stockées dans la base de données doivent satisfaire certains types de procédures (règles). Le SGBD propose différentes manières d'implémenter de tels types de contraintes (règles). Cela améliore l'intégrité des données dans une base de données. Pour plus de détails, veuillez vous référer différence entre la sécurité des données et l'intégrité des données article.

19. Qu'est-ce que l'incrémentation automatique ?

Parfois, lors de la création d'une table, nous n'avons pas d'identifiant unique dans la table, nous avons donc des difficultés à choisir la clé primaire. Afin de résoudre un tel problème, nous devons fournir manuellement des clés uniques à chaque enregistrement, mais c'est souvent aussi une tâche fastidieuse. Nous pouvons donc utiliser la fonction Auto-Increment qui génère automatiquement une valeur de clé primaire numérique pour chaque nouvel enregistrement inséré. La fonctionnalité Auto Increment est prise en charge par toutes les bases de données. Pour plus de détails, veuillez vous référer Incrémentation automatique SQL article.

20. Qu'est-ce que le classement MySQL ?

Un classement MySQL est un ensemble bien défini de règles utilisées pour comparer les caractères d'un jeu de caractères particulier en utilisant leur encodage correspondant. Chaque jeu de caractères dans MySQL peut avoir plusieurs classements et possède au moins un classement par défaut. Deux jeux de caractères ne peuvent pas avoir le même classement. Pour plus de détails, veuillez vous référer Que sont le classement et le jeu de caractères dans MySQL ? article.

21. Que sont les fonctions définies par l'utilisateur ?

Nous pouvons utiliser des fonctions définies par l'utilisateur en PL/SQL ou Java pour fournir des fonctionnalités qui ne sont pas disponibles dans SQL ou dans les fonctions intégrées SQL. Les fonctions SQL et les fonctions définies par l'utilisateur peuvent apparaître n'importe où, c'est-à-dire partout où une expression apparaît.

Par exemple, il peut être utilisé dans :

  • Sélectionnez une liste d'instructions SELECT.
  • Condition de la clause WHERE.
  • CONNECT BY, ORDER BY, COMMENCER PAR et GROUP BY
  • Clause VALUES de l'instruction INSERT.
  • La clause SET de l'instruction UPDATE.

22. Que sont tous les types de fonctions définies par l'utilisateur ?

Les fonctions définies par l'utilisateur permettent aux utilisateurs de définir leurs propres fonctions T-SQL pouvant accepter 0 ou plusieurs paramètres et renvoyer une seule valeur de données scalaire ou un type de données de table.
Les différents types de fonctions définies par l'utilisateur créées sont :

1. Fonction scalaire définie par l'utilisateur Une fonction scalaire définie par l'utilisateur renvoie l'un des types de données scalaires. Les types de données texte, image et horodatage ne sont pas pris en charge. Il s'agit du type de fonctions définies par l'utilisateur auxquelles la plupart des développeurs sont habitués dans d'autres langages de programmation. Vous transmettez 0 à plusieurs paramètres et vous obtenez une valeur de retour.

2. Fonction définie par l'utilisateur avec valeur de table en ligne Une fonction définie par l'utilisateur Inline Table-Value renvoie un type de données de table et constitue une alternative exceptionnelle à une vue car la fonction définie par l'utilisateur peut transmettre des paramètres dans une commande de sélection T-SQL et, en substance, nous fournir un paramètre paramétré, non -vue pouvant être mise à jour des tables sous-jacentes.

3. Fonction définie par l'utilisateur à valeurs de table multi-instructions Une fonction définie par l'utilisateur à valeur de table multi-instructions renvoie une table et constitue également une alternative exceptionnelle à une vue, car la fonction peut prendre en charge plusieurs instructions T-SQL pour créer le résultat final où la vue est limitée à une seule instruction SELECT. De plus, la possibilité de transmettre des paramètres dans une commande de sélection TSQL ou dans un groupe d'entre elles nous donne essentiellement la possibilité de créer une vue paramétrée et non actualisable des données dans les tables sous-jacentes. Dans la commande create function, vous devez définir la structure de table qui est renvoyée. Après avoir créé ce type de fonction définie par l'utilisateur, elle peut être utilisée dans la clause FROM d'une commande T-SQL, contrairement au comportement rencontré lors de l'utilisation d'une procédure stockée qui peut également renvoyer des jeux d'enregistrements.

23. Qu'est-ce qu'une procédure stockée ?

Procédures stockées sont créés pour effectuer une ou plusieurs opérations DML sur des bases de données. Ce n'est rien d'autre qu'un groupe d'instructions SQL qui accepte certaines entrées sous forme de paramètres et effectue certaines tâches et peut ou non renvoyer une valeur. Pour plus de détails, veuillez consulter notre Procédures stockées dans le SQL article.

24. Que sont les fonctions agrégées et scalaires ?

Pour effectuer des opérations sur les données, SQL dispose de nombreuses fonctions intégrées, elles sont classées en deux catégories et sous-catégorisées en sept fonctions différentes sous chaque catégorie. Les catégories sont :

  • Fonctions agrégées : Ces fonctions sont utilisées pour effectuer des opérations à partir des valeurs de la colonne et une seule valeur est renvoyée.
  • Fonctions scalaires : Ces fonctions sont basées sur les entrées de l'utilisateur et renvoient également une valeur unique.

Pour plus de détails, veuillez lire le SQL | Fonctions (fonctions d'agrégation et scalaires) article.

25. Qu'est-ce qu'une commande ALIAS ?

Les alias sont les noms temporaires donnés à une table ou une colonne dans le but d'une requête SQL particulière. Il est utilisé lorsque le nom d'une colonne ou d'une table est utilisé autre que son nom d'origine, mais que le nom modifié n'est que temporaire.

  • Des alias sont créés pour rendre les noms de tables ou de colonnes plus lisibles.
  • Le changement de nom n'est qu'un changement temporaire et le nom de la table ne change pas dans la base de données d'origine.
  • Les alias sont utiles lorsque les noms de tables ou de colonnes sont volumineux ou peu lisibles.
  • Celles-ci sont préférées lorsque plusieurs tables sont impliquées dans une requête.

Pour plus de détails, veuillez lire le SQL | Alias article.

26. Que sont les commandes Union, moins et Interact ?

Les opérations de définition dans SQL éliminent les tuples en double et ne peuvent être appliquées qu'aux relations compatibles avec les unions. Les opérations d'ensemble disponibles en SQL sont :

  • Définir l'union
  • Définir l'intersection
  • Définir la différence

Opération UNION : Cette opération inclut tous les tuples présents dans l'une ou l'autre des relations. Par exemple : Pour retrouver tous les clients qui ont un prêt ou un compte ou les deux dans une banque.

 SELECT CustomerName FROM Depositor   UNION   SELECT CustomerName FROM Borrower ;>

L'opération d'union élimine automatiquement les doublons. Si tous les doublons sont censés être conservés, UNION ALL est utilisé à la place de UNION.

Opération INTERSECT : Cette opération inclut les tuples présents dans les deux relations. Par exemple : Pour retrouver les clients qui ont un prêt ainsi qu'un compte en banque :

 SELECT CustomerName FROM Depositor   INTERSECT  SELECT CustomerName FROM Borrower ;>

L’opération Intersect élimine automatiquement les doublons. Si tous les doublons sont censés être conservés, INTERSECT ALL est utilisé à la place d'INTERSECT.

SAUF pour le fonctionnement : Cette opération inclut les tuples qui sont présents dans une relation mais ne doivent pas être présents dans une autre relation. Par exemple : Pour rechercher des clients qui ont un compte mais pas de prêt à la banque :

 SELECT CustomerName FROM Depositor   EXCEPT  SELECT CustomerName FROM Borrower ;>

L'opération Sauf élimine automatiquement les doublons. Si tous les doublons sont censés être conservés, EXCEPT ALL est utilisé à la place de EXCEPT.

27. Qu'est-ce qu'un T-SQL ?

T-SQL est l'abréviation de Transact Structure Query Language. Il s'agit d'un produit de Microsoft et d'une extension du langage SQL utilisé pour interagir avec des bases de données relationnelles. Il est considéré comme plus performant avec les serveurs Microsoft SQL. Les instructions T-SQL sont utilisées pour effectuer les transactions vers les bases de données. T-SQL a une importance capitale puisque toutes les communications avec une instance d'un serveur SQL se font en envoyant des instructions Transact-SQL au serveur. Les utilisateurs peuvent également définir des fonctions à l'aide de T-SQL.

Les types de fonctions T-SQL sont :

  • Agrégat les fonctions.
  • Classement les fonctions. Il existe différents types de fonctions de classement.
  • Ensemble de lignes fonction.
  • Scalaire les fonctions.

28. Qu'est-ce que ETL dans SQL ?

ETL est un processus dans Data Warehousing et signifie Extrait , Transformer, et Charger . Il s'agit d'un processus dans lequel un outil ETL extrait les données de divers systèmes sources de données, les transforme dans la zone de préparation, puis enfin les charge dans le système Data Warehouse. Il s'agit de trois fonctions de base de données intégrées dans un seul outil pour extraire des données d'une base de données et les placer dans une autre base de données.

29. Comment copier des tables en SQL ?

Parfois, en SQL, nous devons créer une copie exacte d'une table déjà définie (ou créée). MySQL vous permet d'effectuer cette opération. Parce que nous pouvons avoir besoin de telles tables en double pour tester les données sans avoir aucun impact sur la table d'origine et les données qui y sont stockées.

CREATE TABLE Contact List(Clone_1) LIKE Original_table;>

Pour plus de détails, veuillez lire Table de clonage dans le MySQL article.

30. Qu'est-ce que l'injection SQL ?

L'injection SQL est une technique utilisée pour exploiter les données utilisateur via des entrées de pages Web en injectant des commandes SQL sous forme d'instructions. Fondamentalement, ces instructions peuvent être utilisées pour manipuler le serveur Web de l’application par des utilisateurs malveillants.

  • L'injection SQL est une technique d'injection de code qui peut détruire votre base de données.
  • L'injection SQL est l'une des techniques de piratage Web les plus courantes.
  • L'injection SQL consiste à placer du code malveillant dans des instructions SQL, via une entrée de page Web.

Pour plus de détails, veuillez lire le SQL | Injection article.

31. Pouvons-nous désactiver un déclencheur ? Si oui, comment ?

Oui, nous pouvons désactiver un déclencheur en PL/SQL. Si vous envisagez de désactiver temporairement un déclencheur et que l’une des conditions suivantes est remplie :

  • Un objet auquel le déclencheur fait référence n'est pas disponible.
  • Nous devons effectuer un chargement de données volumineux et souhaitons qu'il se déroule rapidement sans déclencher de déclencheurs.
  • Nous chargeons les données dans la table à laquelle le déclencheur s'applique.
  • Nous désactivons un déclencheur à l'aide de l'instruction ALTER TRIGGER avec l'option DISABLE.
  • Nous pouvons désactiver tous les déclencheurs associés à une table en même temps en utilisant l'instruction ALTER TABLE avec l'option DISABLE ALL TRIGGERS.

Questions et réponses d'entretien SQL intermédiaire

32. Quelles sont les différences entre SQL et PL/SQL ?

Certaines différences courantes entre SQL et PL/SQL sont présentées ci-dessous :

SQL

PL/SQL

SQL est un langage d'exécution de requêtes ou de commande

PL/SQL est un langage de programmation complet

SQL est un langage orienté données.

PL/SQL est un langage procédural

SQL est de nature très déclarative.

PL/SQL a un caractère procédural.

Il est utilisé pour manipuler des données.

Il est utilisé pour créer des applications.

Nous pouvons exécuter une instruction à la fois en SQL

Nous pouvons exécuter des blocs d'instructions en PL/SQL

SQL dit aux bases de données, que faire ?

PL/SQL indique aux bases de données comment procéder.

Nous pouvons intégrer SQL dans PL/SQL

Nous ne pouvons pas intégrer PL/SQL dans SQL

33. Quelle est la différence entre les opérateurs BETWEEN et IN en SQL ?

ENTRE: Le ENTRE L’opérateur est utilisé pour récupérer des lignes en fonction d’une plage de valeurs.
Par exemple,

SELECT * FROM Students  WHERE ROLL_NO BETWEEN 20 AND 30;>

Cette requête sélectionnera toutes ces lignes de la table. Étudiants dont la valeur du champ ROLL_NO est comprise entre 20 et 30.
DANS: Le DANS L’opérateur est utilisé pour vérifier les valeurs contenues dans des ensembles spécifiques.
Par exemple,

SELECT * FROM Students  WHERE ROLL_NO IN (20,21,23);>

Cette requête sélectionnera toutes les lignes de la table Étudiants où la valeur du champ ROLL_NO est 20, 21 ou 23.

34. Écrivez une requête SQL pour trouver les noms des employés commençant par « A ».

L'opérateur LIKE de SQL est utilisé à cet effet. Il est utilisé pour récupérer des données filtrées en recherchant un modèle particulier dans la clause Where.
La syntaxe pour utiliser LIKE est :

SELECT colonne1, colonne2 FROM nom_table WHERE nom_colonne LIKE modèle ;

COMME: nom de l'opérateur

modèle: valeur exacte extraite du modèle pour obtenir les données associées dans l'ensemble de résultats.

La requête requise est :

SELECT * FROM Employees WHERE EmpName like 'A%' ;>

Vous pouvez vous référer à cet article Clause OÙ pour plus de détails sur l'opérateur LIKE.

35. Quelle est la différence entre la clé primaire et les contraintes uniques ?

La clé primaire ne peut pas avoir de valeurs NULL, les contraintes uniques peuvent avoir des valeurs NULL. Il n'y a qu'une seule clé primaire dans une table, mais il peut y avoir plusieurs contraintes uniques. La clé primaire crée automatiquement l’index clusterisé, mais pas la clé unique.

36. Qu'est-ce qu'une jointure en SQL ? Quels sont les types de jointures ?

Une instruction SQL Join est utilisée pour combiner des données ou des lignes de deux ou plusieurs tables en fonction d'un champ commun entre elles. Les différents types de jointures sont :

pas
  • JOINTURE INTERNE : Le mot-clé INNER JOIN sélectionne toutes les lignes des deux tables tant que la condition est satisfaite. Ce mot-clé créera l'ensemble de résultats en combinant toutes les lignes des deux tables où la condition satisfait, c'est-à-dire que la valeur du champ commun sera la même.
  • JOINT GAUCHE : Cette jointure renvoie toutes les lignes de la table du côté gauche de la jointure et les lignes correspondantes de la table du côté droit de la jointure. Pour les lignes pour lesquelles il n’y a pas de ligne correspondante sur le côté droit, le jeu de résultats sera nul. LEFT JOIN est également connu sous le nom de LEFT OUTER JOIN.
  • REJOINDRE À DROITE : RIGHT JOIN est similaire à LEFT JOIN. Cette jointure renvoie toutes les lignes de la table du côté droit de la jointure et les lignes correspondantes de la table du côté gauche de la jointure. Pour les lignes pour lesquelles il n’y a pas de ligne correspondante sur le côté gauche, le jeu de résultats contiendra null. RIGHT JOIN est également connu sous le nom de RIGHT OUTER JOIN.
  • REJOINDRE COMPLÈTEMENT : FULL JOIN crée l'ensemble de résultats en combinant les résultats de LEFT JOIN et de RIGHT JOIN. Le jeu de résultats contiendra toutes les lignes des deux tables. Pour les lignes pour lesquelles il n'y a pas de correspondance, le jeu de résultats contiendra des valeurs NULL.

37. Qu'est-ce qu'un indice ?

Un index de base de données est une structure de données qui améliore la vitesse des opérations de récupération de données sur une table de base de données au prix d'écritures supplémentaires et de l'utilisation de plus d'espace de stockage pour conserver la copie supplémentaire des données. Les données ne peuvent être stockées que dans un seul ordre sur un disque. Pour prendre en charge un accès plus rapide en fonction de différentes valeurs, une recherche plus rapide, comme une recherche binaire de différentes valeurs, est souhaitée. A cet effet, des index sont créés sur les tables. Ces index nécessitent de l'espace supplémentaire sur le disque, mais ils permettent une recherche plus rapide en fonction de différentes valeurs fréquemment recherchées.

38. Qu'est-ce que la contrainte en cascade Sur suppression ?

Une contrainte 'ON DELETE CASCADE' est utilisée dans MySQL pour supprimer automatiquement les lignes de la table enfant lorsque les lignes de la table parent sont supprimées. Pour plus de détails, veuillez lire MySQL – Sur suppression de la contrainte Cascade article.

39. Expliquez la clause AVEC dans SQL ?

La clause WITH fournit un moyen de définir une relation temporaire dont la définition n'est disponible que pour la requête dans laquelle la clause with apparaît. SQL applique les prédicats dans la clause WITH une fois les groupes formés, afin que les fonctions d'agrégation puissent être utilisées.

40. Quels sont les différents attributs des index ?

L'indexation a différents attributs :

  • Types d'accès : Il s'agit du type d'accès tel que la recherche basée sur la valeur, l'accès à la plage, etc.
  • Temps d'accès : Il fait référence au temps nécessaire pour trouver un élément de données ou un ensemble d'éléments particulier.
  • Temps d'insertion : Il fait référence au temps nécessaire pour trouver l'espace approprié et insérer de nouvelles données.
  • Heure de suppression : Il faut du temps pour rechercher un élément, le supprimer ainsi que mettre à jour la structure de l'index.
  • Espace aérien : Il fait référence à l'espace supplémentaire requis par l'index.

41. Qu'est-ce qu'un curseur ?

Le curseur est une mémoire temporaire ou un poste de travail temporaire. Il est alloué par le serveur de base de données au moment de l'exécution des opérations DML sur la table par l'utilisateur. Les curseurs sont utilisés pour stocker les tables de base de données.

42. Écrire différents types de relations en SQL ?

Il existe diverses relations, à savoir :

  • Relation individuelle.
  • Relations une à plusieurs.
  • Relation plusieurs à une.
  • Relation d'auto-référencement.

43. Qu'est-ce qu'un déclencheur ?

Le déclencheur est une instruction qu'un système exécute automatiquement en cas de modification de la base de données. Dans un déclencheur, nous spécifions d'abord quand le déclencheur doit être exécuté, puis l'action à effectuer lors de l'exécution du déclencheur. Les déclencheurs sont utilisés pour spécifier certaines contraintes d'intégrité et contraintes référentielles qui ne peuvent pas être spécifiées à l'aide du mécanisme de contraintes de SQL.

44. Quelle est la différence entre les commandes SQL DELETE et SQL TRUNCATE ?

SUPPRIMER SQL

SQL TRONQUÉ

L'instruction DELETE supprime les lignes une par une et enregistre une entrée dans le journal des transactions pour chaque ligne supprimée. TRUNCATE TABLE supprime les données en désallouant les pages de données utilisées pour stocker les données de la table et enregistre uniquement les désallocations de pages dans le journal des transactions.
La commande DELETE est plus lente que la commande IdentityTRUNCATE. Alors que la commande TRUNCATE est plus rapide que la commande DELETE.
Pour utiliser Supprimer, vous avez besoin de l'autorisation DELETE sur la table. Pour utiliser Truncate sur une table, nous avons besoin au moins de l'autorisation ALTER sur la table.
L'identité de la colonne conserve l'identité après avoir utilisé l'instruction DELETE sur la table. L'identité de la colonne est réinitialisée à sa valeur de départ si la table contient une colonne d'identité.
La suppression peut être utilisée avec des vues indexées. Truncate ne peut pas être utilisé avec des vues indexées.

45. Quelle est la différence entre un index cluster et un index non cluster ?

INDICE GROUPÉ INDICE NON GROUPÉ
L'index clusterisé est plus rapide. L'index non clusterisé est plus lent.
L'index clusterisé nécessite moins de mémoire pour les opérations. L'index non clusterisé nécessite plus de mémoire pour les opérations.
Dans un index clusterisé, l'index correspond aux données principales. Dans l'index non clusterisé, l'index est une copie des données.
Une table ne peut avoir qu'un seul index clusterisé. Une table peut avoir plusieurs index non clusterisés.
L'index clusterisé a la capacité inhérente de stocker des données sur le disque. L'index non clusterisé n'a pas la capacité inhérente de stocker des données sur le disque.
Les index clusterisés stockent des pointeurs pour bloquer les données. L'index non clusterisé stocke à la fois la valeur et un pointeur vers la ligne réelle contenant les données.
Dans les nœuds feuilles d'index clusterisés, ce sont les données elles-mêmes. Dans un index non clusterisé, les nœuds feuilles ne sont pas les données elles-mêmes, mais contiennent uniquement des colonnes incluses.
Dans l'index Clustered, la clé Clustered définit l'ordre des données dans la table. Dans l'index non clusterisé, la clé d'index définit l'ordre des données dans l'index.
Un index clusterisé est un type d'index dans lequel les enregistrements de table sont physiquement réorganisés pour correspondre à l'index. Un index non clusterisé est un type spécial d'index dans lequel l'ordre logique de l'index ne correspond pas à l'ordre physique stocké des lignes sur le disque.

Pour plus de détails, veuillez vous référer Différence entre l'index clusterisé et l'index non clusterisé article.

46. ​​Qu'est-ce qu'un Live Lock ?

Livelock se produit lorsque deux processus ou plus répètent continuellement la même interaction en réponse aux changements des autres processus sans effectuer de travail utile. Ces processus ne sont pas en attente et s’exécutent simultanément. Ceci est différent d’un blocage car dans un blocage, tous les processus sont en attente.

47. Qu'est-ce que le cas QUAND en SQL ?

Les instructions de contrôle constituent une partie importante de la plupart des langages car elles contrôlent l'exécution d'autres ensembles d'instructions. Ceux-ci se trouvent également dans SQL et devraient être exploités pour des utilisations telles que le filtrage et l'optimisation des requêtes grâce à une sélection minutieuse de tuples qui correspondent à nos exigences. Dans cet article, nous explorons l'instruction Case-Switch en SQL. L’instruction CASE est la manière dont SQL gère la logique if/then.

Syntaxe 1 :

CASE valeur_cas WHEN valeur_quand ALORS liste_instructions [WHEN valeur_quand ALORS liste_instructions] … [ELSE liste_instructions]END CASE

Syntaxe 2 :

CASE WHEN condition_recherche ALORS liste_instructions [WHEN condition_recherche ALORS liste_instructions] … [ELSE liste_instructions]END CASE

Pour plus de détails, veuillez lire le SQL | Déclaration de cas article.

Questions et réponses d'entretien SQL avancées

48. Nommez différents types de fonctions de manipulation de cas disponibles dans SQL.

Il existe trois types de fonctions de manipulation de cas disponibles dans SQL. Ils sont,

  • INFÉRIEUR : Le but de cette fonction est de renvoyer la chaîne en minuscule. Il prend une chaîne comme argument et renvoie la chaîne en la convertissant en minuscules.
    Syntaxe:

INFÉRIEUR('chaîne')

  • SUPÉRIEUR : Le but de cette fonction est de renvoyer la chaîne en majuscule. Il prend une chaîne comme argument et renvoie la chaîne en la convertissant en majuscules.
    Syntaxe:

SUPÉRIEUR('chaîne')

  • INITCAP : Le but de cette fonction est de renvoyer la chaîne avec la première lettre en majuscule et le reste des lettres en minuscules.
    Syntaxe:

INITCAP('chaîne')

49. Que sont les variables locales et globales et leurs différences ?

Variable globale : En revanche, les variables globales sont des variables définies en dehors des fonctions. Ces variables ont une portée globale, elles peuvent donc être utilisées par n'importe quelle fonction sans les transmettre à la fonction en tant que paramètres.

Variable locale: Les variables locales sont des variables définies dans les fonctions. Ils ont une portée locale, ce qui signifie qu'ils ne peuvent être utilisés que dans le cadre des fonctions qui les définissent.

50. Nommez la fonction utilisée pour supprimer les espaces à la fin d'une chaîne ?

En SQL, les espaces à la fin de la chaîne sont supprimés par une fonction trim.

Syntaxe:

Garniture(s), Où s est une chaîne quelconque.

51. Quelle est la différence entre les instructions TRUNCATE et DROP ?

SUPPRESSION SQL TRONQUER
La commande DROP est utilisée pour supprimer la définition de table et son contenu. Alors que la commande TRUNCATE est utilisée pour supprimer toutes les lignes de la table.
Dans la commande DROP, l'espace table est libéré de la mémoire. Alors que la commande TRUNCATE ne libère pas l'espace table de la mémoire.
DROP est une commande DDL (Data Definition Language). Alors que TRUNCATE est également une commande DDL (Data Definition Language).
Dans la commande DROP, une vue de la table n'existe pas. Dans cette commande, une vue de la table existe.
Dans la commande DROP, les contraintes d'intégrité seront supprimées. Pendant cette commande, les contraintes d'intégrité ne seront pas supprimées.
Dans la commande DROP, l'espace d'annulation n'est pas utilisé. Dans cette commande, l'espace d'annulation est utilisé mais moins que DELETE.
La commande DROP est rapide à exécuter mais entraîne des complications. Bien que cette commande soit plus rapide que DROP.

Pour plus de détails, veuillez lire la différence entre DROP et TRUNCATE dans le SQL article.

52. Quel opérateur est utilisé dans les requêtes pour la correspondance de modèles ?

Opérateur LIKE : il est utilisé pour récupérer des données filtrées en recherchant un modèle particulier dans la clause Where.

Syntaxe:

SELECT colonne1, colonne2 FROM nom_table WHERE nom_colonne LIKE modèle ;

COMME : nom de l'opérateur

53. Définir l'ordre SQL par l'instruction ?

L'instruction ORDER BY en SQL est utilisée pour trier les données récupérées par ordre croissant ou décroissant selon une ou plusieurs colonnes.

  • Par défaut ORDER BY trie les données dans ordre croissant.
  • On peut utiliser le mot-clé DESC pour trier les données par ordre décroissant et le mot-clé ASC pour trier par ordre croissant.

Pour plus de détails, veuillez lire SQL | COMMANDÉ PAR article.

54. Expliquez l'instruction SQL Have ?

HAVING est utilisé pour spécifier une condition pour un groupe ou une fonction d'agrégation utilisée dans l'instruction select. La clause WHERE sélectionne avant le regroupement. La clause HAVING sélectionne les lignes après le regroupement. Contrairement à la clause HAVING, la clause WHERE ne peut pas contenir de fonctions d'agrégation. Voir Clause Avoir vs Où ?

55. Expliquez l'instruction SQL AND OR avec un exemple ?

En SQL, les opérateurs AND & OR sont utilisés pour filtrer les données et obtenir des résultats précis en fonction des conditions. Les opérateurs AND et OR sont utilisés avec la clause WHERE.

Ces deux opérateurs sont appelés opérateurs conjonctifs .

  1. ET Opérateur : Cet opérateur affiche uniquement les enregistrements pour lesquels les deux conditions les conditions 1 et 2 sont évaluées à True.
  2. OU Opérateur : Cet opérateur affiche les enregistrements pour lesquels l'une des conditions condition 1 et condition 2 est évaluée à True. C'est, soit la condition1 est vraie, soit la condition2 est vraie.

Pour plus de détails, veuillez lire le SQL | ET et OU article sur les opérateurs.

56. Définir les instructions BETWEEN en SQL ?

La condition SQL BETWEEN vous permet de tester facilement si une expression se trouve dans une plage de valeurs (incluse). Les valeurs peuvent être du texte, une date ou des chiffres. Il peut être utilisé dans une instruction SELECT, INSERT, UPDATE ou DELETE. La condition SQL BETWEEN renverra les enregistrements où l'expression se trouve dans la plage valeur1 et valeur2.

Pour plus de détails, veuillez lire SQL | Opérateur entre & I article.

57. Pourquoi utilisons-nous les commandes Commit et Rollback ?

COMMETTRE RETOUR EN ARRIERE
COMMIT enregistre définitivement les modifications apportées par la transaction en cours. ROLLBACK annule les modifications apportées par la transaction en cours.
La transaction ne peut pas annuler les modifications après l'exécution de COMMIT. La transaction atteint son état précédent après ROLLBACK.
Lorsque la transaction réussit, COMMIT est appliqué. Lorsque la transaction est abandonnée, ROLLBACK se produit.

Pour plus de détails, veuillez lire le Différence entre validation et restauration dans SQL article.

58. Que sont les propriétés ACIDES ?

UN transaction est une unité logique unique de travail qui accède et éventuellement modifie le contenu d'une base de données. Les transactions accèdent aux données à l’aide d’opérations de lecture et d’écriture. Afin de maintenir la cohérence dans une base de données, avant et après la transaction, certaines propriétés sont respectées. Ceux-ci sont appelés ACIDE propriétés. ACIDE (Atomicité, Cohérence, Isolation, Durabilité) est un ensemble de propriétés qui garantissent que les transactions de base de données sont traitées de manière fiable. Pour plus de détails, veuillez lire Propriétés ACIDES dans le SGBD article.

59. Les valeurs NULL sont-elles identiques à zéro ou à un espace vide ?

En SQL, un espace zéro ou vide peut être comparé à un autre espace zéro ou vide. alors qu'un nul peut ne pas être égal à un autre nul. null signifie que les données peuvent ne pas être fournies ou qu'il n'y a pas de données.

60. Quelle est la nécessité des fonctions de groupe dans SQL ?

Dans la gestion de bases de données, les fonctions de groupe, également appelées fonctions d'agrégation, sont une fonction dans laquelle les valeurs de plusieurs lignes sont regroupées en entrée sur certains critères pour former une valeur unique ayant une signification plus significative.

Diverses fonctions de groupe

1) Count() 2) Sum() 3) Avg() 4) Min() 5) Max()>

Pour plus de détails, veuillez lire le Fonctions d'agrégation dans le SQL article.

61. Quelle est la nécessité d'une instruction MERGE ?

Le FUSIONNER La commande en SQL est en fait une combinaison de trois instructions SQL : INSÉRER, METTRE À JOUR et SUPPRIMER . En termes simples, l'instruction MERGE dans SQL fournit un moyen pratique d'effectuer ces trois opérations ensemble, ce qui peut être très utile lorsqu'il s'agit de gérer de grandes bases de données en cours d'exécution. Mais contrairement aux instructions INSERT, UPDATE et DELETE, l'instruction MERGE nécessite une table source pour effectuer ces opérations sur la table requise qui est appelée table cible. Pour plus de détails, veuillez lire le SQL | Instruction MERGE article.

62. Comment pouvez-vous récupérer des enregistrements communs à partir de deux tables ?

L'instruction ci-dessous pourrait être utilisée pour obtenir des données de plusieurs tables, nous devons donc utiliser join pour obtenir des données de plusieurs tables.

Syntaxe :

SELECT tablenmae1.colonnenom, tablename2.columnnmae

DE tablenmae1

JOIN tablename2

ON tablenmae1.colunmnam = tablename2.columnnmae

ORDER BY nom de colonne ;

Pour plus de détails et d'exemples, veuillez lire SQL | SÉLECTIONNER les données des multiples tables article.

63. Quels sont les avantages des fonctions PL/SQL ?

Les avantages des fonctions PL/SQL sont les suivants :

  • Nous pouvons effectuer un seul appel à la base de données pour exécuter un bloc d'instructions. Ainsi, il améliore les performances lors de l’exécution de SQL plusieurs fois. Cela réduira le nombre d'appels entre la base de données et l'application.
  • Nous pouvons diviser le travail global en petits modules qui deviennent tout à fait gérables, améliorant également la lisibilité du code.
  • Cela favorise la réutilisation.
  • Il est sécurisé puisque le code reste dans la base de données, cachant ainsi les détails internes de la base de données à l'application (utilisateur). L'utilisateur effectue uniquement un appel aux fonctions PL/SQL. Ainsi, la sécurité et la dissimulation des données sont assurées.

64. Quelle est la requête SQL pour afficher la date actuelle ?

CURRENT_DATE renvoie à la date actuelle. Cette fonction renvoie la même valeur si elle est exécutée plus d'une fois dans une seule instruction, ce qui signifie que la valeur est fixe, même s'il y a un long délai entre la récupération des lignes dans un curseur.

Syntaxe:

DATE ACTUELLE

ou

DATE ACTUELLE

65. Que sont les déclencheurs imbriqués ?

Un déclencheur peut également contenir des logiques INSERT, UPDATE et DELETE en lui-même. Ainsi, lorsque le déclencheur est déclenché en raison d'une modification de données, il peut également provoquer une autre modification de données, déclenchant ainsi un autre déclencheur. Un déclencheur qui contient en lui-même une logique de modification des données est appelé déclencheur imbriqué.

66. Comment trouver les informations de contraintes disponibles dans le tableau ?

Dans SQL Server, le dictionnaire de données est un ensemble de tables de base de données utilisées pour stocker des informations sur la définition d'une base de données. On peut utiliser ces dictionnaires de données pour vérifier les contraintes sur une table déjà existante et les modifier (si possible). Pour plus de détails, veuillez lire SQL | Vérification de la contrainte existante sur une table article.

67. Comment éviter d'obtenir des entrées en double dans une requête sans utiliser le mot-clé distinct ?

DISTINCT est utile dans certaines circonstances, mais il présente l'inconvénient de pouvoir augmenter la charge sur le moteur de requête pour effectuer le tri (puisqu'il doit comparer l'ensemble de résultats à lui-même pour supprimer les doublons). Nous pouvons supprimer les entrées en double en utilisant les options suivantes :

  • Supprimez les doublons à l’aide des numéros de ligne.
  • Supprimez les doublons à l’aide de l’auto-jointure.
  • Supprimez les doublons à l’aide de group by.

Pour plus de détails, veuillez lire SQL | Supprimer les doublons sans distinction des articles.

68. La différence entre les fonctions NVL et NVL2 ?

Ces fonctions fonctionnent avec n'importe quel type de données et concernent l'utilisation de valeurs nulles dans la liste d'expressions. Ce sont tous à une seule rangée fonctions, c'est-à-dire fournir un résultat par ligne.

NVL(expr1, expr2) : En SQL, NVL() convertit une valeur nulle en valeur réelle. Les types de données pouvant être utilisés sont la date, le caractère et le nombre. Les types de données doivent correspondre les uns aux autres. c'est-à-dire que expr1 et expr2 doivent être du même type de données.

Syntaxe:

NVL (expr1, expr2)

NVL2(expr1, expr2, expr3) : La fonction NVL2 examine la première expression. Si la première expression n'est pas nulle, alors la fonction NVL2 renvoie la deuxième expression. Si la première expression est nulle, alors la troisième expression est renvoyée, c'est-à-dire que si expr1 n'est pas nulle, NVL2 renvoie expr2. Si expr1 est nulle, NVL2 renvoie expr3. L'argument expr1 peut avoir n'importe quel type de données.

Syntaxe:

NVL2 (expr1, expr2, expr3)

Pour plus de détails, veuillez lire Fonctions générales SQL | NVL, NVL2, DÉCODAGE, COALESCE, NULLIF, LNNVL , et NANVL article.

69. Quelle est la différence entre COALESCE() et ISNULL() ?

SE FONDRE(): La fonction COALESCE en SQL renvoie la première expression non NULL parmi ses arguments. Si toutes les expressions sont évaluées à null, alors la fonction COALESCE renverra null.
Syntaxe:

SELECT colonne(s), CAOLESCE(expression_1,….,expression_n)FROM nom_table ;

ISNULL() : La fonction ISNULL a différentes utilisations dans SQL Server et MySQL. Dans SQL Server, la fonction ISNULL() est utilisée pour remplacer les valeurs NULL.
Syntaxe:

SELECT colonne(s), ISNULL(nom_colonne, valeur_à_replace)FROM nom_table ;

Pour plus de détails, veuillez lire le SQL | Fonctions nulles article.

70. Nommez l'opérateur utilisé dans la requête pour ajouter deux chaînes ?

En SQL pour ajouter deux chaînes, l'opérateur Concentration est utilisé et son symbole est || .

Conclusion

En conclusion, la maîtrise des questions d'entretien SQL est cruciale pour les analystes de données, les ingénieurs de données et les analystes commerciaux qui souhaitent exceller dans leurs domaines respectifs. Cet article a fourni un ensemble complet de questions et réponses d’entretien SQL conçues pour vous préparer en profondeur.

En comprenant et en pratiquant ces questions, vous améliorez votre capacité à relever efficacement les défis posés lors des entretiens liés à SQL, ouvrant ainsi la voie à une carrière réussie dans le traitement et l'analyse des données. N'oubliez pas que chaque question est l'occasion de démontrer vos prouesses analytiques et votre expertise technique, des qualités essentielles pour tout aspirant professionnel occupant ces rôles critiques.