Ta lekcja jest w bazie eduweb
Zaloguj się kontem z dostępem albo wykup dostęp do bazy, żeby obejrzeć wideo.
Lekcja 22/ 33Generowanie danych
Nowe odkrycia nie muszą być koniecznie domeną... geografów. Obecnie można odkrywać również nowe, niesamowite zależności i prawdy, badając i analizując informacje zgromadzone w bazach danych. To właśnie język SQL służy do operowania danymi. Dzięki temu Kursowi dowiesz się jakie możliwości są w Twoich rękach - od tworzenia struktur baz danych, przez zapisywanie w nich informacji, wreszcie po sposoby pobierania i przetwarzania danych. Przekonaj się, jak użycie języka SQL może wspomóc działanie aplikacji, zasilić systemy analizy danych, czy umożliwić badania naukowe - na przykład... wpływu kursów internetowych na poprawę atrakcyjności rynkowej pracowników.
Pierwszy rozdział wprowadza w historię powstania języka. Wspomnimy o standardach, wykorzystywanych wersjach i podzbiorach SQL’a. Zaraz potem wskoczymy w pierwsze poważne operacje, które pozwolą na pełny cykl tworzenia, zasilania bazy danych i wyciągnięcia z niej wybranych informacji. Rozwikłamy też tajemniczy akronim - CRUD.
Skoro potrafimy już tworzyć bazę i tabele, w które możemy wstawić nowe wiersze, dowiemy się więcej o bardzo ważnej funkcji bazy danych: weryfikacji danych. Zostaną zaprezentowane mechanizmy i techniki, które pomogą utrzymać spójność danych.
W kolejnych lekcjach znajduje się opis serca SQL’a, czyli polecenia wybierającego dane i możliwości i opcji z nim związanych. Od przekształcenia bazy danych w prosty kalkulator, aż do warunków filtrowania wybieranych danych (klauzulą WHERE), sortowania ich (klauzulą ORDER BY), czy ograniczania dużych zestawów wynikowych - w tym wsparcia do paginacji.
SQL jest językiem obsługi relacyjnych baz danych. Dlatego najwyższy czas, aby wspomnieć o relacjach i tym w jaki sposób rozszerzają one możliwości wyszukiwania danych oraz pozwalają zobrazować powiązania między danymi w bazie. Dowiesz się o różnych rodzajach połączeń między tabelami i jak te połączenia (zwane JOIN’ami) pozwalają wybrać to, czego potrzebujesz.
Kolejny rozdział dotyczy grupowania danych (wykorzystując klauzulę GROUP BY) i związanych z tym nowymi możliwościami. Dowiesz się tutaj też w jaki sposób agregować pogrupowane dane i jak takie zagregowane dane filtrować.
Przekonasz się, w jaki sposób można zapamiętywać trudne lub często wykonywane zapytania, wykorzystując do tego widoki (VIEWS) i jak można poprawić wydajność pobierania z nich danych. Przykładowo zastosujemy widoki zmaterializowane (MATERIALISED VIEWS). W tym rozdziale przećwiczysz też możliwość zapisywania danych przez widoki.
Z baz danych korzysta zwykle wielu użytkowników. Aby operacje, które wykonują na wspólnej bazie nie spowodowały nieoczekiwanych konsekwencji, wykorzystuje się mechanizm transakcji. W tym rozdziale wytłumaczymy Ci w jaki sposób użytkownicy mogą modyfikować równolegle te same dane. Tutaj też dowiesz się o poziomach izolacji transakcji i jak używać ich w różnych sytuacjach bazodanowych.
Przy pracy z większą ilością danych, bardzo szybko doświadczysz spowolnienia wykonywania zapytań. O tym jak je przyspieszyć dowiesz się właśnie w tym rozdziale. Zwiększanie wydajności zapytań jest tematem rozległym i zaawansowanym. Tutaj będziesz miał szansę poznać podstawy, w tym - po co są i jak używać indeksów, w jaki sposób analizować jak zapytania są wykonywane i jakie jeszcze są metody wydajniejszego odczytywania danych.
Kurs jest dla osób początkujących, rozpoczynających przygodę z bazami danych. Nie wymaga się znajomości SQL'a ani zaawansowanej wiedzy dotyczącej baz danych. Warto wiedzieć co to są relacyjne bazy danych. Dobrze mieć dostęp do ulubionego silnika bazy danych, ale nie jest to wymagane.
Generowanie dużej ilości danych · 2 min
-- Stworzenie tabeli którą chcemy zapełnić dużą ilością danych
CREATE TABLE big_data (
id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
big_number int,
some_text varchar(100),
random_price numeric(10,2)
);
-- Wyświetlenie tablicy 5-cio elementowej (jedno-wymiarowej)
SELECT ARRAY[0,1,2,4,5];
-- Wykorzystanie funkcji unnest do przekształcenia tablicy w zestaw rekordów
SELECT UNNEST(ARRAY[0,1,2,4,5]);
-- Zapytanie zwracające 10 cyfr w zakresie 0-9
SELECT * FROM (SELECT UNNEST(ARRAY[0,1,2,3,4,5,6,7,8,9])) AS single_values;
-- Uzyskanie dwóch unikalnych kolumn, pierwsza daje nam dziesiątki, druga jedności
SELECT * FROM (SELECT UNNEST(ARRAY[0,1,2,3,4,5,6,7,8,9])) AS single_values
CROSS JOIN (SELECT UNNEST(ARRAY[0,1,2,3,4,5,6,7,8,9])) AS extended_values;
-- Stworzenie widoku z pełnym zapytaniem generującym liczby aż do 1000
CREATE VIEW generate_data AS
SELECT hundreds*100 + tens*10 + ones AS numbers
FROM (SELECT UNNEST(ARRAY[0,1,2,3,4,5,6,7,8,9]) AS tens) AS ten
CROSS JOIN (SELECT UNNEST(ARRAY[0,1,2,3,4,5,6,7,8,9]) AS ones) AS one
CROSS JOIN (SELECT UNNEST(ARRAY[0,1,2,3,4,5,6,7,8,9]) AS hundreds) AS hundred
ORDER BY numbers;
-- Stworzenie widoku generującego zestaw liter (jak słowow) ak wyżej
CREATE VIEW generate_chars AS
SELECT CHR(gd1.numbers)
FROM generate_data gd1
CROSS JOIN generate_data gd2
WHERE gd1.numbers BETWEEN 33 AND 126;
-- Stworzenie widoku generującego losowe ciągi znaków (dzięki grupowaniu po losowej wartości)
CREATE VIEW random_strings AS
SELECT string_agg(chr, '') AS random_string
FROM generate_chars
GROUP BY ROUND(RANDOM()*10000);
-- Zapytanie wypełniające tablicę 'big_data' ok. 10000 rekordów
INSERT INTO big_data (big_number, some_text, random_price)
SELECT ROUND(RANDOM()*10^7),
random_string,
CAST(RANDOM()*1000 AS DECIMAL(10,2))
FROM random_strings;9 rozdziałów33 lekcje4h 8min
Dostęp do wszystkich kursów z bazy eduweb za 199 zł/mies.
Web Application Developer, Administrator baz danych, Administrator, oraz Project Manager w rozmaitych projektów IT o platform HR aż po systemy telematic.
Szczególnie interesują go relacyjne bazy danych i zagadnienia związane z ich projektowaniem i programowaniem, a także administracją usług z wykorzystaniem PostgreSQL.
Specjalizacje: Web application development, Database application development, database administration, Python, JavaScript, C++, Linux system administration.