mysql 等待函式 mysql 內建函式

2021-10-17 20:35:39 字數 3638 閱讀 3569

select convert('125.83',signed);

select cast('125.83' as signed);

字串函式

檢視字元的ascii碼值ascii(str),str是空串時返回0

select ascii('a');

檢視ascii碼值對應的字元char(數字)

select char(97);

拼接字串concat(str1,str2...)

select concat(12,34,'ab');

包含字元個數length(str)

select length('abc');

擷取字串

left(str,len)返回字串str的左端len個字元

right(str,len)返回字串str的右端len個字元

substring(str,pos,len)返回字串str的位置pos起len個字元

select substring('abc123',2,3);

去除空格

ltrim(str)返回刪除了左空格的字串str

rtrim(str)返回刪除了右空格的字串str

trim([方向 remstr from str)返回從某側刪除remstr後的字串str,方向詞包括both、leading、trailing,表示兩側、左、右

select trim(' bar ');

select trim(leading 'x' from '***bar***');

select trim(both 'x' from '***bar***');

select trim(trailing 'x' from '***bar***');

返回由n個空格字元組成的乙個字串space(n)

select space(10);

替換字串replace(str,from_str,to_str)

select replace('abc123','123','def');

大小寫轉換,函式如下

lower(str)

upper(str)

select lower('abcd');

數學函式

求絕對值abs(n)

select abs(-32);

求m除以n的餘數mod(m,n),同運算子%

select mod(10,3);

select 10%3;

地板floor(n),表示不大於n的最大整數

select floor(2.3);

天花板ceiling(n),表示不小於n的最大整數

select ceiling(2.3);

求四捨五入值round(n,d),n表示原數,d表示小數字置,預設為0

select round(1.6);

求x的y次冪pow(x,y)

select pow(2,3);

獲取圓周率pi()

select pi();

隨機數rand(),值為0-1.0的浮點數

select rand();

日期時間函式

獲取子值,值為整數型別,函式如下

year(date)返回date的年份(範圍在1000到9999)

month(date)返回date中的月份數值

day(date)返回date中的日期數值

hour(time)返回time的小時數(範圍是0到23)

minute(time)返回time的分鐘數(範圍是0到59)

second(time)返回time的秒數(範圍是0到59)

select year('2016-12-21');

日期計算,使用+-運算子,數字後面的關鍵字為year、month、day、hour、minute、second

select '2016-12-21'+interval 1 day;

日期格式化date_format(date,format)

引數format可選值如下

%y 獲取年,返回完整年份

%y 獲取年,返回簡寫年份

%m 獲取月,返回月份

%d 獲取日,返回天值

%h 獲取時,返回24進製的小時數

%h 獲取時,返回12進製的小時數

%i 獲取分,返回分鐘數

%s 獲取秒,返回秒數

示例如下:將使用-拼接的日期轉換為使用空格拼接

select date_format('2016-12-21','%y %m %d');

當前日期current_date()

select current_date();

當前時間current_time()

select current_time();

當前日期時間now()

select now();

型別轉換函式

有cast和convert兩個函式

語法如下:

cast(value as type)

convert(value, type)

value表示要轉換的值

type表示目標型別

目標型別如下:

二進位制binary

字元型char,可指定字元個數如char(10)

日期date

時間time

日期時間型datetime

浮點數decimal

整數signed

無符號整數unsigned

例流程控制

類似於python中的if語句,進行選擇判斷

case語法1:等值判斷

說明:當值等於某個比較值的時候,對應的結果會被返回;如果所有的比較值都不相等則返回else的結果;如果沒有else並且所有比較值都不相等則返回null

case 值 when 比較值1 then 結果1 when 比較值2 then 結果2 ... else 結果 end

例:select case 1 when 1 then 'one' when 2 then 'two' else 'zero' end as result;

case語法2:非等值判斷,可以進行》、

說明:當某個條件返回true時,對應的結果被返回;如果所有的條件都不返回true則返回else的結果;如果沒有else並且所有條件都不返回true則返回null

case when 條件1 then 結果1 when 條件2 then 結果2 ... else 結果 end

例:select case when 1>2 then 'part1' when 3>2 then 'part2' else 'part3' end as result;

if語句

說明:如果表示式的結果為true,則返回結果1,否則返回結果2

if(表示式,結果1,結果2)

例:select if(1>2,2,3) as result;

ifnull語句

說明:如果表示式1不為null,則返回表示式1的結果,否則返回表示式2的結果

ifnull(表示式1,表示式2)

例:select ifnull(1,0) as result;

nullif語句

說明:如果表示式1等於表示式2,則返回null,否則返回表示式1的結果

nullif(表示式1,表示式2)

例:select nullif(1,0) as result;

mysql 鎖等待表 MySQL表的鎖等待

今天線上業務遇到乙個問題,因為一張模擬自增序列的表被鎖住,涉及該錶的業務受到影響。線上情況 1 這個表只有乙個id欄位。今天線上業務遇到乙個問題,因為一張模擬自增序列的表被鎖住,涉及該錶的業務受到影響。線上情況 1 這個表只有乙個id欄位。2 id欄位為主鍵索引 3 該錶只有一行資料,記錄全域性最大...

mysql 儲存過程 等待 MySql學習

mysql學習筆記 mysql資料庫儲存引擎 myism myisam儲存引擎 不支援事務 也不支援外來鍵,優勢是訪問速度快,對事務完整性沒有 要求或者以select,insert為主的應用基本上可以用這個引擎來建立表 innodb 支援事務 memory memory儲存引擎使用存在於記憶體中的內...

MySQL找出鎖等待

1.伺服器級別的鎖等待 可以通過show processlist看到等待鎖的執行緒id,但是無法知道究竟哪個執行緒持有鎖 可以通過mysqladmin debug 相關等待鎖的執行緒以及誰持有鎖可以在錯誤日誌中找到 2.儲存引擎層的鎖等待則比較麻煩,以下是innodb儲存引擎中鎖等待以及哪個執行緒持...