MySQL 尚矽谷 筆記3

2021-10-04 02:02:47 字數 4649 閱讀 5647

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...