Wstęp
W tej lekcji dowiesz się jak napisać pierwszy, zwracający dane z bazy danych, SELECT. Następnie poznasz kilka najważniejszej terminów bazodanowych. Motor bazy danych jest bardziej użyteczny jako narzędzie obsługujące bazę danych niż wyliczające zadane wyrażenia. Pokażę Ci jak używać go efektywnie.
SELECT wszystkich kolumn z tabeli
Z poprzedniej lekcji znasz już jedną tabelę każdej bazy danych Oracle. Jest to tabela dual. Aby wybrać dane z jakiejkolwiek tabeli relacyjnej bazy danych trzeba w klauzuli SELECT wskazać nazwy kolumn, których dane Cię interesują.
Jak nazywają się kolumny tabeli dual? Nie wiesz. I nie wiesz jak się dowiedzieć. Pokażę Ci to już niedługo. Póki co możesz użyć gwiazdki '*’, która zastąpi wszystkie kolumny. W taki sposób:
SELECT * FROM dual;
Jeśli używasz SQL*Plus to w efekcie dostaniesz:
D - X
Wynik oglądany w SQL Developer jest bardziej czytelny:

Oznacza to, że tabela dual składa się z jednej kolumny o nazwie DUMMY i zawiera jeden rekord (wiersz) z wartością 'X’. Obrazek unaocznia dlaczego, w przypadku relacyjnych baz danych, mówi się o danych w tabelach.
SQL*Plus skraca nazwy kolumn gdy wyświetlane wartości są krótsze.
Brawo! To Twoje pierwsze zapytanie zwracające dane z tabeli relacyjnej bazy danych.
Dla Oracle, podobnie jak dla PostgreSQL czy SQL Server, wielkość liter komendy SQL: nie ma znaczenia. Nazwę tabeli dual możesz, równie dobrze, zapisać wielkimi literami: DUAL.
Teraz trochę teorii pozwalającej zrozumieć mechanikę świata relacyjnych baz danych.
Co to jest tabela?
W relacyjnej bazie danych – na takim modelu skupię się w tym kursie – dane pogrupowane są w tabele. W PostgreSQL tabela nazywana jest relacją. Tabela pełni 2 funkcje:
- określa jakimi cechami mają charakteryzować się dane aby znaleźć się w bazie danych
- logicznie grupuje dane w zbiory
Cecha charakteryzująca dane składa się z dwóch elementów:
- nazwy cechy
- zakresu wartości
Nazwa cechy, w bazie danych, przekłada się na nazwę kolumny w tabeli, a zakres wartości na typ danych. W modelu relacyjnym i związków encji nazywają się odpowiednio: nazwą atrybutu i dziedziną.
Nazwa atrybutu/kolumny określa kontekst znajdujących się w niej danych. Np. kolumna przechowuje łańcuchy znaków: 'Ala’, Beata’, 'Cypis’. Nadając kolumnie nazwę 'Imię’ informujesz użytkownika, że przechowywane łańcuchy znaków to napisy oznaczające imiona.

Tabela dual zawiera jedną kolumnę o nazwie DUMMY. DUMMY znaczy po angielsku atrapa. Stąd dane w postaci pojedynczego znaku 'X’ nie dziwią.
Dziedzina/zakres wartości/typ danych określa ile znaków/bajtów dopuszczasz do przechowywania w tej kolumnie oraz jak motor bazy danych ma je interpretować. Czy to ma być napis, liczba czy czas. Zdefiniowanie typu określa jakie operacje będzie można wykonywać na zgromadzonych danych. Np. nie wykonasz mnożenia na napisach. Ani nie wytniesz środkowych 2 cyfr z liczby.
O tym jak odkryć typ danych kolumny DUMMY powiem w następnej lekcji.
Więcej na temat tabeli w relacyjnej bazie danych przeczytasz tutaj: Czym jest tabela w relacyjnej bazie danych?
Aplikacje klienckie typu SQL*Plus czy SQL Developer prezentują dane z bazy danych w postaci tabel przypominających te z arkusza kalkulacyjnego.
W pierwszym wierszu umieszczają nazwy kolumn. W kolejnych dane.
Ważna różnica: tabela w relacyjnej bazie danych nie ma skrajnej prawej kolumny. Tej zaznaczonej na żółto numerami wierszy.

Jeśli widzisz kolumnę z numerami wierszy w SQL Developer to pamiętaj, że dodaje ją klient.
Nazewnictwo: tabela, kolumna, typ pochodzi z języka SQL. Z uwagi na to, że jest to kurs właśnie tego języka w kolejnych lekcjach szkolenia takim nazewnictwem będę się posługiwał.
Co to jest baza danych?
Baza danych jest zbiorem danych zapisanym na nośniku. Może to być skoroszyt pełen formularzy. Spis Twoich kontaktów w telefonie. Czy lista zakupów w Twojej pamięci.
W kontekście komputerowej relacyjnej bazy danych Oracle jest to zbiór ustrukturyzowanych danych zapisany w plikach na dysku komputera.
Dlaczego baza danych nazywana jest relacyjną?
O relacyjności bazy danych świadczy logiczne uporządkowanie danych.
Jeśli dane w bazie danych pogrupowane są w tabele to masz do czynienia z relacyjną bazą danych. Każda tabela grupuje dane o identycznych cechach. Czyli są to dane pokrewne. Np. tabela o nazwie 'Użytkownik’ może składać się z kolumn: 'Imię’ o typie znakowym, 'Wiek’ – typ numeryczny oraz 'Data urodzenia’ – typ datoczasowy.
Oprócz grupowania danych w tabele inną charakterystyczną cechą relacyjnych baz danych jest ścisłe przestrzeganie typów. Motor bazy danych nie pozwoli na wstawienie napisu w kolumnę typu numerycznego. Np. nie pozwoli na wstawienie napisu 'Danka’ w kolumnę 'Wiek’.
Część danych dotyczących jednego bytu – na przykład użytkownika – może występować w 2 tabelach. Np. informacje o adresie użytkowników przechowujesz w tabeli 'Adres’. Dla każdego chcesz przechowywać adres zameldowania i korespondencyjny. Aby wiedzieć, które adresy należą do którego użytkownika powielasz dane z kolumny 'Imię’ tabeli 'Użytkownik’ w kolumnie 'Imię’ tabeli 'Adres’. W ten sposób tworzysz powiązanie. Wtedy możesz powiedzieć, że tabele 'Użytkownik’ i 'Adres’ są ze sobą w relacji/związku.

Więcej na ten temat przeczytasz w moim artykule Czym różni się 'relation’ od 'relationship’ w SQL.
Trzeba pamiętać, że jest to jedynie logiczne uporządkowanie. Fizycznie dane w plikach bazy danych zapisywane są tam gdzie jest wolne miejsce.
Co to jest motor bazy danych?
Możesz się także spotkać z określeniami: instancja bazy danych. Czy po prostu instancja. Lub silnik bazy danych.
Wszystkie te określenie oznaczają jedno: zestaw procesów i obszarów pamięci obsługujących bazę danych. Prostymi słowy jest to apka pozwalająca Ci modyfikować i czytać dane z bazy danych.
Zilustrowałem to w tym wideo:
Instancja bazy danych z angielskiego nazywana jest DBMS – DataBase Management System. Czyli System Zarządzania Bazą Danych.
Stąd System Zarządzania Relacyjną Bazą Danych nazywany jest, po angielsku, RDBMS. Czyli Relational DataBase Management System.
Podsumowanie
Z tej lekcji wiesz jak odczytać wszystkie dane ze wskazanej tabeli. Użyj tej wiedzy i napisz zapytanie odczytujące jedynie kolumnę DUMMY tabeli dual.
Zrób zrzut ekranu i pochwal się swoim osiągnięciem na discordzie. Dedykowany serwer: Marcin Badtke – bazy danych i SQL.
Gratuluję Ci! Właśnie ukończyłaś/eś drugą lekcję darmowej edycji mojego kursu 'Podstawy SQL dla użytkowników Oracle’. Skomentuj poniżej jak Ci się podobała.
Skąd dowiedzieć się jakie są tabele w bazie danych? Pokażę Ci w następnej lekcji. Chodź.