MySQL資料庫8(二十二)變數

2022-08-31 13:30:11 字數 1874 閱讀 7268

mysql本質是一種程式語言,需要很多變數來儲存資料。mysql中有很多的屬性控制都是通過mysql中固有的變數來實現的。

系統內部定義的變數,系統變數針對所有使用者(mysql客戶端)有效

mysql允許使用者使用select查詢變數的資料值(系統變數)

基本語法:select @@變數名;

分為兩種修改方式:

1、區域性修改(會話級別):只針對當前自己客戶端當次連線有效

基本語法:set 變數名 = 新值;

2、全域性修改:針對所有客戶端,「所有時刻」都有效

基本語法:set global 變數名 = 值;或者 set @@global.變數名 = 值;

全域性修改後,所有連線的客戶端並沒有發現改變?全域性修改只針對新客戶端生效(正在連著的無效)

注意:如果想要本次連線對應的變數修改有效,那麼不能使用全域性修改,只能使用會話級別修(set 變數名 = 值;)

會話變數也稱之為使用者變數,會話變數跟mysql客戶端是繫結的,設定的變數,只對當前使用者使用的客戶端生效。

定義使用者變數:set @變數名 = 值;

在mysql只因為沒有比較符號 ==,所以使用=代替比較符號,有時候在賦值的時候,會報錯;mysql為了避免系統分不清是賦值還是比較:特定增加乙個變數的賦值符號: :=

賦值:set @變數名 := 值;

mysql是專門儲存資料的:允許將資料從表中取出儲存到變數中:查詢得到的資料只能是一行資料(乙個變數對應乙個字段值):mysql中沒有陣列

1、賦值且檢視賦值過程:select @變數1: =欄位1,@變數2 : =  欄位2 from 資料表 where條件;

錯誤語法:就是因為使用=,系統會當作比較符號來處理

正確使用: :=

2、只賦值不看過程:select 欄位1,欄位2…from 資料來源 where 條件 into @變數1,@變數2…;

作用範圍在begin到end語句塊之間。在該語句塊裡設定的變數,declare語句專門用於定義區域性變數。

1、區域性變數是使用declare關鍵字宣告

2、區域性變數declare語句出現的位置一定是在begin和end之間(begin end是在大型語句塊中使用:函式/儲存過程/觸發器)

3、宣告語法:declare 變數名 資料型別[屬性];

declare res int default 0;

declare res int = 0;

資料庫元件 Hxj Data (二十二) (快取)

首先我是做web開發的,所以很多會偏向web的,元件使用的快取是system.web.httpruntime.cache。元件在預設情況下是關閉快取的。所以要開啟快取查詢要做一下配置。先看一下例子配置 configsections section name hxjcacheconfig type h...

22 Python指令碼學習筆記二十二資料庫支援

22.python指令碼學習筆記二十二資料庫支援 本篇名言 如果你周圍是一群鷹的話,那麼你自己也會成為乙隻鷹 如果是在一群山雀中間的話,那麼你就看不到海闊天空。在python指令碼上,我們居然一步一步的走了那麼遠了,實在不易啊 千里之行,始於腳下 繼續書寫新的篇章 我們來看下簡單資料庫sqlite使...

MySQL資料庫8(二十五)變數作用域

變數作用域 變數能夠使用的區域範圍 使用declare關鍵字宣告 在結構體內 函式 儲存過程 觸發器 而且只能在結構體內部使用。declare關鍵字宣告的變數沒有任何符號修飾,就是普通字串,如果在外部能夠訪問該變數,系統會自動認為是字段。使用者定義的 使用 符號定義的變數,使用set關鍵字。會話作用...