Blog IT, Blog Marketing

TOP 10 pytań rekrutacyjnych SQL wraz z odpowiedziami

TOP 10 pytań rekrutacyjnych SQL wraz z odpowiedziami

Tomasz Staśkiewicz , 18.02.2022 r.

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).

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej