20 самых распространенных вопросов и ответов на собеседовании по SQL Query [для новичков и опытных]
Опубликовано: 2021-07-14Посещаете собеседование по SQL и задаетесь вопросом, какие вопросы и обсуждения вам предстоит пройти? Прежде чем идти на собеседование по SQL, лучше иметь представление о типах вопросов, которые будут задаваться на собеседовании по SQL , чтобы вы могли мысленно подготовить ответы на них.
Чтобы помочь вам, я создал руководство по основным вопросам и ответам на вопросы для собеседования по SQL, чтобы понять глубину и реальное намерение вопросов для собеседования по SQL. Давайте начнем.
Язык структурированных запросов (SQL) — это популярный и широко используемый язык программирования для управления, обработки и запроса данных в реляционных базах данных. Хотя SQL — не самый быстрый язык для взаимодействия с реляционными базами данных, он, несомненно, является наиболее эффективным средством обработки структурированных данных.
По сравнению с традиционными API для чтения и записи, такими как ISAM или VSAM , SQL обладает двумя основными преимуществами:
- Это позволяет вам получить доступ к нескольким записям с помощью одной команды.
- Это устраняет необходимость указывать, как получить доступ к записи (независимо от того, использовать ли индекс) из базы данных.
SQL-запрос — это вопрос или запрос на доступ к данным, хранящимся в базе данных. База данных хранит информацию в табличном формате. Таким образом, он содержит строки и столбцы. В то время как поля базы данных образуют столбцы, которые указывают базе данных, какую информацию она может хранить, строки содержат данные. Вот пример набора данных под названием «tblAlbum», чтобы представить ситуацию в перспективе:
Источник
Давайте создадим запрос SQL, используя этот образец данных. Мы сосредоточимся на выборе только тех альбомов с рейтингом 9 или выше. Таким образом, мы, по сути, просим запрос создать список названий альбомов из базы данных, имеющих рейтинг, равный или превышающий 9. Вы будете использовать релевантные ключевые слова, чтобы получить желаемый ответ.
Ключевые слова в этом сценарии — SELECT (диктует получение информации из базы данных), FROM (конкретная таблица, содержащая указанные данные) и WHERE (диктует критерии доступа к информации). Когда вы используете эти ключевые слова, ваш SQL-запрос будет выглядеть так:
ВЫБРАТЬ название альбома ИЗ tblAlbums
ГДЕ рейтинг >= 9;
Таким образом, вы выбираете (ВЫБРАТЬ) данные из (ИЗ) таблицы «tblAlbums», где (ГДЕ) рейтинг альбома равен 9 или выше. Оператор WHERE может быть либо очень простым, либо чрезмерно сложным, если задействовано значительное количество вложенной логики. Выполнив запрос, вы получите следующий результат:
альбомНазвание
Симфония ре минор
Сердце поэта
Теперь, когда у вас есть общее представление о том, что такое SQL-запросы и как они работают, давайте рассмотрим двадцать вопросов для собеседования по SQL-запросам!
Прежде чем мы начнем с вопросов для собеседования по SQL-запросам, ознакомьтесь с этими справочными таблицами — наши запросы будут основаны на этих таблицах.
Таблица информации о сотрудниках:
EmpID | EmpFname | EmpLname | отделение | Проект | Адрес | Дата рождения | Пол |
1 | Рохит | Гупта | Администратор | Р1 | Дели | 12.02.1979 | Мужчина |
2 | Рахул | Махаджан | Администратор | Р2 | Мумбаи | 10.10.1986 | Мужчина |
3 | Соня | Банерджи | HR | Р3 | Пуна | 06.05.1983 | Женский |
4 | Анкита | Капур | HR | Р4 | Ченнаи | 28.11.1983 | Женский |
5 | Свати | Гарг | HR | Р5 | Дели | 04.06.1991 | Женский |
Таблица Должность Сотрудника:
EmpID | ЭмпПозиция | Дата присоединения | Зарплата |
1 | Должностное лицо | 04.01.2020 | 75000 |
2 | Управляющий делами | 04.03.2020 | 500000 |
3 | Управляющий делами | 04.02.2020 | 150000 |
2 | Офицер | 04.02.2020 | 90000 |
1 | Управляющий делами | 04.03.2020 | 300000 |
Вопросы и ответы на собеседовании по SQL Query
- Напишите запрос, чтобы получить EmpFname из таблицы EmployeeInfo в верхнем регистре, используя псевдоним в качестве EmpName.
Запрос для этого условия:
SELECT UPPER(EmpFname) AS EmpName FROM EmployeeInfo;
- Напишите запрос, чтобы получить количество сотрудников, работающих в отделе «HR».
Вот запрос для этого требования:
SELECT COUNT (*) FROM EmployeeInfo WHERE Department = 'HR';
- Какой запрос вы напишете для получения текущей даты?
Чтобы получить текущую дату, вы можете написать этот запрос на сервере SQL:
ВЫБЕРИТЕ ПОЛУЧИТЬДАТУ();
Чтобы получить текущую дату, вы можете написать этот запрос в MySQL:
ВЫБЕРИТЕ СИСТЕМНУЮ ДАТУ();
- Напишите запрос для извлечения только названия места (строка перед скобками) из столбца Address таблицы EmployeeInfo.
Вы можете использовать функцию MID в MySQL для создания следующего запроса:
SELECT MID(Address, 0, LOCATE('(',Address)) FROM EmployeeInfo;
Вы можете использовать SUBSTRING для создания следующего запроса:
SELECT SUBSTRING(Address, 1, CHARINDEX('(',Address)) FROM EmployeeInfo;
Подробнее: SQL для науки о данных: почему SQL
- Напишите запрос для создания новой таблицы, данные и структура которой скопированы из другой таблицы.
Вы можете использовать команду SELECT INTO для создания следующего запроса:
SELECT * INTO NewTable FROM EmployeeInfo WHERE 1 = 0;
Вы можете использовать команду CREATE в MySQL для создания следующего запроса:
CREATE TABLE NewTable AS SELECT * FROM EmployeeInfo;
- Напишите запрос для отображения имен сотрудников, начинающихся с буквы «S».
Это запрос, который вам нужно написать, чтобы получить имена сотрудников, имена которых начинаются с «S»:
SELECT * FROM EmployeeInfo WHERE EmpFname LIKE 'S%';
- Напишите запрос для получения первых N записей.
Вы можете написать запрос с помощью команды TOP в SQL Server:
SELECT TOP N * FROM EmployeePosition ORDER BY Salary DESC;
Вы также можете создать запрос с помощью команды LIMIT в MySQL:
SELECT * FROM EmpPosition ORDER BY Salary DESC LIMIT N;
- Напишите запрос для получения релевантных записей из таблицы EmployeeInfo, упорядоченных по отделам в возрастающем порядке и по EmpLname в порядке убывания.
Для этой цели вам нужно использовать оператор ORDER BY в SQL;
SELECT * FROM EmployeeInfo ORDER BY Отдел возв, EmpFназвание убыл;
- Напишите запрос, чтобы получить сведения о сотрудниках, чьи EmpFname заканчиваются на «A».
Вы можете использовать оператор LIKE в SQL, чтобы создать запрос для этой проблемы:
SELECT * FROM EmployeeInfo WHERE EmpFname LIKE '____a';
10. Создайте запрос для получения сведений о сотрудниках, имеющих адрес «ДЕЛИ».
SELECT * FROM EmployeeInfo WHERE Address LIKE 'DELHI%';
Читайте: 9 лучших инструментов науки о данных в 2020 году
- Напишите запрос для получения всех сотрудников, которые также занимают руководящую должность.
Без этого вопроса не обойдется ни одно руководство по вопросам и ответам на собеседование по SQL.
Вот запрос, чтобы получить сотрудников, занимающих руководящие должности:
ВЫБЕРИТЕ E.EmpFname, E.EmpLname, P.EmpPosition
FROM EmployeeInfo E INNER JOIN EmployeePosition P ON
E.EmpID = P.EmpID AND P.EmpPosition IN («Менеджер»);
- Создайте запрос для создания первой и последней записей из таблицы EmployeeInfo.
Один из самых распространенных вопросов на собеседовании по SQL.
Вот запрос для получения первой записи из таблицы EmployeeInfo:
SELECT * FROM EmployeeInfo WHERE EmpID = (SELECT MIN (EmpID) FROM EmployeeInfo);
Вот запрос для получения последней записи из таблицы EmployeeInfo:
SELECT * FROM EmployeeInfo WHERE EmpID = (SELECT MAX (EmpID) FROM EmployeeInfo);
- Создайте запрос, чтобы проверить, соответствует ли переданное в запрос значение формату даты таблиц EmployeeInfo и EmployeePosition.
Вы можете использовать функцию IsDate() в SQL, чтобы проверить, соответствует ли переданное значение указанному формату или нет. Он возвращает 1 (истина) или 0 (ложь) соответственно. Вот как будет выглядеть запрос:
ВЫБЕРИТЕ ISDATE('04.01.2020') КАК «ММ/ДД/ГГ»;
Выполнение этого запроса вернет 0, так как переданное значение не соответствует указанному формату.
- Создайте запрос для получения отображаемых сотрудников с зарплатой, равной или превышающей 150 000.
Запрос для этого запроса будет:
ВЫБЕРИТЕ EmpName FROM Employees WHERE Salary>=150000;
- Напишите запрос для получения года по дате.
Вы можете получить год из даты на сервере SQL, выполнив следующий запрос:
SELECT YEAR(GETDATE()) как «Год»;
- Создайте SQL-запрос для получения EmpPostion и общей заработной платы, выплачиваемой за каждую должность сотрудника.
Запрос для этого запроса:
SELECT EmpPosition, SUM(Salary) from EmployeePosition GROUP BY EmpPosition;
- Напишите запрос для поиска повторяющихся записей в таблице.
Один из самых распространенных вопросов в любом руководстве по вопросам и ответам на собеседование по SQL.
ВЫБЕРИТЕ EmpID, EmpFname, COUNT отдела (*)
ОТ EmployeeInfo СГРУППИРОВАТЬ ПО EmpID, EmpFname, Отделу
СЧЕТ(*) > 1;
- Создайте запрос для получения третьей по величине зарплаты из таблицы EmpPosition.
ВЫБЕРИТЕ ТОП 1 зарплату
ОТ(
ВЫБЕРИТЕ ТОП-3 зарплаты
ИЗ таблицы_сотрудника
ORDER BY зарплата DESC) AS emp
ЗАКАЗ ПО ЗПАРАМ ASC;
- Напишите запрос SQL, чтобы найти четные и нечетные записи в таблице EmployeeInfo.
Вы должны использовать функцию 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;
- Создайте запрос для получения списка сотрудников того же отдела.
Вот запрос для этого запроса:
Выберите DISTINCT E.EmpID, E.EmpFname, E.DepartmentFROM EmployeeInfo E, Employee E1.
ГДЕ E.Department = E1.Department AND E.EmpID != E1.EmpID;
Изучайте онлайн-курсы по программному обеспечению от лучших университетов мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.
Заключение
На этом мы подошли к концу нашего списка вопросов для собеседования по SQL-запросам. Мы надеемся, что эти запросы дадут вам четкое представление о стандартном шаблоне запросов SQL и о том, как создавать запросы SQL. Чем больше вы будете практиковаться, тем лучше у вас получится писать SQL-запросы для доступа и управления данными в таблице данных.
Если вам интересно улучшить свои знания SQL и узнать больше о разработке полного стека, ознакомьтесь с дипломом PG IIIT-B и upGrad по разработке программного обеспечения полного стека, который создан для работающих профессионалов и предлагает более 10 тематических исследований и проектов, практические занятия. семинары, наставничество с отраслевыми экспертами, индивидуальные встречи с отраслевыми наставниками, более 400 часов обучения и помощь в трудоустройстве в ведущих фирмах.