Топ-50 запитань і відповідей на інтерв’ю про SQL Server (2025)
Запитання та відповіді на співбесіді з SQL Server для першокурсників
1. Які два режими автентифікації існують у SQL Server?
Є два режими автентифікації –
- Windows режим
- Змішаний режим
Режими можна змінити, вибравши меню інструментів у властивостях конфігурації SQL Server і вибравши сторінку безпеки.
👉 Безкоштовне завантаження PDF: Запитання та відповіді на співбесіді з 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 server?
Агент 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. Яке використання функції SIGN?
Функція SIGN використовується для визначення того, чи є вказане число позитивним, негативним або нульовим. Це поверне +1, -1 або 0.
Приклад -
SIGN(-35) returns -1
16. Що таке тригер?
Тригери використовуються для виконання пакета коду SQL, коли команди вставки, оновлення або видалення виконуються для таблиці. Тригери автоматично запускаються або виконуються, коли дані змінюються. Він може виконуватися автоматично під час операцій вставки, видалення та оновлення.
17. Які існують типи тригерів?
Існує чотири типи тригерів:
- Insert
- видаляти
- Оновити
- Замість
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.
Запитання та відповіді на співбесіді з 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 як результат, оскільки I з’являється в 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 Index можна використовувати як максимальну кількість на таблицю. 1 Clustered Index і 999 некластеризованих індексів на таблицю можна використовувати в SQL Server.
Індекс 1000 можна використовувати як максимальне число для таблиці. 1 Clustered Index і 999 некластеризованих індексів на таблицю можна використовувати в SQL Server.
1 Clustered Index і 999 некластеризованих індексів на таблицю можна використовувати в SQL Server.
36. Яка різниця між COMMIT і ROLLBACK?
Кожен оператор між BEGIN і COMMIT стає постійним для бази даних, коли виконується COMMIT. Кожен оператор між BEGIN і ROOLBACK повертається до стану, коли було виконано ROLLBACK.
37. Яка різниця між типами varchar і nvarchar?
Varchar і nvarchar однакові, але єдина відмінність полягає в тому, що nvarhcar можна використовувати для зберігання символів Unicode для кількох мов, а також займає більше місця порівняно з 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
- У реченні like, керуючі символи користувача
50. Що таке відфільтрований індекс?
Відфільтрований індекс використовується для фільтрації певної частини рядків у таблиці, щоб покращити продуктивність запитів, підтримувати індекси та зменшити витрати на зберігання індексів. Коли індекс створюється за допомогою пропозиції WHERE, він називається відфільтрованим індексом.
Ці запитання для співбесіди також допоможуть вам у життєдіяльності (усному)