MYSQL中的變量

作者:Ninty
隻記很基礎的知識, 細節東西太麻煩瞭,而且我也用不到。


變量分為用戶變量與系統變量。


用戶變量:


    用戶變量與數據庫連接有關,在這個連接中聲明的變量,在連接斷開的時候,就會消失。
    在此連接中聲明的變量無法在另一連接中使用。


    用戶變量的變量名的形式為@varname的形式。
    名字必須以@開頭。
    聲明變量的時候需要使用set語句,比如下面的語句聲明瞭一個名為@a的變量。



set @a = 1;
 
 
  聲明一個名為@a的變量,並將它賦值為1,mysql裡面的變量是不嚴格限制數據類型的,它的數據類型根據你賦給它的值而隨時變化 。
    (SQL SERVER中使用declare語句聲明變量,且嚴格限制數據類型。)


    我們還可以使用select 語句為變量賦值 。
    比如:
 


set @name = ;
select @name:=password from user limit 0,1;


 
(註意等於號前面有一個冒號,後面的limit 0,1是用來限制返回結果的,相當於SQL SERVER裡面的top 1)


    如果直接寫:


 
select @name:=password from user;


   如果這個查詢返回多個值的話,那@name變量的值就是最後一條記錄的password字段的值 。


系統變量:
   
    系統變量又分為全局變量與會話變量。
    全局變量在MYSQL啟動的時候由服務器自動將它們初始化為默認值,這些默認值可以通過更改my.ini這個文件來更改。


    會話變量在每次建立一個新的連接的時候,由MYSQL來初始化。MYSQL會將當前所有全局變量的值復制一份。來做為會話變量。
    (也就是說,如果在建立會話以後,沒有手動更改過會話變量與全局變量的值,那所有這些變量的值都是一樣的。)


    全局變量與會話變量的區別就在於,對全局變量的修改會影響到整個服務器,但是對會話變量的修改,隻會影響到當前的會話
    (也就是當前的數據庫連接)。


   
    我們可以利用
 


 
show session variables;
 
 語句將所有的會話變量輸出:
    (可以簡寫為show variables,沒有指定是輸出全局變量還是會話變量的話,默認就輸出會話變量。)



   mysql> show global variables;
    +———————————+—————————————————————-+
    | Variable_name                   | Value                                                          |
    +———————————+—————————————————————-+
    | auto_increment_increment        | 1                                                              |
    | auto_increment_offset           | 1                                                              |
    | automatic_sp_privileges         | ON                                                             |


            …………………………….省略…………………………


    | tmpdir                          | C:WINDOWSTEMP                                               |
    | transaction_alloc_block_size    | 8192                                                           |
    | transaction_prealloc_size       | 4096                                                           |
    | tx_isolation                    | REPEATABLE-READ                                                |
    | updatable_views_with_limit      | YES                                                            |
    | version                         | 5.0.67-community-nt                                            |
    | version_comment                 | MySQL Community Edition (GPL)                                  |
    | version_compile_machine         | ia32                                              &n

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *