SQL eller Structured Query Language er et standardsprog til håndtering af relationelle databaser. Med den enorme mængde data til stede, er det meget vigtigt for os at forstå, hvordan man bruger forespørgsler til at hente de nødvendige data. I denne artikel om SQL Query Interview Questions vil jeg diskutere et par spørgsmål, som du skal øve dig på for at blive databaseadministrator, og jeg vil også hjælpe dig med at klare dine interviews.
Topspørgsmål til SQL-forespørgsler
For din bedre forståelse vil jeg overveje følgende tabeller for at skrive forespørgsler.
Tabel med medarbejderoplysninger:
EmpID | EmpFname | EmpLname | Afdeling | Projekt | Adresse | DOB | Køn |
1 | Sanjay | Mehra | HR | P1 | Hyderabad(HYD) | 01/12/1976 | M |
2 | Ananya | Mishra | Administrator | P2 | Delhi(DEL) | 02/05/1968 | F |
3 | Rohan | Diwan | Konto | P3 | Mumbai(BOM) | 01/01/1980 | M |
4 | Sonia | Kulkarni | HR | P1 | Hyderabad(HYD) | 02/05/1992 | F |
5 | Ankit | Kapoor | Administrator | P2 | Delhi(DEL) | 03/07/1994 | M |
Medarbejderpositionstabel:
EmpID | EmpPosition | Tilføjelsesdato | Løn |
1 | Manager | 01/05/2022 | 500.000 |
2 | Ledende | 02/05/2022 | 75000 |
3 | Manager | 01/05/2022 | 90000 |
2 | Lead | 02/05/2022 | 85000 |
1 | Ledende | 01/05/2022 | 300.000 |
Lad os starte med at tage et kig på nogle af de hyppigst stillede SQL Query-interviewspørgsmål,
- Skriv en forespørgsel for at hente EmpFname fra EmployeeInfo-tabellen med store bogstaver og brug ALIAS-navnet som EmpName.
- Skriv en forespørgsel for at hente antallet af medarbejdere, der arbejder i afdelingen "HR".
- Skriv en forespørgsel for at få den aktuelle dato.
- Skriv en forespørgsel for at hente de første fire tegn i EmpLname fra EmployeeInfo-tabellen.
- Skriv en forespørgsel for kun at hente stednavnet (streng før parenteser) fra kolonnen Adresse i tabellen EmployeeInfo.
- Skriv en forespørgsel for at oprette en ny tabel, der består af data og struktur kopieret fra den anden tabel.
- Skriv en forespørgsel for at finde alle de medarbejdere, hvis løn er mellem 50000 og 100000.
- Skriv en forespørgsel for at finde navnene på medarbejdere, der begynder med 'S'
- Skriv en forespørgsel for at hente top N poster.
- Skriv en forespørgsel for at hente EmpFname og EmpLname i en enkelt kolonne som "FullName". Fornavnet og efternavnet skal adskilles med mellemrum.
Q1. Skriv en forespørgsel for at hente EmpFname fra EmployeeInfo-tabellen med store bogstaver og brug ALIAS-navnet som EmpName.
SELECT UPPER(EmpFname) AS EmpName FROM EmployeeInfo;
Q2. Skriv en forespørgsel for at hente antallet af medarbejdere, der arbejder i afdelingen 'HR'.
SELECT COUNT(*) FROM EmployeeInfo WHERE Department = 'HR';
Q3. Skriv en forespørgsel for at få den aktuelle dato.
Du kan skrive en forespørgsel som følger i SQL Server:
SELECT GETDATE();
Du kan skrive en forespørgsel som følger i MySQL:
SELECT SYSTDATE();
Q4. Skriv en forespørgsel for at hente de første fire tegn i EmpLname fra EmployeeInfo-tabellen.
SELECT SUBSTRING(EmpLname, 1, 4) FROM EmployeeInfo;
Sp5. Skriv en forespørgsel for kun at hente stednavnet (streng før parenteser) fra kolonnen Adresse i tabellen EmployeeInfo.
Brug af MID-funktionen i MySQL
SELECT MID(Address, 0, LOCATE('(',Address)) FROM EmployeeInfo;
Using SUBSTRING
SELECT SUBSTRING(Address, 1, CHARINDEX('(',Address)) FROM EmployeeInfo;
Q6. Skriv en forespørgsel for at oprette en ny tabel, som består af data og struktur kopieret fra den anden tabel.
Brug af kommandoen SELECT INTO:
SELECT * INTO NewTable FROM EmployeeInfo WHERE 1 = 0;
Brug af CREATE-kommandoen i MySQL:
CREATE TABLE NewTable AS SELECT * FROM EmployeeInfo;
Spørgsmål 7. Skriv q forespørgsel for at finde alle de medarbejdere, hvis løn er mellem 50000 og 100000.
SELECT * FROM EmployeePosition WHERE Salary BETWEEN '50000' AND '100000';
Q8. Skriv en forespørgsel for at finde navnene på medarbejdere, der begynder med 'S'
SELECT * FROM EmployeeInfo WHERE EmpFname LIKE 'S%';
Spørgsmål 9. Skriv en forespørgsel for at hente top N poster.
Ved at bruge TOP-kommandoen i SQL Server:
SELECT TOP N * FROM EmployeePosition ORDER BY Salary DESC;
Ved at bruge kommandoen LIMIT i MySQL:
SELECT * FROM EmpPosition ORDER BY Salary DESC LIMIT N;
Q10. Skriv en forespørgsel for at hente EmpFname og EmpLname i en enkelt kolonne som "FullName". Fornavnet og efternavnet skal adskilles med mellemrum.
SELECT CONCAT(EmpFname, ' ', EmpLname) AS 'FullName' FROM EmployeeInfo;
Q11. Skriv en forespørgsel find antallet af medarbejdere, hvis DOB er mellem 02/05/1970 til 31/12/1975 og er grupperet efter køn
SELECT COUNT(*), Gender FROM EmployeeInfo WHERE DOB BETWEEN '02/05/1970 ' AND '31/12/1975' GROUP BY Gender;
Q12. Skriv en forespørgsel for at hente alle posterne fra EmployeeInfo-tabellen sorteret efter EmpLname i faldende rækkefølge og afdeling i stigende rækkefølge.
For at sortere posterne i stigende og faldende rækkefølge, skal du bruge ORDER BY-sætningen i SQL.
SELECT * FROM EmployeeInfo ORDER BY EmpFname desc, Department asc;
Sp13. Skriv en forespørgsel for at hente oplysninger om medarbejdere, hvis EmpLname ender med et alfabet "A" og indeholder fem alfabeter.
For at hente detaljer, der matcher en bestemt værdi, skal du bruge LIKE-operatoren i SQL.
SELECT * FROM EmployeeInfo WHERE EmpLname LIKE '____a';
Q14. Skriv en forespørgsel for at hente oplysninger om alle medarbejdere undtagen medarbejdere med fornavne, "Sanjay" og "Sonia" fra tabellen EmployeeInfo.
SELECT * FROM EmployeeInfo WHERE EmpFname NOT IN ('Sanjay','Sonia');Vil du opkvalificere dig selv for at komme videre i din karriere? Tjek denne video
Top 10 teknologier at lære i 2022 | Edureka
Sp15. Skriv en forespørgsel for at hente oplysninger om medarbejdere med adressen "DELHI(DEL)".
SELECT * FROM EmployeeInfo WHERE Address LIKE 'DELHI(DEL)%';
Sp16. Skriv en forespørgsel for at hente alle medarbejdere, der også besidder lederstillingen.
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. Skriv en forespørgsel for at hente afdelingen vis optælling af medarbejdere sorteret efter afdelingens antal i stigende rækkefølge.
SELECT Department, count(EmpID) AS EmpDeptCount FROM EmployeeInfo GROUP BY Department ORDER BY EmpDeptCount ASC;
Q18. Skriv en forespørgsel for at beregne lige og ulige poster fra en tabel.
For at hente de lige poster fra en tabel, skal du bruge MOD()-funktionen som følger:
SELECT EmpID FROM (SELECT rowno, EmpID from EmployeeInfo) WHERE MOD(rowno,2)=0;
For at hente de ulige poster fra en tabel kan du på samme måde skrive en forespørgsel som følger:
SELECT EmpID FROM (SELECT rowno, EmpID from EmployeeInfo) WHERE MOD(rowno,2)=1;
Q19. Skriv en SQL-forespørgsel for at hente medarbejderoplysninger fra EmployeeInfo-tabellen, som har en dato for tiltrædelse i EmployeePosition-tabellen.
SELECT * FROM EmployeeInfo E WHERE EXISTS (SELECT * FROM EmployeePosition P WHERE E.EmpId = P.EmpId);
Q20. Skriv en forespørgsel for at hente to minimums- og maksimumslønninger fra tabellen EmployeePosition.
For at hente to minimumslønninger kan du skrive en forespørgsel som nedenfor:
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. Skriv en forespørgsel for at finde den N. højeste løn fra tabellen uden at bruge TOP/limit søgeord.
SELECT Salary FROM EmployeePosition E1 WHERE N-1 = ( SELECT COUNT( DISTINCT ( E2.Salary ) ) FROM EmployeePosition E2 WHERE E2.Salary > E1.Salary );
Q22. Skriv en forespørgsel for at hente duplikerede poster fra en tabel.
SELECT EmpID, EmpFname, Department COUNT(*) FROM EmployeeInfo GROUP BY EmpID, EmpFname, Department HAVING COUNT(*) > 1;
Q23. Skriv en forespørgsel for at hente listen over medarbejdere, der arbejder i samme afdeling.
Select DISTINCT E.EmpID, E.EmpFname, E.Department FROM EmployeeInfo E, Employee E1 WHERE E.Department = E1.Department AND E.EmpID != E1.EmpID;
Q24. Skriv en forespørgsel for at hente de sidste 3 poster fra EmployeeInfo-tabellen.
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. Skriv en forespørgsel for at finde den tredje højeste løn fra EmpPosition-tabellen.
SELECT TOP 1 salary FROM( SELECT TOP 3 salary FROM employee_table ORDER BY salary DESC) AS emp ORDER BY salary ASC;
Q26. Skriv en forespørgsel for at vise den første og den sidste post fra tabellen EmployeeInfo.
For at få vist den første post fra EmployeeInfo-tabellen kan du skrive en forespørgsel som følger:
SELECT * FROM EmployeeInfo WHERE EmpID = (SELECT MIN(EmpID) FROM EmployeeInfo);
For at få vist den sidste post fra EmployeeInfo-tabellen kan du skrive en forespørgsel som følger:
SELECT * FROM EmployeeInfo WHERE EmpID = (SELECT MAX(EmpID) FROM EmployeeInfo);
Q27. Skriv en forespørgsel for at tilføje e-mail-validering til din database
SELECT Email FROM EmployeeInfo WHERE NOT REGEXP_LIKE(Email, ‘[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}’, ‘i’);
Q28. Skriv en forespørgsel for at hente afdelinger, der har mindre end 2 ansatte, der arbejder i den.
SELECT DEPARTMENT, COUNT(EmpID) as 'EmpNo' FROM EmployeeInfo GROUP BY DEPARTMENT HAVING COUNT(EmpD) < 2;
Q29. Skriv en forespørgsel for at hente EmpPostion sammen med de samlede lønninger, der er betalt for hver af dem.
SELECT EmpPosition, SUM(Salary) from EmployeePosition GROUP BY EmpPosition;
Q30. Skriv en forespørgsel for at hente 50 % poster fra EmployeeInfo-tabellen.
SELECT * FROM EmployeeInfo WHERE EmpID <= (SELECT COUNT(EmpID)/2 from EmployeeInfo);
Så dette bringer os til slutningen af artiklen om SQL Query Interview Questions. Jeg håber, at dette sæt SQL Query Interview Spørgsmål vil hjælpe dig med at klare din jobsamtale. Alt godt for dit interview!
Tjek denne MySQL DBA-certificeringsuddannelse af Edureka, en betroet online læringsvirksomhed med et netværk of mere end 250.000 tilfredse elever spredt over hele kloden. Dette kursus træner dig i kernekoncepter og avancerede værktøjer og teknikker til at administrere data og administrere MySQL-databasen. Det inkluderer praktisk læring om begreber som MySQL Workbench, MySQL Server, Data Modeling, MySQL Connector, Database Design, MySQL Command line, MySQL Functions osv. Slut på uddannelsen vil du være i stand til at oprette og administrere din egen MySQL Database og administrere data.
Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne "SQL-forespørgsel Interviewspørgsmål” artikel, og vi vil vende tilbage til dig så hurtigt som muligt.