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