mysql程式設計 變數 運算子 流程控制語句

2021-08-22 06:03:38 字數 4251 閱讀 4707

################

#mysql程式設計

################

-- ddl資料定義語言 :create drop alter

-- dml資料操作語言:insert select update delete

-- dcl資料控制語言:grant(授予許可權)revoke(收回許可權)

-- mysql增加了語言元素:常量 變數 運算子 函式 流程控制語句 注釋

#######1.變數

-- 區域性變數:declare宣告,可以用default說明預設值 只在begin...end之間有效

-- 比如declare c int default 0;

-- 使用者變數:會話變數、全域性變數 前面加@ :=賦值

-- set @x=0

-- set @color := 'red'

select @x,@color;

-- 會話變數

#設定會話變數 三種方式

set session x = 1;

set @@session.x =1;

set x =1;

#檢視會話變數 下面四中方式

show session variables;-- 檢視所有

show session variables like '%var%'; -- 檢視特定變數的值

select @@x;

select @@session.x;

-- 全域性變數

#設定全域性變數 兩種方式

set global x = 1;

set @@global.x =1;

#檢視全域性變數 兩種方式

select @@global.x;

show global variables like '%var%';

##############2.運算子

-- 算術運算子 :+ 、- 、 * 、 / 、 %

-- 邏輯運算子 and與&& :所有運算元部位0不為null,結果返回1;存在乙個0,返回0;存在乙個null且沒有1,返回null

-- or與|| :所有運算元只要有乙個不為0不為null,結果返回1;所有運算元只有0,返回0,所有運算元有0有null,返回null。

-- not與! :非0返回0;0返回1;null返回null

-- xor :只要有null就返回null;全都是非零或者全是零 就返回0;乙個非零乙個0 返回1(邏輯相同返回0)

-- 比較運算子 =、<= 、<> 、between and 、in、is null、like、regexp

-- 位運算子 先變成二進位制再變成十進位制 & | ~ >> ^ <<

###############3.流程控制語句

-- if(條件,結果1,結果2)

select address_id,if(name='k', yes ,no) from student;

if num < 6 then select num

end if;

/*if 條件判斷 then 執行語句

[elseif 條件判斷 then 執行語句 ]

[else 執行語句]

end if

*/-- case表示式

#####################

#1.搜尋case表示式

use xscj;

-- case when 《求值表示式》 then 《表示式》

-- when 《求值表示式》 then 《表示式》

-- when 《求值表示式》 then 《表示式》

-- ...

-- else 《表示式》

-- end

##case表示式從最初的when開始,如果為真執行then,為假就進行下一步

-- case最後返回

-- ||為字串拼接

##這句沒有達到預期效果 可能 ||在mysql不支援

select product_name,

case when product_type = '衣服'

then 'a :' || product_type

when product_type = '辦公用品'

then 'b:' || product_type

when product_type = '廚房用具'

then 'c :' || product_type

else null

end as abc_product_type

from product;

select product_name,

case when product_type = '衣服'

then 'a'

when product_type = '辦公用品'

then 'b'

when product_type = '廚房用具'

then 'c'

else null

end as abc_product_type

from product;

when 《求值表示式》 then 《表示式》

when 《求值表示式》 then 《表示式》

...else 《表示式》

end

##進行行列轉換

select product_type,

sum(sale_price) as sum_price from product

group by product_type;

-- 下面進行行列轉換

select sum(case when product_type = '衣服'

then sale_price else 0 end)as sum_price_clothes,

sum(case when product_type = '廚房用具'

then sale_price else 0 end)as sum_price_kitchen,

sum(case when product_type = '辦公用品'

then sale_price else 0 end)as sum_price_office

from product;

#1.簡單case表示式

-- case 《表示式》

-- when 《表示式》 then 《表示式》

-- when 《表示式》 then 《表示式》

-- when 《表示式》 then 《表示式》

-- ...

-- else 《表示式》

-- end

select product_name,

case when product_type = '衣服'

then 'a'

when product_type = '辦公用品'

then 'b'

when product_type = '廚房用具'

then 'c'

else null

end as abc_product_type

from product;

#########對比

select product_name,

case product_type

when '衣服'

then 'a'

when '辦公用品'

then 'b'

when '廚房用具'

then 'c'

else null

end as abc_product_type

from product;

-- 迴圈語句 (略。。。)

運算子及流程控制

運算子 c語言提供一種操作的符號來計算 運算子表示式 由運算元和運算子組成的表示式 表示式結果 計算的結果 1 算術運算子 算數運算子表示式 算術結果 2 賦值運算子 左值 右值 左值必須有變數 1 溢位 大空間賦值給小空間 short in 2 不轉換型別 int float 只會整數間的賦值 f...

運算子和流程控制

python3中只有乙個input python2中的raw input與python3中的input一模一樣 python3中的input 要求輸入者必須輸入乙個明確的資料型別 輸入什麼型別就存成什麼型別 1.運算子 算術運算 int,float 數字型別 取整 取餘賦值運算子 age 18 ag...

運算子和流程控制

目錄算數運算子 取餘 自加1 自減1需要注意的是 var a 10 var b a 先賦值再自加 console.log b 10 console.log a 11 var c b 先自加再賦值 console.log b 11 console.log c 11比較運算子 全等 不全等1 1 fal...