Funkcje: Zmienne lokalne w SQL cz. I
SQL jak prawie każdy język programowania pozwala na tworzenie funkcji, a co za tym idzie również zmiennych przechowujących dane.
Implementacja zmiennych w kwerendzie SQL’a nie jest zbyt trudna ale należ pamiętać o kilku zasadach:
- Długość nazwy zmiennej nie może przekraczać
128 znaków, - Nie jest dopuszczalne wykorzystywanie znaków specjalnych np. polskich liter,
- Zmienne lokalne oznaczamy znakiem
@poprzedzając nim nazwę nowo utworzonego obiektu (przykład:@jestemZmiennaLokalna), - Zmienne lokalne deklarujemy słowem kluczowym
DECLARE, a po nazwie podajemy typ danych (przykład:DECLARE @zadeklarowanaZmienna VARCHAR(50)), - Wartości przypisujemy poprzedzając zmienną słowem kluczowym
SET(przykład:SET @zadeklarowanZmienna = 'Cześć'), - Możliwa jest deklaracja i inicjalizacja zmiennej równocześnie.
UWAGA: Omawiany materiał działa na bazach danych firmy Microsoft.
Typy danych
Kilka najważniejszych typów danych jakie mogą przyjmować zmienne:
| Typ | Opis |
| VARCHAR(rozmiar) | Przyjmuje tekst, w nawiasach podaje się liczbę znaków |
| CHAR | Znaki tekstowe |
| SYSNAME | Przyjmuje nazwę np. kolumny |
| INT | Liczby całkowite |
| FLOAT | Liczby rzeczywiste |
Tabela klienci na której będziemy uruchamiać przykładowe kwerendy:
| ID | Imie | Nazwisko | Miasto |
| 1 | Jan | Kowalski | Warszawa |
| 2 | Michał | Łagoda | Kraków |
| 3 | Marcin | Kulczyk | Kraków |
| 4 | Radosław | Sikorski | Kraków |
| 5 | Monika | Kopacz | Gdańsk |
| 6 | Piotr | Grabiec | Toruń |
| 7 | Ewa | Pogodna | Bydgoszcz |
| 8 | Sebastian | Szybki | Warszawa |
Przykład
Weźmy proste zapytanie typu:
SELECT imie, nazwisko FROM klienci WHERE imie = 'Sebastian';
Otrzymamy jeden rekord:
| imie | nazwisko |
| Sebastian | Szybki |
Teraz do powyższego przykładu dodajmy zmienną lokalną o nazwie imie:
DECLARE @imie VARCHAR(200); SET @imie = 'Sebastian'; Select imie, nazwisko FROM klienci WHERE imie = @imie;
I tym razem otrzymamy identyczny wynik.
Podsumowanie
Zmienne w SQL można używać w instrukcji warunkowej, pętli, instrukcji CASE itd.
Dzień dobry, chciałbym zgłosić literówkę w miejscu „jakie mogĘ przyjmować zmienne”.
Pozdrawiam i życzę miłego dnia
Dzięki za czujność ;) Poprawione.
Prosze
Podoba mi się że teksty są lakoniczne. Bez zbędnych opisów i wodotrysków jedna też mam uwagę tym razem fldo fragmentu który jest niespójny „nie jest dopuszczalne jest wykorzystywanie znaków specjalnych, polskich liter itp.,”
Proszę wybaczyć moje literówki.
Cześć!
Dzięki za komentarz i informację. Artykuł zaktualizowany :)
Pozdrawiam serdecznie,
Łukasz Dudziński, autor bloga StrefaKodera.pl