<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
前言:
函數分為兩類:系統函數和自定義函數
使用函數:
select 函數名(參數列);
函數名 | 說明 |
---|---|
char_length | 判斷字串的字元數 |
length | 判斷字串的位元組數,與字元集有關 |
concat | 連線字串 |
insrt | 檢查字元是否在目標字串中,存在返回其位置,不存在返回 0 |
lcase | 全部小寫 |
ltrim | 消除左邊的空格 |
left(str, length) | 左側開始擷取字串,直到指定位置 |
right(str, length) | 右側開始擷取字串,直到指定位置 |
mid | 從中間指定位置開始擷取,如果不指定擷取長度,直接到最後 |
substring(str, index, [length]) | 從指定位置開始,指定擷取長度 |
substring_index(str, delim, count) | 按照關鍵字擷取 |
範例:
select char_length('你好中國'); // 4 select length('你好中國'); // 12 select length('hello'); // 5 select char_length('hello'); // 5 select concat('你好', '中國'); // 你好中國 -- 下標從 1 開始 select instr('你好中國', '中國'); // 3 select instr('你好中國', '我'); // 0 select lcase('aBcd'); // abcd select left('aBcd', 2); // aB select right('abcdef', 2); // ef select substring('abcdef', 2, 3); // bcd select substring('abcdef', -2, 3); // ef select ltrim(' abc d '); // abc d select mid('你好中國', 3); // 中國 select substring_index('www.baidu.com', '.', 2); // www.baidu select substring_index('www.baidu.com', '.', -2); // baidu.com
函數名 | 說明 |
---|---|
now() | 返回當前時間,日期 時間 |
curdate() | 當前日期 |
curtime() | 當前時間 |
datediff() | 判斷兩個日期之間的天數之差,日期使用字串格式(用引號) |
date_add(日期, interval 時間數位 type) | 時間增加(type: |
unix_timestamp() | 獲取時間戳 |
from_unixtime() | 將指定時間戳轉換成對應的日期時間格式 |
範例:
select now(); // 2022-04-10 22:05:38 select curdate(); // 2022-04-10 select curtime(); // 22:05:51 select datediff('2022-01-09', '2022-01-01'); // 8 select date_add('2000-10-01', interval 10 day); // 2000-10-11 select unix_timestamp(); // 1649599799 select from_unixtime(1649599799); // 2022-04-10 22:09:59
函數名 | 說明 |
---|---|
abs | 絕對值 |
ceiling | 向上取整 |
floor | 向下取整 |
pow | 指數 |
rand | 亂數(0-1) |
round | 四捨五入 |
範例:
select abs(-1); // 1 select ceiling(1.1); // 2 select floor(1.9); // 1 select pow(2, 4); // 16 select rand(); // 0.2616088308967732 select round(1.5); // 2
函數名 | 說明 |
---|---|
md5() | MD5 |
version() | 版本號 |
database() | 顯示當前所在資料庫 |
uuid() | 生成一個唯一識別符號,全域性唯一 |
範例:
select md5('abc'); // 900150983cd24fb0d6963f7d28e17f72 select version(); // 8.0.16 select database(); // mydatabase select uuid(); // c44a06a2-b8d8-11ec-a53c-504259f9d746
mysql一旦見到分號結束符,就會開始執行
修改語句結束符
基本語法:
delimiter 符號;
基本語法:
-- 修改語句結束符 delimiter $$; create function 函數名(形參) returns 返回值型別 begin // 函數體 return 返回值資料; end 語句結束符 -- 將語句結束符修改回來 delimiter ;
範例:
-- 修改語句結束符 delimiter $$ create function my_func1() returns int begin return 10; end -- 結束 $$ -- 將語句結束符改回來 delimiter ;
如果只有一條語句,可以省略begin 和 end
-- 最簡單的函數 create function foo() returns int return 10;
為函數的形參指定資料型別
基本語法:
形參 資料型別
範例:
create function my_func2(a int, b int) returns int return a * b;
基本語法:
show function status [like 'pattern'];
範例:
-- 檢視所有函數 show function statusG -- 檢視單個函數 mysql> show function status like 'foo'G *************************** 1. row *************************** Db: mydatabase Name: foo Type: FUNCTION Definer: root@localhost Modified: 2022-04-10 22:34:06 Created: 2022-04-10 22:34:06 Security_type: DEFINER Comment: character_set_client: utf8mb4 collation_connection: utf8mb4_general_ci Database Collation: utf8mb4_general_ci 1 row in set (0.00 sec) -- 檢視函數建立語句 mysql> show create function fooG *************************** 1. row *************************** Function: foo sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION Create Function: CREATE DEFINER=`root`@`localhost` FUNCTION `foo`() RETURNS int(11) return 10 character_set_client: utf8mb4 collation_connection: utf8mb4_general_ci Database Collation: utf8mb4_general_ci 1 row in set (0.01 sec)
基本語法
select 函數名(實參列表);
範例:
mysql> select foo(); +-------+ | foo() | +-------+ | 10 | +-------+ mysql> select my_func2(2, 3); +----------------+ | my_func2(2, 3) | +----------------+ | 6 | +----------------+
基本語法
drop function 函數名;
範例:
drop function my_func1;
4.函數必須規範返回值,那麼在函數內部不能使用select指令,select一旦執行就會的到一個結果集 result set;
可以使用給變數賦值語句
select 欄位 into @變數;
需求:
從1開始,直到使用者傳入的對應的值位置,自動求和,凡是5的倍數都不要
設計:
定義函數:
-- 建立一個自動求和的函數 -- 修改語句結束符 delimiter $$ -- 建立函數 create function my_sum(end_value int) returns int begin -- 宣告區域性變數 declare res int default 0; declare i int default 0; -- 迴圈處理 mywhile: while i <= end_value do -- mysql中沒有++ set i = i + 1; -- 判斷當前資料是否合理 if i % 5 = 0 then iterate mywhile; end if; -- 修改變數,累加 set res = res + i; end while; -- 返回值 return res; end -- 結束 $$ -- 修改語句結束符 delimiter ;
呼叫函數:
-- 實參個數必須等於形參個數 select my_sum(10);
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45