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儲存引擎中鎖等待以及哪個執行緒持...