sql >> Database teknologi >  >> RDS >> Mysql

Hvordan erklærer man en variabel i MySQL?

Der er hovedsageligt tre typer variabler i MySQL:

  1. Brugerdefinerede variabler (med præfiks med @ ):

    Du kan få adgang til enhver brugerdefineret variabel uden at erklære den eller initialisere den. Hvis du henviser til en variabel, der ikke er blevet initialiseret, har den værdien NULL og en type streng.

    SELECT @var_any_var_name
    

    Du kan initialisere en variabel ved at bruge SET eller SELECT erklæring:

    SET @start = 1, @finish = 10;    
    

    eller

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

    Brugervariabler kan tildeles en værdi fra et begrænset sæt datatyper:heltal, decimal, flydende komma, binær eller ikke-binær streng eller NULL-værdi.

    Brugerdefinerede variabler er sessionsspecifikke. Det vil sige, at en brugervariabel defineret af én klient ikke kan ses eller bruges af andre klienter.

    De kan bruges i SELECT forespørgsler ved hjælp af Avancerede MySQL brugervariable teknikker .

  2. Lokale variabler (ingen præfiks) :

    Lokale variabler skal erklæres ved hjælp af DECLARE før du får adgang til det.

    De kan bruges som lokale variable og inputparametrene i en lagret procedure:

    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);
    

    Hvis DEFAULT klausul mangler, startværdien er NULL .

    Omfanget af en lokal variabel er BEGIN ... END blok, hvori det er deklareret.

  3. Serversystemvariabler (med præfiks med @@ ):

    MySQL-serveren vedligeholder mange systemvariabler konfigureret til en standardværdi. De kan være af typen GLOBAL , SESSION eller BOTH .

    Globale variabler påvirker serverens overordnede drift, hvorimod sessionsvariable påvirker dens drift for individuelle klientforbindelser.

    For at se de aktuelle værdier, der bruges af en kørende server, skal du bruge SHOW VARIABLES sætning eller SELECT @@var_name .

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

    De kan indstilles ved serverstart ved hjælp af valgmuligheder på kommandolinjen eller i en indstillingsfil. De fleste af dem kan ændres dynamisk, mens serveren kører ved hjælp af SET GLOBAL eller 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. Er primære nøgler og indekser i Hive-forespørgselssprog mulig eller ej?

  2. Kan ikke få adgang til forudbefolket SQLite-database ved hjælp af PhoneGap/Cordova i Android

  3. Nulstil identitetsseed efter sletning af poster i SQL Server

  4. Aktiver SQL Server Agent via SSMS