################
#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...