Laboratorium poświęcone jest instalacji własnej instacji postgresa, zrozumieniu benchmarku, dziennika, itd. Pytania są w moodle, instrukcja jest na wykładzie.
Chętnie zobaczę jak zrobić FizzBizz w postgresie.
Jeśli mamy tabelę z kolumną varchar, a następnie widok z SIMILAR TO na tej kolumnie, to co jest w kodzie źródłowym tego widoku?
Zadania domowe na laboratorium 2 (dwie osoby zostaną wybrane):
Przygotuj krótkie (jedna strona A4 to aż za dużo) streszczenie mówiące o wykorzystaniu funkcji związanych z napisami. Mówimy o rozdziałach 9.4-9.7 z dokumentacji postgresa.
Przygotuj krótkie (jedna strona A4 to aż za dużo) streszczenie mówiące o wykorzystaniu funkcji związanych z datami. Mówimy o rozdziałach 9.8-9.9 z dokumentacji postgresa.
Zadania na laboratorium 3
Przygotuj krótkie streszczenie mówiące o wykorzystaniu funkcji związanych z tablicami (rozdział 9.18 z postgresql 12 )
Przygotuj krótkie streszczenie mówiące o wykorzystaniu funkcji związanych z przedziałami (rozdział 9.19 z postgresql 12 i 8.17)
Przygotuj przykłady wykorzystania EXPLAIN
Zadania na laboratorium 4
Przygotuj przykłady wykorzystania funkcji ROLLUP, CUBE, GROUPING SETS i podobnych
Przygotuj przykłady wykorzystania funkcji LATERAL w zapytaniu
Przygotuj przykłady wykorzystania typów geometrycznych (8.8)
Zadania na laboratorium 5
Pokaż trzy przykłady FILTER w agragacie
Pokaż trzy przykłady sortowania WITHIN GROUP
Pokaż przykład użycia FINALFUNC_EXTRA w CREATE AGGREGATE (dwie osoby, miejmy nadzieję że wymyślą dwa różne przykłady)
Pokaż przykład uzycia PARALLEL w CREATE AGGREGATE (dwie osoby, miejmy nadzieję że wymyślą dwa różne przykłady)
Zadania z serii 6
Pokaż Foreign Data Wrapper do postgresa
Pokaż Foreign Data Wrapper do SQLite
Pokaż Foreign Data Wrapper do MySQL
Pokaż Foreign Data Wrapper do CSV
Pokaż Foreign Data Wrapper do Redisa (za dwa)
Zadania z serii 7, każde z nich na 20 minut za dwa punkty
Obsługa postgresa w C (przykład PQexec) czyli jak synchronicznie wykonać zapytanie
Jak w C wykonać zapytanie asynchronicznie, w tym Cancel
Jak działa COPY, w tym jakiś mały benchmark, implementacja w C
Jak działa NOTIFY i LISTEN w C, wprowadzenie i pokazanie
Zadania z serii 8
Przykłady transakcji w redis
SAVE i BGSAVE w redis
AOF w redis
ACLe w redis
Zadania z serii 9 SQLAlchemy (21 i 22 stycznia)
connect stringi
klasa jako tabela
selecty z jednej tabeli
agregacje
selecty z połączonych tabel
Zadania z serii 10 SQLAlchemy (28 i 29 stycznia)
transakcje
inserty i update
bulk insert
Seria dodatkowa
W każdym zadaniu należy napisać jak uzyskać oczekiwany efekt za pomocą SQLAlchemy (kod w SQLAlchemy i kod w SQL):
Jedna tabela A wybrać wiersze w których X = v1 or Y = v2
Jedna tabela A wybrać wiersze w których X = v1 and Y != v2
Jedna tabela A wybrać wiersze w których X IN (SELECT Y FROM B)
Trzy tabele (A,B,C) join A.X = B.Y and B.Z = C.V.
Trzy tabele (A,B,C) join A.X = B.Y and A.Z = C.V.
Dwie tabele A, B join A.X <= B.Y
Dwie tabele połączone po kluczu zewnętrznym (A.ID = B.A_ID) wybrać A.*, SUM(B.X) - agregacja
Dwie tabele połączone po kluczu zewnętrznym (A.ID = B.A_ID) wybrać A.*, COUNT(DISTINCT B.X) - agregacja
Dwie tabele połączone po kluczu zewnętrznym (A.ID = B.A_ID) wybrać A.*, COUNT(B.X IS NULL) - agregacja