【資料分析師_02_SQL+MySQL】015_MySQL資料處理函式
阿新 • • 發佈:2020-12-20
MySQL資料處理函式
資料處理函式
1 UPPER / LOWER(大小寫轉換)
select vend_name, UPPER(vend_name) as vend_name_upper from vendors;
select vend_name, LOWER(vend_name) as vend_name_lower from vendors;
2 LTRIM / RTRIM(去左/右側空格)
select vend_name, LTRIM(vend_name) from vendors;
select vend_name, RTRIM(vend_name) from vendors;
3 SUBSTRING(字串截位)
select vend_name, substr(vend_name, 1, 5) from vendors; # 這裡和python不一樣,從1開始
select vend_name, substr(vend_name, -5, 5) from vendors; # 選取最後5個字元
4 SOUNDEX(英文發音匹配,沒啥用)
比如資料庫中有一個叫 ‘Y Lee’ 的人,可以在SOUNDEX函式裡用 ‘Y Li’ 來找。
select * from customers where
SOUNDEX(cust_contact) = SOUNDEX('Y Li' ) ;
5 日期和時間的處理
5.1 曲線救國
select * from orders where order_date > '2005-09-01'
and order_date < '2005-09-02' ;
5.2 DATE函式
select * from orders where Date(order_date)
between '2005-09-01' and '2005-09-30' ; # 找到9月所有的訂單
select * from orders where Date(order_date) = '2005-09-01' ; # 找到2005-09-01所有的訂單
5.3 YEAR,MONTH,DAY函式(取出年/月/日資料)
select * from orders where
YEAR(order_date) = 2005 # 注意這裡是int型別不是str
and MONTH(order_date) = 9
and DAY(order_date) = 1 ; # 找到2005-09-01所有的訂單
5.4 CURRENT_DATE,CURRENT_TIME函式(當前)
select current_date() ;
select current_time() ; # 不加括號也可以
5.5 ADDDATE,ADDTIME函式(後推日期/時間)
SELECT ADDDATE('2020-02-02', 5) ;
5.6 DATEDIFF函式(計算日期差)
select DATEDIFF('2020-02-01', '2020-01-01') ; # 遲的日期在前
6 MOD,POW函式(取餘/幾次方)
select MOD(5, 2) ;
select POW(5, 2) ; # 5的平方
7 CEIL,FLOOR,ROUND函式(約等於合集)
select CEIL(1.1) ;
select FLOOR(1.9) ;
select ROUND(1.1) ;
8 RAND函式(隨機)
select RAND() ;