MySQL 中的運算符和常用函數

MySQL學習筆記(3)

運算符

類型:算術、比較、邏輯和位運算符

  • 算術運算符
運算符 注解
+ 加法
- 減法
* 乘法
/ 除法,除數為0,返回結果NULL
% 取商
  • 比較運算符
運算符 注解
= 等于,不能用于NULL比較
<>或!= 不等于,不能用于NULL比較
<=> NULL安全的等于,可用于NULL比較
<
<=
>
>=
BETWEEN 存在于指定范圍(>= and <=)
IN 存在于指定集合
IS NULL
IS NOT NULL
LIKE 模糊匹配(“*”匹配一個,“%”匹配多個)
REGEXP或RLIKE 正則匹配,用法類似于LIKE

比較運算符可比較數字、字符串和表達式。數字作浮點數比較,字符串以不區分大小寫的方式比較。

  • 邏輯運算符
運算符 注解
NOT ! 非,但NOT NULL返回值為NULL
AND &&
OR
XOR 異或
  • 位運算符
運算符 注解
& 位于
位或
^ 位亦或
~ 位取反(~1)
>> 位右移
<< 位左移

常用函數

  • 字符串函數
函數 功能
CONCAT(S1,S2,...Sn) 連接S1,S2,...Sn字符串,于NULL連接返回NULL
INSERT(str,x,y,instr) 將字符串str從第x位置開始,y個字符長的字符串替換為字符串instr
LOWER(str) 轉為小寫
UPPER(str) 轉為大寫
LEFT(str,x) 返回str最左邊的x個字符,第二個參數為NULL將不返回任何字符串
RIGHT(str,x) 最右邊x個字符
LPAD(str,n,pad) 用字符串pad對str最左邊進行填充,知道長度為n個字符
RPAD(str,n,pad) 對str最右邊
LTRIM(str) 去掉字符串str左側空格
RTRIM(str) 去掉右側空格
REPEAT(str,x) 返回str重復x次結果
REPLACE(str,a,b) 用b替換str中所有出現的a
STRCMP(s1,s2) 比較s1和s2,比較ASCII碼大小
TRIM(str) 去掉行尾和頭的空格
SUBSTRING(str,x,y) 返回str從x起到y個字符字符串的長度
  • 數值函數
函數 功能
ABS(x) 絕對值
CEIL(x) 大于x的最小整數
FLOOR(x) 小于x的最大整數
MOD(x,y) x/y的模
RAND() 0~1內隨機值
ROUND(x,y) 四舍五入
TRUNCATE(x,y) x截斷為y位小數
  • 日期和時間函數(重要)
函數 功能
CURDATE() 當前日期
CURTIME() 當前時間
NOW() 當前日期和時間
UNIX_TIMESTAMP(date) 日期date的UNIX時間戳
FROM_UNIXTIME(timestamp) UNIX時間戳的日期值
WEEK(date) 返回date為一年中的第幾周
YEAR(date) date的年份
HOUR(time) time的小時值
MINUTE(time) time的分鐘值
MONTHNAME(date) date的月份名
DATE_FORMAT(date,fmt) 格式化date
DATE_ADD(date,INTERVAL expr type) 一個日期或時間加上一個時間間隔的時間值
DATEDIFF(expr,expr2) 返回expr和expr2之間的天數
  • mysql時間相加表達式類型 DATE_ADD(date,INTERVAL expr type)
表達式類型 描述 格式
HOUR 小時 hh
MINUTE mm
SECOND ss
YEAR YY
MONTH MM
DAY DD
YEAR_MONTH 年和月 YY_MM
DAY_HOUR 日和小時 DD hh
DAY_MINUTE 日和分鐘 DD hh:mm
DAY_SECOND 日和秒 DD hh:mm:ss
HOUR_MINUTE 小時和分 hh:mm
HOUR_SECOND 小時和秒 hh:ss
MINUTE_SECOND 分鐘和秒 mm:ss
select now() current,date_add(now(),INTERVAL 31 day) after31days,date_add(now(),INTERVAL '1_2' year_month) after_oneyear_twomonth;

select now() current,date_add(now(),interval -31 day) after31days,date_add(now(),interval '-1_-2' year_month) after_oneyear_twomonth;

mysql的日期函數在程序需要處理日期間隔,加減時還是很實用的。日期字符串雖然可以直接比較。

  • 流程函數
函數 功能
IF(value,t f) value為真返回t,否則返回f
IFNULL(value1,value2) value1不為空返回value1,否則value2
CASE WHEN [value1] THEN [result1]...ELSE[default] END value1是真返回result1,否則default
CASE [expr] WHEN [value1] THEN [result1]...ELSE[default] END expr等于value1返回result1,否則default

-其他函數

函數 功能
VERSION() 返回數據庫版本
USER() 當前登錄用戶名
INET_ATON(IP) IP地址的數字表示
INET_NTOA(num) 數字代表的IP地址,比較IP地址時使用
PASSWORD(str) 字符串str的加密版本
MD5() 字符串str的MD5值

遇到不明白的函數時記得使用終極大招 ? func_name

[Github傳送門][1]
[1]: https://github.com/Melody12ab/db_mysql_note

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • PHP常用函數大全 usleep() 函數延遲代碼執行若干微秒。 unpack() 函數從二進制字符串對數據進行解...
    上街買菜丶迷倒老太閱讀 1,381評論 0 20
  • php usleep() 函數延遲代碼執行若干微秒。 unpack() 函數從二進制字符串對數據進行解包。 uni...
    思夢PHP閱讀 2,002評論 1 24
  • 回顧和概述# 子查詢出現在其他SQL語句中的SELECT子句,必須要出現在小括號內,子查詢的外層可以是常見的SEL...
    齊天大圣李圣杰閱讀 646評論 0 0
  • 1.簡介 數據存儲有哪些方式?電子表格,紙質文件,數據庫。 那么究竟什么是關系型數據庫? 目前對數據庫的分類主要是...
    喬震閱讀 1,776評論 0 2
  • 她半邊身子藏在門背后,探頭出來看是我,便把我讓進了屋。 是的,她是我生命中的月亮。 在昆明的早晨起來仿佛是件很艱難...
    慕水閱讀 414評論 5 14