Podstawy
4 godz. 8 min · Bazy Danych · Full-stack i Programowanie
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.
Witaj jeżeli kiedykolwiek chciałeś się
dowiedzieć jaką masz średnią z ocen na koniec semestru albo
czy suma punktów z rozgrywek twojej ulubionej drużyny pozwala jej przejść
do półfinału to odpowiedzią na te pytania była właśnie agregacja
danych w tym rozdziale zobaczysz w jaki sposób używając
sql można prosto i szybko grupować dane i używać
funkcji je agregujących policzenie
średniej dla jednego studenta to nie jest wielka sztuka dodajemy
oceny dzielimy przez ich ilość i mamy średnią ale
jeśli mamy kilkuset takich gagatków albo kilka tysięcy to
już nie jest takie trywialne tutaj bazy danych ratują nas z opresji wprowadzając
mechanizmy pozwalające na szybkie i sprawne grupowanie danych
a sql pozwala to wykorzystać w
jaki sposób działa grupowanie i liczenie funkcji agregujących pokażę
najpierw na prostym przykładzie weźmy wspomnianych wcześniej studentów
którzy z kilku przedmiotów otrzymali ocenę do
grupowania wyznaczamy jedną lub więcej kolumn w tym przypadku chcemy
pogrupować nasze wiersze po studentach czyli po ich
imionach w wyniku grupowania baza łączy wszystkie
rekordy które w kolumnie grupowej mają identyczne wartości jeśli
chcesz wybrać także inne kolumny to musisz pamiętać że
dane w nich też dostaną pogrupowane czyli połączone dlatego należy
je albo dodać do grupowania o tym przypadku już za chwilę w naszej
bazie bohaterów albo użyć funkcji agregującej tutaj będziemy agregowali
do średniej o funkcjach agregujących będę mówił więcej na następnej
lekcji na razie ważne warto wiedzieć że funkcja taka przyjmuje
zestaw wartości i zwraca pojedynczą wartość wybieramy więc kolumnę
student po której grupujemy i ocena którą będziemy agregowali
kolumna przedmiot nie miałaby tu sensu ani po
niej nie grupujemy ani nie ma jak przedstawić wszystkich przedmiotów studenta
w jednej komórce chociaż czy naprawdę nie ma
jak przedstawić no nic tym może się
zajmiemy później do grupowania służy klauzula group by
po niej podajemy nazwę kolumny po której chcemy grupować dane
w klauzuli select umieszczamy to co chcemy zobaczyć
wyciągnąć z bazy czyli imię studenta i średnią
z jego ocen i jak myślisz ile będzie wynikowych wierszy tego
zapytania pomyśl jeśli potrzebujesz zapauzuj jeśli
masz przeczucie że 3 to przeczucie cię nie myli zobaczmy
co się stanie jola która ma trzy
oceny z baz danych 4 z sql 5 o widać że jola
skorzystała z kursu sql w eduweb i z pl sql
3 no tutaj musi jeszcze zaawansowany kurs wziąć w
każdym razie trzy wiersze joli zostaną zgrupowane do
jednego w kolumnie student będzie jola w kolumnie ocena
będzie średnia z trzech ocen ten sam los czeka
jej kolegów i tak wygląda wynik zanim przejdziemy do
wykorzystania nowej mocy grupowania na naszej bazie bohaterów chcę ci
jeszcze powiedzieć nieco więcej o funkcjach agregujących to już
w następnej lekcji a teraz małe ćwiczeniu pamiętaj ćwiczenie
czyni mistrza do przećwiczenia tej lekcji spróbuj
samodzielnie stworzyć sobie taką małą tabelkę jak przykładowa którą
przedstawiałem wcześniej jeśli będziesz miał wątpliwości to w materiałach
do tej lekcji znajdziesz skrypt który utworzy ci taką tabelę więc
jakie jest zadanie bazując na tabeli ocen z przedmiotów takich jak przedstawionej
na lekcji stwórz zapytanie które zwróci dwie kolumny w
jednej będą przedmioty a w drugiej średnia ocen dla każdego z
nich będzie to takie samo grupowanie jak poprzednio pokazywałem na kolumnie student
z tym że teraz na przedmiotach jak już będziesz miał gotowe to
rozwiązanie porównaj je z rozwiązaniem które przedstawię
na początku następnej lekcji powodzenia