|
término |
definición |
Jaki operator służy do przepisywania zmiennej w PLPG SQL? empezar lección
|
|
|
|
|
Jaką klauzulą kończy się tworzenie funkcji w PLPG SQL? empezar lección
|
|
|
|
|
Jak wywołać zadeklarowaną funkcję "dodaj" z parametrem cena z tabeli filmu? empezar lección
|
|
SELECT DODAJ(CENA, 10) FROM FILMY;
|
|
|
|
empezar lección
|
|
DROP VIEW nazwa_perspektywy
|
|
|
Jak dobrać kolejność kolumn w indeksie? empezar lección
|
|
Najpierw kolumny z WHERE, potem z ORDER BY
|
|
|
Co daje dodanie DESC w indeksie empezar lección
|
|
Pozwala uniknąć sortowania przy ORDER BY ... DESC.
|
|
|
|
empezar lección
|
|
Indeks z warunkiem WHERE, obejmuje tylko część danych.
|
|
|
Kiedy używać partial index? empezar lección
|
|
Gdy filtr w zapytaniu jest stały (np. status = 'active').
|
|
|
Kiedy używać expression index? empezar lección
|
|
Gdy w WHERE lub ORDER BY używasz funkcji (np. lower(email)).
|
|
|
Czym jest indeks haszowany? empezar lección
|
|
CREATE INDEX idx_users_email_hash ON users USING HASH(email); Korzysta się z niego tylko dla porównań równości.
|
|
|
Jak pobrać aktualną datę i czas w postgreSQL? empezar lección
|
|
|
|
|
Jak pobrać aktualną datę bez czasu w PostgresQL? empezar lección
|
|
|
|
|
Jak wyciągnąć konkretną część daty w postgrę SQL? empezar lección
|
|
EXTRACT(YEAR from now());
|
|
|
|
empezar lección
|
|
Only with high selectivity. For example, if the query you are asking for has 1 to 10 percent of data. Otherwise you can do sequential scan.
|
|
|
|
empezar lección
|
|
|
|
|
Jak stworzyć perspektywę? empezar lección
|
|
CREATE VIEW nazwa_perspektywy AS SELECT...
|
|
|
Czy zmiana danych w tabeli będzie odwzorowana w perspektywie niezmaterializowanej? empezar lección
|
|
|
|
|
Jaką komendę trzeba wywołać, żeby uwzględnić zmiany z tabeli w zmaterializowanej perspektywie. empezar lección
|
|
REFRESH MATERIALIZED VIEW
|
|
|
Jaka jest reguła przy GROUP BY? empezar lección
|
|
Jeśli masz w SELECT coś agregującego (SUM, COUNT, itd.) + zwykłe kolumny → wszystkie zwykłe kolumny MUSZĄ być w GROUP BY.
|
|
|
Jak będzie brzmiał warunek stworzonych użytkowników, czyli kolumna created at, stworzonych w ostatnich 30 dniach? empezar lección
|
|
where created_at > now() - interval '30 days'
|
|
|
Jak zablokować możliwość insert lub update w perspektywie? empezar lección
|
|
Dodać na końcu WITH CHECK OPTION. Warto dodać, że perspektywy, które mają group by lub join są zablokowane do edycji domyślnie.
|
|
|
Wymień 4 miejsca, w których w funkcji PLPG SQL stawia się średnik. empezar lección
|
|
1. Po każdej instrukcji wewnątrz bloku BEGIN ... END, 2. Po END, 3. Na samym końcu. 4. Po każdej deklaracji zmiennej
|
|
|
Jak zadeklarować zmienną w PLPG SQL? empezar lección
|
|
|
|
|
Co daje polecenie SavePoint? Pótaí syntáx empezar lección
|
|
It gives you point in time to which you can roll back transaction. SAVEPOINT nazwa
|
|
|
Jakie mamy dwa rodzaje rollbacków? empezar lección
|
|
|
|
|
Jakie są dwa rodzaje poziomów izolacji w postgreSQL? empezar lección
|
|
READ COMMITED, SERIALIZABLE
|
|
|
Jak ustawić poziom izolacji w postgreSQL? empezar lección
|
|
SET TRANSACTION ISOLATION LEVEL
|
|
|
Z jakim problemem wiąże się read committed? empezar lección
|
|
|
|
|
Kiedy dobrym rozwiązaniem jest zastosowanie poziomu izolacji serializable? empezar lección
|
|
Kiedy nie mamy update po ID, ale decyzje na podstawie sum, count lub exists i jest to jakaś krytyczna finansowa transakcja,
|
|
|
Phantom read oznacza że w jednej _ między dwoma _ mamy _ lub _ wierszy Czy w Read Committed ten problem występuje? empezar lección
|
|
transakcji, selectami, mniej, więcej Tak ale w postgres jest wyeliminowany
|
|
|
Czy rollback cofa wszystko co było dotychczas i kontynuuje dalej transakcję, czy również przerywa transakcję? empezar lección
|
|
Przerywa również transakcje
|
|
|
Jaka jest najważniejsza zasada współbieżności? empezar lección
|
|
nie polegaj na SELECT do walidacji warunków współbieżnych
|
|
|
Jak w PLPG SQL określić zmienną rekordową? empezar lección
|
|
pracownik_wiersz pracownicy%ROWTYPE
|
|
|
Wstaw tytuł do zmiennej T z relacji filmy, gdzie ID filmu równa się ID. Zapytanie jednokrotkowe empezar lección
|
|
SELECT tytul INTO t FROM filmy WHERE id_filmu=id
|
|
|
Jak przypisać do zmiennej instrukcji Insert, Update lub Delete? empezar lección
|
|
returning kolumna into zmienna;
|
|
|
Jak rzucić wyjątkiem w PLPG SQL? empezar lección
|
|
raise exception 'bla bla'
|
|
|
Jaka jest składnia pętli w PLPG SQL? empezar lección
|
|
FOR i IN 1... ilosc_iteracji LOOP ... END LOOP;
|
|
|
Jaka jest składnia iteracji po kursorze? Dla cursora implicit empezar lección
|
|
FOR zmienna IN SELECT val FROM NUMBERS LOOP ... END LOOP; tylko dla implicit cursora
|
|
|
Jaka jest składnia iteracji po kursorze c? Dla explicit cursora empezar lección
|
|
OPEN c; LOOP FETCH c INTO rec; END LOOP; CLOSE c;
|
|
|
Jak się nazywa wyjątek naruszenia ograniczenia unikalności empezar lección
|
|
|
|
|
Jak się nazywa wyjątek naruszenia ograniczenia Check. empezar lección
|
|
|
|
|
Wymień cztery rodzaje integralności w bazach danych. empezar lección
|
|
encji (PK NULL albo duplikat), referencji, domeny (CHECK, typy), biznesowa
|
|
|
Jaka będzie składnia dla explicit kursora o nazwie C, który pobiera wszystko z tabeli pracownicy? empezar lección
|
|
c CURSOR FOR SELECT * FROM pracownicy;
|
|
|
Jak wygląda konkatenacja w postgreSQL? Podaj przykład z błędem empezar lección
|
|
Na przykład: 'Blad: ' || SQLERRM;
|
|
|
Jak wygląda update w postgres empezar lección
|
|
update tabela set kolumna = nowa_wartość where...
|
|
|
Co zastosować, aby przerwać pętlę po przetworzeniu wszystkich wierszy kursora? empezar lección
|
|
|
|
|
Jak pobrać dane z kursora c do rekordu p_record empezar lección
|
|
|
|
|
Dane znormalizowane to takie które zostały _ na _ i są ___ empezar lección
|
|
podzielone na tabele i połączone przez klucze
|
|
|
Co dodać w insert jeśli kolumna ma typ SERIAL? empezar lección
|
|
DEFAULT lub jawnie pominąć kolumnę
|
|
|
jaka jest składnia dla substring? empezar lección
|
|
substring(string FROM start FOR count);
|
|
|
Jaka jest składnia id jako primary key? empezar lección
|
|
|
|
|
Na czym polega komenda OUTER w kwerendzie JOINów? empezar lección
|
|
OUTER zwraca również wartości, gdy nie ma dopasowania w drugiej tabeli
|
|
|
|
empezar lección
|
|
Zwraca iloczyn kartezjański
|
|
|
T/F: Procedura wyzwalacza (funkcja) może mieć argumenty empezar lección
|
|
False, it cannot have arguments
|
|
|
Co musi zwracać procedura wyzwalacza? empezar lección
|
|
|
|
|
Jak będzie wyglądać składnia wyzwalacza o nazwie "wyzw" procedury proc() wykonywanej na każdym wierszu przed insertem/updatem na relacji filmy empezar lección
|
|
CREATE TRIGGER wyzw BEFORE INSERT OR UPDATE ON filmy FOR EACH ROW EXECUTE proc()
|
|
|
T/F Dla wyzwalaczy FOR EACH ROW funkcja powinna zwrócić krotkę wynikową INSERT/UPDATE empezar lección
|
|
Prawda, dla pozostałych null
|
|
|
Jak się nazywa zmienna która przechowuje nazwę operacji uruchamiającej wyzwalacz empezar lección
|
|
|
|
|
Co przechowuje zmienna NEW w wyzwalaczach? empezar lección
|
|
Krotkę wynikową dla poleceń INSERT/UPDATE dla FOR EACH ROW. W pozostałych NULL
|
|
|
Co przechowuje zmienna OLD w wyzwalaczach? empezar lección
|
|
krotkę źródłową dla poleceń UPDATE/DELETE dla FOR EACH ROW. W pozostałych NULL
|
|
|
Jak usunąć trigger wyzw na relacji filmy? empezar lección
|
|
DROP TRIGGER wyzw ON filmy;
|
|
|
Które rekordy (NEW czy OLD) są dostępne w triggerze FOR EACH ROW dla operacji INSERT? empezar lección
|
|
Dostępny jest tylko NEW. Rekord OLD przyjmuje wartość NULL
|
|
|
Które rekordy (NEW czy OLD) są dostępne w triggerze FOR EACH ROW dla operacji UPDATE empezar lección
|
|
Dostępne są oba rekordy: NEW (stan po zmianie) oraz OLD (stan przed zmianą).
|
|
|
Które rekordy (NEW czy OLD) są dostępne w triggerze FOR EACH ROW dla operacji DELETE empezar lección
|
|
Dostępny jest tylko OLD. Rekord NEW przyjmuje wartość NULL
|
|
|
Co musisz zwrócić (RETURN), aby trigger BEFORE dla INSERT lub UPDATE pozwolił na fizyczny zapis wiersza w tabeli? empezar lección
|
|
|
|
|
Co musisz zwrócić (RETURN), aby trigger BEFORE dla DELETE pozwolił na usunięcie wiersza? empezar lección
|
|
|
|
|
Co zwraca się na końcu funkcji wyzwalacza typu AFTER i jaki to ma wpływ na dane? empezar lección
|
|
Zwraca się zazwyczaj NULL (lub NEW/OLD). Nie ma to żadnego wpływu na dane, ponieważ operacja zapisu już się zakończyła.
|
|
|