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.