sql >> Database teknologi >  >> RDS >> Database

Top 30 SQL Query-interviewspørgsmål, du skal praktisere i 2022

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.


  1. Sådan afbrydes udførelsen af ​​en erklæring i PostgreSQL

  2. Vælg Top 10 Records for hver kategori i MySQL

  3. sql geografi til dbgeography?

  4. Vedhæftning af et ContentDocument til et Salesforce Custom Object