Bazy danych

 0    67 Datenblatt    pablojakub
mp3 downloaden Drucken spielen überprüfen
 
Frage Antworten
Jaki operator służy do przepisywania zmiennej w PLPG SQL?
Lernen beginnen
:=
Jaką klauzulą kończy się tworzenie funkcji w PLPG SQL?
Lernen beginnen
$$ LANGUAGE PLPGSQL;
Jak wywołać zadeklarowaną funkcję "dodaj" z parametrem cena z tabeli filmu?
Lernen beginnen
SELECT DODAJ(CENA, 10) FROM FILMY;
Jak usunąć perspektywę?
Lernen beginnen
DROP VIEW nazwa_perspektywy
Jak dobrać kolejność kolumn w indeksie?
Lernen beginnen
Najpierw kolumny z WHERE, potem z ORDER BY
Co daje dodanie DESC w indeksie
Lernen beginnen
Pozwala uniknąć sortowania przy ORDER BY ... DESC.
Czym jest partial index?
Lernen beginnen
Indeks z warunkiem WHERE, obejmuje tylko część danych.
Kiedy używać partial index?
Lernen beginnen
Gdy filtr w zapytaniu jest stały (np. status = 'active').
Kiedy używać expression index?
Lernen beginnen
Gdy w WHERE lub ORDER BY używasz funkcji (np. lower(email)).
Czym jest indeks haszowany?
Lernen beginnen
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?
Lernen beginnen
now()
Jak pobrać aktualną datę bez czasu w PostgresQL?
Lernen beginnen
current_date
Jak wyciągnąć konkretną część daty w postgrę SQL?
Lernen beginnen
EXTRACT(YEAR from now());
Kiedy indeks ma sens?
Lernen beginnen
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?
Lernen beginnen
DROP INDEX nazwa_indeksu
Jak stworzyć perspektywę?
Lernen beginnen
CREATE VIEW nazwa_perspektywy AS SELECT...
Czy zmiana danych w tabeli będzie odwzorowana w perspektywie niezmaterializowanej?
Lernen beginnen
Так
Jaką komendę trzeba wywołać, żeby uwzględnić zmiany z tabeli w zmaterializowanej perspektywie.
Lernen beginnen
REFRESH MATERIALIZED VIEW
Jaka jest reguła przy GROUP BY?
Lernen beginnen
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?
Lernen beginnen
where created_at > now() - interval '30 days'
Jak zablokować możliwość insert lub update w perspektywie?
Lernen beginnen
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.
Lernen beginnen
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?
Lernen beginnen
nazwa zmiennej TYP
Co daje polecenie SavePoint?
Pótaí syntáx
Lernen beginnen
It gives you point in time to which you can roll back transaction.
SAVEPOINT nazwa
Jakie mamy dwa rodzaje rollbacków?
Lernen beginnen
ROLLBACK; ROLLBACK TO;
Jakie są dwa rodzaje poziomów izolacji w postgreSQL?
Lernen beginnen
READ COMMITED, SERIALIZABLE
Jak ustawić poziom izolacji w postgreSQL?
Lernen beginnen
SET TRANSACTION ISOLATION LEVEL
Z jakim problemem wiąże się read committed?
Lernen beginnen
Non-repeatable read
Kiedy dobrym rozwiązaniem jest zastosowanie poziomu izolacji serializable?
Lernen beginnen
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?
Lernen beginnen
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ę?
Lernen beginnen
Przerywa również transakcje
Jaka jest najważniejsza zasada współbieżności?
Lernen beginnen
nie polegaj na SELECT do walidacji warunków współbieżnych
Jak w PLPG SQL określić zmienną rekordową?
Lernen beginnen
pracownik_wiersz pracownicy%ROWTYPE
Wstaw tytuł do zmiennej T z relacji filmy, gdzie ID filmu równa się ID.
Zapytanie jednokrotkowe
Lernen beginnen
SELECT tytul INTO t FROM filmy WHERE id_filmu=id
Jak przypisać do zmiennej instrukcji Insert, Update lub Delete?
Lernen beginnen
returning kolumna into zmienna;
Jak rzucić wyjątkiem w PLPG SQL?
Lernen beginnen
raise exception 'bla bla'
Jaka jest składnia pętli w PLPG SQL?
Lernen beginnen
FOR i IN 1... ilosc_iteracji LOOP ... END LOOP;
Jaka jest składnia iteracji po kursorze?
Dla cursora implicit
Lernen beginnen
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
Lernen beginnen
OPEN c; LOOP FETCH c INTO rec; END LOOP; CLOSE c;
Jak się nazywa wyjątek naruszenia ograniczenia unikalności
Lernen beginnen
UNIQUE_VIOLATION
Jak się nazywa wyjątek naruszenia ograniczenia Check.
Lernen beginnen
CHECK_VIOLATION
Wymień cztery rodzaje integralności w bazach danych.
Lernen beginnen
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?
Lernen beginnen
c CURSOR FOR SELECT * FROM pracownicy;
Jak wygląda konkatenacja w postgreSQL?
Podaj przykład z błędem
Lernen beginnen
Operator ||
Na przykład: 'Blad: ' || SQLERRM;
Jak wygląda update w postgres
Lernen beginnen
update tabela set kolumna = nowa_wartość where...
Co zastosować, aby przerwać pętlę po przetworzeniu wszystkich wierszy kursora?
Lernen beginnen
EXIT WHEN NOT FOUND;
Jak pobrać dane z kursora c do rekordu p_record
Lernen beginnen
FETCH c INTO p_record;
Dane znormalizowane to takie które zostały _ na _ i są ___
Lernen beginnen
podzielone na tabele i połączone przez klucze
Co dodać w insert jeśli kolumna ma typ SERIAL?
Lernen beginnen
DEFAULT lub jawnie pominąć kolumnę
jaka jest składnia dla substring?
Lernen beginnen
substring(string FROM start FOR count);
Jaka jest składnia id jako primary key?
Lernen beginnen
id SERIAL PRIMARY KEY
Na czym polega komenda OUTER w kwerendzie JOINów?
Lernen beginnen
OUTER zwraca również wartości, gdy nie ma dopasowania w drugiej tabeli
Co robi CROSS JOIN?
Lernen beginnen
Zwraca iloczyn kartezjański
T/F: Procedura wyzwalacza (funkcja) może mieć argumenty
Lernen beginnen
False, it cannot have arguments
Co musi zwracać procedura wyzwalacza?
Lernen beginnen
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
Lernen beginnen
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
Lernen beginnen
Prawda, dla pozostałych null
Jak się nazywa zmienna która przechowuje nazwę operacji uruchamiającej wyzwalacz
Lernen beginnen
TG_OP
Co przechowuje zmienna NEW w wyzwalaczach?
Lernen beginnen
Krotkę wynikową dla poleceń INSERT/UPDATE dla FOR EACH ROW. W pozostałych NULL
Co przechowuje zmienna OLD w wyzwalaczach?
Lernen beginnen
krotkę źródłową dla poleceń UPDATE/DELETE dla FOR EACH ROW. W pozostałych NULL
Jak usunąć trigger wyzw na relacji filmy?
Lernen beginnen
DROP TRIGGER wyzw ON filmy;
Które rekordy (NEW czy OLD) są dostępne w triggerze FOR EACH ROW dla operacji INSERT?
Lernen beginnen
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
Lernen beginnen
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
Lernen beginnen
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?
Lernen beginnen
RETURN NEW;
Co musisz zwrócić (RETURN), aby trigger BEFORE dla DELETE pozwolił na usunięcie wiersza?
Lernen beginnen
RETURN OLD;
Co zwraca się na końcu funkcji wyzwalacza typu AFTER i jaki to ma wpływ na dane?
Lernen beginnen
Zwraca się zazwyczaj NULL (lub NEW/OLD). Nie ma to żadnego wpływu na dane, ponieważ operacja zapisu już się zakończyła.

Sie müssen eingeloggt sein, um einen Kommentar zu schreiben.