Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zadeklarować zmienną w MySQL?

W MySQL istnieją głównie trzy typy zmiennych:

  1. Zmienne zdefiniowane przez użytkownika (z prefiksem @ ):

    Możesz uzyskać dostęp do dowolnej zmiennej zdefiniowanej przez użytkownika bez deklarowania jej lub jej inicjowania. Jeśli odwołujesz się do zmiennej, która nie została zainicjowana, ma ona wartość NULL i typ ciągu.

    SELECT @var_any_var_name
    

    Możesz zainicjować zmienną za pomocą SET lub SELECT oświadczenie:

    SET @start = 1, @finish = 10;    
    

    lub

    SELECT @start := 1, @finish := 10;
    
    SELECT * FROM places WHERE place BETWEEN @start AND @finish;
    

    Zmiennym użytkownika można przypisać wartość z ograniczonego zestawu typów danych:liczby całkowitej, dziesiętnej, zmiennoprzecinkowej, ciągu binarnego lub niebinarnego lub wartości NULL.

    Zmienne zdefiniowane przez użytkownika są specyficzne dla sesji. Oznacza to, że zmienna użytkownika zdefiniowana przez jednego klienta nie może być widziana ani używana przez innych klientów.

    Mogą być używane w SELECT zapytania przy użyciu Zaawansowane techniki zmiennych użytkownika MySQL .

  2. Zmienne lokalne (bez prefiksu) :

    Zmienne lokalne należy zadeklarować za pomocą DECLARE przed uzyskaniem do niego dostępu.

    Mogą być używane jako zmienne lokalne i parametry wejściowe wewnątrz procedury składowanej:

    DELIMITER //
    
    CREATE PROCEDURE sp_test(var1 INT) 
    BEGIN   
        DECLARE start  INT unsigned DEFAULT 1;  
        DECLARE finish INT unsigned DEFAULT 10;
    
        SELECT  var1, start, finish;
    
        SELECT * FROM places WHERE place BETWEEN start AND finish; 
    END; //
    
    DELIMITER ;
    
    CALL sp_test(5);
    

    Jeśli DEFAULT brak klauzuli, wartość początkowa to NULL .

    Zakres zmiennej lokalnej to BEGIN ... END blok, w którym jest zadeklarowany.

  3. Zmienne systemowe serwera (z prefiksem @@ ):

    Serwer MySQL obsługuje wiele zmienne systemowe skonfigurowane na wartość domyślną. Mogą być typu GLOBAL , SESSION lub BOTH .

    Zmienne globalne wpływają na ogólne działanie serwera, podczas gdy zmienne sesji wpływają na jego działanie dla poszczególnych połączeń klientów.

    Aby zobaczyć aktualne wartości używane przez działający serwer, użyj SHOW VARIABLES oświadczenie lub SELECT @@var_name .

    SHOW VARIABLES LIKE '%wait_timeout%';
    
    SELECT @@sort_buffer_size;
    

    Można je ustawić podczas uruchamiania serwera za pomocą opcji w wierszu poleceń lub w pliku opcji. Większość z nich można zmieniać dynamicznie podczas działania serwera za pomocą SET GLOBAL lub SET SESSION :

    -- Syntax to Set value to a Global variable:
    SET GLOBAL sort_buffer_size=1000000;
    SET @@global.sort_buffer_size=1000000;
    
    -- Syntax to Set value to a Session variable:
    SET sort_buffer_size=1000000;
    SET SESSION sort_buffer_size=1000000;
    SET @@sort_buffer_size=1000000;
    SET @@local.sort_buffer_size=10000;
    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uniknąć MySQL „Znaleziono zakleszczenie podczas próby uzyskania blokady; spróbuj zrestartować transakcję”

  2. Jak podzielić ciąg w MySQL

  3. Ograniczenie CHECK w MySQL nie działa

  4. Jak poprawnie używać CASE..WHEN w MySQL?

  5. Instalowanie sterowników MySQL JDBC w narzędziach Pentaho Data Integration i BA Server