Kurs SQL online – Oracle: Pierwsze zapytania SQL

W tej lekcji kursu Oracle SQL podłączymy się do bazy i zaczniemy pisać pierwsze zapytania SQL. Skupimy się na wybieraniu konkretnych kolumn w zapytaniu, dodawaniu nowych. Zapraszam do lektury!

Podłączenie do bazy danych

Uruchamiamy program Oracle SQL Developer. W zakładce Connections klikamy znak “+”. W nowo otwartym oknie wpisujemy:
Connection name: baza_HR
Username: hr
Password: hr

Pozostałe ustawienia zostawiamy jak są i klikamy Test. W lewym dolnym rogu okna powinien pojawić się Status: Success. Klikamy Save (spowoduje to zapisanie ustawień) i Connect.

Wszystkie zapytania piszemy w nowo otwartym oknie. Zapytania kończymy średnikiem. Uruchamiamy je przyciskiem Run statement (zielony trójkąt) lub z klawiatury Ctrl+Enter.

Zatem do dzieła!

Działanie instrukcji SELECT

Służy do wybierania rekordów z tabel w bazie danych. Przetwarzanie danych odbywa się „w locie“ i nie jest zapisywane w bazie.

W Oracle każde zapytanie musi składać się co najmniej z SELECT i FROM.

Po SELECT wymieniamy kolumny, które chcemy wyświetlić. Mogą to też być wyrażenia, np. 2+2. Jeśli po SELECT użyjemy gwiazdki – wyświetlimy wszystkie kolumny.

Po FROM wypisuje tabele, z których chcemy wybrać dane.

Z jakich tabel możemy korzystać?

Użytkownik HR zawiera tabele, które są wykorzystywane do przechowywania informacji o firmie:

employees – informacja o pracownikach
locations – informacje o lokalizacjach oddziałów
regions – regiony wykorzystywane dla umiejscowienia krajów
countries – informacje o krajach dla lokalizacji oddziałów
departments – informacje o oddziałach
jobs – informacje o stanowiskach pracy
job_history – zawiera informacje historyczne o pracownikach – na jakich stanowiskach pracowali

Z tych tabel będziemy korzystali w przykładach.

Przykład 1. Wybierz wszystkich rekordów z tabeli o nazwie employees

SELECT *
FROM employees;

Przykład 2. Wybierz zawartość kolumn First_name i Last_name z tabeli employees

SELECT first_name, last_name
FROM employees;

Przykład 3. Wybierz z tabeli locations kolumny city i state_province.

SELECT city, state_province
FROM locations;

Zauważ, że w kolumnie state_province jest wartość NULL (nie została przypisana, żadna wartość dla rekordu). Jak ją zamienić na słowo brak? Możemy skorzystać z funkcji NVL.

Funkcja NVL

NVL(p1, p2) – jeśli p1 jest NULL to zwraca p2. Jeśli p1 nie jest NULL to zwraca p1.

Zatem użyjmy jej.

Przykład 4. Wybierz z tabeli locations kolumny city i state_province. Zamień wartości NULL w kolumnie state_province na słowo ‘brak’

SELECT city, nvl(state_province, 'brak')
FROM locations;

Czy wynik wygląda dostatecznie ładnie? Chyba nie. Druga kolumna nazywa się NVL(STATE_PROVINCE,’brak’). Jak zatem nazwa kolumny? Aliasami.

Aliasy

Aliasy stosuje się po określeniu nazwa kolumn.

SELECT kolumna1 alias,
                kolumn2 AS alias2
FROM tabela;

Słowo kluczowe AS nie jest konieczne.

Przykład 5. Kontynuując poprzedni przykład nazwij kolumnę city jako miasto, a kolumnę state_province jako stan_województwo.

SELECT city miasto, nvl(state_province, 'brak') stan_wojewodztwo
FROM locations;

Zobaczmy jak działają obliczenia matematyczne.

Przykład 6. Z tabeli employees wyświetlmy kolumny first_name, last_name oraz salary (wynagrodzenie). Wyświetlmy również dla każdego z pracowników, jako kolejną kolumnę, wartość pensji po podwyżce o 5%. A co tam! Niech mają, po podwyżce o 15% 🙂 Ostatnią kolumnę nazwijmy – po_podwyzce.

SELECT first_name, last_name, salary, salary*1.15 po_podwyzce
FROM employees;

Uwaga! Separatorem dziesiętnym w liczbie jest kropka nie przecinek.

Co do samych działań – można stosować działania arytmetyczne (*, /, +, -). Można również stosować nawiasy.

Wybieranie bez powtórzeń

Jeśli chcemy wybrać wartości bez powtórzeń możemy użyć słowa kluczowego DISTINCT. Słowo kluczowe DISTINCT stoi zaraz po SELECT

Przykład 7. Wyświetl z tabeli employees kolumnę job_id wyświetlając wartości bez powtórzeń.

SELECT DISTINCT  job_id
FROM employees;

Dla porównania możesz uruchomić zapytanie bez słowa kluczowego DISTINCT -zobaczysz różnicę.

Co w następnej lekcji?

Limitowanie rekordów. Do tej pory wybieraliśmy niektóre kolumny, dodawaliśmy nowe.

W kolejnej lekcji dowiesz się jak wybierać tylko niektóre rekordy.

 

 

This entry was posted in Nieokreślona, Oracle SQL Podstawy, SQL and tagged , , , , . Bookmark the permalink.

23 Responses to Kurs SQL online – Oracle: Pierwsze zapytania SQL

  1. Damian says:

    Bardzo dziękuję za kurs, dzięki niemu dostałem nową pracę 🙂

    • Rafał Stryjek says:

      Gratulacje ! 🙂

      Życzę powodzenia w nowej pracy i oczywiście zapraszam do odwiedzania nas na blogu 🙂

      Pozdrawiam

  2. estt says:

    Witam. Podczas włączania sql developer pokazuje mi się komunikat
    Enter the full pathname for java.exe:
    To dziwne ponieważ ten program powinien chodzić bez środowiska javy.
    Psiadam Win7 32 Sp1

  3. estt says:

    Kiedy klikam ok wyskakuje mi komunikat
    Cannot find a J2SE SDK installed at path:(wskazana przeze mnie ściezka)

    Nie mam czegoś takiego na komputerze jak w/w J2SE SDK
    pomożecie?

  4. Michal says:

    Jesli w Apex stworzę nowy Workspace i nowego użytkownika, np:

    Workspace: michalWS
    user: michal

    Dodam też nowe tabele. Przy pomocy SQL Developer próbuję wyświetlić zawartość tych tabel i otrzymuję komunikat, że nie zostały znalezione. Dlaczego? Co robić, abym mógł je przeszukać. Jeśli tą dodam nowe tabele dla Workspace HR, to są widoczne w SQL Developer. Czy w Apex mogę zmieniać zawartości rekordów i wyświetlać ich wartości? Jestem bardzo początkującym użyszkodnikiem baz danych ;), proszę o wyrozumiałość ;).

  5. Tomasz says:

    Nie mogę podłączyć się do bazy danych.
    Postępuję zgodnie z poniższą instrukcją:
    “Uruchamiamy program Oracle SQL Developer. W zakładce Connections klikamy znak „+”. W nowo otwartym oknie wpisujemy:
    Connection name: baza_HR
    Username: hr
    Password: hr”

    i otrzymuję czerwony komunikat: “Status: Failure -Test failed: Błąd we-wy: The Network Adapter could not establish the connection”

    Jak podłączyć się do bazy danych?

    • Crumbly says:

      Tomasz musisz ponownie połączyć się z bazą :
      Start – > Wszystkie programy -> Oracle database – >Start Database

      • Oliwka says:

        mam podobny problem:
        i otrzymuję czerwony komunikat: „Status: Failure -Test failed: Błąd we-wy: The Network Adapter could not establish the connection”
        postępuje według instrukcji Crumbly i nadal nie działa 🙁 czy ktoś może pomóc?
        mam ważną rozmowę do której przydało by mi się przećwiczenie tych komend

  6. bombisz says:

    Witam,
    Właśnie zacząłem się uczyć języka sql. Korzystam obecnie z sql developer w domu. Jednak na zajęciach korzystamy z sql tools. Mam problemy z połączeniem się gdy włączam sql tools, wprowadzam hasło i login, ale wyskakuje mi błąd. Gdzie mogę znaleźć tak dobrą instrukcję dotyczącą sql tools jak tą wyżej pokazaną?
    Pozdrawiam początkujący programista.

  7. vera says:

    Mam problem: próbuje podłączyć się do bazy danych robiąc wszystko zgodnie z powyższym opisem, a mi wyskakuje: Status: Failure – Test failed ORA-oo604: error occured at recursive SQL level 1 ORA-12705: Cannot access NLS data files or invalid environment. O co tu chodzi? Co mozna zrobić? dziekuje))

  8. barbara says:

    proszę o pomoc, jak przejsc przez ten etap
    Uruchamiamy program Oracle SQL Developer. W zakładce Connections klikamy znak „+”. W nowo otwartym oknie wpisujemy:
    Connection name: baza_HR
    Username: hr
    Password: hr

  9. Paweł Bala says:

    Dzięki za kurs, lecę dalej!

  10. płytwanko says:

    Skąd wziąć przykładową bazę, na której można uczyć się kursu?

  11. Piotrek says:

    Bardzo fajny kursik!:)

  12. Marcin says:

    Czy ktoś się spotkał z takim błędem? I czy wie jak go rozwiązać.
    Status: Failure -Test Failed Właściwość instancji: błąd formatu: property is ‘v$session.osuser’ adn value is ‘Marcin’

  13. Szymek says:

    Czemu funkcja NVL nie działa mi w zapytaniu do innej tabeli np.:
    SELECT first_name, NVL(manager_id, ‘brak_szefa’)
    FROM employees;
    również dla commision_pct nie zwraca nic, a są tam wartości puste, komunikat po włączeniu zapytania jest ORA-01722: invalid number
    01722. 00000 – “invalid number”
    *Cause: The specified number was invalid.
    *Action: Specify a valid number.

    • Kuba says:

      U mnie po otwarciu w ogole nie ma zakladki Connections a user i haslo hr nie dzialaja

    • Arek says:

      Brakuje ci apostrofu otwierającego w parametrze funkcji NVL. Masz napisane ” brak_szefa’ “, a powinieneś napisać ” ‘brak_szefa’ “

  14. Rafael says:

    Bardzo fajny kurs. Właśnie zacząłem z nim naukę jako kompletny laik.
    Mam jednakże następujące pytanie: w jaki sposób poznać jaka jest struktura danych w bazie do której pytam jeśli nie wiem jak nazywa się dana tabela ?
    Czy jest możliwość wyświetlenia w jakiś sposób nazw tabel i ich powiązań ? Jako forma ściągawki ?

  15. Piotrek says:

    Ja również dziękuję. Bardzo fajny kurs..

  16. Justyna Kędzierska says:

    Wykonuję poniższy krok:

    Uruchamiamy program Oracle SQL Developer. W zakładce Connections klikamy znak „+”. W nowo otwartym oknie wpisujemy:
    Connection name: baza_HR
    Username: hr
    Password: hr

    Po kliknięciu ‘test’ pojawia się następujący błąd:
    ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

    Ktoś pomoże?

Leave a Reply

Your email address will not be published.