sql >> Databasteknik >  >> RDS >> Database

De 30 bästa intervjufrågorna för SQL-frågor du måste öva under 2022

SQL eller Structured Query Language är ett standardspråk för att hantera relationsdatabaser. Med den enorma mängden data som finns är det mycket viktigt för oss att förstå hur man använder frågor för att hämta de nödvändiga uppgifterna. I den här artikeln om SQL Query-intervjufrågor kommer jag att diskutera några frågor som du måste öva på för att bli en databasadministratör och kommer också att hjälpa dig att klara dina intervjuer.

De vanligaste intervjufrågorna med SQL-frågor

För din förståelse kommer jag att överväga följande tabeller för att skriva frågor.

Tabell med anställd info:

EmpID

EmpFname

EmpLname

Avdelning

Projekt

Adress

DOB

Kön

1

Sanjay

Mehra

HR

P1

Hyderabad(HYD)

01/12/1976

M

2

Ananya

Mishra

Admin

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

Admin

P2

Delhi(DEL)

03/07/1994

M

Tabell för anställdas position:

EmpID

EmpPosition

DateOfJoining

Lön

1

Ansvarig

01/05/2022

500000

2

Exekutiv

02/05/2022

75000

3

Ansvarig

01/05/2022

90000

2

Lead

02/05/2022

85000

1

Exekutiv

01/05/2022

300000

Låt oss börja med att ta en titt på några av de vanligaste intervjufrågorna med SQL Query,

  • Skriv en fråga för att hämta EmpFname från EmployeeInfo-tabellen med versaler och använd ALIAS-namnet som EmpName.
  • Skriv en fråga för att hämta antalet anställda som arbetar på avdelningen "HR".
  • Skriv en fråga för att få aktuellt datum.
  • Skriv en fråga för att hämta de första fyra tecknen i EmpLname från tabellen EmployeeInfo.
  • Skriv en fråga för att bara hämta platsnamnet (sträng före parenteser) från adresskolumnen i tabellen EmployeeInfo.
  • Skriv en fråga för att skapa en ny tabell som består av data och struktur kopierad från den andra tabellen.
  • Skriv q-fråga för att hitta alla anställda vars lön är mellan 50000 och 100000.
  • Skriv en fråga för att hitta namnen på anställda som börjar med "S"
  • Skriv en fråga för att hämta topp N-poster.
  • Skriv en fråga för att hämta EmpFname och EmpLname i en enda kolumn som "FullName". Förnamnet och efternamnet måste separeras med blanksteg.

F1. Skriv en fråga för att hämta EmpFname från EmployeeInfo-tabellen med versaler och använd ALIAS-namnet som EmpName.

SELECT UPPER(EmpFname) AS EmpName FROM EmployeeInfo;

F2. Skriv en fråga för att hämta antalet anställda som arbetar på avdelningen "HR".

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

F3. Skriv en fråga för att få aktuellt datum.

Du kan skriva en fråga enligt följande i SQL Server:

SELECT GETDATE();

Du kan skriva en fråga enligt följande i MySQL:

SELECT SYSTDATE();

F4. Skriv en fråga för att hämta de första fyra tecknen i EmpLname från tabellen EmployeeInfo.

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

F5. Skriv en fråga för att bara hämta platsnamnet (sträng före parenteser) från adresskolumnen i tabellen EmployeeInfo.

Använder MID-funktionen i MySQL

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

F6. Skriv en fråga för att skapa en ny tabell som består av data och struktur kopierad från den andra tabellen.

Använda kommandot SELECT INTO:

SELECT * INTO NewTable FROM EmployeeInfo WHERE 1 = 0;

Använda kommandot CREATE i MySQL:

CREATE TABLE NewTable AS SELECT * FROM EmployeeInfo;

Fråga 7. Skriv q fråga för att hitta alla anställda vars lön är mellan 50000 och 100000.

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

F8. Skriv en fråga för att hitta namnen på anställda som börjar med "S"

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

Fråga 9. Skriv en fråga för att hämta topp N-poster.

Genom att använda TOP-kommandot i SQL Server:

SELECT TOP N * FROM EmployeePosition ORDER BY Salary DESC;

Genom att använda kommandot LIMIT i MySQL:

SELECT * FROM EmpPosition ORDER BY Salary DESC LIMIT N;

F10. Skriv en fråga för att hämta EmpFname och EmpLname i en enda kolumn som "FullName". Förnamnet och efternamnet måste separeras med mellanslag.

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

F11. Skriv en fråga hitta antal anställda vars DOB är mellan 02/05/1970 till 31/12/1975 och är grupperade efter kön

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

F12. Skriv en fråga för att hämta alla poster från tabellen EmployeeInfo sorterade efter EmpLname i fallande ordning och avdelning i stigande ordning.

För att sortera posterna i stigande och fallande ordning måste du använda ORDER BY-satsen i SQL.

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

F13. Skriv en fråga för att hämta information om anställda vars arbetsnamn slutar med alfabetet "A" och innehåller fem alfabet.

För att hämta detaljer som matchar ett visst värde måste du använda LIKE-operatorn i SQL.

 
SELECT * FROM EmployeeInfo WHERE EmpLname LIKE '____a';

F14. Skriv en fråga för att hämta information om alla anställda utom de anställda med förnamn, "Sanjay" och "Sonia" från tabellen EmployeeInfo.

 
SELECT * FROM EmployeeInfo WHERE EmpFname NOT IN ('Sanjay','Sonia');
Vill du utveckla dig själv för att komma vidare i din karriär? Kolla in den här videon

Top 10 tekniker att lära sig 2022 | Edureka

F15. Skriv en fråga för att hämta information om anställda med adressen "DELHI(DEL)".

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

F16. Skriv en förfrågan för att hämta alla anställda som också innehar chefsbefattningen.

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

F17. Skriv en fråga för att hämta avdelningen vis antal anställda sorterade efter avdelningens antal i stigande ordning.

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

F18. Skriv en fråga för att beräkna jämna och udda poster från en tabell.

För att hämta jämna poster från en tabell måste du använda MOD()-funktionen enligt följande:

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

På samma sätt, för att hämta de udda posterna från en tabell, kan du skriva en fråga enligt följande:

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

F19. Skriv en SQL-fråga för att hämta personalinformation från EmployeeInfo-tabellen som har ett datum för anslutning i EmployeePosition-tabellen.

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

F20. Skriv en fråga för att hämta två lägsta och högsta löner från tabellen EmployeePosition.

För att hämta två minimilöner kan du skriva en fråga enligt nedan:

 
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;

F21. Skriv en fråga för att hitta den N:e högsta lönen i tabellen utan att använda TOP/limit-nyckelordet.

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

F22. Skriv en fråga för att hämta dubblettposter från en tabell.

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

F23. Skriv en fråga för att hämta listan över anställda som arbetar på samma avdelning.

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

F24. Skriv en fråga för att hämta de tre senaste posterna från tabellen 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;

F25. Skriv en fråga för att hitta den tredje högsta lönen från EmpPosition-tabellen.

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

F26. Skriv en fråga för att visa den första och den sista posten från tabellen EmployeeInfo.

För att visa den första posten från EmployeeInfo-tabellen kan du skriva en fråga enligt följande:

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

För att visa den sista posten från EmployeeInfo-tabellen kan du skriva en fråga enligt följande:

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

F27. Skriv en fråga för att lägga till e-postvalidering till din databas

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

F28. Skriv en fråga för att hämta avdelningar som har mindre än 2 anställda som arbetar i den.

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

F29. Skriv en fråga för att hämta EmpPostion tillsammans med totala löner som betalats för var och en av dem.

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

F30. Skriv en fråga för att hämta 50 % av poster från tabellen EmployeeInfo.

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

Så detta för oss till slutet av artikeln om SQL Query Interview Questions. Jag hoppas att den här uppsättningen SQL Query Intervjufrågor kommer att hjälpa dig att lyckas med din anställningsintervju. Allt gott för din intervju!

Kolla in denna MySQL DBA-certifieringsutbildning av Edureka, ett pålitligt onlineutbildningsföretag med ett nätverk of mer än 250 000 nöjda elever spridda över hela världen. Den här kursen utbildar dig i kärnkoncepten och avancerade verktyg och tekniker för att hantera data och administrera MySQL-databasen. Det inkluderar praktisk inlärning av koncept som MySQL Workbench, MySQL Server, Data Modeling, MySQL Connector, Database Design, MySQL Command line, MySQL Functions, etc. I slutet av utbildningen kommer du att kunna skapa och administrera din egen MySQL-databas och hantera data.

Har du en fråga till oss? Vänligen nämn det i kommentarsektionen i denna "SQL-fråga Intervjufrågor” artikel så återkommer vi till dig så snart som möjligt.


  1. PostgreSQL strömmande replikering vs logisk replikering

  2. Hur man aktiverar bulkbehörighet i SQL Server

  3. Slå samman tabeller med SUM-problem i MYSQL

  4. Hur man aktiverar alla begränsningar för kontroll och främmande nyckel i en databas i SQL Server (T-SQL-exempel)