Bazy danych

 0    81 flashcards    pablojakub
mp3 indir Baskı oynamak kendini kontrol et
 
soru cevap
Jaki operator służy do przepisywania zmiennej w PLPG SQL?
öğrenmeye başla
:=
Jaką klauzulą kończy się tworzenie funkcji w PLPG SQL?
öğrenmeye başla
$$ LANGUAGE PLPGSQL;
Jak wywołać zadeklarowaną funkcję "dodaj" z parametrem cena z tabeli filmu?
öğrenmeye başla
SELECT DODAJ(CENA, 10) FROM FILMY;
Jak usunąć perspektywę?
öğrenmeye başla
DROP VIEW nazwa_perspektywy
Jak dobrać kolejność kolumn w indeksie?
öğrenmeye başla
Najpierw kolumny z WHERE, potem z ORDER BY
Co daje dodanie DESC w indeksie
öğrenmeye başla
Pozwala uniknąć sortowania przy ORDER BY ... DESC.
Czym jest partial index?
öğrenmeye başla
Indeks z warunkiem WHERE, obejmuje tylko część danych.
Kiedy używać partial index?
öğrenmeye başla
Gdy filtr w zapytaniu jest stały (np. status = 'active').
Kiedy używać expression index?
öğrenmeye başla
Gdy w WHERE lub ORDER BY używasz funkcji (np. lower(email)).
Czym jest indeks haszowany?
öğrenmeye başla
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?
öğrenmeye başla
now()
Jak pobrać aktualną datę bez czasu w PostgresQL?
öğrenmeye başla
current_date
Jak wyciągnąć konkretną część daty w postgrę SQL?
öğrenmeye başla
EXTRACT(YEAR from now());
Kiedy indeks ma sens?
öğrenmeye başla
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.
Jak usunąć indeks?
öğrenmeye başla
DROP INDEX nazwa_indeksu
Jak stworzyć perspektywę?
öğrenmeye başla
CREATE VIEW nazwa_perspektywy AS SELECT...
Czy zmiana danych w tabeli będzie odwzorowana w perspektywie niezmaterializowanej?
öğrenmeye başla
Так
Jaką komendę trzeba wywołać, żeby uwzględnić zmiany z tabeli w zmaterializowanej perspektywie.
öğrenmeye başla
REFRESH MATERIALIZED VIEW
Jaka jest reguła przy GROUP BY?
öğrenmeye başla
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?
öğrenmeye başla
where created_at > now() - interval '30 days'
Jak zablokować możliwość insert lub update w perspektywie?
öğrenmeye başla
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.
öğrenmeye başla
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?
öğrenmeye başla
nazwa zmiennej TYP
Co daje polecenie SavePoint?
Pótaí syntáx
öğrenmeye başla
It gives you point in time to which you can roll back transaction.
SAVEPOINT nazwa
Jakie mamy dwa rodzaje rollbacków?
öğrenmeye başla
ROLLBACK; ROLLBACK TO;
Jakie są dwa rodzaje poziomów izolacji w postgreSQL?
öğrenmeye başla
READ COMMITED, SERIALIZABLE
Jak ustawić poziom izolacji w postgreSQL?
öğrenmeye başla
SET TRANSACTION ISOLATION LEVEL
Z jakim problemem wiąże się read committed?
öğrenmeye başla
Non-repeatable read
Kiedy dobrym rozwiązaniem jest zastosowanie poziomu izolacji serializable?
öğrenmeye başla
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?
öğrenmeye başla
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ę?
öğrenmeye başla
Przerywa również transakcje
Jaka jest najważniejsza zasada współbieżności?
öğrenmeye başla
nie polegaj na SELECT do walidacji warunków współbieżnych
Jak w PLPG SQL określić zmienną rekordową?
öğrenmeye başla
pracownik_wiersz pracownicy%ROWTYPE
Wstaw tytuł do zmiennej T z relacji filmy, gdzie ID filmu równa się ID.
Zapytanie jednokrotkowe
öğrenmeye başla
SELECT tytul INTO t FROM filmy WHERE id_filmu=id
Jak przypisać do zmiennej instrukcji Insert, Update lub Delete?
öğrenmeye başla
returning kolumna into zmienna;
Jak rzucić wyjątkiem w PLPG SQL?
öğrenmeye başla
raise exception 'bla bla'
Jaka jest składnia pętli w PLPG SQL?
öğrenmeye başla
FOR i IN 1... ilosc_iteracji LOOP ... END LOOP;
Jaka jest składnia iteracji po kursorze?
Dla cursora implicit
öğrenmeye başla
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
öğrenmeye başla
OPEN c; LOOP FETCH c INTO rec; END LOOP; CLOSE c;
Jak się nazywa wyjątek naruszenia ograniczenia unikalności
öğrenmeye başla
UNIQUE_VIOLATION
Jak się nazywa wyjątek naruszenia ograniczenia Check.
öğrenmeye başla
CHECK_VIOLATION
Wymień cztery rodzaje integralności w bazach danych.
öğrenmeye başla
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?
öğrenmeye başla
c CURSOR FOR SELECT * FROM pracownicy;
Jak wygląda konkatenacja w postgreSQL?
Podaj przykład z błędem
öğrenmeye başla
Operator ||
Na przykład: 'Blad: ' || SQLERRM;
Jak wygląda update w postgres
öğrenmeye başla
update tabela set kolumna = nowa_wartość where...
Co zastosować, aby przerwać pętlę po przetworzeniu wszystkich wierszy kursora?
öğrenmeye başla
EXIT WHEN NOT FOUND;
Jak pobrać dane z kursora c do rekordu p_record
öğrenmeye başla
FETCH c INTO p_record;
Dane znormalizowane to takie które zostały _ na _ i są ___
öğrenmeye başla
podzielone na tabele i połączone przez klucze
Co dodać w insert jeśli kolumna ma typ SERIAL?
öğrenmeye başla
DEFAULT lub jawnie pominąć kolumnę
jaka jest składnia dla substring?
öğrenmeye başla
substring(string FROM start FOR count);
Jaka jest składnia id jako primary key?
öğrenmeye başla
id SERIAL PRIMARY KEY
Na czym polega komenda OUTER w kwerendzie JOINów?
öğrenmeye başla
OUTER zwraca również wartości, gdy nie ma dopasowania w drugiej tabeli
Co robi CROSS JOIN?
öğrenmeye başla
Zwraca iloczyn kartezjański
T/F: Procedura wyzwalacza (funkcja) może mieć argumenty
öğrenmeye başla
False, it cannot have arguments
Co musi zwracać procedura wyzwalacza?
öğrenmeye başla
returns TRIGGER as $$
Jak będzie wyglądać składnia wyzwalacza o nazwie "wyzw" procedury proc() wykonywanej na każdym wierszu przed insertem/updatem na relacji filmy
öğrenmeye başla
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
öğrenmeye başla
Prawda, dla pozostałych null
Jak się nazywa zmienna która przechowuje nazwę operacji uruchamiającej wyzwalacz
öğrenmeye başla
TG_OP
Co przechowuje zmienna NEW w wyzwalaczach?
öğrenmeye başla
Krotkę wynikową dla poleceń INSERT/UPDATE dla FOR EACH ROW. W pozostałych NULL
Co przechowuje zmienna OLD w wyzwalaczach?
öğrenmeye başla
krotkę źródłową dla poleceń UPDATE/DELETE dla FOR EACH ROW. W pozostałych NULL
Jak usunąć trigger wyzw na relacji filmy?
öğrenmeye başla
DROP TRIGGER wyzw ON filmy;
Które rekordy (NEW czy OLD) są dostępne w triggerze FOR EACH ROW dla operacji INSERT?
öğrenmeye başla
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
öğrenmeye başla
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
öğrenmeye başla
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?
öğrenmeye başla
RETURN NEW;
Co musisz zwrócić (RETURN), aby trigger BEFORE dla DELETE pozwolił na usunięcie wiersza?
öğrenmeye başla
RETURN OLD;
Co zwraca się na końcu funkcji wyzwalacza typu AFTER i jaki to ma wpływ na dane?
öğrenmeye başla
Zwraca się zazwyczaj NULL (lub NEW/OLD). Nie ma to żadnego wpływu na dane, ponieważ operacja zapisu już się zakończyła.
jak dodać unikalność kolumny email w tabeli users?
öğrenmeye başla
ALTER TABLE users ADD CONSTRAINT uk_users_email UNIQUE (email);
create domain działa jak _ i nie _ _ _. Alter table _ _ _
öğrenmeye başla
typ, nie widzi innych kolumn. widzi inne kolumny
Jeśli serwer bazodanowy ma 16GB RAM to ile powinien mieć Shared Buffer?
öğrenmeye başla
1/4, czyli 4GB
W postgres separatorem dziesiętnym jest
öğrenmeye başla
.
PgBouncer to _ które zarządza _. Ma dwa tryby _ i _, które ustawiane są _
öğrenmeye başla
proxy, połączeniami do bazy, session, transaction, globalnie
Selectivity określa _ _ _ _ _. Wysokie to bliskie _
öğrenmeye başla
jak dużo wierszy pasuje do WHERE, bliskie 0.
SARGability to
öğrenmeye başla
query które wykorzystuje indeks
Wymień rodzaje indeksów - te 4 najczęściej wykorzystywane
öğrenmeye başla
B-tree, GiST, GIN, functional
Index pokrywający to indeks który wykonuje _ _ _, zawiera klauzulę _
öğrenmeye başla
Index only scan, INCLUDE
Index GiST to _ i są przydatne dla _
öğrenmeye başla
Generalized Search Tree, zakresów
Który JOIN nie zwróci nulli gdy nie znajdzie dopasowania?
öğrenmeye başla
INNER JOIN
Co to jest CTE w postgres?
öğrenmeye başla
Common Table Expression, czyli tymczasowa tabela na jedno zapytanie
GIN to index _ _ _. Nadaje się do _ oraz _. Wspiera operatory (wymień 5)
öğrenmeye başla
Generalized Inverted Index. search-text, jsonb. @>, @@,?,?&,?|
P/F Jako reguła kciuka jak widzisz Seq Scan to powinno to zapalić żółtą lampkę
öğrenmeye başla
Prawda

Yorum yapmak için giriş yapmalısınız.