1.length 獲取引數值的位元組個數(utf-8乙個漢字代表3個位元組,gbk為2個位元組)
select length(
'john');
select length(
'張三丰hahaha'
);
2.concat 拼接字串
select concat(last_name,
'_',first_name) 姓名 from employees;
3.upper、lower
select upper(
'john');
select lower(
'john'
);
4.substr、substring
注意:索引從1開始
# 擷取從指定索引處後面所有字元
select substr(
'李莫愁愛上了陸展元',7
) out_put;
# 擷取從指定索引處指定字元長度的字元
select substr(
'李莫愁愛上了陸展元',1
,3) out_put;
5.instr 返回子串第一次出現的索引,如果找不到返回0
select instr(
'楊不殷六俠悔愛上了殷六俠'
,'殷八俠'
)as out_put;
6.trim
select length(trim(
' 張翠山 '))
as out_put;
7.lpad 用指定的字元實現左填充指定長度
select lpad(
'殷素素',2
,'*'
)as out_put;
8.rpad 用指定的字元實現右填充指定長度
select rpad(
'殷素素',12
,'ab'
)as out_put;
9.replace 替換
select
replace
('周芷若周芷若周芷若周芷若張無忌愛上了周芷若'
,'周芷若'
,'趙敏'
)as out_put;
round 四捨五入
select
round(-
1.55);
select
round
(1.567,2
);
ceil 向上取整,返回》=該引數的最小整數
select ceil(
-1.02
);
floor 向下取整,返回<=該引數的最大整數
select floor(
-9.99
);
truncate 截斷
select
truncate
(1.69999,1
);
mod取餘
select
mod(10,
-3);
select10%
3;
now 返回當前系統日期+時間
select
now(
);
curdate 返回當前系統日期,不包含時間
select curdate(
);
curtime 返回當前時間,不包含日期
select curtime(
);
可以獲取指定的部分,年、月、日、小時、分鐘、秒
select
year
(now()
) 年;
select
year
('1998-1-1'
) 年;
select
year
(hiredate) 年 from employees;
select
month
(now()
) 月;
select monthname(
now(
)) 月;
str_to_date 將字元通過指定的格式轉換成日期
select str_to_date(
'1998-3-2'
,'%y-%c-%d'
)as out_put;
查詢入職日期為1992–4-3的員工資訊
select
*from employees where hiredate =
'1992-4-3'
;select
*from employees where hiredate = str_to_date(
'4-3 1992'
,'%c-%d %y'
);
date_format 將日期轉換成字元
select date_format(
now(),
'%y年%m月%d日'
)as out_put;
查詢有獎金的員工名和入職日期(xx月/xx日 xx年)
select last_name,date_format(hiredate,
'%m月/%d日 %y年'
) 入職日期
from employees
where commission_pct is
notnull
;
select version();
select
database()
;select
user()
;
** 1.if函式: if else 的效果**
selectif(
10<5,
'大',
'小')
;select last_name,commission_pct,
if(commission_pct is
null
,'沒獎金,呵呵'
,'有獎金,嘻嘻'
) 備註
from employees;
2.case函式的使用一: switch case 的效果
case 要判斷的字段或表示式
when 常量1
then 要顯示的值1或語句1
;when 常量2
then 要顯示的值2或語句2;.
..else 要顯示的值n或語句n;
end
select salary 原始工資,department_id,
case department_id
when
30then salary*
1.1when
40then salary*
1.2when
50then salary*
1.3else salary
endas 新工資
from employees;
3.case 函式的使用二:類似於 多重if
case
when 條件1
then 要顯示的值1或語句1
when 條件2
then 要顯示的值2或語句2
。。。else 要顯示的值n或語句n
end
select salary,
case
when salary>
20000
then
'a'when salary>
15000
then
'b'when salary>
10000
then
'c'else
'd'end
as 工資級別
from employees;
MySQL 尚矽谷 筆記2
案例1 查詢工資 12000的員工資訊 select from employees where salary 12000 案例2 查詢部門編號不等於90號的員工名和部門編號 select last name,department id from employees where department ...
MySQL 尚矽谷 筆記5
語法 select 查詢列表 from 表名 where 篩選條件 order by 排序的字段或表示式 特點 1 asc代表的是公升序,可以省略 desc代表的是降序 2 order by子句可以支援 單個字段 別名 表示式 函式 多個字段 3 order by子句在查詢語句的最後面,除了limi...
MySQL 尚矽谷 學習筆記1
使用資料庫 use myemployees 1.查詢表中的單個字段 select last name from employees 2.查詢表中的多個字段 select last name,salary,email from employees 3.查詢表中的所有字段 方式1 select empl...