Frage |
Antworten |
Lernen beginnen
|
|
SQL (Structured Query Language) jest standardowym językiem do zarządzania i manipulowania relacyjnymi bazami danych.
|
|
|
Lernen beginnen
|
|
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.
|
|
|
Lernen beginnen
|
|
MySQL to popularny system zarządzania relacyjnymi bazami danych, który jest open-source i często używany w aplikacjach webowych.
|
|
|
Lernen beginnen
|
|
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? Lernen beginnen
|
|
Podstawowe zasady obejmują silne uwierzytelnianie, kontrolę dostępu, szyfrowanie danych oraz regularne aktualizacje i backupy.
|
|
|
Jakie są metody optymalizacji wydajności bazy danych? Lernen beginnen
|
|
Metody optymalizacji obejmują indeksowanie, normalizację, caching, oraz optymalizację zapytań SQL.
|
|
|
Co oznacza akronim ACID w kontekście baz danych? Lernen beginnen
|
|
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? Lernen beginnen
|
|
Indeksowanie to proces tworzenia struktury danych, która przyspiesza wyszukiwanie i odczytywanie danych w bazie.
|
|
|
Co to jest normalizacja bazy danych? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
Kolumna reprezentuje atrybut danych, a każda kolumna w tabeli przechowuje określony typ danych.
|
|
|
Co to jest wiersz w tabeli bazy danych? Lernen beginnen
|
|
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? Lernen beginnen
|
|
Klucz główny to unikalny identyfikator rekordu w tabeli, który jednoznacznie identyfikuje każdy wiersz.
|
|
|
Co to jest klucz obcy w bazie danych? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
Inner Join zwraca wiersze, które mają pasujące wartości w obu tabelach.
|
|
|
INNER JOIN - przykład komendy SQL Lernen beginnen
|
|
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? Lernen beginnen
|
|
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.
|
|
|
Lernen beginnen
|
|
SELECT * FROM tabelaA LEFT JOIN tabelaB ON tabelaA. kolumna = tabelaB. kolumna;
|
|
|
Co to jest Right Join w SQL? Lernen beginnen
|
|
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.
|
|
|
Lernen beginnen
|
|
SELECT * FROM tabelaA RIGHT JOIN tabelaB ON tabelaA. kolumna = tabelaB. kolumna;
|
|
|
Co to jest Full Join (Full outer Join) w SQL? Lernen beginnen
|
|
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 Lernen beginnen
|
|
SELECT * FROM tabelaA FULL JOIN tabelaB ON tabelaA. kolumna = tabelaB. kolumna;
|
|
|
Co to jest Cross Join w SQL? Lernen beginnen
|
|
Cross Join zwraca iloczyn kartezjański dwóch tabel, co oznacza, że łączy każdy wiersz pierwszej tabeli z każdym wierszem drugiej tabeli.
|
|
|
Lernen beginnen
|
|
SELECT * FROM tabelaA CROSS JOIN tabelaB; - ALBO - SELECT * FROM tabelaA, tabelaB;
|
|
|
Lernen beginnen
|
|
UNION łączy wyniki dwóch zapytań SELECT, eliminując duplikaty i zwracając unikalne wiersze.
|
|
|
Co to jest UNION ALL w SQL? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
Indeks to struktura danych, która przyspiesza wyszukiwanie rekordów w tabeli kosztem dodatkowego miejsca na dysku.
|
|
|
Co to jest widok (view) w SQL? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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).
|
|
|
Lernen beginnen
|
|
Commit to polecenie w SQL, które zapisuje wszystkie zmiany wprowadzone przez bieżącą transakcję do bazy danych.
|
|
|
Co to jest rollback w SQL? Lernen beginnen
|
|
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? Lernen beginnen
|
|
Savepoint to punkt w ramach transakcji, do którego można cofnąć się bez anulowania całej transakcji.
|
|
|
Co oznacza atomowość (Atomicity) w ACID? Lernen beginnen
|
|
Wszystkie operacje w transakcji są wykonane albo żadna z nich.
|
|
|
Co oznacza spójność (Consistency) w ACID? Lernen beginnen
|
|
Transakcja przenosi bazę danych z jednego spójnego stanu do innego.
|
|
|
Co oznacza izolacja (Isolation) w ACID? Lernen beginnen
|
|
Równoległe transakcje nie powinny wpływać na siebie nawzajem.
|
|
|
Co oznacza trwałość (Durability) w ACID? Lernen beginnen
|
|
Wyniki zakończonej transakcji są trwałe, nawet w przypadku awarii systemu.
|
|
|
Lernen beginnen
|
|
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? Lernen beginnen
|
|
SQL (Structured Query Language), PL/SQL (Procedural Language/SQL), T-SQL (Transact-SQL), NoSQL Query Languages
|
|
|
Typy używanych zapytań SQL Lernen beginnen
|
|
Data Definition Language (DDL), Data Manipulation Language (DML), Data Control Language (DCL), Data Query Language (DQL), TCL (Transaction Control Language)
|
|
|
Lernen beginnen
|
|
Data Control Language to podzbiór SQL, który obejmuje polecenia do zarządzania uprawnieniami dostępu do danych, takie jak GRANT i REVOKE.
|
|
|
Lernen beginnen
|
|
Data Query Language to podzbiór SQL, który obejmuje polecenia do zapytań i uzyskiwania danych z bazy, głównie za pomocą SELECT.
|
|
|
Lernen beginnen
|
|
Data Manipulation Language to podzbiór SQL, który obejmuje polecenia do zarządzania danymi w bazie, takie jak INSERT, UPDATE i DELETE.
|
|
|
Lernen beginnen
|
|
Data Definition Language to podzbiór SQL, który obejmuje polecenia do definiowania struktury bazy danych, takie jak CREATE, ALTER i DROP.
|
|
|
Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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.
|
|
|
Lernen beginnen
|
|
MongoDB to popularna baza danych NoSQL, która używa formatu JSON do przechowywania danych i oferuje skalowanie horyzontalne.
|
|
|
Lernen beginnen
|
|
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.
|
|
|
Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
Główne typy to: dokumentowe (np. MongoDB), kolumnowe (np. Cassandra), klucz-wartość (np. Redis) oraz grafowe (np. Neo4j).
|
|
|
Czy NoSQL bazy danych wspierają ACID? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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.
|
|
|
Lernen beginnen
|
|
Wybiera dane z bazy danych. SELECT * FROM customers;
|
|
|
Ograniczenie atrybutów tabeli - primary key Lernen beginnen
|
|
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 Lernen beginnen
|
|
wartość nie może / może być nieokreślona
|
|
|
Ograniczenie atrybutów tabeli - UNIQUE Lernen beginnen
|
|
wartość musi być unikalna w całej relacji
|
|
|
Ograniczenie atrybutów tabeli - SERIAL / AUTO_INCREMENT Lernen beginnen
|
|
atrybut jest typu numerycznego z automatycznym wzrostem wartości w polu w momencie wykonywania operacji INSERT
|
|
|
Ograniczenie atrybutów tabeli - DEFAULT wartosc Lernen beginnen
|
|
wartość domyślna dla atrybutu
|
|
|
Ograniczenie atrybutów tabeli - CHECK warunek Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
SUM() - sumowanie. AVG() - średnia, COUNT() - zliczanie wystąpień, MIN() / MAX() - minimum / maksimum, STDEV() - odchylenie standardowe
|
|
|
Czym są funkcje analityczne w SQL? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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? Lernen beginnen
|
|
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.
|
|
|
Lernen beginnen
|
|
Wybiera dane z bazy danych. SELECT * FROM customers;
|
|
|
INSERT INTO - komenda SQL Lernen beginnen
|
|
Wstawia nowe dane do tabeli. INSERT INTO employees (name, age, salary) VALUES ('John Doe', 30, 50000);
|
|
|
Lernen beginnen
|
|
Aktualizuje istniejące dane w tabeli. UPDATE products SET price = 15.99 WHERE id = 123;
|
|
|
Lernen beginnen
|
|
Usuwa dane z tabeli. DELETE FROM customers WHERE id = 456;
|
|
|
CREATE TABLE - komenda SQL Lernen beginnen
|
|
Tworzy nową tabelę w bazie danych. CREATE TABLE orders (id INT PRIMARY KEY, product_id INT, quantity INT);
|
|
|
ALTER TABLE - komenda SQL Lernen beginnen
|
|
Modyfikuje istniejącą tabelę (np. dodaje, usuwa kolumny). ALTER TABLE customers ADD COLUMN email VARCHAR(255);
|
|
|
Lernen beginnen
|
|
Usuwa całkowicie tabelę z bazy danych. DROP TABLE orders;
|
|
|
Lernen beginnen
|
|
Łą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;
|
|
|
Lernen beginnen
|
|
Grupuje dane według określonego kryterium. SELECT department, AVG(salary) AS avg_salary FROM employees GROUP BY department;
|
|
|
Lernen beginnen
|
|
Filtruje wyniki zapytania GROUP BY na podstawie warunku. SELECT department, AVG(salary) AS avg_salary FROM employees GROUP BY department HAVING AVG(salary) > 50000;
|
|
|
Lernen beginnen
|
|
Sortuje wyniki zapytania. SELECT * FROM products ORDER BY price DESC;
|
|
|
Lernen beginnen
|
|
Zlicza liczbę wierszy spełniających warunki zapytania. SELECT COUNT(*) FROM orders;
|
|
|
Lernen beginnen
|
|
Zwraca maksymalną wartość w kolumnie. SELECT MAX(price) FROM products;
|
|
|
Lernen beginnen
|
|
Zwraca minimalną wartość w kolumnie. SELECT MIN(price) FROM products;
|
|
|
Lernen beginnen
|
|
Oblicza sumę wartości w kolumnie. SELECT SUM(quantity) FROM orders;
|
|
|
Lernen beginnen
|
|
Oblicza średnią wartość w kolumnie. SELECT AVG(price) FROM products;
|
|
|
Lernen beginnen
|
|
Zwraca unikalne wartości w kolumnie. SELECT DISTINCT category FROM products;
|
|
|
Lernen beginnen
|
|
Filtruje wyniki zapytania na podstawie warunków logicznych. SELECT * FROM customers WHERE city = 'New York';
|
|
|
Lernen beginnen
|
|
Używane w połączeniu z WHERE do wyszukiwania wzorców w kolumnach tekstowych. SELECT * FROM products WHERE name LIKE '%book%';
|
|
|
Lernen beginnen
|
|
Filtruje wyniki zapytania, gdzie kolumna jest równe jednej z kilku wartości. SELECT * FROM products WHERE category IN ('Electronics', 'Clothing');
|
|
|
Lernen beginnen
|
|
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 Lernen beginnen
|
|
Filtruje wyniki zapytania, aby zwrócić wartości, które są (lub nie są) puste (NULL). SELECT * FROM customers WHERE email IS NULL;
|
|
|
Lernen beginnen
|
|
Łączy wyniki dwóch lub więcej zapytań SELECT i zwraca unikalne wyniki. SELECT city FROM customers UNION SELECT city FROM suppliers;
|
|
|
Lernen beginnen
|
|
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 Lernen beginnen
|
|
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;
|
|
|
Lernen beginnen
|
|
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;
|
|
|
Lernen beginnen
|
|
Zwraca pierwszą niepustą wartość wśród swoich argumentów. SELECT COALESCE(phone, email, 'No contact information') AS contact_info FROM customers;
|
|
|
Lernen beginnen
|
|
Tworzy indeks na kolumnie tabeli, aby przyspieszyć wyszukiwanie i sortowanie. CREATE INDEX idx_lastname ON employees(last_name);
|
|
|
Lernen beginnen
|
|
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 Lernen beginnen
|
|
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 Lernen beginnen
|
|
Rozpoczyna, zatwierdza lub cofa transakcję, zapewniając integralność danych. BEGIN TRANSACTION; UPDATE accounts SET balance = balance - 100 WHERE account_id = 123; COMMIT;
|
|
|
Lernen beginnen
|
|
Nadaje uprawnienia użytkownikom lub rolom w bazie danych. GRANT SELECT ON employees TO marketing_team;
|
|
|
Lernen beginnen
|
|
Odwołuje przyznane uprawnienia użytkownikom lub rolom w bazie danych. REVOKE INSERT ON customers FROM temporary_user;
|
|
|
Lernen beginnen
|
|
Szybko usuwa wszystkie dane z tabeli (bez logowania zmian), zachowując strukturę tabeli. TRUNCATE TABLE customers;
|
|
|
Lernen beginnen
|
|
Cofa niezatwierdzone zmiany w transakcji do jej stanu początkowego. BEGIN TRANSACTION; UPDATE accounts SET balance = balance + 100 WHERE account_id = 456; ROLLBACK;
|
|
|
Lernen beginnen
|
|
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;
|
|
|
Lernen beginnen
|
|
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 Lernen beginnen
|
|
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 Lernen beginnen
|
|
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 );
|
|
|
Lernen beginnen
|
|
Ogranicza liczbę wierszy zwracanych przez zapytanie. SELECT * FROM products ORDER BY price DESC LIMIT 10;
|
|
|
Lernen beginnen
|
|
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 Lernen beginnen
|
|
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;
|
|
|
Lernen beginnen
|
|
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 Lernen beginnen
|
|
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 Lernen beginnen
|
|
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 Lernen beginnen
|
|
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;
|
|
|
Lernen beginnen
|
|
Łą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 Lernen beginnen
|
|
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);
|
|
|
Lernen beginnen
|
|
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;
|
|
|