50 najpopularniejszych pytań i odpowiedzi podczas rozmów kwalifikacyjnych na SQL Server (2025 r.)
Pytania i odpowiedzi dotyczące wywiadu z SQL Server dla nowicjuszy
1. Jakie są dwa tryby uwierzytelniania w SQL Server?
Istnieją dwa tryby uwierzytelniania –
- Windows Moda
- Tryb mieszany
Tryby można zmienić, wybierając menu narzędzi właściwości konfiguracyjnych SQL Server i wybierając stronę zabezpieczeń.
👉 Bezpłatne pobieranie pliku PDF: Pytania i odpowiedzi dotyczące wywiadu z programem SQL Server
2. Co to jest SQL Profiler?
SQL Profiler jest narzędziem pozwalającym administratorowi systemu monitorować zdarzenia na serwerze SQL. Służy głównie do przechwytywania i zapisywania danych o każdym zdarzeniu w pliku lub tabeli w celu analizy.
3. Co to jest rekursywna procedura składowana?
SQL Server obsługuje rekursywną procedurę składowaną, która sama wywołuje. Rekurencyjną procedurę składowaną można zdefiniować jako metodę rozwiązywania problemów, w której rozwiązanie pojawia się powtarzalnie. Może zagnieżdżać do 32 poziomów.
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. Jakie są różnice pomiędzy lokalnymi i globalnymi tabelami tymczasowymi?
- Lokalne tabele tymczasowe są widoczne, gdy istnieje połączenie i są usuwane po zamknięciu połączenia.
CREATE TABLE #<tablename>
- Globalne tabele tymczasowe są widoczne dla wszystkich użytkowników i są usuwane po zamknięciu połączenia, które je utworzyło.
CREATE TABLE ##<tablename>
5. Co to jest ograniczenie CHECK?
Ograniczenie CHECK można zastosować do kolumny w tabeli, aby ograniczyć wartości, które można umieścić w kolumnie. Ograniczenie sprawdzające ma na celu wymuszenie integralności.
6. Czy serwery SQL mogą być połączone z innymi serwerami?
Serwer SQL można podłączyć do dowolnej bazy danych, która ma dostawcę OLE-DB, aby podać łącze. Przykład: Oracle ma dostawcę OLE-DB, który ma łącze do połączenia z grupą serwerów SQL.
7. Co to jest podzapytanie i jego właściwości?
Zapytanie podrzędne to zapytanie, które można zagnieździć w zapytaniu głównym, takim jak instrukcje Select, Update, Insert lub Delete. Można tego użyć, gdy dozwolone jest wyrażenie. Właściwości podzapytania można zdefiniować jako
- Zapytanie podrzędne nie powinno zawierać klauzuli „order by”.
- Podzapytanie należy umieścić po prawej stronie operatora porównania zapytania głównego
- Zapytanie podrzędne powinno być ujęte w nawias, ponieważ musi zostać wykonane jako pierwsze przed zapytaniem głównym
- Można uwzględnić więcej niż jedno zapytanie podrzędne
8. Jakie są rodzaje zapytań podrzędnych?
Istnieją trzy typy zapytań podrzędnych –
- Podzapytanie jednowierszowe, które zwraca tylko jeden wiersz
- Zapytanie podrzędne z wieloma wierszami, które zwraca wiele wierszy
- Zapytanie podrzędne z wieloma kolumnami, które zwraca wiele kolumn do zapytania głównego. Po otrzymaniu wyniku zapytania podrzędnego zostanie wykonane zapytanie główne.
9. Co to jest agent serwera SQL?
Agent SQL Server odgrywa kluczową rolę w codziennych zadaniach administratora serwera SQL (DBA). Celem agenta serwera jest łatwe wdrażanie zadań za pomocą silnika harmonogramu, który umożliwia uruchamianie naszych zadań w zaplanowanym dniu i godzinie.
10. Czym są zaplanowane zadania w SQL Server?
Zaplanowane zadania lub zadania służą do automatyzacji procesów, które można uruchamiać o zaplanowanej porze i w regularnych odstępach czasu. Takie planowanie zadań pomaga ograniczyć interwencję człowieka w porze nocnej, a karmienie można wykonywać o określonej porze. Użytkownik może także zamówić zadania, w których ma zostać wygenerowany.
11. Co to jest COALESCE w SQL Server?
COALESCE służy do zwracania pierwszego wyrażenia o wartości innej niż null w argumentach. Ta funkcja służy do zwracania wartości innej niż null z więcej niż jednej kolumny argumentów.
Przykład -
Select COALESCE(empno, empname, salary) from employee;
12. Jak można obsługiwać wyjątki w programowaniu SQL Server?
Wyjątki są obsługiwane za pomocą konstrukcji TRY--CATCH i jest to obsługiwane poprzez pisanie skryptów wewnątrz bloku TRY i obsługę błędów w bloku CATCH.
13. Do czego służy funkcja PODŁOGA?
Funkcja FLOOR służy do zaokrąglania wartości niecałkowitej do poprzedniej najmniejszej liczby całkowitej. Podano przykład
FLOOR(6.7)
Zwraca 6.
14. Czy możemy sprawdzić blokady w bazie danych? Jeśli tak, jak możemy sprawdzić blokadę?
Tak, możemy sprawdzić blokady w bazie danych. Można to osiągnąć za pomocą wbudowanej procedury składowanej o nazwie sp_lock.
15. Do czego służy funkcja ZNAK?
Funkcja ZNAK służy do określenia, czy podana liczba jest dodatnia, ujemna i zerowa. To zwróci +1, -1 lub 0.
Przykład -
SIGN(-35) returns -1
16. Co to jest wyzwalacz?
Wyzwalacze służą do wykonywania partii kodu SQL, gdy polecenia insert, update lub delete są wykonywane względem tabeli. Wyzwalacze są automatycznie wyzwalane lub wykonywane, gdy dane są modyfikowane. Mogą być wykonywane automatycznie podczas operacji insert, delete i update.
17. Jakie są rodzaje wyzwalaczy?
Istnieją cztery typy wyzwalaczy i są to:
- wstawka
- Usunięcia
- Aktualizacja
- Zamiast
18. Co to jest kolumna IDENTITY w instrukcjach wstawiania?
Kolumna IDENTITY jest używana w kolumnach tabeli, aby uczynić tę kolumnę automatyczną liczbą przyrostową lub kluczem zastępczym.
19. Co to jest kopia zbiorcza w SQL?
Bulkcopy to narzędzie służące do kopiowania dużej ilości danych z tabel. To narzędzie służy do ładowania dużej ilości danych w SQL Server.
20. Jakie zapytanie będzie użyte do pobrania listy wyzwalaczy w bazie danych?
Zapytanie o listę wyzwalaczy w bazie danych-
Select * from sys.objects where type='tr'
21. Jaka jest różnica między UNION a UNION ALL?
- UNION: Aby wybrać powiązane informacje z dwóch tabel, używana jest komenda UNION. Działa podobnie do polecenia DOŁĄCZ.
- UNION All: Polecenie UNION ALL jest równoważne poleceniu UNION, z tą różnicą, że UNION ALL wybiera wszystkie wartości. Nie usunie zduplikowanych wierszy, zamiast tego pobierze wszystkie wiersze ze wszystkich tabel.
22. Jak reprezentowane są globalne tabele tymczasowe i jaki jest ich zakres?
Globalne tabele tymczasowe są reprezentowane przez ## przed nazwą tabeli. Zakres będzie poza sesją, podczas gdy lokalne tabele tymczasowe będą znajdować się wewnątrz sesji. Identyfikator sesji można znaleźć za pomocą @@SPID.
Pytania i odpowiedzi dotyczące wywiadu na serwerze SQL Server dla doświadczonych
23. Jakie są różnice pomiędzy procedurą składowaną a dynamicznym SQL?
Procedura składowana to zestaw instrukcji przechowywanych w postaci skompilowanej. Dynamiczny SQL to zestaw instrukcji, które są dynamicznie konstruowane w czasie wykonywania i nie będą przechowywane w bazie danych, a po prostu będą wykonywane w czasie wykonywania.
24. Co to jest zestawienie?
Sortowanie definiuje się w celu określenia porządku sortowania w tabeli. Istnieją trzy rodzaje kolejności sortowania –
- Rozróżnianie wielkości liter
- Wielkość liter nie jest wrażliwa
- Binarna
25. Jak możemy obliczyć liczbę rekordów w tabeli?
Poniżej przedstawiono zapytania, których można użyć, aby uzyskać liczbę rekordów w tabeli –
Select * from <tablename> Select count(*) from <tablename> Select rows from sysindexes where id=OBJECT_ID(tablename) and indid<2
26. Jakiego polecenia używa się do pobrania wersji SQL Server?
Select SERVERPROPERTY('productversion')
służy do pobierania wersji SQL Server.
27. Co to jest polecenie UPDATE_STATISTICS?
Polecenie UPDATE_STATISTICS służy do aktualizacji indeksów w tabelach w przypadku dużej liczby usunięć lub modyfikacji lub w przypadku wystąpienia masowego kopiowania indeksów.
28. Do czego służy instrukcja SET NOCOUNT ON/OFF?
Domyślnie NOCOUNT jest ustawione na OFF i zwraca liczbę rekordów, na które wpływa każde wykonanie polecenia. Jeśli użytkownik nie chce wyświetlać liczby rekordów, których to dotyczy, można to jawnie ustawić na ON- (SET NOCOUNT ON).
29. Która tabela serwera SQL jest używana do przechowywania skryptów procedur składowanych?
Sys.SQL_Modules to tabela SQL Server używana do przechowywania skryptu procedury składowanej. Nazwa procedury składowanej jest zapisywana w tabeli o nazwie Sys.Procedures.
30. Czym są magiczne tabele w SQL Server?
Podczas operacji DML, takich jak Insert, Delete i Update, SQL Server tworzy magiczne tabele, aby przechowywać wartości podczas operacji DML. Te magiczne tabele są używane wewnątrz wyzwalaczy do transakcji danych.
31. Jaka jest różnica pomiędzy SUBSTR i CHARINDEX w SQL Server?
Funkcja SUBSTR służy do zwrócenia określonej części ciągu w danym ciągu. Ale funkcja CHARINDEX podaje pozycję znaku w danym określonym ciągu.
SUBSTRING('Smiley',1,3)
Daje wynik jako Smi
CHARINDEX('i', 'Smiley',1)
Daje 3 w wyniku, jak pojawia się w 3rd pozycja struny
32. Jak utworzyć login?
Aby utworzyć konto logowania, możesz użyć następującego polecenia
CREATE LOGIN MyLogin WITH PASSWORD = '123';
33. Czym jest operator ISNULL()?
Funkcja ISNULL służy do sprawdzania, czy podana wartość ma wartość NULL, czy nie NULL w serwerze sql. Ta funkcja umożliwia również zastąpienie wartości wartością NULL.
34. Jakie jest zastosowanie klauzuli FOR?
Klauzula FOR jest używana głównie do XML i opcje przeglądarki. Klauzula ta używana jest głównie do wyświetlania wyników zapytania w formacie XML lub w przeglądarce.
35. Jaka będzie maksymalna liczba indeksów w tabeli?
W przypadku SQL Server 2008 indeksu 100 można użyć jako maksymalnej liczby na tabelę. 1 ClusterW programie SQL Server można używać indeksu ed i 999 indeksów nieklastrowanych na tabelę.
Indeks 1000 może być użyty jako maksymalna liczba na tabelę. 1 ClusterW programie SQL Server można używać indeksu ed i 999 indeksów nieklastrowanych na tabelę.
1 ClusterW programie SQL Server można używać indeksu ed i 999 indeksów nieklastrowanych na tabelę.
36. Jaka jest różnica pomiędzy COMMIT i ROLLBACK?
Każda instrukcja pomiędzy BEGIN i COMMIT staje się trwała w bazie danych po wykonaniu COMMIT. Każda instrukcja pomiędzy BEGIN i ROOLBACK zostaje przywrócona do stanu, w którym wykonano ROLLBACK.
37. Jaka jest różnica między typami varchar i nvarchar?
Varchar i nvarchar są takie same, ale jedyną różnicą jest to, że nvarhcar może być używany do przechowywania znaków Unicode dla wielu języków, a także zajmuje więcej miejsca w porównaniu z varchar.
38. Jaki jest pożytek z @@SPID?
@@SPID zwraca identyfikator sesji bieżącego procesu użytkownika.
39. Jakiego polecenia używa się do ponownej kompilacji procedury składowanej w czasie wykonywania?
Procedurę składowaną można wykonać za pomocą słowa kluczowego RECOMPILE.
Przykład
Exe <SPName> WITH RECOMPILE
Lub możemy dołączyć WITHRECOMPILE do samej procedury składowanej.
40. Jak usunąć zduplikowane wiersze w SQL Server?
Zduplikowane wiersze można usunąć za pomocą funkcji CTE i NUMER WIERSZA programu SQL Server.
41. Gdzie są przechowywane nazwy użytkowników i hasła SQL Server w SQL Server?
Nazwy użytkowników i hasła są przechowywane w sys.server_principals i sys.sql_logins. Ale hasła nie są przechowywane w zwykłym tekście.
42. Jaka jest różnica między GETDATE a SYSDATETIME?
Obydwa są takie same, ale GETDATE może dać czas do milisekund, a SYSDATETIME może dać precyzję do nanosekund. SYSDATE TIME jest dokładniejszy niż GETDATE.
43. Jak można skopiować dane z jednej tabeli do drugiej?
INSERT INTO SELECT
Polecenie to służy do wstawiania danych do już utworzonej tabeli.
SELECT INTO
Polecenie to służy do utworzenia nowej tabeli, a jej strukturę i dane można skopiować z istniejącej tabeli.
44. Co to jest TABLESAMPLE?
TABLESAMPLE służy do losowego wyodrębniania próbek wierszy niezbędnych dla aplikacji. Pobrane przykładowe wiersze opierają się na odsetku wierszy.
45. Które polecenie jest używane w przypadku komunikatów o błędach zdefiniowanych przez użytkownika?
RAISEERROR to polecenie służące do generowania i inicjowania przetwarzania błędów dla danej sesji. Te zdefiniowane przez użytkownika komunikaty są przechowywane w tabeli sys.messages.
46. Co oznacza typ danych XML?
Typ danych XML służy do przechowywania dokumentów XML w formacie Baza danych SQL Server. Tworzone są kolumny i zmienne, które przechowują instancje XML w bazie danych.
47. Co to jest CDC?
CDC jest w skrócie Change Data Capture i służy do przechwytywania danych, które zostały ostatnio zmienione. Ta funkcja jest dostępna w SQL Server 2008.
48. Co to jest zastrzyk SQL?
Wstrzyknięcie SQL to atak złośliwych użytkowników, podczas którego złośliwy kod można wstawić do ciągów znaków, które można przekazać do instancji serwera SQL w celu przeanalizowania i wykonania. Wszystkie instrukcje muszą być sprawdzane pod kątem luk w zabezpieczeniach, ponieważ wykonują wszystkie otrzymane zapytania poprawne składniowo.
Wykwalifikowani i doświadczeni atakujący mogą manipulować nawet parametrami.
49. Jakie są metody ochrony przed atakiem SQL Injection?
Poniżej przedstawiono metody ochrony przed atakami typu SQL injection:
- Użyj parametrów procedur składowanych
- Filtrowanie parametrów wejściowych
- Użyj kolekcji parametrów z dynamicznym SQL
- W podobnej klauzuli znaki ucieczki użytkownika
50. Co to jest indeks filtrowany?
Indeks filtrowany służy do filtrowania części wierszy tabeli w celu poprawy wydajności zapytań, obsługi indeksu i zmniejszenia kosztów przechowywania indeksu. Kiedy indeks jest tworzony za pomocą klauzuli WHERE, nazywa się go indeksem filtrowanym.
Te pytania podczas rozmowy kwalifikacyjnej pomogą również w Twoim życiu (ustach)