MySQL编程基础
本文是關于MySQL編程中的一些基礎知識,包括變量和運算符、常用語句、函數。
一、變量與運算符
1.用戶會話變量聲明:SET @變量名 = 表達式;//即:用戶會話變量無需提前定義,直接用賦值語句賦值,就算是定義了(也可用SELECT賦值語句賦值)【無需指定類型,生命周期:關閉服務器鏈接前】
2.局部變量聲明:DECLARE 變量名 數據類型;【必須指定類型,生命周期:定義局部變量的小范圍(類似于Java的{}內)】
3.運算符
(1)算術運算符:與Java相同
(2)比較運算符:大部分與Java相同。不同的地方:=(等于),<>(不等于【!=也是不等于】),<=>(相等或都為NULL),IS NULL(為空),BETWEEN … AND …(在區間內),IN(…)(在集合內),LIKE(模式匹配)
(3)邏輯運算符:與(AND,&&),或(OR,||),非(NOT,!),異或(XOR)
(4)位運算符:與Java相同
二、語句
1.賦值語句:
(1)SET:
(2)SELECT:
SELECT 表達式 INTO 變量; //不產生結果集 SELECT 變量 := 表達式; //產生結果集(3)可以同時給多個變量賦值,用逗號隔開。如:SET 變量1 = 表達式1, 變量2 = 表達式2, ……;
2.重置命令結束標記:DELIMITER。由于MySQL客戶機的默認結束標記和語句的結束標記相同,都是分號,所以在寫語句塊的時候,為避免語句塊被;拆開,應該在語句塊前重設客戶機結束標記,然后在語句塊結束后改回原樣:
DELIMITER $$:將客戶機結束標記設為$$
3.BEGIN-END語句塊:將功能封裝到存儲過程、函數、觸發器、事件等存儲程序內部。
DELIMITER $$ //將客戶機結束標記改為$$ BEGIN 要執行的功能代碼; END; $$ DELIMITER ; //將客戶機結束標記改回;4.條件控制語句
(1)IF語句
(2)CASE語句
CASE 表達式 WHEN 值1 THEN 語句塊; WHEN 值2 THEN 語句塊; …… ELSE 語句塊; END CASE;5.循環語句
(1)WHILE-DO語句
(2)REPETE-UNTIL語句
REPEAT 循環體; UNTIL 條件表達式 //跳出循環的條件 END REPEAT;(3)LOOP語句
循環標簽:LOOP 循環體; IF 條件表達式 THEN LEAVE 循環標簽; //跳出循環的條件 END IF; END LOOP;(4)LEAVE和ITERATE
類似于Java中的break和continue:LEAVE 循環標簽;或ITERATE 循環標簽;
循環標簽:給循環起的名字。在循環開始前加上,格式是:循環標簽:。
在循環結束語句后可以標記循環標簽,比如:END WHILE 循環標簽;。
三、函數
1.自定義函數
函數選項:需要時再詳細了解。用的比較多的是NO SQL:函數體中不包含SQL語句
2.系統函數
(1)數學函數
(2)字符串函數
(3)日期和時間函數
①獲取當前日期:CURDATE(),CURRENT_DATE()(YYYY-MM-DD)【可設置時區】
②獲取當前時間:CURTIME(),CURRENT_TIME()(hh:mm:ss)【可設置時區】
③獲取當前日期時間:NOW(),CURRENT_TIMESTAMP(),LOCALTIME(),SYSDATE()(YYYY-MM-DD hh:mm:ss)【可設置時區】
④時間戳轉為日期時間:FROM_TIMESTAMP(TIMESTAMP)(將指定時間戳的時間轉為YYYY-MM-DD hh:mm:ss)【可設置時區】
⑤獲取當前UTC日期/時間:UTC_DATE(),UTC_TIME()(分別是YYYY-MM-DD和hh:mm:ss)【不可設置時區】
⑥獲取當前時間戳:UNIX_TIMESTAMP(),UNIX_TIMESTAMP(DATETIME)(從1970-01-01 00:00:00至當前時間/指定時間的秒數)【不可設置時區】
⑦獲取時間的字段值(獲取年月日等)
轉載于:https://www.cnblogs.com/cage666/p/7295390.html
總結
- 上一篇: object类型转换为Array类型
- 下一篇: 2、Redis入门介绍