Database
 sql >> база данни >  >> RDS >> Database

Топ 30 въпроса за интервю за SQL заявка, които трябва да практикувате през 2022 г

SQL или езикът за структурирани заявки е стандартен език за работа с релационни бази данни. С огромното количество налични данни е много важно за нас да разберем как да използваме заявки за извличане на необходимите данни. В тази статия относно въпросите за интервю за SQL заявки ще обсъдя няколко заявки, които трябва да практикувате, за да станете администратор на база данни, и също така ще ви помогна да изпълните интервютата си.

Водещи въпроси за интервю за SQL заявка

За по-добро разбиране, ще разгледам следните таблици, за да пиша заявки.

Таблица с информация за служителите:

EmpID

EmpFname

EmpLname

Отдел

Проект

Адрес

DOB

Пол

1

Санджай

Мехра

HR

P1

Хайдерабад (HYD)

01/12/1976

M

2

Ананя

Мишра

Администратор

P2

Делхи(DEL)

02/05/1968

F

3

Рохан

Diwan

Профил

P3

Мумбай (BOM)

01/01/1980

M

4

Соня

Кулкарни

HR

P1

Хайдерабад (HYD)

02/05/1992

F

5

Ankit

Капур

Администратор

P2

Делхи(DEL)

03/07/1994

M

Таблица за позициите на служителите:

EmpID

EmpPosition

DateOfJoining

Заплата

1

Мениджър

01/05/2022

500000

2

Изпълнителен директор

02/05/2022

75000

3

Мениджър

01/05/2022

90000

2

Възможен клиент

02/05/2022

85000

1

Изпълнителен директор

01/05/2022

300000

Нека започнем, като разгледаме някои от най-често задаваните въпроси за интервю за SQL Query,

  • Напишете заявка за извличане на EmpFname от таблицата EmployeeInfo в главни букви и използвайте името ALIAS като EmpName.
  • Напишете заявка, за да получите броя на служителите, работещи в отдел „HR“.
  • Напишете заявка, за да получите текущата дата.
  • Напишете заявка за извличане на първите четири знака на EmpLname от таблицата EmployeeInfo.
  • Напишете заявка, за да извлечете само името на мястото (низ преди скоби) от колоната Адрес на таблицата EmployeeInfo.
  • Напишете заявка за създаване на нова таблица, която се състои от данни и структура, копирани от другата таблица.
  • Напишете q заявка, за да намерите всички служители, чиято заплата е между 50000 и 100000.
  • Напишете заявка, за да намерите имената на служителите, които започват с „S“
  • Напишете заявка за извличане на топ N записа.
  • Напишете заявка за извличане на EmpFname и EmpLname в една колона като „FullName“. Името и фамилията трябва да бъдат разделени с интервал.

Q1. Напишете заявка за извличане на EmpFname от таблицата EmployeeInfo в главни букви и използвайте името ALIAS като EmpName.

SELECT UPPER(EmpFname) AS EmpName FROM EmployeeInfo;

В2. Напишете заявка, за да получите броя на служителите, работещи в отдел „HR“.

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

В3. Напишете заявка, за да получите текущата дата

Можете да напишете заявка, както следва в SQL Server:

SELECT GETDATE();

Можете да напишете заявка, както следва в MySQL:

SELECT SYSTDATE();

В4. Напишете заявка, за да извлечете първите четири знака на EmpLname от таблицата EmployeeInfo.

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

В5. Напишете заявка, за да извлечете само името на мястото (низ преди скоби) от колоната Адрес на таблицата EmployeeInfo.

Използване на функцията MID в MySQL

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

В6. Напишете заявка за създаване на нова таблица, която се състои от данни и структура, копирани от другата таблица.

Използване на командата SELECT INTO:

SELECT * INTO NewTable FROM EmployeeInfo WHERE 1 = 0;

Използване на командата CREATE в MySQL:

CREATE TABLE NewTable AS SELECT * FROM EmployeeInfo;

В7. Напишете q заявка, за да намерите всички служители, чиято заплата е между 50000 и 100000.

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

В8. Напишете заявка, за да намерите имената на служителите, които започват с „S“

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

Q9. Напишете заявка за извличане на топ N записа.

С помощта на командата TOP в SQL Server:

SELECT TOP N * FROM EmployeePosition ORDER BY Salary DESC;

С помощта на командата LIMIT в MySQL:

SELECT * FROM EmpPosition ORDER BY Salary DESC LIMIT N;

Q10. Напишете заявка за извличане на EmpFname и EmpLname в една колона като „FullName“. Името и фамилията трябва да бъдат разделени с интервал

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

Q11. Напишете заявка за намиране на броя на служителите, чиято работа е между 02/05/1970 и 31/12/1975 и са групирани според пола

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

Q12. Напишете заявка за извличане на всички записи от таблицата EmployeeInfo, подредени от EmpLname в низходящ ред и отдел във възходящ ред.

За да подредите записите във възходящ и низходящ ред, трябва да използвате оператора ORDER BY в SQL.

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

В13. Напишете заявка, за да получите подробности за служителите, чието EmpLname завършва с азбука „А“ и съдържа пет азбуки.

За да извлечете подробности, съответстващи на определена стойност, трябва да използвате оператора LIKE в SQL.

 
SELECT * FROM EmployeeInfo WHERE EmpLname LIKE '____a';

Q14. Напишете заявка, за да извлечете подробности за всички служители, с изключение на служителите с собствени имена „Санджай“ и „Соня“ от таблицата EmployeeInfo.

 
SELECT * FROM EmployeeInfo WHERE EmpFname NOT IN ('Sanjay','Sonia');
Искате ли да се усъвършенствате, за да напреднете в кариерата си? Вижте това видео

Топ 10 технологии, които да научите през 2022 г. | Едуреката

Q15. Напишете заявка, за да получите подробности за служителите с адрес „DELHI(DEL)“.

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

В16. Напишете заявка, за да получите всички служители, които също заемат ръководна позиция.

 
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. Напишете заявка, за да извлечете отдела -мъдър брой служители, сортирани по броя на отделите във възходящ ред.

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

Q18. Напишете заявка за изчисляване на четните и нечетните записи от таблица

За да извлечете четните записи от таблица, трябва да използвате функцията MOD(), както следва:

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

По същия начин, за да извлечете нечетните записи от таблица, можете да напишете заявка, както следва:

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

Q19. Напишете SQL заявка, за да извлечете подробности за служителите от таблицата EmployeeInfo, които имат дата на присъединяване в таблицата EmployeePosition.

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

Q20. Напишете заявка, за да извлечете две минимални и максимални заплати от таблицата EmployeePosition.

За да извлечете две минимални заплати, можете да напишете заявка, както следва:

 
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. Напишете заявка, за да намерите N-тата най-висока заплата от таблицата, без да използвате ключова дума TOP/limit.

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

Q22. Напишете заявка за извличане на дублиращи се записи от таблица.

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

Q23. Напишете заявка, за да извлечете списъка на служителите, работещи в същия отдел

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

Q24. Напишете заявка, за да извлечете последните 3 записа от таблицата 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;

Q25. Напишете заявка, за да намерите третата най-висока заплата от таблицата EmpPosition.

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

Q26. Напишете заявка за показване на първия и последния запис от таблицата EmployeeInfo.

За да покажете първия запис от таблицата EmployeeInfo, можете да напишете заявка, както следва:

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

За да покажете последния запис от таблицата EmployeeInfo, можете да напишете заявка, както следва:

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

Q27. Напишете заявка за добавяне на валидиране на имейл към вашата база данни

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

Q28. Напишете заявка, за да извлечете отдели, в които работят по-малко от 2 служители

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

Q29. Напишете заявка за извличане на EmpPostion заедно с общите заплати, изплатени за всеки от тях.

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

Q30. Напишете заявка за извличане на 50% записи от таблицата EmployeeInfo.

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

Това ни води до края на статията Въпроси за интервю за SQL заявка. Надявам се, че този набор от въпроси за интервю за SQL заявка ще ви помогне да завършите интервюто си за работа. Всичко най-добро за интервюто ви!

Разгледайте това обучение за сертифициране на MySQL DBA от Edureka, доверена компания за онлайн обучение с мрежа ос повече от 250 000 доволни учащи се разпръснати по целия свят. Този курс ви обучава на основните концепции и усъвършенствани инструменти и техники за управление на данни и администриране на базата данни MySQL. Той включва практическо обучение на концепции като MySQL Workbench, MySQL Server, Data Modeling, MySQL Connector, Database Design, MySQL команден ред, MySQL функции и т.н. В края на обучението ще можете да създавате и администрирате своя собствена база данни MySQL и управлявайте данни.

Имате въпрос към нас? Моля, споменете го в секцията за коментари на тази „SQL заявка Въпроси за интервю” и ние ще се свържем с вас възможно най-скоро.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Доклад за база данни с отворен код за 2019 г.:Топ бази данни, публичен облак срещу локален, устойчивост на полиглот

  2. Различни планове за идентични сървъри

  3. Как работи индексирането

  4. ScaleGrid е в списъка за 2017-2018 Cloud Awards Program

  5. Измерване на производителността на базата данни под напрежение