Kurs podstawy SQL dla użytkowników Oracle - lekcja 1

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 z dual w SQL Developer

’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:

Hello World w psql PostgreSQL

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′.

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.

Idź do następnej lekcji

Wróć do listy kursów

2 Comments

  1. Zapowiada się ciekawie…
    Wszystko do tej pory pisałem w jednej linii, a to formatowanie faktycznie sprawia, że kod staje się czytelniejszy 🙂

    Pozdrawiam
    Mateusz

    1. Marcin Badtke

      Dzięki za komentarz. Przejrzyste formatowanie SQL znakomicie ułatwia jego późniejszą optymalizację.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *