sql >> Databáze >  >> RDS >> Database

Top 30 otázek v pohovoru SQL Query, které musíte procvičit v roce 2022

SQL nebo Structured Query Language je standardní jazyk pro práci s relačními databázemi. Vzhledem k obrovskému množství přítomných dat je pro nás velmi důležité pochopit, jak používat dotazy k získání požadovaných dat. V tomto článku o SQL Query Interview Questions budu diskutovat o několika dotazech, které musíte procvičit, abyste se stali správcem databáze, a také vám pomohou zvládnout vaše pohovory.

Nejčastější dotazy k pohovoru o dotazech SQL

Pro vaše lepší pochopení budu při psaní dotazů zvažovat následující tabulky.

Tabulka informací o zaměstnancích:

EmpID

EmpFname

Název EmpL

Oddělení

Projekt

Adresa

DOB

Pohlaví

1

Sanjay

Mehra

HR

P1

Hyderabad(HYD)

01/12/1976

M

2

Ananya

Mishra

Správce

P2

Dillí (DEL)

02/05/1968

F

3

Rohan

Diwan

Účet

P3

Bombaj (BOM)

01/01/1980

M

4

Sonia

Kulkarni

HR

P1

Hyderabad(HYD)

02/05/1992

F

5

Ankit

Kapoor

Správce

P2

Dillí (DEL)

03/07/1994

M

Tabulka pozic zaměstnanců:

EmpID

EmpPosition

DateOfJoining

Plat

1

Správce

01/05/2022

500 000

2

Ředitel

02/05/2022

75 000

3

Správce

01/05/2022

90 000

2

Vedení

02/05/2022

85 000

1

Ředitel

01/05/2022

300 000

Začněme tím, že se podíváme na některé z nejčastěji kladených dotazů na SQL Query,

  • Napište dotaz pro načtení EmpFname z tabulky EmployeeInfo velkými písmeny a použijte název ALIAS jako EmpName.
  • Napište dotaz a zjistěte počet zaměstnanců pracujících v oddělení ‚HR‘.
  • Napište dotaz a získejte aktuální datum.
  • Napište dotaz pro získání prvních čtyř znaků EmpLname z tabulky EmployeeInfo.
  • Napište dotaz pro načtení pouze názvu místa (řetězec před závorkami) ze sloupce Adresa v tabulce EmployeeInfo.
  • Napište dotaz pro vytvoření nové tabulky, která se skládá z dat a struktury zkopírované z jiné tabulky.
  • Napište dotaz q a vyhledejte všechny zaměstnance, jejichž plat je mezi 50 000 až 100 000.
  • Napište dotaz a vyhledejte jména zaměstnanců, která začínají na „S“
  • Napište dotaz k načtení prvních N záznamů.
  • Napište dotaz pro získání EmpFname a EmpLname do jednoho sloupce jako „FullName“. Jméno a příjmení musí být odděleny mezerou.

1. Napište dotaz pro načtení EmpFname z tabulky EmployeeInfo velkými písmeny a použijte název ALIAS jako EmpName.

SELECT UPPER(EmpFname) AS EmpName FROM EmployeeInfo;

Q2. Napište dotaz a zjistěte počet zaměstnanců pracujících v oddělení ‚HR‘.

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

Q3. Napište dotaz, abyste získali aktuální datum.

V SQL Server můžete napsat dotaz následovně:

SELECT GETDATE();

V MySQL můžete napsat dotaz následovně:

SELECT SYSTDATE();

Q4. Napište dotaz pro získání prvních čtyř znaků EmpLname z tabulky EmployeeInfo.

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

O5. Napište dotaz pro načtení pouze názvu místa (řetězec před závorkami) ze sloupce Adresa v tabulce EmployeeInfo.

Použití funkce MID v MySQL

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

O6. Napište dotaz pro vytvoření nové tabulky, která se skládá z dat a struktury zkopírované z jiné tabulky.

Pomocí příkazu VYBRAT DO:

SELECT * INTO NewTable FROM EmployeeInfo WHERE 1 = 0;

Použití příkazu CREATE v MySQL:

CREATE TABLE NewTable AS SELECT * FROM EmployeeInfo;

O7. Napište q dotaz a najděte všechny zaměstnance, jejichž plat je mezi 50 000 až 100 000.

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

O8. Napište dotaz a vyhledejte jména zaměstnanců, která začínají na „S“

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

Otázka 9. Napište dotaz pro načtení prvních N záznamů.

Pomocí příkazu TOP v SQL Server:

SELECT TOP N * FROM EmployeePosition ORDER BY Salary DESC;

Pomocí příkazu LIMIT v MySQL:

SELECT * FROM EmpPosition ORDER BY Salary DESC LIMIT N;

O10. Napište dotaz pro získání EmpFname a EmpLname v jednom sloupci jako „FullName“. Jméno a příjmení musí být odděleny mezerou.

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

O11. Napište dotaz zjistěte počet zaměstnanců, jejichž datum narození je mezi 2. 5. 1970 až 31. 12. 1975 a jsou seskupeni podle pohlaví

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

O12. Napište dotaz pro načtení všech záznamů z tabulky EmployeeInfo seřazených podle EmpLname v sestupném pořadí a oddělení ve vzestupném pořadí.

Chcete-li seřadit záznamy ve vzestupném a sestupném pořadí, musíte v SQL použít příkaz ORDER BY.

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

O13. Napište dotaz pro získání podrobností o zaměstnancích, jejichž EmpLname končí písmenem „A“ a obsahuje pět abeced.

Chcete-li načíst podrobnosti matematické určité hodnoty, musíte v SQL použít operátor LIKE.

 
SELECT * FROM EmployeeInfo WHERE EmpLname LIKE '____a';

O14. Napište dotaz pro získání podrobností o všech zaměstnancích kromě zaměstnanců s křestními jmény „Sanjay“ a „Sonia“ z tabulky EmployeeInfo.

 
SELECT * FROM EmployeeInfo WHERE EmpFname NOT IN ('Sanjay','Sonia');
Chcete se zdokonalit, abyste postoupili ve své kariéře? Podívejte se na toto video

10 nejlepších technologií pro rok 2022 | Edureka

O15. Napište dotaz pro získání podrobností o zaměstnancích s adresou „DELHI(DEL)“.

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

O16. Napište dotaz pro vyhledání všech zaměstnanců, kteří zároveň zastávají manažerskou pozici.

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

O17. Napište dotaz k načtení oddělení podle počtu zaměstnanců seřazených podle počtu oddělení vzestupně.

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

O18. Napište dotaz pro výpočet sudých a lichých záznamů z tabulky.

Chcete-li načíst sudé záznamy z tabulky, musíte použít funkci MOD() následovně:

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

Podobně, chcete-li získat liché záznamy z tabulky, můžete napsat dotaz následovně:

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

O19. Napište SQL dotaz pro získání podrobností o zaměstnancích z tabulky EmployeeInfo, kteří mají datum připojení v tabulce EmployeePosition.

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

O20. Napište dotaz pro získání dvou minimálních a maximálních platů z tabulky EmployeePosition.

Chcete-li získat dva minimální platy, můžete napsat dotaz takto:

 
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;

O21. Napište dotaz a najděte N-tý nejvyšší plat z tabulky bez použití klíčového slova TOP/limit.

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

O22. Napište dotaz pro načtení duplicitních záznamů z tabulky.

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

O23. Napište dotaz pro získání seznamu zaměstnanců pracujících ve stejném oddělení.

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

O24. Napište dotaz pro načtení posledních 3 záznamů z tabulky 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;

O25. Napište dotaz a najděte třetí nejvyšší plat z tabulky EmpPosition.

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

O26. Napište dotaz pro zobrazení prvního a posledního záznamu z tabulky EmployeeInfo.

Chcete-li zobrazit první záznam z tabulky EmployeeInfo, můžete napsat dotaz takto:

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

Chcete-li zobrazit poslední záznam z tabulky EmployeeInfo, můžete napsat dotaz takto:

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

O27. Napište dotaz pro přidání ověření e-mailu do databáze

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

O28. Napište dotaz pro získání oddělení, která mají méně než 2 zaměstnance, kteří v něm pracují.

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

O29. Napište dotaz a načtěte EmpPostion spolu s celkovými mzdami zaplacenými za každého z nich.

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

O30. Napište dotaz pro načtení 50 % záznamů z tabulky EmployeeInfo.

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

Takže tímto se dostáváme na konec článku s dotazy k dotazu SQL. Doufám, že vám tato sada dotazů SQL Query Interview Questions pomůže zvládnout váš pracovní pohovor. Vše nejlepší k pohovoru!

Podívejte se na toto certifikační školení MySQL DBA od Edureka, důvěryhodné online vzdělávací společnosti se sítí ovíce než 250 000 spokojených studentů po celém světě. Tento kurz vás naučí základní koncepty a pokročilé nástroje a techniky pro správu dat a správu databáze MySQL. Zahrnuje praktické učení pojmů jako MySQL Workbench, MySQL Server, Data Modeling, MySQL Connector, Návrh databáze, Příkazový řádek MySQL, Funkce MySQL atd. Na konci školení budete schopni vytvořit a spravovat vlastní databázi MySQL a spravovat data.

Máte na nás otázku? Zmiňte to prosím v sekci komentářů tohoto „SQL Query Rozhovor Otázky“ a my se vám co nejdříve ozveme.


  1. Jak nainstalovat Libreoffice na Ubuntu 16.04

  2. Má mysql ekvivalent analytických funkcí Oracle?

  3. Spuštění SQL skriptu přes psql dává syntaktické chyby, které se v PgAdmin nevyskytují

  4. SQL Buddy – Webový nástroj pro správu MySQL