Autor: 17.08.2023
SQL - przykładowe pytania rekrutacyjne
Chcesz się dobrze przygotować do pierwszej rozmowy o pracę wymagającej znajomości SQL? Sprawdź przykładowe pytania, które przygotowaliśmy dla Ciebie. Artykuł zawiera testy, zadania otwarte oraz zadania do samodzielnej pracy. Dzięki temu na rozmowie rekrutacyjnej nic nie będzie dla Ciebie zaskoczeniem. Zaczynamy!
10 pytań testowych z języka SQL
Staraj się nie patrzeć na prawidłowe odpowiedzi. Najpierw samodzielnie spróbuj odpowiedzieć na pytania. Zaczynamy!
Klauzula WHERE
Chcemy wybrać wiersze, które mają wartość w kolumnie price większą lub równą 50 oraz mniejszą od 100. Które zapytanie będzie prawidłowe?
A) SELECT * FROM products WHERE price > 50 OR price < 100;
B) SELECT * FROM products WHERE price <= 50 AND price > 100;
C) SELECT * FROM products WHERE price < 50 OR price >= 100;
D) SELECT * FROM products WHERE price >= 50 AND price < 100;
Prawidłowa odpowiedź: D. Mamy tu przykład użycia klauzuli WHERE oraz operatora logicznego AND, który wymaga aby obydwie części warunku były spełnione.
ORDER BY
Które zapytanie SQL posortuje wyniki zapytania "SELECT * FROM products" po kolumnie price w kolejności malejącej?
A) SELECT * FROM products ORDER BY price ASC;
B) SELECT * FROM products ORDER BY price DESC;
C) SELECT * FROM products ORDER BY price ASC, name DESC;
D) SELECT * FROM products ORDER BY name ASC, price ASC;
Prawidłowa odpowiedź: B. ORDER BY pozwala posortować wyniki zapytania. Aby posortować je malejąco, musimy na końcu dodać DESC (skrót od słowa ‘descending’).
Zapytanie INSERT
Jaki będzie efekt wykonania polecenia "INSERT INTO employees (name) VALUES ('John Doe');" w tabeli "employees", gdy pole "id" jest ustawione jako AUTO_INCREMENT?
A) Powstanie nowy rekord z polem "id" ustawionym na wartość 1000
B) Powstanie nowy rekord z polem "id" ustawionym na wartość NULL
C) Powstanie nowy rekord z polem "id" ustawionym na kolejną wartość z sekwencji
D) Powstanie błąd, gdyż nie podano wartości dla pola "id"
Prawidłowa odpowiedź: C. Używamy autoinkrementacji w polu id. Czyli wartość w tym polu zostanie ustawiona na kolejny dostępny numer. Dzięki temu rekordy w tabeli będą miały unikalne numery.
Zapytanie DELETE
Chcemy usunąć z tabeli "products" wszystkie wiersze, gdzie cena jest większa niż 100. Które zapytanie będzie prawidłowe?
A) DELETE * FROM products WHERE price > 100;
B) DELETE FROM products WHERE price > 100;
C) DELETE price FROM products WHERE price > 100;
D) DELETE FROM price WHERE products.price > 100;
Prawidłowa odpowiedź: B. Tutaj nie ma nic zaskakującego. Użyliśmy zapytania DELETE, do którego niemal zawsze dodajemy jakiś warunek - chcemy usunąć tylko określone rekordy. Z tego zapytania zawsze trzeba korzystać bardzo ostrożnie.
Operator BETWEEN
Chcemy znaleźć rekordy z tabeli "products", które mają cenę pomiędzy 10 a 20. Które zapytanie SQL będzie poprawne?
A) SELECT * FROM products WHERE price >= 10 AND price <= 20;
B) SELECT * FROM products WHERE price < 10 OR price > 20;
C) SELECT * FROM products WHERE price BETWEEN 10 AND 20;
D) SELECT * FROM products WHERE price = 10 OR price = 20;
Prawidłowe odpowiedzi: A oraz C. To jest przykład zadania, które ma więcej niż jedną prawidłową odpowiedź. W praktyce użycie operatora BETWEEN może dać nam bardziej elegancki i bardziej zwięzły zapis.
Grupowanie danych
Jakie jest zastosowanie funkcji ‘MAX(column_name)’ w zapytaniach SQL?
A) Służy do zliczania ilości kolumn w tabeli.
B) Służy do zliczania ilości wierszy w tabeli.
C) Służy do znajdowania największej wartości w kolumnie.
D) Służy do znajdowania unikalnych wartości w kolumnie.
Prawidłowa odpowiedź: C. Za pomocą funkcji MAX() możemy znaleźć najwyższą wartość we wskazanej kolumnie.
Agregacja danych
Pytanie 1
Które polecenie SQL służy do obliczenia średniej wartości z danej kolumny?
A) SUM
B) AVG
C) MAX
D) MIN
Prawidłowa odpowiedź: B. Jeśli chcemy znaleźć średnia wartość z danej kolumny to możemy użyć funkcji AVG().
Pytanie 2
Które polecenie SQL służy do wykluczania duplikatów z wyników zapytania?
A) ORDER BY
B) GROUP BY
C) HAVING
D) DISTINCT
Prawidłowa odpowiedź: D. Duplikujące się wartości możemy wykluczyć za pomocą DISTINCT. Standardowo używa się tego w połączeniu z SELECT.
Złączenia
Jakie zapytanie SQL poprawnie zwróci użytkowników, którzy mają odpowiedniki w obu tabelach?
A) SELECT * FROM users INNER JOIN orders ON users.id < orders.user_id;
B) SELECT * FROM users INNER JOIN orders ON users.id = orders.user_id;
C) SELECT * FROM users LEFT JOIN orders ON users.id = orders.user_id;
D) SELECT * FROM users OUTER JOIN orders ON users.id = orders.user_id;
Prawidłowa odpowiedź: B. To jest dobry przykład użycia złączenia typu INNER JOIN. Za jego pomocą wybieramy rekordy, które mają dopasowane wartości w obydwu tabelach.
Klauzula LIMIT
Chcemy wybrać 5 najnowszych zamówień z tabeli orders. Które zapytanie SQL będzie prawidłowe?
A) SELECT * FROM orders ORDER BY order_date DESC LIMIT 5;
B) SELECT * FROM orders ORDER BY order_date ASC LIMIT 5;
C) SELECT * FROM orders WHERE order_date > '2022-01-01' LIMIT 5;
D) SELECT * FROM orders WHERE order_date < '2022-01-01' LIMIT 5;
Prawidłowa odpowiedź: A. To zapytanie spełnia nasze kryteria. Chcemy uzyskać najnowsze zamówienia czyli sortujemy malejąco według order_date (data zamówienia). Za pomocą LIMIT ograniczamy wyniki do 5 rekordów.
Mamy nadzieję, że wybrane przez nas pytania pozwoliły Ci ocenić Twój obecny stan wiedzy na temat SQL. Teraz możesz przejść do kolejnych typów zadań.
SQL - 250 pytań rekrutacyjnych
Sprawdź swoje umiejętności przed rozmową o pracę na stanowisko SQL Developer. Ten kurs zawiera aż 250 pytań, obejmujących szeroki zakres umiejętności z zakresu języka SQL. To świetna okazja aby przypomnieć sobie najważniejsze zagadnienia, które mogą się pojawić podczas rozmowy rekrutacyjnej. Dowiedz się więcej
SQL - pytania otwarte
Popatrz na zestaw kilku dodatkowych pytań. Do każdego pytania dołączyliśmy odpowiedzi z wyjaśnieniami.
Jakie są różnice między klauzulą INNER JOIN a LEFT JOIN w zapytaniach SQL?
INNER JOIN zwraca tylko pasujące wiersze z obu tabel, natomiast LEFT JOIN zwraca wszystkie wiersze z lewej tabeli i pasujące z prawej tabeli. W przypadku braku dopasowania dla prawej tabeli, wartości dla kolumn z prawej tabeli będą NULL.
Co to jest normalizacja w kontekście baz danych?
Normalizacja to proces organizacji struktury bazy danych w taki sposób, aby minimalizować redundancję danych i unikać problemów związanych z niejednoznacznością i zależnościami funkcyjnymi.
Jakie są różnice między funkcją GROUP BY a HAVING w zapytaniach SQL?
GROUP BY używane jest do grupowania wyników zapytania na podstawie określonej kolumny lub kolumn, natomiast HAVING służy do filtrowania wyników grupowania na podstawie warunków logicznych.
Jakie są różnice między kluczem podstawowym a kluczem obcym w bazach danych?
Klucz podstawowy (Primary Key) identyfikuje unikalnie każdy wiersz w tabeli, podczas gdy klucz obcy (Foreign Key) jest kluczem, który odnosi się do klucza podstawowego w innej tabeli, ustanawiając relację między nimi.
Co to jest transakcja w kontekście baz danych?
Transakcja to sekwencja jednego lub więcej poleceń SQL, która jest wykonywana jako jednostka, a jej wynik jest atomowy, spójny, izolowany i trwały (ACID). Jeśli którekolwiek z poleceń nie powiedzie się, cała transakcja zostanie wycofana (rollback).
SQL - zadania i ćwiczenia do samodzielnej pracy
Poniżej znajdziesz kilka zadań, które polegają na samodzielnym pisania kodu SQL. Wszystkie polegają na pisaniu zapytań do poniższej tabeli:
Tym razem nie dajemy odpowiedzi - postaraj się napisać kod SQL samodzielnie.
Zadanie numer 1
Zaproponuj odpowiednie zapytanie, które wyświetli pracowników, których nazwisko rozpoczyna się od znaku C. Wyświetl następujące kolumny: id, first_name, last_name.
Zadanie numer 2
Zaproponuj odpowiednie zapytanie, które wyświetli pracowników, których zarobki mieszczą się pomiędzy 3000 a 5000. Wyświetl następujące kolumny: id, first_name, salary.
Zadanie numer 3
Zaproponuj odpowiednie zapytanie, które pogrupuje użytkowników pod względem kolorów oczu (pomiń użytkowników, którzy nie mają zdefiniowanego koloru oczu w bazie danych - NULL). Wyświetl następujące kolumny: users, eye_color. Kolumna count to alias dla kolumny, która reprezentuje liczbę użytkowników w konkretnej grupie. Interesują nas jedynie użytkownicy, którzy posiadają niebieski lub zielony kolor oczu.
Jak przygotować się do rozmowy rekrutacyjnej z SQL?
W kursie online SQL - 250 Pytań rekrutacyjnych znajdziesz wiele podobnych pytań. Obejmują one bardzo szeroki zakres materiału, dzięki czemu dobrze się przygotujesz do rozmowy kwalifikacyjnej. Kurs pozwoli Ci uzupełnić ewentualne braki w wiedzy i służy jako powtórka przed rozmową o pracę. Powodzenia!