Database
 sql >> Base de données >  >> RDS >> Database

Top 30 des questions d'entretien sur les requêtes SQL que vous devez pratiquer en 2022

SQL ou Structured Query Language est un langage standard pour traiter les bases de données relationnelles. Avec l'énorme quantité de données présentes, il est très important pour nous de comprendre comment utiliser les requêtes pour récupérer les données requises. Dans cet article sur les questions d'entrevue SQL Query, je discuterai de quelques requêtes que vous devez pratiquer pour devenir administrateur de base de données et vous aiderai également à réussir vos entretiens.

Les principales questions d'entretien sur les requêtes SQL

Pour votre meilleure compréhension, je considérerai les tableaux suivants pour rédiger des requêtes.

Tableau d'informations sur les employés :

EmpID

EmpFname

EmpLname

Département

Projet

Adresse

DOB

Sexe

1

Sanjay

Mehra

HR

P1

Hyderabad(HYD)

12/01/1976

M

2

Ananya

Mishra

Administrateur

P2

Delhi(DEL)

02/05/1968

F

3

Rohan

Diwan

Compte

P3

Mumbai (nomenclature)

01/01/1980

M

4

Sonia

Kulkarni

HR

P1

Hyderabad(HYD)

05/02/1992

F

5

Ankit

Kapoor

Administrateur

P2

Delhi(DEL)

07/03/1994

M

Tableau des positions des employés :

EmpID

EmpPosition

DateOfJoining

Salaire

1

Gestionnaire

01/05/2022

500000

2

Exécutif

02/05/2022

75 000

3

Gestionnaire

01/05/2022

90000

2

Avance

02/05/2022

85 000

1

Exécutif

01/05/2022

300 000

Commençons par jeter un coup d'œil à certaines des questions d'entretien SQL Query les plus fréquemment posées,

  • Écrivez une requête pour récupérer le EmpFname de la table EmployeeInfo en majuscules et utilisez le nom ALIAS comme EmpName.
  • Écrivez une requête pour récupérer le nombre d'employés travaillant dans le service "RH".
  • Écrivez une requête pour obtenir la date actuelle.
  • Écrivez une requête pour récupérer les quatre premiers caractères de EmpLname à partir de la table EmployeeInfo.
  • Écrivez une requête pour récupérer uniquement le nom du lieu (chaîne avant crochets) dans la colonne Adresse de la table EmployeeInfo.
  • Écrivez une requête pour créer une nouvelle table composée de données et d'une structure copiées à partir de l'autre table.
  • Écrivez q requête pour trouver tous les employés dont le salaire est compris entre 50 000 et 100 000.
  • Écrivez une requête pour trouver les noms des employés commençant par "S"
  • Écrivez une requête pour récupérer les N premiers enregistrements.
  • Écrivez une requête pour récupérer EmpFname et EmpLname dans une seule colonne en tant que "FullName". Le prénom et le nom doivent être séparés par un espace.

Q1. Écrivez une requête pour récupérer le EmpFname de la table EmployeeInfo en majuscules et utilisez le nom ALIAS comme EmpName.

SELECT UPPER(EmpFname) AS EmpName FROM EmployeeInfo;

Q2. Rédigez une requête pour récupérer le nombre d'employés travaillant dans le département "RH".

SELECT COUNT(*) FROM EmployeeInfo WHERE Department = 'HR';

Q3. Rédigez une requête pour obtenir la date actuelle.

Vous pouvez écrire une requête comme suit dans SQL Server :

SELECT GETDATE();

Vous pouvez écrire une requête comme suit dans MySQL :

SELECT SYSTDATE();

Q4. Écrivez une requête pour récupérer les quatre premiers caractères de EmpLname de la table EmployeeInfo.

SELECT SUBSTRING(EmpLname, 1, 4) FROM EmployeeInfo;

Q5. Écrivez une requête pour récupérer uniquement le nom du lieu (chaîne avant crochets) dans la colonne Adresse de la table EmployeeInfo.

Utilisation de la fonction MID dans MySQL

SELECT MID(Address, 0, LOCATE('(',Address)) FROM EmployeeInfo;
Using SUBSTRING
SELECT SUBSTRING(Address, 1, CHARINDEX('(',Address)) FROM EmployeeInfo;

Q6. Écrivez une requête pour créer une nouvelle table composée de données et d'une structure copiées à partir de l'autre table.

Utilisation de la commande SELECT INTO :

SELECT * INTO NewTable FROM EmployeeInfo WHERE 1 = 0;

Utilisation de la commande CREATE dans MySQL :

CREATE TABLE NewTable AS SELECT * FROM EmployeeInfo;

Q7. Écrivez q requête pour trouver tous les employés dont le salaire est compris entre 50 000 et 100 000.

SELECT * FROM EmployeePosition WHERE Salary BETWEEN '50000' AND '100000';

Q8. Rédigez une requête pour trouver les noms des employés commençant par "S"

SELECT * FROM EmployeeInfo WHERE EmpFname LIKE 'S%';

Q9. Écrivez une requête pour récupérer les N premiers enregistrements.

En utilisant la commande TOP dans SQL Server :

SELECT TOP N * FROM EmployeePosition ORDER BY Salary DESC;

En utilisant la commande LIMIT dans MySQL :

SELECT * FROM EmpPosition ORDER BY Salary DESC LIMIT N;

Q10. Écrivez une requête pour récupérer EmpFname et EmpLname dans une seule colonne en tant que "FullName". Le prénom et le nom doivent être séparés par un espace.

SELECT CONCAT(EmpFname, ' ', EmpLname) AS 'FullName' FROM EmployeeInfo;

Q11. Rédigez une requête pour trouver le nombre d'employés dont la date de naissance est comprise entre le 02/05/1970 et le 31/12/1975 et sont regroupés par sexe

SELECT COUNT(*), Gender FROM EmployeeInfo WHERE DOB BETWEEN '02/05/1970 ' AND '31/12/1975' GROUP BY Gender;

Q12. Écrivez une requête pour récupérer tous les enregistrements de la table EmployeeInfo classés par EmpLname dans l'ordre décroissant et Department dans l'ordre croissant.

Pour trier les enregistrements par ordre croissant et décroissant, vous devez utiliser l'instruction ORDER BY en SQL.

SELECT * FROM EmployeeInfo ORDER BY EmpFname desc, Department asc;

Q13. Écrivez une requête pour récupérer les détails des employés dont EmpLname se termine par un alphabet "A" et contient cinq alphabets.

Pour récupérer les détails d'une certaine valeur, vous devez utiliser l'opérateur LIKE en SQL.

 
SELECT * FROM EmployeeInfo WHERE EmpLname LIKE '____a';

Q14. Rédigez une requête pour récupérer les détails de tous les employés, à l'exception des employés dont les prénoms sont "Sanjay" et "Sonia" de la table EmployeeInfo.

 
SELECT * FROM EmployeeInfo WHERE EmpFname NOT IN ('Sanjay','Sonia');
Vous souhaitez vous perfectionner pour progresser dans votre carrière ? Regardez cette vidéo

Top 10 des technologies à apprendre en 2022 | Edureka

Q15. Rédigez une requête pour récupérer les détails des employés dont l'adresse est "DELHI(DEL)".

 
SELECT * FROM EmployeeInfo WHERE Address LIKE 'DELHI(DEL)%';

Q16. Rédigez une requête pour récupérer tous les employés qui occupent également le poste de direction.

 
SELECT E.EmpFname, E.EmpLname, P.EmpPosition 
FROM EmployeeInfo E INNER JOIN EmployeePosition P ON 
E.EmpID = P.EmpID AND P.EmpPosition IN ('Manager');

Q17. Écrire une requête pour récupérer le département -nombre d'employés triés par nombre de départements dans l'ordre croissant.

 
SELECT Department, count(EmpID) AS EmpDeptCount 
FROM EmployeeInfo GROUP BY Department 
ORDER BY EmpDeptCount ASC;

Q18. Écrivez une requête pour calculer les enregistrements pairs et impairs d'une table.

Pour récupérer les enregistrements pairs d'une table, il faut utiliser la fonction MOD() comme suit :

 
SELECT EmpID FROM (SELECT rowno, EmpID from EmployeeInfo) WHERE MOD(rowno,2)=0;

De même, pour récupérer les enregistrements impairs d'une table, vous pouvez écrire une requête comme suit :

 
SELECT EmpID FROM (SELECT rowno, EmpID from EmployeeInfo) WHERE MOD(rowno,2)=1;

Q19. Écrivez une requête SQL pour récupérer les détails des employés de la table EmployeeInfo qui ont une date d'adhésion dans la table EmployeePosition.

 
SELECT * FROM EmployeeInfo E 
WHERE EXISTS 
(SELECT * FROM EmployeePosition P WHERE E.EmpId = P.EmpId);

Q20. Écrivez une requête pour récupérer deux salaires minimum et maximum de la table EmployeePosition.

Pour récupérer deux salaires minimum, vous pouvez écrire une requête comme ci-dessous :

 
SELECT DISTINCT Salary FROM EmployeePosition E1 
 WHERE 2 >= (SELECTCOUNT(DISTINCT Salary)FROM EmployeePosition E2 
  WHERE E1.Salary >= E2.Salary) ORDER BY E1.Salary DESC;
To retrieve two maximum salaries, you can write a query as below: 
 
SELECT DISTINCT Salary FROM EmployeePosition E1 
 WHERE 2 >= (SELECTCOUNT(DISTINCT Salary) FROM EmployeePosition E2 
  WHERE E1.Salary <= E2.Salary) ORDER BY E1.Salary DESC;

Q21. Écrivez une requête pour trouver le Nième salaire le plus élevé du tableau sans utiliser le mot-clé TOP/limit.

 
SELECT Salary 
FROM EmployeePosition E1 
WHERE N-1 = ( 
      SELECT COUNT( DISTINCT ( E2.Salary ) ) 
	  FROM EmployeePosition E2 
	  WHERE E2.Salary >  E1.Salary );

Q22. Rédigez une requête pour récupérer les enregistrements en double d'une table.

 
SELECT EmpID, EmpFname, Department COUNT(*) 
FROM EmployeeInfo GROUP BY EmpID, EmpFname, Department 
HAVING COUNT(*) > 1;

Q23. Rédigez une requête pour récupérer la liste des employés travaillant dans le même service.

 
Select DISTINCT E.EmpID, E.EmpFname, E.Department 
FROM EmployeeInfo E, Employee E1 
WHERE E.Department = E1.Department AND E.EmpID != E1.EmpID;

Q24. Écrivez une requête pour récupérer les 3 derniers enregistrements de la table EmployeeInfo.

SELECT * FROM EmployeeInfo WHERE 
EmpID <=3 UNION SELECT * FROM 
(SELECT * FROM EmployeeInfo E ORDER BY E.EmpID DESC) 
AS E1 WHERE E1.EmpID <=3;

Q25. Rédigez une requête pour trouver le troisième salaire le plus élevé dans la table EmpPosition.

SELECT TOP 1 salary
FROM(
SELECT TOP 3 salary
FROM employee_table
ORDER BY salary DESC) AS emp
ORDER BY salary ASC;

Q26. Écrivez une requête pour afficher le premier et le dernier enregistrement de la table EmployeeInfo.

Pour afficher le premier enregistrement de la table EmployeeInfo, vous pouvez écrire une requête comme suit :

SELECT * FROM EmployeeInfo WHERE EmpID = (SELECT MIN(EmpID) FROM EmployeeInfo);

Pour afficher le dernier enregistrement de la table EmployeeInfo, vous pouvez écrire une requête comme suit :

SELECT * FROM EmployeeInfo WHERE EmpID = (SELECT MAX(EmpID) FROM EmployeeInfo);

Q27. Rédigez une requête pour ajouter la validation des e-mails à votre base de données

SELECT Email FROM EmployeeInfo WHERE NOT REGEXP_LIKE(Email, ‘[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}’, ‘i’);

Q28. Rédigez une requête pour récupérer les départements qui comptent moins de 2 employés.

SELECT DEPARTMENT, COUNT(EmpID) as 'EmpNo' FROM EmployeeInfo GROUP BY DEPARTMENT HAVING COUNT(EmpD) < 2;

Q29. Rédigez une requête pour récupérer EmpPostion ainsi que le total des salaires versés pour chacun d'eux.

SELECT EmpPosition, SUM(Salary) from EmployeePosition GROUP BY EmpPosition;

Q30. Écrivez une requête pour récupérer 50 % des enregistrements de la table EmployeeInfo.

SELECT * 
FROM EmployeeInfo WHERE 
EmpID <= (SELECT COUNT(EmpID)/2 from EmployeeInfo);

Cela nous amène donc à la fin de l'article sur les questions d'entretien avec SQL Query. J'espère que cet ensemble de questions d'entrevue SQL Query vous aidera à réussir votre entretien d'embauche. Tout le meilleur pour votre entretien !

Découvrez cette formation de certification MySQL DBA par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau deplus de 250 000 apprenants satisfaits répartis dans le monde entier. Ce cours vous forme aux concepts de base et aux outils et techniques avancés pour gérer les données et administrer la base de données MySQL. Il comprend un apprentissage pratique sur des concepts tels que MySQL Workbench, MySQL Server, la modélisation de données, le connecteur MySQL, la conception de bases de données, la ligne de commande MySQL, les fonctions MySQL, etc. À la fin de la formation, vous serez en mesure de créer et d'administrer votre propre base de données MySQL et gérer les données.

Vous avez une question pour nous ? Veuillez le mentionner dans la section des commentaires de cette "Requête SQL Interview Questions » et nous vous répondrons dans les plus brefs délais.