Wstęp
W tej lekcji dowiesz się jak napisać 'Hello World’ w SQL. Na podstawie tego pierwszego zapytania omówię rolę klauzuli FROM oraz unikalną dla Oracle tabelę dual.
Przywitaj się ze światem korzystając z dual
Najprostszy program, od którego zaczynasz naukę dowolnego języka programowania, zwraca napis ’Hello World!’.
Aby motor bazy danych zwrócił Ci napis użyj komendy SELECT. Na przykład w taki sposób:
SELECT 'Hello World!' FROM dual;
Po wydaniu tej komendy w SQL Developer zobaczysz coś takiego:
’Hello World!’ jest wyrażeniem stałym. Komendą SELECT instruujesz, motor bazy danych, aby to wyrażenie zwrócił do Twojego klienta.
Do tego służy komenda SELECT – mówi motorowi bazy danych jakie dane ma zwrócić do klienta. Zazwyczaj wybiera je z bazy danych. Ale tak jak w powyższym przykładzie można użyć SELECT do zwrócenia zadanego wyrażenia.
Domyślnie zwróci je do klienta, którym łączysz się do instancji.
Klauzula FROM – obowiązkowa w Oracle do wersji 23ai – informuje motor bazy danych skąd dane ma wybrać.
dual jest automatycznie tworzoną przez Oracle tabelą, dostępną dla każdego użytkownika bazy danych. Służy właśnie do takich zastosowań – chcesz aby motor bazy danych zwrócił wyrażenie do klienta. Ale wyrażenie nie pochodzi z bazy danych. Dual traci swoje znaczenie od wersji Oracle 23ai.
Co to jest tabela w bazie danych Oracle?
Więcej na temat co to jest tabela w bazie danych Oracle będzie w następnej lekcji.
Na potrzeby tej lekcji wystarczy, że zapamiętasz, że dane w relacyjnych bazach danych jak Oracle przechowywane są w tabelach.
Jak zakończyć komendę SQL?
Średnik ’;’ informuje klienta – na przykład SQL*Plus – że komenda SQL jest ukończona i może ją wysłać do instancji. Tę samą funkcję pełni ukośnik '/’. Średnik może znaleźć się na końcu tej samej linii co komenda. Ukośnik musi być na początku nowej linii.
W kliencie okienkowym – na przykład SQL Developer – kończenie komend średnikiem czy ukośnikiem nie jest obowiązkowe. Ma znaczenie jedynie wtedy gdy chcesz aby klient wysłał do instancji wiele komend na raz.
W motorach jak PostgreSQL, MySQL, SQL Server czy Oracle od wersji 23ai wystarczy:
SELECT 'Hello World!';
Skopiuj powyższe komendy i uruchom w swoim kliencie. W SQL Server średnik zastąp komendą 'go’.
W kliencie psql PostgreSQL zobaczysz coś takiego:
Brawo! Właśnie napisałaś/eś swoją pierwszą komendę SQL 🙂
Jak formatować komendy SQL?
Zwróć uwagę, że napis musi być otoczony apostrofami. Gdy użyjesz cudzysłowu otrzymasz błąd zamiast napisu.
Przyjęło się – i ja tak będę stosował – że słowa kluczowe języka SQL pisane są wielkimi literami. Niemniej nie jest to obowiązkowe. Dla Oracle, podobnie jak dla PostgreSQL czy SQL Server, wielkość liter nie ma znaczenia.
Białych znaków, pomiędzy słowami kluczowymi, może być dowolna ilość. Zachęcam do takiego formatowania komend SQL:
SELECT 'Hello World!' FROM dual;
W tak prostych zapytaniach jak powyższe formatowanie nie ma dużego znaczenia. Ale gdy zaczniesz pisać znacznie bardziej skomplikowane komendy docenisz przejrzystość i łatwość edycji. Szczególnie gdy po jakimś czasie trzeba będzie do nich wrócić i je modyfikować.
Wyrażeń w SELECT możesz zamieścić więcej. Motor usłużnie zwróci Ci także liczbowe. Pamiętaj jedynie aby wszystkie wyrażenia oddzielać przecinkiem. Na przykład tak:
SELECT 'Życzę Ci' ,100 ,'procent podwyżki po ukończeniu tego kursu :-)' FROM dual;
Jak używać komentarzy w SQL?
Teraz zobacz dlaczego taki zapis jest wygodny. Przy okazji pokażę Ci jak komentować. Wszystko co znajdzie się pomiędzy znakami '/*’ i '*/’ jest komentarzem i zostanie zignorowane przez motor. Przy pomocy dwóch myślników ’-’ komentujesz jedną linię. Patrz:
/* Życzenia od Marcina */ SELECT 'Życzę Ci' --,100 ,2*100 ,'procent podwyżki po ukończeniu tego kursu :-)' FROM dual;
Dzięki temu, że kolejne wyrażenia w klauzuli SELECT są w osobnych liniach mogę je łatwo wykomentować. Przecinek na początku linii ma szczególnie duże znaczenie gdy wykomentowujesz ostatnią linię.
Wyrażenie użyte w SELECT nie musi być stałe. Może być wyliczalne. Tak jak w przykładzie gdzie użyłem '2*100′.
Podsumowanie
Z tej lekcji wiesz jak spowodować aby instancja bazy danych zwróciła do klienta wyrażenia stałe i wyliczalne. Wiesz, do czego służy komenda SELECT i klauzula FROM języka SQL oraz charakterystyczna dla Oracle tabela dual.
Użyj tej wiedzy i napisz zapytanie zwracające Twoje imię oraz miasto w którym mieszkasz. W moim przypadku byłoby to Marcin z Warszawy.
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ś pierwszą lekcję darmowej edycji mojego kursu 'Podstawy SQL dla użytkowników Oracle’. Skomentuj poniżej jak Ci się podobała.
Czy zapytanie zwracające jedynie wyrażenia jest użyteczne? Czasem jest. Zazwyczaj jednak chcesz wybrać dane bazy danych. Chodź do następnej lekcji to pokażę Ci jak.
Zapowiada się ciekawie…
Wszystko do tej pory pisałem w jednej linii, a to formatowanie faktycznie sprawia, że kod staje się czytelniejszy 🙂
Pozdrawiam
Mateusz
Dzięki za komentarz. Przejrzyste formatowanie SQL znakomicie ułatwia jego późniejszą optymalizację.