Z jakimi pytaniami z SQL możesz się spotkać na rozmowie rekrutacyjnej dotyczącej stanowisk, na których wymagana jest praca z językiem SQL? Poniżej przedstawiamy najczęściej pojawiające się pytania i odpowiedzi.
TOP 10 pytań rekrutacyjnych z SQL
1. Rozwiń skrót SQL. Z jakich elementów składa się język zapytań do baz danych?
SQL (Structure Query Language) to język, który pozwana na wykonywanie zapytań do baz danych, który umożliwia: usuwanie, modyfikowanie i pobieranie wierszy, tworzenia nowych baz danych, tworzenia widoków baz danych etc.
Składa się z następujących elementów:
- DDL - Data Definition Language to cześć języka SQL, która umożliwia tworzenie, modyfikacje czy usuwanie obiektów bazy danych;
- DML - Data Manipluation Langugage to zbiór instrukcji języka SQL, pozwalający na (dodawanie, aktualizację i usuwanie wierszy z bazy danych.
- DQL - Data Query Language - jest podstawą pobierania danych;
- DCL - Data Control Language to elementy języka SQL odpowiedzialne za dodawanie lub odbieranie uprawnień (GRANT / REVOKE);
- DTL / TCL - Data Transaction Language / Transaction Control Language – to elementy języka SQL odpowiedzialna za obsługę transakcji: COMMIT, ROLLBACK, SAVEPOINT.
2. Jaka jest różnica między SQL i MySQL?
SQL jest językiem, który służy do komunikacji z relacyjną bazą danych.
MySQL to system zarządzania relacyjną bazą danych na licencji open-source, który wykorzystuje język SQL.
3. Czym są funkcje agregujące?
Funkcje agregujące to takie, które można zastosować do całej grupy wartości, zamiast do pojedynczego wiersza bazy danych. Są to:
- COUNT, funkcja zliczająca ilość wierszy zwrócona przez pytanie;
- SUM, funkcja wyliczająca sumę wszystkich wartości;
- AVG, funkcja wyliczająca średnią wartość dla zwróconych rekordów.
4. Co to DBMS? Jakie wyróżnimy typy DBMS?
DBMS (Database Management System) to system, który odpowiada za wszystkie operacje tworzenia, utrzymania, używania i kontroli baz danych. To interfejs pomiędzy bazą danych a użytkownikiem, który znacznie ułatwia pobieranie danych i ich modyfikację. Można go porównać do Menedżera Plików (zarządza i przechowuje dane tak samo, jak Menedżer przechowuje pliki). Wyróżniamy typ RDBMS (Relational Database Management System), który umożliwia przechowywanie danych w relacyjnej bazie danych w postaci tabel, dzięki czemu można nimi łatwo zarządzać przy pomocy operatorów relacyjnych.
5. Co to jest kursor i jak go używać?
Kursor to obiekt, który przechowuje wiersze zwrócone przez zapytanie SQL. Można ich używać w celu: deklaracji (declare), otwierania sekcji (begin), jeśli mamy otwarty kursor możemy również pobrać konkretne dane do zmiennych, a następnie trzeba go zamknąć.
Można ich używać w niektórych aplikacjach do wykonywania operacji na danych seryjnych, ale znacznie obniżają wydajność, szczególnie w trakcie pracy na dużej ilości danych.
6. Jakie są rodzaje złączeń?
Główne rodzaje złączeń to:
- (INNER) JOIN – po połączeniu tabel za pomocą (inner) join, można wyodrębnić część wspólną obu tabel, bazując na tym połączeniu;
- LEFT JOIN – po połączeniu tabel za pomocą left join dostaniemy zwrócone wartości z „lewej” tabeli i odpowiednio dopasowane do nich wartości z „prawej” tabeli;
- RIGHT JOIN – o po połączeniu tabel za pomocą right join dostaniemy zwrócone wartości z „prawej” tabeli i odpowiednio dopasowane do nich wartości z „lewej” tabeli;
- FULL (OUTER) JOIN – po połączeniu tabel za pomocą full join dostaniemy wszystkie zwrócone wartości rekordów z dwóch tabel;
- CROSS JOIN – pozwala wyliczyć iloczyn kartezjański z dwóch tabel.
7. Co to jest trigger?
Trigger, czyli wyzwalacz obejmuje zbiór działań wykonywanych po uruchomieniu polecenia: wstaw, aktualizuj, usuń dane w konkretnej tabeli. Jest aktywny w momencie, w którym te polecenia są przekazywane do systemu. Triggery są wyzwalane za pomocą klauzuli CREATE TRIGGER.
8. Omów różnicę między funkcjami RANK() i DENSE_RANK().
Obie funkcje służą do porządkowania wartości oraz przypisywania im konkretnych numerów, w zależności od ich wzajemnego położenia. Różnica między nimi sprowadza się do tego, w jaki sposób obie funkcje obsłużą identyczne wartości. W przypadku, w którym wartość x będzie miała pozycję 2, funkcja RANK () przypisze kolejnej najniższej wartości pozycję 4 (pominie następna dostępną wartość w rankingu), podczas gdy funkcja DENSE_RANK() przypisze kolejnej najniższej wartości pozycję 3 (zgodnie z porządkiem chronologicznym).
9. Co to jest indeks i jakie są jego rodzaje?
Indeksy zwiększają wydajność bazy danych i umożliwiają szybsze pobranie wierszy z tabeli. Skutecznie zwiększają wydajność wykonywanej kwerendy, zmniejszając liczbę stron danych, przez które musi przejść wykonywane zapytanie, by wyświetlić na ekranie właściwe rekordy. Wartość indeksu jest unikalna i nie może zostać powielona.
Rodzaje indeksów:
- unikalny,
- klastrowany,
- nieklastrowany,
- bitmapowy,
- normalny,
- złożony,
- B-drzewo,
- funkcjonalny.
10. Czym jest transakcja w bazie danych?
Transakcja w bazie danych umożliwia uruchomienie operacji grupowania, odczytu i zapisu serii danych w jedną całość. Operacje wykonywane w ramach pojedynczej transakcji powinny zostać wykonane w całości lub w ogóle (wynik transakcji to sukces lub porażka).