Zmienne SQL: SQL Server deklaruje, ustawia i wybiera zmienną

Co to jest zmienna w SQL Server?

W MS SQL zmienne są obiektem, który pełni funkcję elementu zastępczego lokalizacji w pamięci. Zmienna przechowuje pojedynczą wartość danych.

Typy zmiennych w SQL: lokalne, globalne

MS SQL ma dwa typy zmiennych:

  1. Zmienna lokalna
  2. Zmienna globalna.

Jednak użytkownik może utworzyć tylko zmienną lokalną.

Poniższy rysunek wyjaśnia dwa typy zmiennych dostępnych w Serwer MSSQL.

Zmienne SQL
Typ zmiennych w SQL Server

Zmienna lokalna

  • Użytkownik deklaruje zmienną lokalną.
  • Domyślnie zmienna lokalna zaczyna się od @.
  • Każdy zasięg zmiennej lokalnej ma ograniczenie do bieżąca partia lub procedura w ramach dowolnej sesji.

Zmienna globalna

  • System utrzymuje zmienną globalną. Użytkownik nie może ich zadeklarować.
  • Zmienna globalna zaczyna się od @@
  • Przechowuje informacje związane z sesją.

Jak zadeklarować zmienną w SQL

  • Zanim użyjesz jakiejkolwiek zmiennej w partii lub procedurze, musisz to zrobić zadeklaruj zmienną.
  • Polecenie DECLARE służy do DECLARE zmiennej, która pełni funkcję symbolu zastępczego lokalizacji pamięci.
  • Dopiero po złożeniu deklaracji zmienna może zostać wykorzystana w dalszej części partii lub procedury.

Składnia TSQL:

DECLARE  { @LOCAL_VARIABLE[AS] data_type  [ = value ] }

zasady:

  • Inicjowanie jest opcjonalną rzeczą podczas deklarowania.
  • Domyślnie DECLARE inicjuje zmienną na NULL.
  • Użycie słowa kluczowego „AS” jest opcjonalne.
  • Aby zadeklarować więcej niż jedną zmienną lokalną, należy po definicji pierwszej zmiennej lokalnej postawić przecinek, a następnie zdefiniować nazwę kolejnej zmiennej lokalnej i typ danych.

Przykłady deklarowania zmiennej

Zapytanie: z „AS”

DECLARE @COURSE_ID AS INT;

Zapytanie: bez „AS”

DECLARE @COURSE_NAME VARCHAR (10);

Zapytanie: Zdeklaruj dwie zmienne

DECLARE @COURSE_ID AS INT, @COURSE_NAME VARCHAR (10);

Przypisanie wartości do zmiennej SQL

Możesz przypisać wartość zmiennej w następujący sposób trzy sposoby:

  1. Podczas deklaracji zmiennej przy użyciu słowa kluczowego DECLARE.
  2. Korzystanie z SET
  3. Używając WYBIERZ

Przyjrzyjmy się szczegółowo wszystkim trzem sposobom:

Podczas deklaracji zmiennej przy użyciu słowa kluczowego DECLARE

Składnia T-SQL:

DECLARE { @Local_Variable [AS] Datatype [ = value ] }

Tutaj po typie danych możemy użyć znaku „=”, po którym następuje wartość, która ma zostać przypisana

zapytanie:

DECLARE @COURSE_ID AS INT = 5
PRINT @COURSE_ID

Przypisanie wartości do zmiennej SQL

Korzystanie z zmiennej SQL SET

Czasami chcemy zachować deklarację i inicjalizację oddzielnie. Zestawu SET można użyć do przypisania wartości do zmiennej po zadeklarowaniu zmiennej. Poniżej przedstawiono różne sposoby przypisywania wartości za pomocą zestawu SET:

Przykład: Przypisywanie wartości do zmiennej za pomocą SET

Składnia:

DECLARE @Local_Variable <Data_Type>
SET @Local_Variable =  <Value>

zapytanie:

DECLARE @COURSE_ID AS INT
SET @COURSE_ID = 5
PRINT @COURSE_ID

ZMIENNA USTAWIONA SQL

Przykład: Przypisz wartość do wiele zmiennych za pomocą SET.

Składnia:

DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable_2 <Data_Type>,
SET @Local_Variable_1 = <Value_1>
SET @Local_Variable_2 = <Value_2>

Reguła: Do przypisania wartości można użyć tylko jednego słowa kluczowego SET jedna zmienna.

zapytanie:

DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5)
SET @COURSE_ID = 5
SET @COURSE_NAME = 'UNIX'
PRINT @COURSE_ID
PRINT @COURSE_NAME

ZMIENNA USTAWIONA SQL

Przykład: Przypisanie wartości do zmiennej za pomocą a Podzapytanie skalarne za pomocą SET

Składnia:

DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable_2 <Data_Type>,SET @Local_Variable_1 = (SELECT <Column_1> from <Table_Name> where <Condition_1>)

zasady:

  • Umieść zapytanie w nawiasie.
  • Zapytanie powinno być zapytaniem skalarnym. Zapytanie skalarne to zapytanie, którego wyniki stanowią tylko jeden wiersz i jedną kolumnę. W przeciwnym razie zapytanie zgłosi błąd.
  • Jeśli zapytanie zwróci zero wierszy, wówczas zmienna jest ustawiana na PUSTY, tj. NULL.

Założenie: Załóżmy, że mamy tabelę o nazwie „Guru99” z dwiema kolumnami, jak pokazano poniżej:

ZMIENNA USTAWIONA SQL

W dalszych tutorialach będziemy używać tabeli „Guru99”.

1 przykład: Gdy podzapytanie zwraca w rezultacie jeden wiersz.

DECLARE @COURSE_NAME VARCHAR (10)
SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 3)
PRINT @COURSE_NAME

ZMIENNA USTAWIONA SQL

Przykład 2: Gdy podzapytanie zwraca w rezultacie wiersz zerowy

DECLARE @COURSE_NAME VARCHAR (10)
SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5)
PRINT @COURSE_NAME

W tym konkretnym przypadku wartość zmiennej jest PUSTA, tj. NULL.

ZMIENNA USTAWIONA SQL

Korzystanie z SQL WYBIERZ ZMIENNĄ

Podobnie jak w przypadku SET, możemy również użyć SELECT do przypisania wartości do zmiennych, po zadeklarowaniu zmiennej za pomocą DECLARE. Poniżej znajdują się różne sposoby przypisania wartości za pomocą SELECT:

Przykład: Przypisywanie wartości do zmiennej za pomocą SELECT

Składnia:

DECLARE @LOCAL_VARIABLE <Data_Type>
SELECT @LOCAL_VARIABLE = <Value>

zapytanie:

DECLARE @COURSE_ID INT
SELECT @COURSE_ID = 5
PRINT @COURSE_ID

WYBIERZ ZMIENNĄ SQL

Przykład: Przypisywanie wartości do wielu zmiennych za pomocą SELECT

Składnia:

DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Value_1>,  @Local_Variable _2 = <Value_2>

zasady: W przeciwieństwie do SET, SELECT można wykorzystać do przypisania wartości do wielu zmiennych oddzielone przez przecinek.

DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5)
SELECT @COURSE_ID = 5, @COURSE_NAME = 'UNIX'
PRINT @COURSE_ID
PRINT @COURSE_NAME

WYBIERZ ZMIENNĄ SQL

Przykład: Przypisywanie wartości do zmiennej z podzapytaniem za pomocą SELECT

Składnia:

DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = (SELECT <Column_1> from <Table_name> where <Condition_1>)

zasady:

  • Umieścić zapytanie w nawiasie.
  • Zapytanie powinno być zapytaniem skalarnym. Zapytanie skalarne to zapytanie z wynikiem w postaci jednego wiersza i jednej kolumny. W przeciwnym razie zapytanie zgłosi błąd.
  • Jeśli zapytanie zwróci zero wierszy, wówczas zmienna jest PUSTA, tj. NULL.
  • Rozważmy ponownie naszą tabelę „Guru99”.

1 przykład: Gdy podzapytanie zwraca w rezultacie jeden wiersz.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 1)
PRINT @COURSE_NAME

WYBIERZ ZMIENNĄ SQL

2 przykład: Gdy podzapytanie zwraca w rezultacie wiersz zerowy

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5)
PRINT @COURSE_NAME

W tym konkretnym przypadku zmienna ma wartość PUSTA, tj. NULL.

WYBIERZ ZMIENNĄ SQL

3 przykład: Przypisz wartość do zmiennej za pomocą zwykłej instrukcji SELECT.

Składnia:

DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Column_1> from <Table_name> where <Condition_1>

zasady:

  • W przeciwieństwie do SET, jeśli zapytanie daje wiele wierszy, wówczas wartość zmiennej jest ustawiana na wartość z ostatniego wiersza.
  • Jeśli zapytanie zwróci zero wierszy, wówczas zmienna jest ustawiana na PUSTY, tj. NULL.

Zapytanie 1: Zapytanie zwraca jeden wiersz.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 3
PRINT @COURSE_NAME

WYBIERZ ZMIENNĄ SQL

Zapytanie 2: Zapytanie zwraca wiele wierszy.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = Tutorial_name from Guru99
PRINT @COURSE_NAME

W tym szczególnym przypadku wartość zmiennej to ustaw na wartość ostatniego wiersza.

WYBIERZ ZMIENNĄ SQL

Zapytanie 3: Zapytanie zwraca zero wierszy.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 5
PRINT @COURSE_NAME

W tym konkretnym przypadku zmienna jest PUSTA, tj. NULL.

WYBIERZ ZMIENNĄ SQL

Inne przykłady zmiennych SQL

Użycie zmiennej w zapytaniu

zapytanie:

DECLARE @COURSE_ID Int = 1
SELECT * from Guru99 where Tutorial_id = @COURSE_ID

Inna zmienna SQL

Interesujące fakty na temat zmiennych SQL Server!

  • Zmienną lokalną można wyświetlić za pomocą polecenia PRINT oraz SELECT
  • Tabela Typ danych nie pozwala na użycie „AS” podczas deklaracji.
  • SET jest zgodny ze standardami ANSI, podczas gdy SELECT nie.
  • Dozwolone jest także tworzenie zmiennej lokalnej o nazwie @. Możemy to zadeklarować tak, na przykład:
    'DECLARE @@ as VARCHAR (10)'
    

Podsumowanie

  • Zmienne są obiektem, który pełni rolę symbolu zastępczego.
  • Istnieją dwa typy zmiennych: lokalne i globalne
  • Możemy przypisać zmienną na trzy następujące sposoby: Używając 1) DECLARE 2) Używając SET 3) UŻYWAJĄC SELECT