Pytania rekrutacyjne SQL

119 pytań — 20 odpowiedzi dostępnych od razu

Ten darmowy podgląd pytań rekrutacyjnych SQL pozwala powtórzyć zagadnienia potrzebne w pracy z relacyjnymi bazami danych. Zobacz przykładowe pytania i odpowiedzi z pełnego zestawu 119 zagadnień.

Materiał obejmuje zapytania, filtrowanie i modyfikację danych, JOIN-y oraz agregacje. Fiszki pomagają przećwiczyć nie tylko składnię, ale też sposób argumentowania wyboru konkretnego zapytania.

Darmowy start

Pierwsze 20 odpowiedzi są dostępne od razu

Przeglądaj pełną listę 119 pytań. Pełne odpowiedzi, przykłady kodu i materiały do nauki odblokujesz w panelu.

Odblokuj 99 odpowiedzi

Podstawy SQL

Czym jest SQL i co oznacza ten skrót?

SQL to skrót od Structured Query Language (Strukturalny Język Zapytań). Jest to standardowy język programowania przeznaczony do zarządzania danymi przechowywanymi w relacyjnych bazach danych. SQL umożliwia wykonywanie różnych operacji na danych, takich jak:

  • Tworzenie i modyfikowanie struktur bazy danych
  • Wstawianie, aktualizowanie i usuwanie danych
  • Wykonywanie zapytań w celu pobierania informacji
  • Zarządzanie uprawnieniami użytkowników

Źródła:

Jaka jest różnica między bazami danych SQL i NoSQL?

Bazy danych SQL (relacyjne):

  • Wykorzystują strukturę tabelaryczną z predefiniowanym schematem
  • Stosują ACID (Atomicity, Consistency, Isolation, Durability) jako podstawowe zasady transakcji
  • Używają języka SQL do zarządzania danymi
  • Wymagają normalnej struktury danych
  • Przykłady: MySQL, PostgreSQL, Oracle, SQL Server

Bazy danych NoSQL (nierelacyjne):

  • Oferują elastyczne struktury danych (dokumenty, klucz-wartość, grafy, kolumny)
  • Często stosują eventual consistency zamiast ACID
  • Wykorzystują różne języki zapytań lub API
  • Lepiej radzą sobie ze skalowaniem poziomym
  • Przykłady: MongoDB, Redis, Cassandra, Neo4j

Źródła:

Jakie są główne typy komend SQL (DDL, DML, DCL, TCL)?

DDL (Data Definition Language) - Język Definicji Danych:

  • Służy do tworzenia i modyfikowania struktury bazy danych
  • Komendy: CREATE, ALTER, DROP, TRUNCATE

DML (Data Manipulation Language) - Język Manipulacji Danych:

  • Umożliwia operacje na danych w tabelach
  • Komendy: SELECT, INSERT, UPDATE, DELETE

DCL (Data Control Language) - Język Kontroli Danych:

  • Zarządza uprawnieniami i dostępem do danych
  • Komendy: GRANT, REVOKE

TCL (Transaction Control Language) - Język Kontroli Transakcji:

  • Kontroluje wykonywanie transakcji w bazie danych
  • Komendy: COMMIT, ROLLBACK, SAVEPOINT

Źródła:

Wyjaśnij różnicę między bazą danych, schematem, tabelą i rekordem.

Baza danych:

  • Najwyższy poziom organizacji danych
  • Zbiór powiązanych ze sobą danych przechowywanych w sposób strukturalny
  • Może zawierać jeden lub więcej schematów

Schemat:

  • Logiczne grupowanie obiektów bazy danych (tabel, widoków, procedur)
  • Definiuje strukturę organizacyjną wewnątrz bazy danych
  • W niektórych systemach schemat jest synonimem bazy danych

Tabela:

  • Podstawowa struktura przechowywania danych w formacie wierszy i kolumn
  • Reprezentuje konkretny typ encji lub relację
  • Składa się z kolumn (atrybutów) i wierszy (rekordów)

Rekord (wiersz):

  • Pojedyncza instancja danych w tabeli
  • Zawiera wartości dla wszystkich kolumn zdefiniowanych w tabeli
  • Reprezentuje jedną jednostkę informacji

Źródła:

Czym jest klucz główny i dlaczego jest ważny?

Klucz główny (Primary Key) to kolumna lub kombinacja kolumn, która jednoznacznie identyfikuje każdy rekord w tabeli.

Właściwości klucza głównego:

  • Unikalność - każda wartość musi być unikalna w tabeli
  • Nie może być NULL - musi zawierać wartość
  • Niezmienność - wartość nie powinna się zmieniać po utworzeniu
  • Jeden na tabelę - każda tabela może mieć tylko jeden klucz główny

Znaczenie klucza głównego:

  • Zapewnia integralność danych
  • Umożliwia tworzenie relacji między tabelami (klucze obce)
  • Automatycznie tworzy indeks dla lepszej wydajności
  • Służy do replikacji i synchronizacji danych
  • Niezbędny dla niektórych operacji (np. UPDATE, DELETE w niektórych systemach)

Źródła:

Jaka jest różnica między typami danych CHAR i VARCHAR?

CHAR (Character):

  • Stała długość - zawsze zajmuje zdefiniowaną liczbę bajtów
  • Dopełnienie spacjami - krótsze wartości są dopełniane spacjami po prawej stronie
  • Wydajność - szybsze operacje ze względu na stałą długość
  • Użycie - idealny dla danych o znanej, stałej długości (np. kody pocztowe, numery PESEL)
  • Przykład: CHAR(10) zawsze zajmuje 10 bajtów

VARCHAR (Variable Character):

  • Zmienna długość - zajmuje tylko tyle miejsca, ile potrzeba dla przechowywanych danych
  • Bez dopełnienia - nie dodaje dodatkowych znaków
  • Elastyczność - lepszy dla danych o zmiennej długości
  • Użycie - idealny dla nazwisk, adresów, opisów
  • Przykład: VARCHAR(50) może zajmować od 1 do 50 bajtów plus metadane o długości

Praktyczne zastosowanie:

  • Używaj CHAR dla kodów, identyfikatorów o stałej długości
  • Używaj VARCHAR dla tekstu o zmiennej długości

Źródła:

Czym są wartości NULL i jak zachowują się w operacjach SQL?

NULL w SQL reprezentuje brak wartości lub nieznaną wartość. Nie jest to zero, pusty ciąg znaków ani spacja - to specjalny znacznik wskazujący na nieobecność danych.

Zachowanie NULL w operacjach:

Operacje arytmetyczne:

  • Każda operacja arytmetyczna z NULL zwraca NULL
  • 5 + NULL = NULL, NULL * 10 = NULL

Porównania:

  • Porównania z NULL zawsze zwracają UNKNOWN, nie TRUE ani FALSE
  • NULL = NULL zwraca UNKNOWN, nie TRUE
  • Należy używać IS NULL lub IS NOT NULL

Funkcje agregujące:

  • COUNT(*) liczy wszystkie wiersze, włączając te z NULL
  • COUNT(kolumna) ignoruje wartości NULL
  • SUM, AVG, MIN, MAX ignorują wartości NULL

Logika trójwartościowa:

  • TRUE AND NULL = NULL
  • FALSE OR NULL = NULL
  • NOT NULL = NULL

Sortowanie:

  • NULL może być sortowane jako pierwsze lub ostatnie (zależy od systemu)
  • Można kontrolować zachowanie za pomocą NULLS FIRST/NULLS LAST

Przykład kodu:

-- Poprawne sprawdzanie NULL
SELECT * FROM tabela WHERE kolumna IS NULL;
SELECT * FROM tabela WHERE kolumna IS NOT NULL;

-- Niepoprawne (zawsze zwraca brak wyników)
SELECT * FROM tabela WHERE kolumna = NULL;

Źródła:

Podstawowe zapytania SQL

Napisz zapytanie, które wybierze wszystkie kolumny z tabeli o nazwie "employees".

SELECT * FROM employees;

Znak gwiazdki (*) oznacza wybór wszystkich kolumn z tabeli. Jest to wygodny sposób na pobranie pełnych rekordów, jednak w środowiskach produkcyjnych zaleca się jawne wyspecyfikowanie potrzebnych kolumn dla lepszej wydajności.

Źródła:

Jak wybrać konkretne kolumny z tabeli?

SELECT kolumna1, kolumna2, kolumna3 FROM nazwa_tabeli;

Przykład:

SELECT first_name, last_name, email FROM employees;

Wybieranie konkretnych kolumn jest bardziej efektywne niż używanie *, ponieważ zmniejsza ilość przesyłanych danych i może poprawić wydajność zapytania.

Źródła:

Jaki jest cel klauzuli WHERE?

Klauzula WHERE służy do filtrowania rekordów w zapytaniach SQL. Pozwala na określenie warunków, które muszą być spełnione, aby rekord został uwzględniony w wynikach zapytania.

SELECT * FROM employees WHERE department = 'IT';
SELECT * FROM employees WHERE salary > 50000;
SELECT * FROM employees WHERE hire_date >= '2020-01-01';

Klauzula WHERE może zawierać operatory porównania (=, >, <, >=, <=, <>), operatory logiczne (AND, OR, NOT) oraz funkcje.

Źródła:

Jak sortować wyniki używając ORDER BY?

-- Sortowanie rosnące (domyślne)
SELECT * FROM employees ORDER BY last_name;

-- Sortowanie malejące
SELECT * FROM employees ORDER BY salary DESC;

-- Sortowanie według wielu kolumn
SELECT * FROM employees ORDER BY department, last_name ASC;

Klauzula ORDER BY pozwala na:

  • ASC - sortowanie rosnące (domyślne)
  • DESC - sortowanie malejące
  • Sortowanie według wielu kolumn (pierwsza kolumna ma priorytet)

Źródła:

Jaka jest różnica między klauzulami WHERE i HAVING?

Aspekt WHERE HAVING
Moment filtrowania Przed grupowaniem Po grupowaniu
Zastosowanie Filtruje pojedyncze wiersze Filtruje grupy
Funkcje agregujące Nie może używać funkcji agregujących Może używać funkcji agregujących
Wydajność Bardziej wydajne Mniej wydajne
-- WHERE - filtruje przed grupowaniem
SELECT department, COUNT(*) 
FROM employees 
WHERE salary > 40000 
GROUP BY department;

-- HAVING - filtruje po grupowaniu
SELECT department, COUNT(*) 
FROM employees 
GROUP BY department 
HAVING COUNT(*) > 5;

-- Kombinacja obu
SELECT department, AVG(salary) 
FROM employees 
WHERE hire_date >= '2020-01-01' 
GROUP BY department 
HAVING AVG(salary) > 60000;

Źródła:

Jak ograniczyć liczbę wyników zwracanych przez zapytanie?

Sposób ograniczania wyników zależy od systemu bazodanowego:

-- MySQL, PostgreSQL, SQLite
SELECT * FROM employees LIMIT 10;

-- SQL Server
SELECT TOP 10 * FROM employees;

-- Oracle
SELECT * FROM employees WHERE ROWNUM <= 10;

-- SQL Server (nowsze wersje) z OFFSET
SELECT * FROM employees 
ORDER BY employee_id 
OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY;

-- PostgreSQL/MySQL z OFFSET (dla paginacji)
SELECT * FROM employees 
ORDER BY employee_id 
LIMIT 10 OFFSET 20;

Ograniczanie wyników jest szczególnie przydatne dla:

  • Paginacji w aplikacjach webowych
  • Testowania zapytań na dużych tabelach
  • Optymalizacji wydajności

Źródła:

Filtrowanie i manipulacja danych w SQL

Jakie są różne operatory porównania dostępne w SQL?

SQL oferuje następujące operatory porównania:

  • = - równość
  • <> lub != - nierówność
  • < - mniejsze niż
  • > - większe niż
  • <= - mniejsze lub równe
  • >= - większe lub równe
  • IS NULL - sprawdza wartości NULL
  • IS NOT NULL - sprawdza wartości różne od NULL
  • BETWEEN - sprawdza zakres wartości
  • IN - sprawdza przynależność do zbioru wartości
  • LIKE - dopasowywanie wzorców tekstowych
  • NOT - negacja (może być używana z innymi operatorami)
-- Przykłady użycia
SELECT * FROM employees WHERE salary > 50000;
SELECT * FROM products WHERE category IN ('Electronics', 'Books');
SELECT * FROM orders WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31';

Źródła:

Jak używać operatora LIKE do dopasowywania wzorców?

Operator LIKE służy do wyszukiwania określonych wzorców w kolumnach tekstowych. Wykorzystuje wildcards:

  • % - zastępuje zero lub więcej znaków
  • _ - zastępuje dokładnie jeden znak
-- Przykłady użycia LIKE
SELECT * FROM customers WHERE customer_name LIKE 'A%';  -- zaczyna się od 'A'
SELECT * FROM products WHERE product_name LIKE '%phone%';  -- zawiera 'phone'
SELECT * FROM employees WHERE first_name LIKE 'J_hn';  -- J + jeden znak + hn
SELECT * FROM cities WHERE city_name LIKE '_ondon';  -- jeden znak + ondon

-- Użycie z NOT LIKE
SELECT * FROM customers WHERE customer_name NOT LIKE 'B%';

-- Escape dla literalnych znaków specjalnych
SELECT * FROM products WHERE description LIKE '50\% off' ESCAPE '\';

Źródła:

Jaka jest różnica między operatorami IN i EXISTS?

Operator IN:

  • Sprawdza czy wartość kolumny znajduje się w określonej liście wartości lub wynikach podzapytania
  • Porównuje wartości bezpośrednio
  • Może zwracać NULL jeśli wartość w kolumnie to NULL

Operator EXISTS:

  • Sprawdza czy podzapytanie zwraca co najmniej jeden rekord
  • Nie porównuje wartości, tylko sprawdza istnienie rekordów
  • Zwraca TRUE lub FALSE, nigdy NULL
-- Przykład IN
SELECT * FROM customers 
WHERE country IN ('USA', 'Canada', 'Mexico');

SELECT * FROM customers 
WHERE customer_id IN (SELECT customer_id FROM orders WHERE order_date > '2024-01-01');

-- Przykład EXISTS
SELECT * FROM customers c
WHERE EXISTS (SELECT 1 FROM orders o WHERE o.customer_id = c.customer_id);

-- NOT EXISTS
SELECT * FROM customers c
WHERE NOT EXISTS (SELECT 1 FROM orders o WHERE o.customer_id = c.customer_id);

Kluczowe różnice:

  • Wydajność: EXISTS często jest szybszy dla dużych zbiorów danych
  • Obsługa NULL: IN może dawać nieoczekiwane rezultaty z NULL, EXISTS nie
  • Korelacja: EXISTS pozwala na korelowane podzapytania

Źródła:

Jak obsługiwać wyszukiwanie bez uwzględniania wielkości liter w SQL?

Metody obsługi case-insensitive search:

  1. Funkcje UPPER() i LOWER():
SELECT * FROM customers 
WHERE LOWER(customer_name) = LOWER('john smith');

SELECT * FROM products 
WHERE UPPER(product_name) LIKE UPPER('%laptop%');
  1. Funkcja ILIKE (PostgreSQL):
SELECT * FROM customers 
WHERE customer_name ILIKE '%smith%';
  1. Collation (SQL Server, MySQL):
-- SQL Server
SELECT * FROM customers 
WHERE customer_name COLLATE SQL_Latin1_General_CP1_CI_AS = 'John Smith';

-- MySQL
SELECT * FROM customers 
WHERE customer_name COLLATE utf8_general_ci = 'John Smith';
  1. Konfiguracja na poziomie tabeli/kolumny:
-- MySQL - podczas tworzenia tabeli
CREATE TABLE customers (
    customer_name VARCHAR(100) COLLATE utf8_general_ci
);

Źródła:

Czym są wildcards i jak się ich używa?

Wildcards to znaki specjalne używane w SQL do dopasowywania wzorców tekstowych, głównie z operatorem LIKE.

Podstawowe wildcards:

  1. % (procent) - zastępuje zero lub więcej znaków:
SELECT * FROM customers WHERE customer_name LIKE 'A%';      -- zaczyna się od A
SELECT * FROM customers WHERE customer_name LIKE '%son';    -- kończy się na son
SELECT * FROM customers WHERE customer_name LIKE '%and%';   -- zawiera and
  1. _ (podkreślenie) - zastępuje dokładnie jeden znak:
SELECT * FROM customers WHERE customer_name LIKE 'J_hn';    -- John, Jahn, etc.
SELECT * FROM products WHERE product_code LIKE 'A_C';       -- ABC, AXC, A5C, etc.
  1. [] (nawiasy kwadratowe) - dopasowuje jeden znak z zestawu (SQL Server, Access):
SELECT * FROM customers WHERE customer_name LIKE '[ABC]%';   -- zaczyna się od A, B lub C
SELECT * FROM products WHERE product_code LIKE '[0-9][0-9]'; -- dwie cyfry
  1. [^] lub [!] - dopasowuje znaki NIE z zestawu:
SELECT * FROM customers WHERE customer_name LIKE '[^ABC]%';  -- NIE zaczyna się od A, B lub C

Kombinowanie wildcards:

-- Nazwa z co najmniej 5 znakami, zaczyna się od A
SELECT * FROM customers WHERE customer_name LIKE 'A____%';

-- Email z domeną .com
SELECT * FROM users WHERE email LIKE '%.com';

-- Kod produktu: litera, cyfra, litera
SELECT * FROM products WHERE product_code LIKE '_[0-9]_';

Źródła:

Jak filtrować rekordy na podstawie zakresów dat?

Metody filtrowania dat:

  1. Operator BETWEEN:
SELECT * FROM orders 
WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31';

SELECT * FROM employees 
WHERE hire_date BETWEEN DATE('2020-01-01') AND DATE('2024-01-01');
  1. Operatory porównania:
SELECT * FROM orders 
WHERE order_date >= '2024-01-01' AND order_date <= '2024-12-31';

SELECT * FROM sales 
WHERE sale_date > '2024-06-01';
  1. Funkcje dat:
-- Ostatnie 30 dni
SELECT * FROM orders 
WHERE order_date >= CURRENT_DATE - INTERVAL 30 DAY;

-- Bieżący rok
SELECT * FROM sales 
WHERE YEAR(sale_date) = YEAR(CURRENT_DATE);

-- Określony miesiąc
SELECT * FROM orders 
WHERE MONTH(order_date) = 3 AND YEAR(order_date) = 2024;
  1. Zakresy czasowe z godziną:
-- Pełny dzień (z czasem)
SELECT * FROM transactions 
WHERE transaction_date >= '2024-03-01 00:00:00' 
  AND transaction_date < '2024-03-02 00:00:00';

-- Ostatnie 24 godziny
SELECT * FROM logs 
WHERE created_at >= NOW() - INTERVAL 1 DAY;
  1. Filtrowanie względne:
-- PostgreSQL
SELECT * FROM orders 
WHERE order_date >= CURRENT_DATE - INTERVAL '3 months';

-- MySQL
SELECT * FROM sales 
WHERE sale_date >= DATE_SUB(CURRENT_DATE, INTERVAL 1 YEAR);

-- SQL Server
SELECT * FROM transactions 
WHERE transaction_date >= DATEADD(day, -7, GETDATE());

Najlepsze praktyki:

  • Używaj indeksów na kolumnach dat dla lepszej wydajności
  • Uważaj na strefy czasowe w aplikacjach globalnych
  • Używaj funkcji dat zamiast manipulacji stringów
  • Testuj granice zakresów (włącznie/wyłącznie)

Źródła:

Joiny i relacje SQL

Jakie są różne typy JOINów w SQL?

W SQL istnieje kilka typów operatorów JOIN, które pozwalają na łączenie danych z różnych tabel:

  1. INNER JOIN - zwraca tylko te rekordy, które mają dopasowania w obu tabelach
  2. LEFT JOIN (LEFT OUTER JOIN) - zwraca wszystkie rekordy z lewej tabeli oraz dopasowane z prawej
  3. RIGHT JOIN (RIGHT OUTER JOIN) - zwraca wszystkie rekordy z prawej tabeli oraz dopasowane z lewej
  4. FULL OUTER JOIN - zwraca wszystkie rekordy z obu tabel, niezależnie od dopasowań
  5. CROSS JOIN - zwraca iloczyn kartezjański dwóch tabel
  6. SELF JOIN - łączenie tabeli ze sobą samą

Źródła:

21. Wyjaśnij różnicę między INNER JOIN i LEFT JOIN.

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
22. Kiedy użyłbyś RIGHT JOIN zamiast LEFT JOIN?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
23. Czym jest FULL OUTER JOIN i kiedy jest przydatny?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
24. Czym jest CROSS JOIN i jakie są jego przypadki użycia?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
25. Jak połączyć tabelę ze sobą samą (self-join)?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
26. Jaka jest różnica między JOIN i UNION?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Funkcje agregujące i grupowanie w SQL

27. Czym są funkcje agregujące? Wymień najczęściej używane.

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
28. Jak działa klauzula GROUP BY?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
29. Jaki jest cel klauzuli HAVING?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
30. Jak policzyć unikalne wartości w kolumnie?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
31. Jaka jest różnica między COUNT(*) i COUNT(column_name)?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
32. Jak znaleźć maksymalne, minimalne i średnie wartości w zbiorze danych?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Projektowanie schematu bazy danych

33. Czym jest normalizacja bazy danych i dlaczego jest ważna?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
34. Wyjaśnij pierwszą, drugą i trzecią postać normalną.

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
35. Czym jest denormalizacja i kiedy można jej użyć?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
36. Czym jest klucz obcy i jak wymusza integralność referencyjną?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
37. Czym są klucze złożone i kiedy są używane?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
38. Jaka jest różnica między indeksem klastrowym i nieklastrowym?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Ograniczenia i integralność danych w SQL

39. Czym są ograniczenia bazodanowe i dlaczego są ważne?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
40. Wyjaśnij różne typy ograniczeń (NOT NULL, UNIQUE, CHECK, itp.).

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
41. Czym jest integralność referencyjna?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
42. Jak obsługiwać kaskadowe aktualizacje i usunięcia?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
43. Czym są triggery i kiedy powinny być używane?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Podzapytania i CTE

44. Czym jest podzapytanie i jakie są jego różne typy?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
45. Jaka jest różnica między skorelowanymi i nieskorelowanymi podzapytaniami?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
46. Czym są Common Table Expressions (CTE) i czym różnią się od podzapytań?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
47. Kiedy użyłbyś rekurencyjnego CTE?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
48. Jak optymalizować zapytania z wieloma podzapytaniami?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Windows Functions (funkcje okna) w SQL

49. Czym są Windows Functions (funkcje okna) i czym różnią się od funkcji agregujących?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
50. Wyjaśnij różnicę między ROW_NUMBER(), RANK() i DENSE_RANK().

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
51. Jaki jest cel klauzuli PARTITION BY w Windows Functions (funkcjach okna)?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
52. Jak używać funkcji LAG() i LEAD()?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
53. Czym są sumy bieżące i jak je obliczać?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Zaawansowana manipulacja danych w SQL

54. Jaka jest różnica między UNION i UNION ALL?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
55. Jak wykonywać logikę warunkową w zapytaniach SQL (instrukcje CASE)?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
56. Czym są operacje pivot i unpivot?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
57. Jak obsługiwać duplikaty rekordów w zbiorze danych?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
58. Jaka jest różnica między DELETE, DROP i TRUNCATE?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Wydajność zapytań w SQL

59. Czym jest indeks bazodanowy i jak poprawia wydajność zapytań?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
60. Jakie są kompromisy przy używaniu indeksów?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
61. Jak identyfikować wolno działające zapytania?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
62. Czym jest plan wykonania zapytania i jak go analizować?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
63. Jakie są częste przyczyny słabej wydajności zapytań?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
64. Jak optymalizować operacje JOIN?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
65. Jaki jest wpływ używania funkcji w klauzulach WHERE?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Optymalizacja bazy danych

66. Czym jest partycjonowanie bazy danych i kiedy jest przydatne?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
67. Czym są zmaterializowane widoki i kiedy powinny być używane?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
68. Jak wydajnie obsługiwać zapytania na dużych zbiorach danych?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
69. Czym jest cachowanie zapytań i jak działa?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
70. Czym są statystyki bazy danych i dlaczego są ważne?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Właściwości ACID

71. Czym są właściwości ACID w transakcjach bazodanowych?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
72. Wyjaśnij, co oznacza spójność bazy danych.

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
73. Czym jest izolacja transakcji i dlaczego jest ważna?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
74. Jakie są różne poziomy izolacji w SQL?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
75. Czym jest deadlock i jak go zapobiegać?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Zarządzanie transakcjami

76. Jaka jest różnica między transakcjami niejawnymi i jawnymi?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
77. Kiedy używać COMMIT i ROLLBACK?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
78. Czym są savepoints i jak są używane?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
79. Jak obsługiwać równoczesny dostęp do danych?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
80. Czym jest optymistyczne vs pesymistyczne blokowanie?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Procedury składowane i funkcje

81. Jaka jest różnica między procedurami składowanymi a funkcjami?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
82. Jakie są zalety i wady używania procedur składowanych?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
83. Jak obsługiwać błędy w procedurach składowanych?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
84. Czym są funkcje zdefiniowane przez użytkownika i kiedy ich używać?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
85. Jaka jest różnica między funkcjami skalarnymi a zwracającymi tabele?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Bezpieczeństwo i kontrola dostępu

86. Czym jest SQL injection i jak go zapobiegać?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
87. Czym są prepared statements i parametryzowane zapytania?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
88. Jak implementować kontrolę dostępu opartą na rolach w bazach danych?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
89. Czym jest zasada najmniejszych uprawnień w bezpieczeństwie baz danych?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
90. Jak zabezpieczać wrażliwe dane w bazach danych?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Typy danych i przypadki specjalne

91. Jak pracować z danymi JSON w bazach danych SQL?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
92. Jakie są najlepsze praktyki obsługi danych daty i czasu?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
93. Jak przechowywać i odpytywać dane hierarchiczne?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
94. Jakie są rozważania przy pracy z dużymi polami tekstowymi?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
95. Jak obsługiwać waluty i precyzję dziesiętną w bazach danych?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Integracja z backendem

96. Jak obsługiwać połączenia z bazą danych w aplikacji backendowej?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
97. Czym jest connection pooling i dlaczego jest ważny?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
98. Jak implementować migracje bazy danych w projekcie backendowym?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
99. Jakie są najlepsze praktyki wersjonowania schematu bazy danych?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
100. Jak obsługiwać kopie zapasowe bazy danych i odzyskiwanie po awarii?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Skalowalność i architektura

101. Czym jest sharding bazy danych i kiedy jest konieczny?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
102. Jak projektować bazy danych dla systemów o wysokiej dostępności?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
103. Czym są repliki read-only i jak poprawiają wydajność?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
104. Jak obsługiwać eventual consistency w systemach rozproszonych?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
105. Jakie są rozważania przy wyborze między SQL a NoSQL dla systemu backendowego?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Zaawansowane funkcje SQL

106. Jak używać zaawansowanych funkcji JSON w nowoczesnych bazach SQL?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
107. Czym są LATERAL joins i jak je wykorzystać w złożonych zapytaniach?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
108. Jak rozwiązywać problemy Gap-and-Islands w SQL?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
109. Jakie są zaawansowane typy indeksów i kiedy ich używać?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
110. Jak analizować i optymalizować plany wykonania zapytań?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
111. Jak projektować schemat dla danych szeregów czasowych (time-series)?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
112. Jak implementować Row-Level Security (RLS) dla multi-tenant aplikacji?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Nowoczesne i Zaawansowane Funkcje SQL

113. Czym są tabele temporalne (temporal tables) i jak wykorzystać je do analizy historycznej?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
114. Jak działa Change Data Capture (CDC) i kiedy warto go używać?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
115. Jak wykorzystać Query Store do monitorowania i optymalizacji wydajności zapytań?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
116. Jak implementować Full-Text Search w bazach SQL i kiedy wybrać dedykowane rozwiązania?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
117. Jak używać mechanizmów LISTEN/NOTIFY i database events do komunikacji między procesami?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
118. Jak implementować zaawansowane strategie blokowania i unikać deadlocków w systemach o wysokiej współbieżności?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
119. Jak projektować i optymalizować zapytania dla danych grafowych w bazach SQL?

Odpowiedź dostępna w pełnej wersji. Odblokuj 99 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Chcesz poznać wszystkie odpowiedzi?

Uzyskaj pełny dostęp do 119 pytań rekrutacyjnych z SQL oraz pozostałych technologii.

Zobacz plany cenowe