50 лучших вопросов и ответов на собеседовании по SQL Server (2025 г.)
Вопросы и ответы на собеседовании по SQL Server для новичков
1. Каковы два режима аутентификации в SQL Server?
Существует два режима аутентификации –
- Windows режим
- Смешанный режим
Режимы можно изменить, выбрав меню инструментов свойств конфигурации SQL Server и выбрав страницу безопасности.
👉 Бесплатная загрузка PDF-файла: Вопросы и ответы для интервью по SQL Server
2. Что такое SQL-профилировщик?
SQL Profiler — это инструмент, который позволяет системному администратору отслеживать события на SQL-сервере. В основном это используется для сбора и сохранения данных о каждом событии файла или таблицы для анализа.
3. Что такое рекурсивная хранимая процедура?
SQL Server поддерживает рекурсивные хранимые процедуры, которые вызываются сами по себе. Рекурсивную хранимую процедуру можно определить как метод решения проблем, при котором решение достигается повторно. Он может иметь до 32 уровней вложенности.
CREATE PROCEDURE [dbo].[Fact] ( @Number Integer, @RetVal Integer OUTPUT ) AS DECLARE @In Integer DECLARE @Out Integer IF @Number != 1 BEGIN SELECT @In = @Number – 1 EXEC Fact @In, @Out OUTPUT - Same stored procedure has been called again(Recursively) SELECT @RetVal = @Number * @Out END ELSE BEGIN SELECT @RetVal = 1 END RETURN GO
4. В чем разница между локальными и глобальными временными таблицами?
- Локальные временные таблицы видны при наличии соединения и удаляются при его закрытии.
CREATE TABLE #<tablename>
- Глобальные временные таблицы видны всем пользователям и удаляются при закрытии соединения, создавшего их.
CREATE TABLE ##<tablename>
5. Что такое ограничение CHECK?
Ограничение CHECK можно применить к столбцу таблицы, чтобы ограничить значения, которые можно поместить в столбец. Ограничение проверки предназначено для обеспечения целостности.
6. Могут ли SQL-серверы быть связаны с другими серверами?
SQL сервер может быть подключен к любой базе данных, у которой есть поставщик OLE-DB для предоставления ссылки. Пример: Oracle имеет поставщика OLE-DB, у которого есть ссылка для подключения к группе серверов SQL.
7. Что такое подзапрос и его свойства?
Подзапрос — это запрос, который может быть вложен в основной запрос, например операторы Select, Update, Insert или Delete. Это можно использовать, когда выражение разрешено. Свойства подзапроса можно определить как
- Подзапрос не должен иметь порядок по предложению
- Подзапрос должен быть размещен справа от оператора сравнения основного запроса.
- Подзапрос должен быть заключен в круглые скобки, поскольку его необходимо выполнить перед основным запросом.
- Можно включить более одного подзапроса
8. Какие бывают типы подзапросов?
Существует три типа подзапроса:
- Подзапрос с одной строкой, который возвращает только одну строку
- Подзапрос из нескольких строк, который возвращает несколько строк
- Подзапрос с несколькими столбцами, который возвращает несколько столбцов в основной запрос. С результатом этого подзапроса будет выполнен основной запрос.
9. Что такое агент SQL-сервера?
Агент SQL Server играет жизненно важную роль в повседневных задачах администратора SQL-сервера (DBA). Цель серверного агента — легко реализовывать задачи с помощью механизма планировщика, который позволяет нашим заданиям выполняться в запланированную дату и время.
10. Что такое запланированные задачи в SQL Server?
Запланированные задачи или задания используются для автоматизации процессов, которые можно запускать в запланированное время через регулярные промежутки времени. Такое планирование задач помогает уменьшить вмешательство человека в ночное время, и кормление можно производить в определенное время. Пользователь также может упорядочить задачи, в которых он должен быть сгенерирован.
11. Что такое COALESCE в SQL Server?
COALESCE используется для возврата первого ненулевого выражения в аргументах. Эта функция используется для возврата ненулевого значения из более чем одного столбца в аргументах.
Пример -
Select COALESCE(empno, empname, salary) from employee;
12. Как обрабатываются исключения при программировании SQL Server?
Исключения обрабатываются с помощью конструкций TRY--CATCH и обрабатываются путем написания сценариев внутри блока TRY и обработки ошибок в блоке CATCH.
13. Какова цель функции FLOOR?
Функция FLOOR используется для округления нецелого значения до предыдущего наименьшего целого числа. Пример приведен
FLOOR(6.7)
Возвращает 6.
14. Можем ли мы проверить блокировки в базе данных? Если да, то как мы можем выполнить эту проверку блокировки?
Да, мы можем проверить блокировки в базе данных. Этого можно добиться с помощью встроенной хранимой процедуры sp_lock.
15. Для чего используется функция ЗНАК?
Функция ЗНАК используется для определения того, является ли указанное число положительным, отрицательным или нулевым. Это вернет +1, -1 или 0.
Пример -
SIGN(-35) returns -1
16. Что такое триггер?
Триггеры используются для выполнения пакета кода SQL при выполнении команд вставки, обновления или удаления в таблице. Триггеры автоматически запускаются или выполняются при изменении данных. Он может выполняться автоматически при операциях вставки, удаления и обновления.
17. Какие бывают типы триггеров?
Существует четыре типа триггеров:
- Вставить
- Удалить
- Обновление ПО
- Вместо
18. Что такое столбец IDENTITY в операторах вставки?
Столбец IDENTITY используется в столбцах таблицы, чтобы сделать этот столбец автоматически увеличивающимся номером или суррогатным ключом.
19. Что такое массовое копирование в SQL?
Bulkcopy — это инструмент, используемый для копирования больших объемов данных из таблиц. Этот инструмент используется для загрузки большого объема данных в SQL Server.
20. Какой запрос будет использоваться для получения списка триггеров в базе данных?
Запрос на получение списка триггеров в базе данных.
Select * from sys.objects where type='tr'
21. В чем разница между UNION и UNION ALL?
- UNION: Для выбора связанной информации из двух таблиц используется команда UNION. Это похоже на команду JOIN.
- UNION All: команда UNION ALL аналогична команде UNION, за исключением того, что UNION ALL выбирает все значения. Он не удалит повторяющиеся строки, а извлечет все строки из всех таблиц.
22. Как представлены глобальные временные таблицы и их область действия?
Глобальные временные таблицы обозначаются знаком ## перед именем таблицы. Область действия будет находиться за пределами сеанса, тогда как локальные временные таблицы находятся внутри сеанса. Идентификатор сеанса можно найти с помощью @@SPID.
Вопросы и ответы на собеседовании по SQL Server для опытных
23. Каковы различия между хранимой процедурой и динамическим SQL?
Сохраненная процедура — это набор операторов, который хранится в скомпилированной форме. Динамический SQL — это набор операторов, которые динамически создаются во время выполнения и не сохраняются в базе данных, а просто выполняются во время выполнения.
24. Что такое сортировка?
Параметры сортировки определяются для указания порядка сортировки в таблице. Существует три типа порядка сортировки:
- Деликатный случай
- Без учета регистра
- Двоичный
25. Как узнать количество записей в таблице?
Ниже приведены запросы, которые можно использовать для получения количества записей в таблице:
Select * from <tablename> Select count(*) from <tablename> Select rows from sysindexes where id=OBJECT_ID(tablename) and indid<2
26. Какая команда используется для получения версии SQL Server?
Select SERVERPROPERTY('productversion')
используется для получения версии SQL Server.
27. Что такое команда UPDATE_STATISTICS?
Команда UPDATE_STATISTICS используется для обновления индексов таблиц, когда в индексах происходит большое количество удалений или изменений или массовое копирование.
28. Для чего используется оператор SET NOCOUNT ON/OFF?
По умолчанию для параметра NOCOUNT установлено значение OFF, и он возвращает количество затронутых записей при каждом выполнении команды. Если пользователь не хочет отображать количество затронутых записей, для него можно явно установить значение ON- (SET NOCOUNT ON).
29. Какая таблица SQL-сервера используется для хранения сценариев хранимых процедур?
Sys.SQL_Modules — это таблица SQL Server, используемая для хранения сценария хранимой процедуры. Имя хранимой процедуры сохраняется в таблице Sys.Procedures.
30. Что такое магические таблицы в SQL Server?
Во время операций DML, таких как вставка, удаление и обновление, SQL Server создает магические таблицы для хранения значений во время операций DML. Эти магические таблицы используются внутри триггеров для транзакций данных.
31. В чем разница между SUBSTR и CHARINDEX в SQL Server?
Функция SUBSTR используется для возврата определенной части строки в заданной строке. Но функция CHARINDEX определяет позицию символа в заданной строке.
SUBSTRING('Smiley',1,3)
Дает результат как Smi
CHARINDEX('i', 'Smiley',1)
Дает 3 в результате, поскольку я появляется в 3rd положение строки
32. Как создать логин?
Для создания имени входа можно использовать следующую команду:
CREATE LOGIN MyLogin WITH PASSWORD = '123';
33. Что такое оператор ISNULL()?
Функция ISNULL используется для проверки того, является ли заданное значение NULL или не NULL на сервере sql. Эта функция также позволяет заменить значение на NULL.
34. Для чего используется предложение FOR?
Предложение FOR в основном используется для XML и параметры браузера. Это предложение в основном используется для отображения результатов запроса в формате XML или в браузере.
35. Какое максимальное количество индексов будет в таблице?
Для SQL Server 2008 индекс 100 может использоваться как максимальное число на таблицу. 1 ClusterВ SQL Server можно использовать индекс ed и 999 некластеризованных индексов на таблицу.
Индекс 1000 можно использовать как максимальное число в таблице. 1 ClusterВ SQL Server можно использовать индекс ed и 999 некластеризованных индексов на таблицу.
1 ClusterВ SQL Server можно использовать индекс ed и 999 некластеризованных индексов на таблицу.
36. В чем разница между COMMIT и ROLLBACK?
Каждый оператор между BEGIN и COMMIT становится постоянным для базы данных при выполнении COMMIT. Каждый оператор между BEGIN и ROOLBACK возвращается в состояние, когда был выполнен ROLLBACK.
37. В чем разница между типами varchar и nvarchar?
Varchar и nvarchar одинаковы, но единственное отличие состоит в том, что nvarhcar можно использовать для хранения символов Юникода для нескольких языков, а также он занимает больше места по сравнению с varchar.
38. Какая польза от @@SPID?
@@SPID возвращает идентификатор сеанса текущего пользовательского процесса.
39. Какая команда используется для перекомпиляции хранимой процедуры во время выполнения?
Хранимая процедура может быть выполнена с помощью ключевого слова RECOMPILE.
Пример
Exe <SPName> WITH RECOMPILE
Или мы можем включить WITHRECOMPILE в саму хранимую процедуру.
40. Как удалить повторяющиеся строки в SQL Server?
Повторяющиеся строки можно удалить с помощью функции CTE и ROW NUMER SQL Server.
41. Где хранятся имена пользователей и пароли SQL Server в SQL Server?
Имена пользователей и пароли хранятся в sys.server_principals и sys.sql_logins. Но пароли не хранятся в обычном тексте.
42. В чем разница между GETDATE и SYSDATETIME?
Оба одинаковы, но GETDATE может давать время до миллисекунд, а SYSDATETIME может давать точность до наносекунд. SYSDATE TIME более точен, чем GETDATE.
43. Как можно скопировать данные из одной таблицы в другую?
INSERT INTO SELECT
Эта команда используется для вставки данных в уже созданную таблицу.
SELECT INTO
Эта команда используется для создания новой таблицы, а ее структуру и данные можно скопировать из существующей таблицы.
44. Что такое TABLESAMPLE?
TABLESAMPLE используется для случайного извлечения выборки строк, необходимых приложению. Выборка строк основана на процентном соотношении строк.
45. Какая команда используется для сообщений об ошибках, определяемых пользователем?
RAISEERROR — это команда, используемая для генерации и инициирования обработки ошибок для данного сеанса. Эти определяемые пользователем сообщения хранятся в таблице sys.messages.
46. Что означает тип данных XML?
Тип данных XML используется для хранения XML-документов в базы данных SQL Server. Столбцы и переменные создаются и сохраняют экземпляры XML в базе данных.
47. Что такое CDC?
CDC сокращенно обозначается как Change Data Capture, который используется для сбора данных, которые были недавно изменены. Эта функция присутствует в SQL Server 2008.
48. Что такое SQL-инъекция?
SQL-инъекция — это атака злоумышленников, при которой вредоносный код может быть вставлен в строки, которые могут быть переданы на экземпляр SQL-сервера для анализа и выполнения. Все операторы должны проверяться на наличие уязвимостей, поскольку они выполняют все полученные синтаксически допустимые запросы.
Опытные злоумышленники могут манипулировать даже параметрами.
49. Какие методы используются для защиты от атаки SQL-инъекцией?
Ниже приведены методы, используемые для защиты от атак SQL-инъекций:
- Используйте параметры для хранимых процедур
- Фильтрация входных параметров
- Используйте коллекцию параметров с динамическим SQL
- В подобном предложении пользовательские escape-символы
50. Что такое фильтрованный индекс?
Фильтрованный индекс используется для фильтрации некоторой части строк в таблице для повышения производительности запросов, обслуживания индекса и снижения затрат на хранение индекса. Когда индекс создается с помощью предложения WHERE, он называется фильтрованным индексом.
Эти вопросы для собеседования также помогут вам в устной речи.