término                    | 
                
                    definición                    | 
            
        
        | 
     empezar lección
 | 
 | 
      SQL (Structured Query Language) jest standardowym językiem do zarządzania i manipulowania relacyjnymi bazami danych.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      NoSQL to kategoria systemów zarządzania bazami danych, które nie używają SQL jako głównego języka zapytań. Są one często stosowane do przechowywania dużych ilości danych o niskiej strukturalności.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      MySQL to popularny system zarządzania relacyjnymi bazami danych, który jest open-source i często używany w aplikacjach webowych.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      PostgreSQL to zaawansowany system zarządzania relacyjnymi bazami danych, znany ze swojej wydajności, stabilności i wsparcia dla skomplikowanych operacji SQL.   
 | 
 | 
 | 
      Jakie są podstawowe zasady bezpieczeństwa bazy danych?    empezar lección
 | 
 | 
      Podstawowe zasady obejmują silne uwierzytelnianie, kontrolę dostępu, szyfrowanie danych oraz regularne aktualizacje i backupy.   
 | 
 | 
 | 
      Jakie są metody optymalizacji wydajności bazy danych?    empezar lección
 | 
 | 
      Metody optymalizacji obejmują indeksowanie, normalizację, caching, oraz optymalizację zapytań SQL.   
 | 
 | 
 | 
      Co oznacza akronim ACID w kontekście baz danych?    empezar lección
 | 
 | 
      ACID oznacza Atomowość, Spójność, Izolacja i Trwałość, co są podstawowymi właściwościami transakcji w relacyjnych bazach danych.   
 | 
 | 
 | 
      Co to jest indeksowanie w bazie danych?    empezar lección
 | 
 | 
      Indeksowanie to proces tworzenia struktury danych, która przyspiesza wyszukiwanie i odczytywanie danych w bazie.   
 | 
 | 
 | 
      Co to jest normalizacja bazy danych?    empezar lección
 | 
 | 
      Normalizacja to proces organizowania danych w bazie danych w taki sposób, aby zminimalizować redundancję i uniknąć problemów związanych z integralnością danych.   
 | 
 | 
 | 
      Co to jest denormalizacja?    empezar lección
 | 
 | 
      Denormalizacja to proces celowego wprowadzenia redundancji do bazy danych, aby poprawić wydajność odczytu kosztem większego zużycia miejsca i potencjalnych problemów z integralnością danych.   
 | 
 | 
 | 
      Co to jest tabela w bazie danych?    empezar lección
 | 
 | 
      Tabela to podstawowa struktura danych w relacyjnej bazie danych, składająca się z wierszy i kolumn.   
 | 
 | 
 | 
      Co to jest kolumna w tabeli bazy danych?    empezar lección
 | 
 | 
      Kolumna reprezentuje atrybut danych, a każda kolumna w tabeli przechowuje określony typ danych.   
 | 
 | 
 | 
      Co to jest wiersz w tabeli bazy danych?    empezar lección
 | 
 | 
      Wiersz to pojedynczy rekord w tabeli, zawierający zestaw wartości odpowiadających kolumnom tej tabeli.   
 | 
 | 
 | 
      Co to jest klucz główny w bazie danych?    empezar lección
 | 
 | 
      Klucz główny to unikalny identyfikator rekordu w tabeli, który jednoznacznie identyfikuje każdy wiersz.   
 | 
 | 
 | 
      Co to jest klucz obcy w bazie danych?    empezar lección
 | 
 | 
      Klucz obcy to pole w tabeli, które tworzy związek z kluczem głównym w innej tabeli, umożliwiając połączenie danych między tabelami.   
 | 
 | 
 | 
      Co to jest operacja JOIN w SQL?    empezar lección
 | 
 | 
      JOIN to operacja SQL łącząca wiersze z dwóch lub więcej tabel na podstawie powiązanego warunku.   
 | 
 | 
 | 
      Co to jest Inner Join w SQL?    empezar lección
 | 
 | 
      Inner Join zwraca wiersze, które mają pasujące wartości w obu tabelach.   
 | 
 | 
 | 
      INNER JOIN - przykład komendy SQL    empezar lección
 | 
 | 
      SELECT orders. order_id, customers. name FROM orders INNER JOIN customers ON orders. customer_id = customers. customer_id;   
 | 
 | 
 | 
      Co to jest Left Join w SQL?    empezar lección
 | 
 | 
      Left Join zwraca wszystkie wiersze z lewej tabeli oraz pasujące wiersze z prawej tabeli. Jeśli nie ma dopasowania, zwraca NULL dla kolumn prawej tabeli.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      SELECT * FROM tabelaA LEFT JOIN tabelaB ON tabelaA. kolumna = tabelaB. kolumna;   
 | 
 | 
 | 
      Co to jest Right Join w SQL?    empezar lección
 | 
 | 
      Right Join zwraca wszystkie wiersze z prawej tabeli oraz pasujące wiersze z lewej tabeli. Jeśli nie ma dopasowania, zwraca NULL dla kolumn lewej tabeli.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      SELECT * FROM tabelaA RIGHT JOIN tabelaB ON tabelaA. kolumna = tabelaB. kolumna;   
 | 
 | 
 | 
      Co to jest Full Join (Full outer Join) w SQL?    empezar lección
 | 
 | 
      Full Joint (Full outer Join) Zwraca wszystkie wiersze z obu tabel, łącząc je na podstawie warunków łączenia. Jeśli nie ma pasujących wierszy w jednej z tabel, to dla tych wierszy wartości z tej tabeli są NULL.   
 | 
 | 
 | 
      FULL OUTER JOIN - przykład komendy SQL    empezar lección
 | 
 | 
      SELECT * FROM tabelaA FULL JOIN tabelaB ON tabelaA. kolumna = tabelaB. kolumna;   
 | 
 | 
 | 
      Co to jest Cross Join w SQL?    empezar lección
 | 
 | 
      Cross Join zwraca iloczyn kartezjański dwóch tabel, co oznacza, że łączy każdy wiersz pierwszej tabeli z każdym wierszem drugiej tabeli.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      SELECT * FROM tabelaA CROSS JOIN tabelaB; - ALBO - SELECT * FROM tabelaA, tabelaB;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      UNION łączy wyniki dwóch zapytań SELECT, eliminując duplikaty i zwracając unikalne wiersze.   
 | 
 | 
 | 
      Co to jest UNION ALL w SQL?    empezar lección
 | 
 | 
      UNION ALL łączy wyniki dwóch zapytań SELECT, nie eliminując duplikatów, zwracając wszystkie wiersze z obu zapytań.   
 | 
 | 
 | 
      Co to jest subquery w SQL?    empezar lección
 | 
 | 
      Subquery to zapytanie wstawione wewnątrz innego zapytania SQL, które zwraca wyniki używane przez zapytanie główne.   
 | 
 | 
 | 
      Co to jest indeks w bazie danych?    empezar lección
 | 
 | 
      Indeks to struktura danych, która przyspiesza wyszukiwanie rekordów w tabeli kosztem dodatkowego miejsca na dysku.   
 | 
 | 
 | 
      Co to jest widok (view) w SQL?    empezar lección
 | 
 | 
      Widok to wirtualna tabela, która jest wynikiem zapytania SELECT i może być traktowana jak tabela.   
 | 
 | 
 | 
      Co to jest procedura składowana w SQL?    empezar lección
 | 
 | 
      Procedura składowana to zbiór zapytań SQL zapisanych i przechowywanych w bazie danych, które można wywoływać jako pojedynczą operację.   
 | 
 | 
 | 
      Co to jest trigger w SQL?    empezar lección
 | 
 | 
      Trigger to mechanizm w bazie danych, który automatycznie wykonuje określone operacje (np. INSERT, UPDATE, DELETE) w odpowiedzi na zdarzenia w tabeli.   
 | 
 | 
 | 
      Co to jest transakcja w bazie danych?    empezar lección
 | 
 | 
      Transakcja to grupa operacji SQL, które są wykonane jako jedna jednostka pracy. Wszystkie operacje w transakcji muszą zostać zakończone sukcesem, aby transakcja była zatwierdzona (commit).   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Commit to polecenie w SQL, które zapisuje wszystkie zmiany wprowadzone przez bieżącą transakcję do bazy danych.   
 | 
 | 
 | 
      Co to jest rollback w SQL?    empezar lección
 | 
 | 
      Rollback to polecenie w SQL, które cofa wszystkie zmiany wprowadzone przez bieżącą transakcję, przywracając bazę danych do stanu przed rozpoczęciem transakcji.   
 | 
 | 
 | 
      Co to jest savepoint w SQL?    empezar lección
 | 
 | 
      Savepoint to punkt w ramach transakcji, do którego można cofnąć się bez anulowania całej transakcji.   
 | 
 | 
 | 
      Co oznacza atomowość (Atomicity) w ACID?    empezar lección
 | 
 | 
      Wszystkie operacje w transakcji są wykonane albo żadna z nich.   
 | 
 | 
 | 
      Co oznacza spójność (Consistency) w ACID?    empezar lección
 | 
 | 
      Transakcja przenosi bazę danych z jednego spójnego stanu do innego.   
 | 
 | 
 | 
      Co oznacza izolacja (Isolation) w ACID?    empezar lección
 | 
 | 
      Równoległe transakcje nie powinny wpływać na siebie nawzajem.   
 | 
 | 
 | 
      Co oznacza trwałość (Durability) w ACID?    empezar lección
 | 
 | 
      Wyniki zakończonej transakcji są trwałe, nawet w przypadku awarii systemu.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      DBMS (Database Management System) to system, który odpowiada za wszystkie operacje tworzenia, utrzymania, używania i kontroli baz danych.   
 | 
 | 
 | 
      Jakie są główne rodzaje języków używanych w bazach danych?    empezar lección
 | 
 | 
      SQL (Structured Query Language), PL/SQL (Procedural Language/SQL), T-SQL (Transact-SQL), NoSQL Query Languages   
 | 
 | 
 | 
      Typy używanych zapytań SQL    empezar lección
 | 
 | 
      Data Definition Language (DDL), Data Manipulation Language (DML), Data Control Language (DCL), Data Query Language (DQL), TCL (Transaction Control Language)   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Data Control Language to podzbiór SQL, który obejmuje polecenia do zarządzania uprawnieniami dostępu do danych, takie jak GRANT i REVOKE.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Data Query Language to podzbiór SQL, który obejmuje polecenia do zapytań i uzyskiwania danych z bazy, głównie za pomocą SELECT.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Data Manipulation Language to podzbiór SQL, który obejmuje polecenia do zarządzania danymi w bazie, takie jak INSERT, UPDATE i DELETE.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Data Definition Language to podzbiór SQL, który obejmuje polecenia do definiowania struktury bazy danych, takie jak CREATE, ALTER i DROP.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Transaction Control Language - Podzbiór SQL używany do zarządzania transakcjami (np. COMMIT, ROLLBACK).   
 | 
 | 
 | 
      Co to jest composite key (klucz złożony) w bazie danych?    empezar lección
 | 
 | 
      Composite key to kombinacja dwóch lub więcej kolumn, które razem tworzą unikalny identyfikator wiersza w tabeli.   
 | 
 | 
 | 
      Co to jest unique key (klucz unikalny) w bazie danych?    empezar lección
 | 
 | 
      Unique key to kolumna lub kombinacja kolumn, której wartości muszą być unikalne dla każdego wiersza w tabeli.   
 | 
 | 
 | 
      Co to jest clustered index (indeks grupujący) w bazie danych?    empezar lección
 | 
 | 
      Clustered index to rodzaj indeksu, który określa fizyczną organizację danych w tabeli na podstawie wartości klucza indeksu.   
 | 
 | 
 | 
      Co to jest non-clustered index (indeks niegrupujący) w bazie danych?    empezar lección
 | 
 | 
      Non-clustered index to rodzaj indeksu, który nie zmienia fizycznej organizacji danych w tabeli i przechowuje odwołania do wierszy.   
 | 
 | 
 | 
      Co to jest deadlock w kontekście baz danych?    empezar lección
 | 
 | 
      Deadlock to sytuacja, w której dwa lub więcej procesów lub transakcji są zablokowane, ponieważ każda z nich czeka na zasoby, które posiada inna.   
 | 
 | 
 | 
      Co to jest concurrency control (kontrola współbieżności) w bazie danych?    empezar lección
 | 
 | 
      Concurrency control to technika zarządzania współbieżnym dostępem do danych, aby zapobiegać problemom takim jak deadlocks i utrata spójności danych.   
 | 
 | 
 | 
      Co to jest backup w kontekście baz danych?    empezar lección
 | 
 | 
      Backup to kopia zapasowa danych przechowywana poza bazą danych, umożliwiająca przywrócenie danych w przypadku awarii systemu.   
 | 
 | 
 | 
      Co to jest restore w kontekście baz danych?    empezar lección
 | 
 | 
      Restore to proces przywracania danych z kopii zapasowej do bazy danych po awarii lub utracie danych.   
 | 
 | 
 | 
      Co to jest replikacja w kontekście baz danych?    empezar lección
 | 
 | 
      Replikacja to proces tworzenia i utrzymywania identycznych kopii bazy danych na różnych serwerach, aby zapewnić redundancję i zwiększyć dostępność systemu.   
 | 
 | 
 | 
      Co to jest sharding w kontekście baz danych?    empezar lección
 | 
 | 
      Sharding to technika skalowania horyzontalnego, w której dane są podzielone na mniejsze fragmenty i przechowywane w różnych serwerach lub węzłach.   
 | 
 | 
 | 
      Jakie są główne różnice między ACID a BASE w kontekście baz danych?    empezar lección
 | 
 | 
      ACID skupia się na transakcjach, które są atomowe, spójne, izolowane i trwałe, podczas gdy BASE (Basically Available, Soft state, Eventually consistent) skupia się na dostępności, odporności na awarie i konsekwentnej końcowej konsystencji danych.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      MongoDB to popularna baza danych NoSQL, która używa formatu JSON do przechowywania danych i oferuje skalowanie horyzontalne.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Redis to szybka in-memory baza danych typu klucz-wartość, która obsługuje różne typy danych i jest używana do cache'owania, zarządzania sesjami i kolejek.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Cassandra to rozproszona i wysoko skalowalna baza danych typu NoSQL, zaprojektowana do obsługi dużych ilości danych i wysokich obciążeń.   
 | 
 | 
 | 
      Co to jest ETL w kontekście baz danych?    empezar lección
 | 
 | 
      ETL (Extract, Transform, Load) to proces wydobywania danych z różnych źródeł, transformacji ich do odpowiedniego formatu i załadowania ich do docelowej bazy danych lub systemu.   
 | 
 | 
 | 
      Jakie są główne typy baz danych NoSQL?    empezar lección
 | 
 | 
      Główne typy to: dokumentowe (np. MongoDB), kolumnowe (np. Cassandra), klucz-wartość (np. Redis) oraz grafowe (np. Neo4j).   
 | 
 | 
 | 
      Czy NoSQL bazy danych wspierają ACID?    empezar lección
 | 
 | 
      Niektóre NoSQL bazy danych wspierają częściowo lub w pełni ACID, ale często koncentrują się na dostępności i skalowalności.   
 | 
 | 
 | 
      Jakie są główne różnice między Redis a Memcached?    empezar lección
 | 
 | 
      Redis to baza danych typu klucz-wartość, która obsługuje różne typy danych i zapewnia trwałość danych. Memcached to prostsza pamięć podręczna, która obsługuje tylko dane typu klucz-wartość bez trwałości.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Wybiera dane z bazy danych. SELECT * FROM customers;   
 | 
 | 
 | 
      Ograniczenie atrybutów tabeli - primary key    empezar lección
 | 
 | 
      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.   
 | 
 | 
 | 
      Ograniczenie atrybutów tabeli - NOT NULL / NULL    empezar lección
 | 
 | 
      wartość nie może / może być nieokreślona   
 | 
 | 
 | 
      Ograniczenie atrybutów tabeli - UNIQUE    empezar lección
 | 
 | 
      wartość musi być unikalna w całej relacji   
 | 
 | 
 | 
      Ograniczenie atrybutów tabeli - SERIAL / AUTO_INCREMENT    empezar lección
 | 
 | 
      atrybut jest typu numerycznego z automatycznym wzrostem wartości w polu w momencie wykonywania operacji INSERT   
 | 
 | 
 | 
      Ograniczenie atrybutów tabeli - DEFAULT wartosc    empezar lección
 | 
 | 
      wartość domyślna dla atrybutu   
 | 
 | 
 | 
      Ograniczenie atrybutów tabeli - CHECK warunek    empezar lección
 | 
 | 
      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   
 | 
 | 
 | 
      Czym są funkcji agregujących w SQL?    empezar lección
 | 
 | 
      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.   
 | 
 | 
 | 
      Przykłady funkcji agregujących w SQL?    empezar lección
 | 
 | 
      SUM() - sumowanie. AVG() - średnia, COUNT() - zliczanie wystąpień, MIN() / MAX() - minimum / maksimum, STDEV() - odchylenie standardowe   
 | 
 | 
 | 
      Czym są funkcje analityczne w SQL?    empezar lección
 | 
 | 
      Rodzaj funkcji SQL, 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).   
 | 
 | 
 | 
      Przykłady funkcji analitycznych w SQL?    empezar lección
 | 
 | 
      ROW_NUMBER() - numerowanie wierszy, DENSE_RANK() / RANK () - pozycja w rankingu, SUM() - obliczenia sumy wartości w obrębie określonej partycji, LEAD() / LAG() - uzyskania wartości wiersza poprzedniego lub następnego.   
 | 
 | 
 | 
      Jaka jest różnica pomiędzy składnią WHERE i HAVING?    empezar lección
 | 
 | 
      Warunek WHERE odfiltrowuje rekordy z wyniku przed wykonaniem grupowania. Warunek HAVING odfiltrowuje rekordy z wyniku po wykonaniu grupowania   
 | 
 | 
 | 
      Do czego służą komendy DELETE i TRUNCATE?    empezar lección
 | 
 | 
      DELETE - możemy usunąć wszystkie wiersze lub jeden konkretny (dokładając WHERE). TRUNCATE działa na poziomie całej tabeli. Jeżeli chcesz usunąć wszystkie wiersze z tabeli.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Wybiera dane z bazy danych. SELECT * FROM customers;   
 | 
 | 
 | 
      INSERT INTO - komenda SQL    empezar lección
 | 
 | 
      Wstawia nowe dane do tabeli. INSERT INTO employees (name, age, salary) VALUES ('John Doe', 30, 50000);   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Aktualizuje istniejące dane w tabeli. UPDATE products SET price = 15.99 WHERE id = 123;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Usuwa dane z tabeli. DELETE FROM customers WHERE id = 456;   
 | 
 | 
 | 
      CREATE TABLE - komenda SQL    empezar lección
 | 
 | 
      Tworzy nową tabelę w bazie danych. CREATE TABLE orders (id INT PRIMARY KEY, product_id INT, quantity INT);   
 | 
 | 
 | 
      ALTER TABLE - komenda SQL    empezar lección
 | 
 | 
      Modyfikuje istniejącą tabelę (np. dodaje, usuwa kolumny). ALTER TABLE customers ADD COLUMN email VARCHAR(255);   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Usuwa całkowicie tabelę z bazy danych. DROP TABLE orders;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Łączy dane z dwóch lub więcej tabel na podstawie wspólnych kolumn. SELECT customers. name, orders. product_id FROM customers INNER JOIN orders ON customers. id = orders. customer_id;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Grupuje dane według określonego kryterium. SELECT department, AVG(salary) AS avg_salary FROM employees GROUP BY department;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Filtruje wyniki zapytania GROUP BY na podstawie warunku. SELECT department, AVG(salary) AS avg_salary FROM employees GROUP BY department HAVING AVG(salary) > 50000;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Sortuje wyniki zapytania. SELECT * FROM products ORDER BY price DESC;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Zlicza liczbę wierszy spełniających warunki zapytania. SELECT COUNT(*) FROM orders;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Zwraca maksymalną wartość w kolumnie. SELECT MAX(price) FROM products;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Zwraca minimalną wartość w kolumnie. SELECT MIN(price) FROM products;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Oblicza sumę wartości w kolumnie. SELECT SUM(quantity) FROM orders;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Oblicza średnią wartość w kolumnie. SELECT AVG(price) FROM products;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Zwraca unikalne wartości w kolumnie. SELECT DISTINCT category FROM products;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Filtruje wyniki zapytania na podstawie warunków logicznych. SELECT * FROM customers WHERE city = 'New York';   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Używane w połączeniu z WHERE do wyszukiwania wzorców w kolumnach tekstowych. SELECT * FROM products WHERE name LIKE '%book%';   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Filtruje wyniki zapytania, gdzie kolumna jest równe jednej z kilku wartości. SELECT * FROM products WHERE category IN ('Electronics', 'Clothing');   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Filtruje wyniki zapytania, aby zawierały wartości znajdujące się w określonym przedziale. SELECT * FROM products WHERE price BETWEEN 10 AND 50;   
 | 
 | 
 | 
      IS NULL / IS NOT NULL - komenda SQL    empezar lección
 | 
 | 
      Filtruje wyniki zapytania, aby zwrócić wartości, które są (lub nie są) puste (NULL). SELECT * FROM customers WHERE email IS NULL;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Łączy wyniki dwóch lub więcej zapytań SELECT i zwraca unikalne wyniki. SELECT city FROM customers UNION SELECT city FROM suppliers;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Zwraca wspólne wyniki dwóch lub więcej zapytań SELECT. SELECT customer_id FROM orders INTERSECT SELECT customer_id FROM payments;   
 | 
 | 
 | 
      EXCEPT / MINUS - komenda SQL    empezar lección
 | 
 | 
      Zwraca wyniki z pierwszego zapytania SELECT, które nie występują w drugim zapytaniu SELECT. SELECT product_id FROM inventory EXCEPT SELECT product_id FROM orders;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Wykonuje warunkowe instrukcje w zapytaniach SELECT. SELECT order_id, quantity, CASE WHEN quantity > 30 THEN 'High' WHEN quantity > 10 THEN 'Medium' ELSE 'Low' END AS quantity_category FROM order_details;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Zwraca pierwszą niepustą wartość wśród swoich argumentów. SELECT COALESCE(phone, email, 'No contact information') AS contact_info FROM customers;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Tworzy indeks na kolumnie tabeli, aby przyspieszyć wyszukiwanie i sortowanie. CREATE INDEX idx_lastname ON employees(last_name);   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Tworzy wirtualną tabelę na podstawie wyniku zapytania SELECT, które można potem używać tak jak normalnej tabeli. CREATE VIEW sales_summary AS SELECT product_id, SUM(quantity) AS total_quantity FROM sales GROUP BY product_id;   
 | 
 | 
 | 
      TRANSACTION - komenda SQL    empezar lección
 | 
 | 
      Rozpoczyna, zatwierdza lub cofa transakcję, zapewniając integralność danych. BEGIN TRANSACTION; UPDATE accounts SET balance = balance - 100 WHERE account_id = 123; COMMIT;   
 | 
 | 
 | 
      TRANSACTION - komenda SQL    empezar lección
 | 
 | 
      Rozpoczyna, zatwierdza lub cofa transakcję, zapewniając integralność danych. BEGIN TRANSACTION; UPDATE accounts SET balance = balance - 100 WHERE account_id = 123; COMMIT;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Nadaje uprawnienia użytkownikom lub rolom w bazie danych. GRANT SELECT ON employees TO marketing_team;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Odwołuje przyznane uprawnienia użytkownikom lub rolom w bazie danych. REVOKE INSERT ON customers FROM temporary_user;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Szybko usuwa wszystkie dane z tabeli (bez logowania zmian), zachowując strukturę tabeli. TRUNCATE TABLE customers;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Cofa niezatwierdzone zmiany w transakcji do jej stanu początkowego. BEGIN TRANSACTION; UPDATE accounts SET balance = balance + 100 WHERE account_id = 456; ROLLBACK;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Umożliwia ustawienie punktu zapisu w transakcji, który można później cofnąć. SAVEPOINT before_update; UPDATE employees SET salary = salary * 1.1 WHERE department = 'IT'; ROLLBACK TO SAVEPOINT before_update;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Określa, że operacje DML (DELETE, UPDATE) mają być propagowane do powiązanych wierszy w innych tabelach. DELETE FROM customers WHERE customer_id = 123 CASCADE;   
 | 
 | 
 | 
      CHECK CONSTRAINT - komenda SQL    empezar lección
 | 
 | 
      Definiuje warunek, który musi być spełniony przed dodaniem lub aktualizacją wiersza w tabeli. CREATE TABLE orders (order_id INT PRIMARY KEY, order_date DATE, amount DECIMAL(10,2), CHECK (amount > 0));   
 | 
 | 
 | 
      DEFAULT CONSTRAINT - komenda SQL    empezar lección
 | 
 | 
      Określa wartość domyślną dla kolumny, która zostanie użyta, jeśli nie zostanie podana wartość podczas wstawiania nowego wiersza. CREATE TABLE employees (employee_id INT PRIMARY KEY, name VARCHAR(100), salary DECIMAL(10,2) DEFAULT 50000 );   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Ogranicza liczbę wierszy zwracanych przez zapytanie. SELECT * FROM products ORDER BY price DESC LIMIT 10;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Określa liczbę wierszy, które mają być pominięte przed rozpoczęciem zwracania wyników zapytania. SELECT * FROM products ORDER BY price DESC LIMIT 10 OFFSET 20;   
 | 
 | 
 | 
      ROW_NUMBER() - komenda SQL    empezar lección
 | 
 | 
      Przypisuje numer sekwencyjny do każdego wiersza wynikowego zapytania, zgodnie z określonym porządkiem. SELECT ROW_NUMBER() OVER(ORDER BY salary DESC) AS rank, employee_id, name, salary FROM employees;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Przypisuje ranking dla każdego wiersza wynikowego zapytania, przy czym wiersze z tym samym wynikiem mają ten sam ranking, a następny numer jest pomijany. SELECT RANK() OVER(ORDER BY score DESC) AS ranking, player_id, name, score FROM players;   
 | 
 | 
 | 
      DENSE_RANK() - komenda SQL    empezar lección
 | 
 | 
      Przypisuje gęsty ranking dla każdego wiersza wynikowego zapytania, zapewniając, że kolejne numery są nieprzerwane, nawet jeśli wiersze mają ten sam wynik. SELECT DENSE_RANK() OVER(ORDER BY price) AS dense_rank, product_id, name, price FROM products;   
 | 
 | 
 | 
      PARTITION BY - komenda SQL    empezar lección
 | 
 | 
      Dzieli wyniki okna na grupy w oparciu o określone kolumny, przed stosowaniem funkcji analizy okna. SELECT department, employee_id, name, salary, ROW_NUMBER() OVER(PARTITION BY department ORDER BY salary DESC) AS dept_rank FROM employees;   
 | 
 | 
 | 
      CTE (Common Table Expression) - komenda SQL    empezar lección
 | 
 | 
      Tymczasowa nazwana podzapytania, które można używać wielokrotnie. WITH high_salary_employees AS (SELECT employee_id, name, salary FROM employees WHERE salary > 80000 ) SELECT * FROM high_salary_employees;   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Łączy operacje INSERT, UPDATE i DELETE w jedno zapytanie, aby zaktualizować dane w tabeli na podstawie wyników z innego zapytania.   
 | 
 | 
 | 
      MERGE - przykład komendy SQL    empezar lección
 | 
 | 
      MERGE INTO target_table AS T USING source_table AS S ON T. id = S. id WHEN MATCHED THEN UPDATE SET T. value = S. value WHEN NOT MATCHED THEN INSERT (id, value) VALUES (S. id, S. value);   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Tworzy obiekt sekweancji, który generuje unikalne numery wskazanej kolumny (często używane w bazach danych, które nie obsługują auto-inkrementacji). CREATE SEQUENCE customer_id_seq START WITH 1 INCREMENT BY 1;   
 | 
 | 
 |