50 самых популярных вопросов на собеседовании по SQL Server & Ответы

Содержание

Скачать PDF

1. Какие два режима аутентификации используются в SQL Server?

Есть два режима аутентификации -

  • Режим Windows
  • Смешанный режим

Режимы можно изменить, выбрав меню инструментов в свойствах конфигурации SQL Server и выбрав страницу безопасности.

2. Что такое SQL Profiler?

SQL Profiler - это инструмент, который позволяет системному администратору отслеживать события на сервере SQL. Это в основном используется для сбора и сохранения данных о каждом событии файла или таблицы для анализа.

3. Что такое рекурсивная хранимая процедура?

SQL Server поддерживает рекурсивную хранимую процедуру, которая вызывается сама по себе. Рекурсивную хранимую процедуру можно определить как метод решения проблемы, при котором решение приходит повторно. Может содержать до 32 уровней.

CREATE PROCEDURE [dbo].[Fact](@Number Integer,@RetVal Integer OUTPUT)ASDECLARE @In IntegerDECLARE @Out IntegerIF @Number != 1BEGINSELECT @In = @Number - 1EXEC Fact @In, @Out OUTPUT - Same stored procedure has been called again(Recursively)SELECT @RetVal = @Number * @OutENDELSEBEGINSELECT @RetVal = 1ENDRETURNGO

4. В чем разница между локальными и глобальными временными таблицами?

  • Локальные временные таблицы видны, когда есть соединение, и удаляются, когда соединение закрывается.
CREATE TABLE #
  • Глобальные временные таблицы видны всем пользователям и удаляются, когда соединение, создавшее их, закрывается.
CREATE TABLE ##

5. Что такое ограничение CHECK?

Ограничение CHECK может быть применено к столбцу в таблице, чтобы ограничить значения, которые могут быть помещены в столбец. Проверить ограничение - обеспечить целостность.

6. Могут ли серверы SQL быть связаны с другими серверами?

SQL-сервер может быть подключен к любой базе данных, у которой есть поставщик OLE-DB для предоставления ссылки. Пример: Oracle имеет поставщика OLE-DB, у которого есть ссылка для подключения к группе серверов SQL.

7. Что такое подзапрос и его свойства?

Подзапрос - это запрос, который может быть вложен в основной запрос, такой как операторы Select, Update, Insert или Delete. Это можно использовать, когда разрешено выражение. Свойства подзапроса можно определить как

  • В подзапросе не должно быть предложения order by
  • Подзапрос следует разместить справа от оператора сравнения основного запроса.
  • Подзапрос должен быть заключен в круглые скобки, потому что он должен быть выполнен в первую очередь перед основным запросом.
  • Можно включить более одного подзапроса

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(6.7)

Возврат 6.

14. Можем ли мы проверить блокировки в базе данных? Если да, то как мы можем выполнить эту проверку блокировки?

Да, мы можем проверить блокировки в базе данных. Этого можно добиться с помощью встроенной хранимой процедуры sp_lock.

15. Какая польза от функции SIGN?

Функция SIGN используется для определения того, является ли указанное число положительным, отрицательным или нулевым. Это вернет + 1, -1 или 0.

Пример -

SIGN(-35) returns -1

16. Что такое триггер?

Триггеры используются для выполнения пакета кода SQL, когда для таблицы выполняются команды вставки, обновления или удаления. Триггеры автоматически запускаются или выполняются при изменении данных. Он может выполняться автоматически при операциях вставки, удаления и обновления.

17. Какие бывают типы триггеров?

Есть четыре типа триггеров:

  • Вставлять
  • Удалить
  • Обновлять
  • Вместо

18. Что такое столбец IDENTITY в операторах вставки?

Столбец IDENTITY используется в столбцах таблицы, чтобы сделать этот столбец автоматически инкрементным номером или суррогатным ключом.

19. Что такое Bulkcopy в SQL?

Bulkcopy - это инструмент, используемый для копирования большого количества данных из таблиц. Этот инструмент используется для загрузки большого количества данных в SQL Server.

20. Какой запрос будет использован для получения списка триггеров в базе данных?

Запрос на получение списка триггеров в базе данных -

Select * from sys.objects where

21. В чем разница между UNION и UNION ALL?

  • СОЕДИНЕНИЕ: Для выбора связанной информации из двух таблиц используется команда СОЕДИНЕНИЕ. Это похоже на команду JOIN.
  • UNION All: команда UNION ALL аналогична команде UNION, за исключением того, что UNION ALL выбирает все значения. Он не будет удалять повторяющиеся строки, вместо этого он будет извлекать все строки из всех таблиц.

22. Как представлены глобальные временные таблицы и какова их область действия?

Глобальные временные таблицы представлены ## перед именем таблицы. Область видимости будет вне сеанса, тогда как локальные временные таблицы находятся внутри сеанса. Идентификатор сеанса можно найти с помощью @@ SPID.

23. В чем разница между хранимой процедурой и динамическим SQL?

Хранимая процедура - это набор операторов, который хранится в скомпилированной форме. Динамический SQL - это набор операторов, которые динамически создаются во время выполнения, и он не будет храниться в базе данных, а просто выполняется во время выполнения.

24. Что такое сопоставление?

Сортировка определяется для указания порядка сортировки в таблице. Есть три типа порядка сортировки -

  1. Чувствительный к регистру
  2. Без учета регистра
  3. Двоичный

25. Как мы можем подсчитать количество записей в таблице?

Ниже приведены запросы, которые можно использовать для получения количества записей в таблице.

Select * from 
 Select count(*) from 
 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, таких как Insert, Delete и Update, SQL Server создает волшебные таблицы для хранения значений во время операций DML. Эти волшебные таблицы используются внутри триггеров для транзакции данных.

31. В чем разница между SUBSTR и CHARINDEX в SQL Server?

Функция SUBSTR используется для возврата определенной части строки в данной строке. Но функция CHARINDEX дает позицию символа в данной указанной строке.

SUBSTRING('Smiley',1,3)

Дает результат как Smi

CHARINDEX('i', 'Smiley',1)

Дает 3 в качестве результата, поскольку I появляется в 3- й позиции строки

32. Как создать логин?

Вы можете использовать следующую команду для создания логина

CREATE LOGIN MyLogin WITH PASSWORD = '123';

33. Что такое оператор ISNULL ()?

Функция ISNULL используется для проверки того, является ли данное значение NULL или нет NULL на сервере sql. Эта функция также обеспечивает замену значения на NULL.

34. Какая польза от предложения FOR?

Предложение FOR в основном используется для XML и параметров браузера. Это предложение в основном используется для отображения результатов запроса в формате XML или в браузере.

35. Какое будет максимальное количество индексов в таблице?

Для SQL Server 2008 100 Index может использоваться как максимальное число для таблицы. В SQL Server можно использовать 1 кластерный индекс и 999 некластеризованных индексов для каждой таблицы.

Индекс 1000 может использоваться как максимальное число для таблицы. В SQL Server можно использовать 1 кластерный индекс и 999 некластеризованных индексов для каждой таблицы.

В SQL Server можно использовать 1 кластерный индекс и 999 некластеризованных индексов для каждой таблицы.

36. В чем разница между COMMIT и ROLLBACK?

Каждый оператор между BEGIN и COMMIT становится постоянным для базы данных при выполнении COMMIT. Каждый оператор между BEGIN и ROOLBACK возвращается в состояние, в котором был выполнен ROLLBACK.

37. В чем разница между типами varchar и nvarchar?

Varchar и nvarchar одинаковы, но с той лишь разницей, что nvarhcar может использоваться для хранения символов Юникода для нескольких языков, а также занимает больше места по сравнению с varchar.

38. Какая польза от @@ SPID?

@@ SPID возвращает идентификатор сеанса текущего пользовательского процесса.

39. Какая команда используется для перекомпиляции хранимой процедуры во время выполнения?

Хранимая процедура может быть выполнена с помощью ключевого слова RECOMPILE.

Пример

Exe  WITH RECOMPILE

Или мы можем включить WITHRECOMPILE в саму хранимую процедуру.

40. Как удалить повторяющиеся строки в SQL Server?

Повторяющиеся строки могут быть удалены с помощью функции CTE и НОМЕР СТРОКИ SQL Server.

41. Где в SQL Server хранятся имена пользователей и пароли SQL Server?

Имена пользователей и пароли хранятся в sys.server_principals и sys.sql_logins. Но пароли не хранятся в обычном тексте.

42. В чем разница между GETDATE и SYSDATETIME?

Оба они одинаковы, но GETDATE может давать время до миллисекунд, а SYSDATETIME может давать точность до наносекунд. SYSDATE TIME более точен, чем GETDATE.

43. Как данные можно скопировать из одной таблицы в другую?

ВСТАВИТЬ В ВЫБОР

Эта команда используется для вставки данных в уже созданную таблицу.

ВЫБРАТЬ В

Эта команда используется для создания новой таблицы, а ее структура и данные могут быть скопированы из существующей таблицы.

44. Что такое ТАБЛИЦЫ?

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
  • В предложении Like, пользовательские escape-символы

50. Что такое отфильтрованный индекс?

Отфильтрованный индекс используется для фильтрации некоторой части строк в таблице для повышения производительности запросов, обслуживания индекса и снижения затрат на хранение индекса. Когда индекс создается с помощью предложения WHERE, он называется отфильтрованным индексом.

Интересные статьи...