Mysql之運算符與函數(shù)的總結(jié)

本文給大家匯總介紹了mysql中的常用的運算符以及常用函數(shù)的用法及示例,非常的全面,有需要的小伙伴可以參考下

我們先來看個示例

use?test;  create?table?`employee`(  ??emp_no?int?unsigned,  ??emp_name?varchar(30),  ??emp_sex?varchar(3),  ??emp_age?tinyint?unsigned,  ??sal?double,  ??history?datetime  );  insert?into?employee?values(1,?'張三',?'男',?18,?5000,?'2012-04-23'),  (2,?'李四',?'男',?27,?4500,?'2013-05-23'),  (3,?'王五',?'男',?23,?4700,?'2012-04-21'),  (4,?'子龍',?'男',?19,?3800,?'2011-03-04'),  (5,?'李白',?'男',?15,?6200,?'2015-09-09'),  (6,?'劉備',?'男',?28,?2500,?'2016-02-11'),  (7,?'呂布',?'男',?21,?6000,?'2010-10-18'),  (8,?'尚香',?'女',?16,?4500,?'2011-09-26'),  (9,?'小喬',?'女',?15,?null,?'2013-07-05'),  (10,?'大喬',?'女',?16,?5000,?'2017-09-01');

常用的運算符:
1: 等于( = )

??select?*?from?employee?where?sal?=?3800;  ??select?*?from?employee?where?sal?=?null;???--這里查詢不到為null的數(shù)據(jù)

2: 等于( )

??select?*?from?employee?where?sal??3800;  ??select?*?from?employee?where?sal??null;??--這里可以查詢到為null的數(shù)據(jù)

3: is判斷(null)

??select?*?from?employee?where?sal?is?null;  ??select?*?from?employee?where?sal?is?not?null;

4: null值判斷還可以使用isnull();

??select?*?from?employee?where?isnull(sal);  ??select?*?from?employee?where?!isnull(sal);

5: 在區(qū)間(between)內(nèi)? between min and max? ps:這里是一個閉區(qū)間

select?*?from?employee?where?sal?between?4500?and?5000;

6: 不在區(qū)間內(nèi)

select?*?from?employee?where?sal?not?between?4500?and?5000;  ??--null不為包括進(jìn)去

7: and 和 or

??select?*?from?employee?where?sal?not?between?4500?and?5000?or?sal?is?null;  ??select?*?from?employee?where?sal?=?4500?and?emp_sex?=?'女';

8: 小于(), 小于等于(=)

select?*?from?employee?where?sal?>=?4500;

***************************************************************************************************************

數(shù)學(xué)函數(shù)
1: rand();

??select?rand()?from?dual;??--dual是一個偽表  ??select?1+1?from?dual;  ??select?rand();??--可以簡寫

2: least(value1, value2, …) 返回最小值

??select?least(54,76,4,65,76,87,87,56,65,654,45,23,1,76);  ??select?least(54,76,4,65,76,87,87,56,65,654,45,23,1,76)?as?min_value;??--列名可以起一個別名

3: greatest(value1, value2, …) 返回最大值

?select?greatest(54,76,4,65,76,87,87,56,65,654,45,23,1,76);

4: round(M, D); 返回M的四舍五入的值, D表示要保留幾們小數(shù),默認(rèn)值是0

??select?round(1.69);  ??select?round(1.69,?1);

5: abs() 絕對值

??select?5-10;  ??select?abs(5-10);

***************************************************************************************************************

匯總函數(shù)

1: avg();?

??select?*?from?employee?where?sal?>=?6000;  ??select?avg(sal)?from?employee?where?sal?>=?6000;

2: count()

??select?count(*)?from?employee;  ??select?count(emp_name)?from?employee;  ??select?count(sal)?from?employee;???--打印9?這里會忽略null值  ??select?count(*)?from?employee?where?sal?&gt;=?4000;  ??select?count(*)?from?employee?where?sal?<p>3: sum()<br></p><pre class="brush:sql;toolbar:false">select?sum(sal)?from?employee?where?sal?&gt;=?6000;

4: min()

?select?min(sal)?from?employee;

5: max()

?select?max(sal)?from?employee;

***************************************************************************************************************

日期函數(shù)

1: 獲取當(dāng)前的日期時間

??select?now(),?sysdate(),?current_timestamp();  ??select?now(6),?sysdate(6),?current_timestamp(6);  ??ps:?now(),?current_timestamp();沒有區(qū)別,?表示sql開始執(zhí)行時的時間  ????sysdate()表示這個函數(shù)開始時間

2: 獲取當(dāng)前日期

select?curdate();?  ??--只有年月日

3: 獲取當(dāng)前時間

select?curtime();?  ??--只有時分秒

4: 日期的加運算date_add?????

??select?history,?date_add(history,?interval?'1?12:10'?day_minute)?from?employee;??--date_add(history,?interval?'1?12:10'?day_minute)  ??select?history,?date_add(history,?interval?'1-1'?year_month)?from?employee;????--date_add(history,?interval?'1-1'?year_month)  ??select?history,?date_add(history,?interval?'1'?second)?from?employee;???????--date_add(history,?interval?'1'?second)

5: 日期的減運算data_sub

select?history,?date_sub(history,?interval?'1-1'?year_month)?from?employee;

6: 計算日期差

?select?history,?sysdate(),?datediff(sysdate(),?history)?from?employee;?????--以天數(shù)來表示

7: 獲取日期的指定部分(把日期轉(zhuǎn)換為指定的格式)? date_format()

??select?history,?date_format(history,?'%Y年%m月%d號')?from?employee;  ??select?history,?date_format(history,?'%d號')?from?employee;  ??select?history,?date_format(history,?'%Y年%m月%d號?%H時%i分%s秒')?from?employee;

8: 計算出一個日期是星期幾

select?history,?dayname(history)?from?employee;

9: 中文日期字符串轉(zhuǎn)換日期str_to_date()

??insert?into?employee?values(11,?'張飛',?'男',?22,?3000,?'2017年02月01號');??--報錯  ??insert?into?employee?values(11,?'張飛',?'男',?22,?3000,?str_to_date('2017年02月01號',?'%Y年%m月%d號?%H時%i分%s秒'));

??? insert into employee values(12, ‘二哥’, ‘男’, 22, 3000, str_to_date(‘2017年02月01號 23時02分02秒’, ‘%Y年%m月%d號 %H時%i分%s秒’));
??? insert into employee values(12, ‘二哥’, ‘男’, 22, 3000, str_to_date(‘2017年02月01號 11時02分02秒’, ‘%Y年%m月%d號 %h時%i分%s秒’));
??? ps: 如果是h則表示12小制, 如果是大H則表示24小明制;

字符串函數(shù)

1: left(str, len) 返回字符串str的左端len個字符

select?left('abcdefg',?5);

2: length()

select?length('abcdefg');

3: lower(str) 返回小寫的字符串str

?select?lower('HELLO');

4: substring() 取子字符串, 第二個參數(shù)是截取的起始位置, 第三個參數(shù)是要截取的長度

select?substring('helloworld',2,3);

5: concat() 字符串拼接

?select?concat(emp_name,?'員工')?from?employee;

6: replace(替換

select?replace(emp_name,?'李',?'老')?from?employee?where?emp_name?=?'李四';

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊8 分享