Учебники

22) Вопросы и ответы по SQL Server.

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
)
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 Server (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. Какая польза от функции 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 type='tr'

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

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

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

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

23. Каковы различия между хранимой процедурой и динамическим SQL?

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

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

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

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

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)

Дает результат как Сми

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

Дает 3 в результате, как я появляется в 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 может использоваться как максимальное число на таблицу. В 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 <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. Как данные можно скопировать из одной таблицы в другую?

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

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

ВЫБРАТЬ В

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

44. Что такое TABLESAMPLE?

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

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

RAISEERROR — это команда, используемая для генерации и запуска обработки ошибок для данного сеанса. Эти пользовательские сообщения хранятся в таблице sys.messages.

46. ​​Что означает XML Datatype?

Тип данных XML используется для хранения документов XML в базе данных SQL Server. Столбцы и переменные создаются и хранят экземпляры XML в базе данных.

47. Что такое CDC?

CDC сокращенно называется «Захват данных изменений», который используется для сбора данных, которые были недавно изменены. Эта функция присутствует в SQL Server 2008.

48. Что такое SQL-инъекция?

SQL-инъекция — это атака злонамеренных пользователей, когда вредоносный код может быть вставлен в строки, которые могут быть переданы экземпляру SQL-сервера для анализа и выполнения. Все операторы должны проверяться на наличие уязвимостей, поскольку он выполняет все синтаксически допустимые запросы, которые он получает.

Даже параметры могут быть изменены опытными и опытными злоумышленниками.

49. Какие методы используются для защиты от атаки SQL-инъекцией?

Ниже приведены методы, используемые для защиты от атак с использованием SQL-инъекций:

  • Используйте параметры для хранимых процедур
  • Фильтрация входных параметров
  • Использование коллекции параметров с динамическим SQL
  • В предложении like экранирующие символы

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

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