sql >> Database >  >> RDS >> Database

Top 30 SQL Query-interviewvragen die u moet oefenen in 2022

SQL of Structured Query Language is een standaardtaal voor het omgaan met relationele databases. Met de enorme hoeveelheid data die aanwezig is, is het erg belangrijk voor ons om te begrijpen hoe we queries kunnen gebruiken om de benodigde data op te halen. In dit artikel over SQL Query-interviewvragen, zal ik een paar vragen bespreken die u moet oefenen om een ​​databasebeheerder te worden en zal u ook helpen om uw interviews af te ronden.

Belangrijkste sollicitatievragen over SQL-query's

Voor uw beter begrip, zal ik de volgende tabellen overwegen om query's te schrijven.

Tabel met personeelsinfo:

EmpID

EmpFname

EmpLname

Afdeling

Project

Adres

GEBOUW

Gender

1

Sanjay

Mehra

HR

P1

Hyderabad(HYD)

01/12/1976

M

2

Ananya

Mishra

Beheerder

P2

Delhi(DEL)

05/02/1968

F

3

Rohan

Diwan

Account

P3

Mumbai(BOM)

01/01/1980

M

4

Sonia

Kulkarni

HR

P1

Hyderabad(HYD)

05/02/1992

F

5

Ankit

Kapoor

Beheerder

P2

Delhi(DEL)

07/03/1994

M

Werknemerspositietabel:

EmpID

EmpPositie

DateOfJoining

Salaris

1

Beheerder

05/01/2022

500000

2

Uitvoerder

05/02/2022

75000

3

Beheerder

05/01/2022

90000

2

Lead

05/02/2022

85000

1

Uitvoerder

05/01/2022

300000

Laten we beginnen met een kijkje te nemen bij enkele van de meest gestelde vragen over SQL Query-interviews,

  • Schrijf een query om de EmpFname uit de EmployeeInfo-tabel in hoofdletters op te halen en gebruik de ALIAS-naam als EmpName.
  • Schrijf een vraag om het aantal medewerkers op te halen dat op de afdeling 'HR' werkt.
  • Schrijf een vraag om de huidige datum te krijgen.
  • Schrijf een query om de eerste vier tekens van EmpLname uit de tabel EmployeeInfo op te halen.
  • Schrijf een query om alleen de plaatsnaam (tekenreeks vóór haakjes) op te halen uit de kolom Adres van de tabel EmployeeInfo.
  • Schrijf een query om een ​​nieuwe tabel te maken die bestaat uit gegevens en structuur die uit de andere tabel zijn gekopieerd.
  • Schrijf een q-query om alle werknemers te vinden met een salaris tussen 50000 en 100000.
  • Schrijf een zoekopdracht om de namen te vinden van werknemers die beginnen met 'S'
  • Schrijf een zoekopdracht om de N-records op te halen.
  • Schrijf een query om de EmpFname en EmpLname in een enkele kolom op te halen als "FullName". De voornaam en de achternaam moeten worden gescheiden door een spatie.

Q1. Schrijf een query om de EmpFname op te halen uit de EmployeeInfo-tabel in hoofdletters en gebruik de ALIAS-naam als EmpName.

SELECT UPPER(EmpFname) AS EmpName FROM EmployeeInfo;

Q2. Schrijf een vraag om het aantal medewerkers op te halen dat op de afdeling 'HR' werkt.

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

Q3. Schrijf een zoekopdracht om de huidige datum te krijgen.

U kunt een query als volgt schrijven in SQL Server:

SELECT GETDATE();

U kunt in MySQL als volgt een query schrijven:

SELECT SYSTDATE();

Q4. Schrijf een query om de eerste vier tekens van EmpLname uit de tabel EmployeeInfo op te halen.

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

Q5. Schrijf een query om alleen de plaatsnaam (tekenreeks vóór haakjes) op te halen uit de kolom Adres van de tabel EmployeeInfo.

De MID-functie gebruiken in MySQL

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

Q6. Schrijf een query om een ​​nieuwe tabel te maken die bestaat uit gegevens en structuur die zijn gekopieerd uit de andere tabel.

Het SELECT INTO-commando gebruiken:

SELECT * INTO NewTable FROM EmployeeInfo WHERE 1 = 0;

Het CREATE-commando gebruiken in MySQL:

CREATE TABLE NewTable AS SELECT * FROM EmployeeInfo;

Q7. Schrijf een q-query om alle werknemers te vinden met een salaris tussen 50000 en 100000.

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

Q8. Schrijf een zoekopdracht om de namen te vinden van werknemers die beginnen met 'S'

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

Q9. Schrijf een zoekopdracht om de N-records op te halen.

Door het TOP-commando in SQL Server te gebruiken:

SELECT TOP N * FROM EmployeePosition ORDER BY Salary DESC;

Door het LIMIT-commando in MySQL te gebruiken:

SELECT * FROM EmpPosition ORDER BY Salary DESC LIMIT N;

Q10. Schrijf een query om de EmpFname en EmpLname in een enkele kolom op te halen als "FullName". De voornaam en de achternaam moeten worden gescheiden door een spatie.

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

Q11. Schrijf een zoekopdracht vind het aantal werknemers met een geboortedatum tussen 02/05/1970 en 31/12/1975 en gegroepeerd volgens geslacht

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

Q12. Schrijf een query om alle records op te halen uit de EmployeeInfo-tabel, gerangschikt op EmpLname in aflopende volgorde en Afdeling in oplopende volgorde.

Om de records in oplopende en aflopende volgorde te ordenen, moet u het ORDER BY-statement in SQL gebruiken.

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

Q13. Schrijf een zoekopdracht om details op te halen van werknemers wiens EmpLname eindigt op een alfabet 'A' en vijf alfabetten bevat.

Om details op te halen met een bepaalde waarde, moet je de LIKE-operator in SQL gebruiken.

 
SELECT * FROM EmployeeInfo WHERE EmpLname LIKE '____a';

Q14. Schrijf een zoekopdracht om details van alle werknemers op te halen, met uitzondering van de werknemers met voornamen, "Sanjay" en "Sonia" uit de EmployeeInfo-tabel.

 
SELECT * FROM EmployeeInfo WHERE EmpFname NOT IN ('Sanjay','Sonia');
Wil je jezelf bijscholen om vooruit te komen in je carrière? Bekijk deze video

Top 10 technologieën om te leren in 2022 | Edureka

Q15. Schrijf een vraag om details van werknemers op te halen met het adres "DELHI(DEL)".

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

Q16. Schrijf een zoekopdracht om alle medewerkers op te halen die ook de leidinggevende functie hebben.

 
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. Schrijf een vraag om de afdeling op te halen -gewijs aantal medewerkers gesorteerd op afdelingstelling in oplopende volgorde.

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

Q18. Schrijf een query om de even en oneven records uit een tabel te berekenen.

Om de even records uit een tabel op te halen, moet u de functie MOD() als volgt gebruiken:

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

Op dezelfde manier kunt u, om de oneven records uit een tabel op te halen, als volgt een query schrijven:

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

Q19. Schrijf een SQL-query om werknemersgegevens op te halen uit de EmployeeInfo-tabel die een datum van indiensttreding hebben in de EmployeePosition-tabel.

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

Q20. Schrijf een query om twee minimum- en maximumsalarissen op te halen uit de tabel EmployeePosition.

Om twee minimumsalarissen op te halen, kunt u een vraag stellen zoals hieronder:

 
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. Schrijf een zoekopdracht om het N-de hoogste salaris uit de tabel te vinden zonder TOP/limit-zoekwoord te gebruiken.

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

Q22. Schrijf een query om dubbele records uit een tabel op te halen.

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

Q23. Schrijf een vraag om de lijst met werknemers op te halen die op dezelfde afdeling werken.

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

Q24. Schrijf een query om de laatste 3 records uit de EmployeeInfo-tabel op te halen.

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. Schrijf een zoekopdracht om het op twee na hoogste salaris uit de EmpPosition-tabel te vinden.

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

Q26. Schrijf een query om het eerste en het laatste record uit de EmployeeInfo-tabel weer te geven.

Om het eerste record uit de EmployeeInfo-tabel weer te geven, kunt u als volgt een query schrijven:

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

Om het laatste record uit de EmployeeInfo-tabel weer te geven, kunt u als volgt een query schrijven:

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

Q27. Schrijf een vraag om e-mailvalidatie aan uw database toe te voegen

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

Q28. Schrijf een vraag om afdelingen op te halen waar minder dan 2 werknemers in werken.

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

Q29. Schrijf een zoekopdracht om EmpPostion op te halen, samen met de totale salarissen die voor elk van hen zijn betaald.

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

Q30. Schrijf een query om 50% records op te halen uit de EmployeeInfo-tabel.

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

Dit brengt ons bij het einde van het artikel over SQL Query-interviewvragen. Ik hoop dat deze reeks SQL Query-interviewvragen u zal helpen uw sollicitatiegesprek te verbeteren. Het allerbeste voor je sollicitatiegesprek!

Bekijk deze MySQL DBA-certificeringstraining van Edureka, een vertrouwd online leerbedrijf met een netwerk of meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. Deze cursus leidt u op in de kernconcepten en geavanceerde tools en technieken om gegevens te beheren en de MySQL-database te beheren. Het omvat hands-on leren over concepten zoals MySQL Workbench, MySQL Server, Data Modeling, MySQL Connector, Database Design, MySQL Command line, MySQL Functions, etc. Aan het einde van de training ben je in staat om je eigen MySQL Database te creëren en te beheren en gegevens beheren.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van deze "SQL-query Interview Vragen' en we nemen zo snel mogelijk contact met je op.


  1. Vraag naar ORDER BY het aantal rijen dat is geretourneerd door een andere SELECT

  2. mysqli of PDO - wat zijn de voor- en nadelen?

  3. MySQL vs. MariaDB:wat u moet weten

  4. Innerlijke drie tafels samenvoegen