SQL Flashcards

1
Q

Co oznacza skrót SQL? Z jakich elementów składa się język zapytań do baz danych?

A

SQL (Structure Query Language) to język zapytań do baz danych.

SQL możemy podzielić na kilka części:

DDL - Data Definition Language - cześć języka SQL, odpowiadające za tworzenie, modyfikacje czy usuwanie obiektów bazy danych, operacje takie jak CREATE, ALTER, DROP.
DML - Data Manipluation Langugage - zbiór instrukcji języka SQL, pozwalający na wykonanie operacji INSERT, UPDATE, DELETE (dodawanie, aktualizacja, usuwanie wierszy).
DQL - Data Query Language - podstawa pobierania danych, czyli SELECT.
DCL - Data Control Language - element pozwalające na dodawanie lub odbieranie uprawnień, GRANT / REVOKE.
DTL / TCL - Data Transaction Language / Transaction Control Language - cześć odpowiedzialna za obsługę transakcji: COMMIT, ROLLBACK , SAVEPOINT.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Czym jest system zarządzania bazą danych (DBMS - Database Management System)?

A

DBMS - Database Management System - jest zbiorem reguł (system) opisanych przez programy komputerowe, które pozwalają na manipulację (manage) wartości atrybutów kilku różnych typów jednostek uporządkowanych w sensowny sposób (database).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Czym w kontekście SQL-a jest DDL?

A

DDL - Data Definition Language, jest elementem języka zapytań do baz danych, który ma na celu, tworzenie, modyfikację oraz usuwanie elementów struktury bazy danych - tabele, schematy, indeksy etc.

Do kluczowych elementów składni należą operacje: CREATE, ALTER oraz DELETE.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Podaj po 1 przykładzie użycia składni dla każdego z elementów DDL

A

CREATE:
CREATE TABLE sales ( id SERIAL );

ALTER:
ALTER TABLE sales ADD COLUMN sales_amount NUMERIC(10,2);

DROP:
DROP TABLE sales;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Czym jest DCL w kontekście SQL-a.

A

DCL (Data Control Language) jest elementem języka zapytań do baz danych, który ma na celu, nadawanie i odbieranie dostępu do obiektów bazy danych.

Do kluczowych elementów składni należą operacje: GRANT / REVOKE (DENY)

GRANT - nadaję dostępy do obiektów bazodanowych
REVOKE (DENY) - odbiera dostęp do obiektów bazodanowych

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Czym jest TCL w kontekście SQL-a.

A

TCL (Transaction Control Language) - jest elementem języka zapytań do baz danych, który ma na celu zarządzanie transakcjami w bazie danych.

Do kluczowych elementów składni należą operacje: COMMIT, ROLLBACK, SAVEPOINT.

COMMIT - potwierdza transakcje i wszystkie akcje w niej wykonane.
ROLLBACK - wycofuje transakcje i wszystkie akcje w niej wykonane mające wpływ na struktury bazy danych i samych danych.
SAVEPOINT - zapisuje stan, do którego można się odwołać wewnątrz transakcji.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Jakie elementy struktury bazy danych, możemy wyróżnić (elementy jako warstwy bazy, np. tabele, indeksy etc.)?

A

Do typowych elementów struktury bazy danych zaliczamy:

schemat bazy danych
tabele
kolumny (atrybuty / pola)
wiersze (rekordy)
klucze / ograniczenia (constraints)
widoki
indeksy
procedury / funkcje
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Jakie znasz standardowe typy danych - ogólne typy plus mniej więcej ich podział - na podstawie bazę danych, z którą masz największe doświadczenie.

A

Typy danych możemy podzielić na:

alfanumeryczne
numeryczne
data i czas

oraz inne typy, które można w większości przypadków zaliczyć jako podgrupę jednego z powyższych elementów, są to:

boolean
tablice (arrays)
binary
json / bson
xml
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Jakie znasz typowe ograniczenia atrybutów (kolumn) tabeli.

A

PRIMARY KEY - klucz główny tabeli (relacji) - jeżeli, jest prosty tzn. jednoelementowy, jest ograniczeniem atrybutu. W przypadku złożonego klucza głównego będzie on ograniczeniem relacji.
NOT NULL / NULL - wartość nie może / może być nieokreślona
UNIQUE - wartość musi być unikalna w całej relacji
SERIAL / AUTO_INCREMENT - atrybut jest typu numerycznego z automatycznym wzrostem wartości w polu w momencie wykonywania operacji INSERT
DEFAULT wartosc - wartość domyślna dla atrybutu
CHECK warunek - ograniczenie dziedziny atrybutu np. kolumna WIEK z ograniczeniem CHECK > 14, tj. wartość atrybutu WIEK musi być wyższy od 14 w momencie wykonywania operacji INSERT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Czym jest transakcja w bazie danych?

A

To nic innego jak metoda wykorzystywana przez aplikację do grupowania, operacji odczytu i zapisu w jedną logiczną jednostkę.

Wynikiem transakcji jest jeden z dwóch stanów: Sukces (transakcja jest zatwierdzana) lub Porażka (transakcja jest anulowana lub wycofywana).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Czym jest ACID w relacyjnych bazach danych?

A

ACID gwarantem bezpieczeństwa w relacyjnych bazach danych.

Jest to zestaw mechanizmów, który ma zapewnić pewną odporność na błędy i bolączki relacyjnych baz danych.

ACID to akronim od 4 takich gwarantów:

A (Atomicity) - atomowość
C (Consistency) - spójność
I (Isolation) - izolacja
D (Durability) - trwałość

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Czym w bazach danych jest kontrola współbieżności (concurrency control)? Jakie znasz problemy związane z kontrolą współbieżnością?

A

Kontrola Współbieżności (Concurrency Control) - zbiór funkcji dostarczanych przez bazę danych w celu zezwolenia wielu użytkownikom jednoczesnego dostępu do danych i operacji na nich.

Kontrola Współbieżności Problemy:

Dirty Read - odczytanie “aktualizowanych” (UPDATE) danych przed ich zaakceptowaniem (COMMIT) przez inną transakcję.
Phantom Read - pojawienie się nowych rekordów / lub zniknięcie istniejących podczas gdy takie samo zapytanie zostanie uruchomione po wykonaniu 1 zapytania równoważnego.
Non-Repeatable Read - powoduje pojawienie się rekordów z poprzedniego zapytania w ich zmienionej formie w momencie ponownego wykonania zapytania.
Lost Update - powoduje nadpisanie oczekującej transakcji inną transakcją zapoczątkowaną wcześniej przez inną transakcję.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Czym w bazie danych jest zakleszczenie (LOCK)?

A

LOCK ma miejsce gdy dwie transakcje czekają wzajemnie na zwolnienie zasobów i przynajmniej jedna z nich nie może kontynuować swojego działania.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Czym w relacyjnych bazach danych jest izolacja?

A

Izolacja oznacza, że jednocześnie wykonywane transakcje są od siebie odizolowane - nie mogą mieć na siebie wpływu. Jest to szczególnie ważne w sytuacji dostępu do tego samego zasobu (tej samej tabeli), w przypadku dostępu do różnych obiektów konflikt nie będzie występował.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Czym są i jakie znasz poziomy izolacji transakcji?

A

Poziomy izolacji transakcji (isolation levels) są standardami / podejściami radzenia sobie z problemami współbieżności transakcji.

Read Uncommited - najmniej restrykcyjny, dopuszcza 3 typy odczytów (Dirty, Phantom i Non-Repeatable Reads). Raczej nie stosowany w komercyjnych bazach danych.
Read Commited - pozwala zapytaniu na dostęp do danych, które zostały zaakceptowane (COMMIT). Brak Dirty Reads, zezwolenie na Phantom i Non-Repeatable Reads. Najczęściej stosowany poziom izolacji.
Repeatable Read - gwarantuje spójność odczytów. Zezwala jedynie na Phantom Read.
Serializable - najbardziej restrykcyjny poziom izolacji (nie dopuszcza Dirty, Non-Repeatable i Phantom Reads). Każda transakcja jest traktowana, jakby była jedyną transakcją wykonywaną w bazie danych w danym momencie.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Czym jest normalizacja bazy danych?

A

Normalizacja bazy danych to technika organizacji danych w bazie, jest ona systematycznym metodycznym podejście “rozbijania” tabel w celu eliminowania powtórzeń i niechcianych cech operacji dodawania, usuwania i aktualizacji wierszy.

Dwa kluczowe cele normalizacji:

Reprezentacja faktów o rzeczywistym świecie w zrozumiały sposób;
Ograniczenie nadmiarowego przechowywania faktów i zapobiegania występowaniu nieprawidłowych lub niespójnych danych;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Czym w SQL jest widok (VIEW) i jakie są jego właściwości?

A

Widok jest trwałą definicją tabeli pochodnej (wynikiem zapytania SELECT), która jest przechowywana w bazie danych.

W SQL tabela, którą utworzono za pomocą zapytania CREATE TABLE, nazywana jest tabelą bazową (base table). Tabelą pochodną (derived table) formalnie nazywamy wynik każdego zapytania SELECT. Tabele, których użyto do zdefiniowania widoku, są nazywane underlying tables.

Właściwości widoku:

  1. nie przechowuje danych - definicja widoku jest zapisana w bazie danych. Sam widok jest jedynie interfejsem odczytu danych;
  2. zawsze pokazuje aktualne dane - baza danych odtwarza dane za każdym razem aktualne z tabel źródłowych użytych do zbudowania widoku;
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Czym są i jakie znasz rodzaje funkcji agregujących w SQL?

A

Funkcje agregujące w SQL, to grupa funkcji, które jak wskazuje nazwa, służą do otrzymania wyniku operacji dla grupy rekordów, według wybranego klucza (kluczy) grupy.

Najczęściej wykorzystywane funkcje agregujące:

SUM() - sumowanie
AVG() - średnia
COUNT() - zliczanie wystąpień
MIN() / MAX() - minimum / maksimum
STDEV() - odchylenie standardowe
19
Q

Czym są i jakie znasz rodzaje funkcji analitycznych w SQL?

A

Funkcje analityczne są specyficznym rodzaje funkcji SQL-owe, które dają wynik dla danej wiersza w kontekście wierszy sąsiednich (poprzedzających / następujących) po wierszu. Ten rodzaj funkcji wykorzystujemy np. do “rankingu” danych czy wyliczania stanów (balance).

Najczęściej wykorzystywane funkcje analityczne:

ROW_NUMBER() OVER()
DENSE_RANK() / RANK () OVER()
SUM() OVER()
LEAD() / LAG() OVER()

20
Q

Jaka jest różnica pomiędzy składnią WHERE i HAVING?

A

W momencie gdy nie są one użyte w kontekście grupowania (GROUP BY), są one w zasadzie równoważne.

Jednak prawdziwe zastosowanie mają właśnie w momencie grupowania danych.

  • Warunek WHERE odfiltrowuje rekordy z wyniku przed wykonaniem grupowania.
  • Warunek HAVING odfiltrowuje rekordy z wyniku po wykonaniu grupowania
21
Q

Do czego służą komendy DELETE i TRUNCATE? Jakie są między nimi różnice?

A

Obie komendy służą do usuwania wierszy z tabeli, pozostawiając przy tym ich strukturę, ale są między nimi pewne subtelne różnice.

DELETE jest operacją DML-ową (Data Manipulation Language) działa na poziomie wiersza tabeli. Z jej pomocą możemy usunąć wszystkie wierszy lub jeden konkretny (dokładając WHERE). Możliwy jest ROLLBACK

TRUNCATE jest operacją DDL-ową (Data Definition Language) działa na poziomie całej tabeli. Jeżeli chcesz usunąć wszystkie wiersze z tabeli (a dodatkowo Twoja tabela nie ma kluczy obcych), to prawdopodobnie to będzie komenda, której szukasz.

22
Q

Do czego służy opcja CASCADE przy operacji DELETE w SQL-u?

A

Gdy pomiędzy tabelami istnieje zdefiniowana relacja klucza obcego, oraz istnieją powiązane z tą relacją rekordy, wykonanie operacji DELETE na danych tabeli, do której jest stworzone powiązanie, nie będzie możliwe.

Baza danych poinformuje nas o tym, że w relacji pomiędzy tabelą A i B, istnieją rekordy, które chcemy usunąć, żeby wykonać tę operację, najpierw musimy usunąć rekordy powiązane z tabeli B lub skorzystać z opcji CASCADE.

Opcja CASCADE usuwa wszystkie wiersze z tabeli A oraz wszystkie powiązane wierszy z tabeli B, które łączy relacja klucza obcego pomiędzy tabelami.

23
Q

Do czego służy opcja CASCADE przy operacji DROP w SQL-u?

A

Gdy pomiędzy obiektami bazy danych istnieje relacja, tzn. obiekt B zależy od obiektu A, np. widok B od tabeli A, wykonanie operacji DROP na obiekcie A, nie będzie możliwe.

Baza danych poinformuje nas o tym, że w relacji pomiędzy obiektem A i B, istnieje powiązanie. Jeżeli chcemy usunąć obiekt A, należy wcześniej usunąć obiekt B lub skorzystać z opcji CASCADE.

Opcja CASCADE usuwa obiekt zdefiniowany do usunięcia oraz wszystkie obiekty, którego korzystają / są stworzone na podstawie obiektu A.

24
Q

Czym jest i do czego służy operator IN w SQL?

A

IN jest operatorem logicznym używanym w części WHERE, zapytania. Pozwala na sprawdzenie, czy wartość z danej kolumny / funkcji istnieje / równa się dowolnej wartości z listy.

25
Q

Do czego służą funkcje CEIL oraz FLOOR?

A

Funkcje CEIL oraz FLOOR pozwalają na zaokrąglenie danej liczby do części całkowitej.

Funkcja CEIL (CEILING) zwraca najmniejszą liczbę całkowitą większą lub równą, względem podanej na wejściu wartości.
Funkcja FLOOR zwraca największą liczbę całkowitą mniejszą lub równą, względem podanej na wejściu wartości.
26
Q

Czym jest funkcja ROUND? Jaka jest różnica w wyniku ROUND vs CEIL / FLOOR.

A

Funkcja ROUND podobnie jak CEIL i FLOOR pozwala na zaokrąglenie wartości. Jednak zaokrąglenie bardziej “po matematycznemu” (czyli jak 5 to w górę a jak mniej niż 5 to w dół).

Dodatkowo przy tej funkcji możesz doprecyzować, do ilu miejsc po przecinku, wartość wyjściowa ma zostać zaokrąglona.

27
Q

Czym jest operator ANY? Opisz zasadę działania na przykładzie.

A

Operator ANY, służy do sprawdzenia, czy w przeszukiwanym podzbiorze danych (podzapytaniu) znajduje się przynajmniej jedna wartość spełniająca wykorzystany operator. Możesz go użyć w sekcji WHERE oraz / lub w sekcji HAVING.

28
Q

Czym jest operator ALL? Opisz zasadę działania na przykładzie.

A

Operator ALL, służy do sprawdzenia, czy wszystkie wiersze przeszukiwanego podzbioru danych (podzapytania) spełniają wykorzystany operator. Możesz go użyć w sekcji WHERE oraz / lub w sekcji HAVING.

29
Q

W jaki sposób ograniczyć ilość wierszy wynikowych do np. 10 dowolnych elementów. Podaj przykłady na podstawie znanych Ci systemów baz danych, jak również składnie SQL według standardu ISO.

A

SELECT * FROM tab LIMIT 10;

LIMIT (m.in. MySQL, PostgreSQL, SQLite, H2)

30
Q

Jaki jest odpowiednik instrukcji warunkowej IF w SQL-u. Podaj przykład i wyjaśnij zasadę działania. Rozwiązanie powinno opierać się o standard, nie o implementację dla danej bazy danych.

A

Instrukcja warunkowa (IF) to popularna konstrukcja w językach programowania, pozwalająca na sprawdzenie warunku i wykonanie odpowiedniej akcji w zależności od tego czy warunek jest spełniony, czy też nie.

Składnia (podstawowa - w językach programowania - jako pseudokod)

IF
THEN
ELSE
END

Warunkiem logicznym może być dowolna funkcja / operator, który w wyniku da wartość TRUE lub FALSE.

Konstrukcja jak powyżej w standardowym SQL-u nie istnieje. Istnieje natomiast w Proceduralnym SQL, tj. w procedurach składowanych i funkcjach wykonywanych w bazie danych.

IF w SQL-u istnieje, kryje się pod operatorem CASE
CASE
  WHEN warunek1 THEN akcja
  ELSE akcja
END
31
Q

Do czego służy składnia ORDER BY? Jakie dodatkowe opcje wykonania może zawierać (obsługa wartości NULL / kierunek)?

A

Operacja ORDER BY służy do sortowania danych wynikowych.

Czy wyniki mają jakiekolwiek sortowanie bez ORDER BY.

Nie. W przypadku niepodania klauzuli ORDER BY wyniki zapytania zostaną zwrócone w nieokreślonej formie. Może się zdarzyć, że pojawią się w tej samej kolejności, jak zostały dodane do tabeli źródłowej, ale uważaj i nie bierz tego za pewnik.

DESC - sortuj w porządku malejącym
ASC - sortuj w porządku rosnącym
NULLS FIRST - pokazuj wartości nieokreślone na początku zbioru wynikowego
NULLS LAST - pokazuj wartości nieokreślone na końcu zbioru wynikowego

32
Q

Czym jest złączenie (JOIN) w języku zapytań do baz danych SQL? Jakie znasz rodzaje złączeń?

A

Złączenie to powiązanie tabel (lub tabeli), na podstawie pewnego warunku (tych samych kolumn, operatorów logicznych >, < etc.).

W najprostszym przypadku złączenia używamy do odwzorowania relacji pomiędzy tabelami, gdy chcemy dostać określony wynik.

Rodzaje złączeń:
(INNER) JOIN
LEFT (OUTER) JOIN
RIGHT (OUTER) JOIN
FULL (OUTER) JOIN
Self JOIN
Equi-JOIN - Zawierają się w niej wszystkie zapytania, dla których w warunku złączenia klauzuli ON oraz WHERE występuje znak równości =.
Theta Join - zawierają wszystkie w których występują porównania inne niż w Equi-Join
NATURAL JOIN - Złączenie typu NATURAL JOIN występuje, jeżeli obie kolumny występujące w warunku złączenia mają taką samą nazwę.
Semi Join - Złączenie częściowe występuje, jeżeli w klauzuli SELECT są wymienione tylko kolumny z jednej tabeli.
CROSS JOIN – Złączenie CROSS JOIN (krzyżowe) wykonuje iloczyn kartezjański z łączonych tabel.

33
Q

Czym jest łączenie zbiorów za pomocą operacji UNION i UNION ALL? Jaka jest różnica pomiędzy tymi operacjami (UNION vs UNION ALL)?

A

UNION - jest operacją łączenia zbiorów danych (WYNIKÓW SELECT). Możesz jej użyć, do połączenia rekordów z różnych tabel w 1 zbiór rekordów.

Po co? Zwykle, gdy potrzebujesz zbudować listę wartości z różnych zbiorów (tabel).

UNION vs UNION ALL
UNION - złączy wyniki usuwając przy tym powielające się wiersze (taki DISTINCT)
UNION ALL - złączy wyniki nie usuwając powielających się wierszy

34
Q

Jaka jest różnica między INNER JOIN a NATURAL JOIN?

A

INNER JOIN jest typem złączenia, w którym z dwóch zbiorów (tabel czy podzapytań) bierzemy te wartości (wiersze), dla których zdefiniowany klucz złączenia jest spełniony. Oznacza to, że wartości w kolumnach ze zbiorów użytych w złączeniu mają te same wartości (w przypadku wykorzystania “=” kolumn w JOIN-ie).

NATURAL JOIN jest typem złączenia, w którym z dwóch zbiorów (tabel czy podzapytań) bierzemy tylko ich część wspólną, ale jedynie w sytuacji gdy w obu zbiorach istnieje tak samo nazwana kolumna (lub więcej tak samo nazwanych kolumn).

35
Q

Jaka jest różnica między LEFT JOIN a RIGHT JOIN?

A

RIGHT OUTER JOIN jest typem złączenia, w którym z dwóch zbiorów (tabel czy podzapytań) bierzemy wszystkie elementy z 2 zbioru i elementy pasujące (według użytego klucza złączenia) z pierwszego zbioru. Stąd nazwa RIGHT (w odniesieniu do kierunku złączenia) i OUTER mówiące o typie złączenia zewnętrznego (nie tylko część wspólna).

LEFT OUTER JOIN jest typem złączenia, w którym z dwóch zbiorów (tabel czy podzapytań) bierzemy wszystkie elementy z 1 zbioru i elementy pasujące (według użytego klucze złączenia) z drugiego zbioru. Stąd nazwa LEFT (w odniesieniu do kierunku złączenia) i OUTER mówiące o typie złączenia zewnętrznego (nie tylko część wspólna).

36
Q

Czym jest złączenie CROSS JOIN?

A

Używając CROSS JOIN, w wyniku dostaniemy iloczyn kartezjański zbiorów (tabel). Każdy wiersz z tabeli A zostanie „połączony” z każdym wierszem z tabeli B.

Sprawdzi się w sytuacjach - świadomego połączenia wszystkich wierszy między sobą np. wyświetlenie każdego z produktów w każdym z regionów.

37
Q

Czym jest duplikat w danych?

A

Duplikatem w danych nazywamy przynajmniej 2 takie wiersze wynikowe, dla których wszystkie kolumny mają takie same wartości.

38
Q

Czym jest NULL w relacyjnych bazach danych? Jakie znasz sposoby radzenia sobie z NULL-em przy ograniczaniu danych wynikowych (WHERE)?

A

NULL to swego rodzaju znacznik w języku SQL i w relacyjnych bazach danych, wskazujący na fakt, że dana wartość jest nieokreślona (nie ma wartości w danych źródłowych).

Do sposobów radzenia sobie z NULL-em możemy zaliczyć:

  • porównania warunkowe IS NULL / IS NOT NULL
  • COALESCE() - funkcja, która w przypadku wystąpienia wartości NULL, zamieni ją na podaną wartość np. COALESCE(product_name, ‘unknown_product’);
  • CASE - składnia pozwalająca na zbudowanie warunkowego podejścia do wartości kolumny / funkcji CASE WHEN product_name IS NULL THEN ‘unknown_product’ ELSE product_name END
39
Q

Co, można zastosować w sytuacji gdy w tabeli nie chcemy, by wartości w kolumnie były nieokreślone, a jednocześnie nie pojawiał się błąd w trakcie próby INSERT-u wartości NULL?

A

Dodanie ograniczenia (CONSTRAINT) typu NOT NULL z dodatkową wartością domyślną DEFAULT ‘’.

40
Q

Czym jest operator LIKE? W jakich sytuacjach go używamy i jakie są podstawowe znaki specjalne wykorzystywane przez ten operator?

A

Operatora LIKE używamy w sekcji WHERE zapytania, aby znaleźć / odfiltrować wiersze wynikowe według wybranego wzoru w danych tekstowych.

Wynik operatora na danym wierszu to TRUE lub FALSE w zależności od tego czy dany wzór pasuje do wyniku (TRUE) lub nie pasuje (FALSE). W sytuacji odwrotnej, gdy chcemy znaleźć dane niepasujące do wzoru, skorzystamy z operatora NOT LIKE.

Operator LIKE, może korzystać z 2 znaków specjalnych:

% - znak procenta oznacza wystąpienie 0,1 lub więcej znaków (dowolnych) w szukanym wzorze
_ - podkreślenie (dolna kreska), oznacza wystąpienie 1 znaku (dowolnego)

41
Q

Jaka jest kolejność operacji w zapytaniu SQL?

A
  1. FROM – określenie źródła (źródeł) i relacji między nimi
  2. JOIN - połączenie danych z tablicy z danymi z powiązanej tablicy
  3. WHERE – filtracja rekordów
  4. GROUP BY - agregacja danych
  5. HAVING - filtrowanie zagregowanych danych
  6. SELECT – określanie kształtu wyniku, selekcja pionowa (kolumn)
  7. DISTINCT - odrzuca duplikaty
  8. ORDER BY - sortuje ostateczne dane
  9. LIMIT/OFFSET - kroi ostateczne dane do wskazanej długości
SELECT DISTINCT column, AGG_FUNC(column_or_expression), …
FROM mytable
    JOIN another_table
      ON mytable.column = another_table.column
    WHERE constraint_expression
    GROUP BY column
    HAVING constraint_expression
    ORDER BY column ASC/DESC
    LIMIT count OFFSET COUNT;
42
Q

Co to jest indeks w bazach danych?

A

Indeks to specjalna struktura danych mająca na celu zwiększenie prędkości wykonywania operacji na tabeli.

Ponieważ tworzenie i aktualizacja indeksów wymaga dodatkowych operacji na bazie danych, operacje dodawania (INSERT) i aktualizacji (UPDATE) są wolniejsze. Natomiast operacje pobierania danych (SELECT) mogą być szybsze, jeżeli do ich wykonania zostanie wykorzystany indeks.

43
Q

Co to jest trigger na bazie danych?

A

Trigger, czyli wyzwalacz to procedura wykonywana automatycznie przez bazę danych jako reakcja na pewne zdarzenie, np. dodanie (INSERT), aktualizację (UPDATE) lub usunięcie (DELETE) danych.

Triggery nie przyjmują żadnych argumentów oraz nie mogą zatwierdzać (COMMIT) i anulować (ROLLBACK) transakcji, ponieważ są wywoływane automatycznie w kontekście danej operacji (instrukcji SQL).