濟(jì)南網(wǎng)站制作多少錢一個(gè)手機(jī)優(yōu)化軟件排名
1.表達(dá)式
如:1+1,一般包含操作數(shù),運(yùn)算符。
_1.操作數(shù)
MYSQL中最常用的操作數(shù)有以下幾種
(1).常數(shù)
(2).列名,針對(duì)某個(gè)具體的表,它的列名可被當(dāng)作表達(dá)式的一部分
(3).函數(shù)調(diào)用
一個(gè)函數(shù)用于完成某個(gè)特定的功能。比如NOW()獲取當(dāng)前時(shí)間。
(4).其他表達(dá)式
一個(gè)表達(dá)式也可作為一個(gè)操作數(shù)與另一個(gè)操作數(shù)形成一個(gè)更復(fù)雜的形式。
_2.運(yùn)算符
常用的有
(1).算術(shù)運(yùn)算符
運(yùn)算符 | 示例 | 描述 |
---|---|---|
+ | a+b | 加法 |
- | a-b | 減法 |
* | a*b | 乘法 |
/ | a/b | 除法 |
DIV | a DIV b | 除法,取商的整數(shù)部分 |
% | a%b | 取余 |
- | -a | 取負(fù)值 |
DIV取商的整數(shù)部分,/會(huì)保留小數(shù)部分。
(2).比較運(yùn)算符
運(yùn)算符 | 示例 | 解釋 |
---|---|---|
= | a=b | 等于 |
<=> | a<=>b | 等于(NULL值安全等于) |
<>或!= | a<>b | 不等于 |
< | a<b | 小于 |
<= | a<=b | 小于或等于 |
> | a>b | 大于 |
>= | a>=b | 大于等于 |
BETWEEN | a BETWEEN b AND c | a需滿足b<=a<=c |
NOT BETWEEN | a NOT BETWEEN b AND c | a需不滿足b<=a<=c |
IN | a IN (b1, b2) | a是b1,b2中的某個(gè) |
NOT IN | a NOT IN (b1, b2, b3) | a不是b1,b2中的某個(gè) |
IS NULL | a IS NULL | |
IS NOT NULL | a IS NOT NULL | |
LIKE | a LIKE b | a匹配b |
NOT LIKE | a NOT LIKE b | 不匹配 |
比較表達(dá)式結(jié)果要么1(TRUE),要么0(FALSE)
(3).邏輯運(yùn)算符
運(yùn)算符 | 示例 | 描述 |
---|---|---|
NOT(也可寫作!) | NOT a | 對(duì)a取反 |
AND(也可寫作&&) | a AND b | |
OR(也可寫作 | ) | |
XOR | a XOR b | a和b有且只有一個(gè)為真時(shí),表達(dá)式為真 |
_3.表達(dá)式的使用
_3.1.作為計(jì)算字段放在SELECT子句中
如:SELECT number, score+100 FROM student_score;
還有像這樣的:SELECT 1, ‘a(chǎn)’ FROM student_score;
查詢處理為:
(1).基于FROM結(jié)合WHERE得到結(jié)果集。
(2).對(duì)結(jié)果集每一行結(jié)合SELECT語句得到最終集中一行結(jié)果。
_3.2.作為搜索條件放在WHERE子句
基于FROME結(jié)合WHERE得到結(jié)果集時(shí),對(duì)FROM得到表的每一行采用WHERE表達(dá)式,結(jié)果為TRUE,此行加入結(jié)果集。
_3.3.表達(dá)式中的NULL
_3.3.1.NULL作為算術(shù)符的操作數(shù)時(shí),表達(dá)式的結(jié)果都為NULL
如:1+NULL結(jié)果是NULL,NULL*1結(jié)果也是NULL
_3.3.2.除<=>、IS NULL、IS NOT NULL外,NULL作為其余比較運(yùn)算符的操作數(shù)時(shí),表達(dá)式的結(jié)果都為NULL。
如:1=NULL結(jié)果是NULL,2>NULL結(jié)果是NULL。
IS NULL,IS NOT NULL用于判斷某個(gè)值是否為NULL,結(jié)果只能是0或1。
<=>的操作數(shù)不包含NULL時(shí),等價(jià)于=;當(dāng)<=>的一個(gè)操作數(shù)為NULL,另一個(gè)不為NULL時(shí),結(jié)果為0;兩個(gè)操作數(shù)都為NULL時(shí),結(jié)果為1;
2.函數(shù)
_1.字符串處理函數(shù)
名稱 | 調(diào)用示例 | 結(jié)果 | 描述 |
---|---|---|---|
LEFT | LEFT(‘a(chǎn)bc123’, 3) | abc | 提取左邊指定長度串 |
RIGHT | RIGHT(‘a(chǎn)bc123’, 3) | 123 | |
LENGTH | LENGTH(‘a(chǎn)bc’) | 3 | |
LOWER | LOWER(‘ABC’) | abc | |
UPPER | UPPER(‘a(chǎn)bc’) | ABC | |
LTRIM | LTRIM(’ abc’) | abc | |
RTRIM | RTRIM('abc ') | abc | |
SUBSTRING | SUBSTRING(‘a(chǎn)bc123’, 2, 3) | bc1 | |
CONCAT | CONCAT(‘a(chǎn)bc’, ‘123’, ‘xyz’) | abc123xyz | |
CHAR_LENGTH | CHAR_LENGTH(‘狗哥’) | 2 | 給定字符串的字符數(shù)量 |
_2.日期和時(shí)間處理函數(shù)
名稱 | 示例 | 結(jié)果 | 描述 |
---|---|---|---|
NOW | NOW() | 2021-05-11 17:10:43 | 當(dāng)前日期和時(shí)間 |
CURDATE | CURDATE() | 2021-05-11 | |
CURTIME | CURTIME() | 17:10:43 | |
DATE | DATE(‘2021-05-11 17:10:43’) | 2021-05-11 | 將給定日期和時(shí)間值的日期提取出來 |
DATE_ADD | DATE_ADD(‘2021-05-11 17:10:43’, INTERVAL 2 DAY) | 2021-05-13 17:10:43 | |
DATE_SUB | DATE_SUB(‘2021-05-11 17:10:43’, INTERVAL 2 DAY) | 2021-05-09 17:10:43 | |
DATEDIFF | DATEDIFF(‘2021-05-11’, ‘2021-05-17’) | -6 | |
DATE_FORMAT | DATE_FORMAT(NOW(), ‘%m-%d-%Y’) | 05-11-2021 | |
YEAR | YEAR(‘2021-05-11 17:10:43’) | 2021 | |
MONTH | MONTH(‘2021-05-11 17:10:43’) | 5 | |
DAY | DAY(‘2021-05-11 17:10:43’) | 11 | |
HOUR | HOUR(‘2021-05-11 17:10:43’) | 17 | |
MINUTE | MINUTE(‘2021-05-11 17:10:43’) | 10 | |
SECOND | SECOND(‘2021-05-11 17:10:43’) | 43 |
_2.1.使用DATE_ADD,DATE_SUB時(shí),可自定義增加或減去的時(shí)間間隔的單位。
單位 | 描述 |
---|---|
MICROSECOND | 毫秒 |
SECOND | 秒 |
MINUTE | 分鐘 |
HOUR | 小時(shí) |
DAY | 天 |
WEEK | 星期 |
MONTH | 月 |
QUARTER | 季度 |
YEAR | 年 |
如:SELECT DATE_ADD(‘2021-05-11 17:10:43’, INTERVAL 2 MINUTE)
_2.2.使用DATE_FORMAT需注意,可通過一些所謂的格式符來自定義日期和時(shí)間的顯示格式。
格式符 | 含義 |
---|---|
%b | 簡(jiǎn)寫的月份名稱(Jan、、、) |
%D | 帶英文后綴的月份中的日期(0th,1st,…) |
%d | 數(shù)字格式的月份中的日期(00,01,…) |
%f | 微妙(000000~999999) |
%H | 24小時(shí)制的小時(shí)(00~23) |
%h | 12小時(shí)制的小時(shí)(01~12) |
%i | 數(shù)值格式的分鐘(00~59) |
%M | 月份名(January,…) |
%m | 數(shù)值形式的月份(00~12) |
%p | 上午或下午(AM代表上午,PM代表下午) |
%S | 秒(00~59) |
%s | 秒(00~59) |
%W | 星期名(Sunday,…) |
%w | 周內(nèi)第幾天(0=星期日,…) |
%Y | 4位數(shù)字形式的年(例如2019) |
%y | 2位數(shù)字形式的年(例如19) |
_2.3.數(shù)值處理函數(shù)
名稱 | 示例 | 結(jié)果 | 描述 |
---|---|---|---|
ABS | ABS(-1) | 1 | |
Pi | PI() | 3.141593 | |
COS | COS(PI()) | -1 | |
SIN | SIN(PI()) | 1 | |
TAN | TAN(0) | 0 | |
POW | POW(2, 2) | 4 | |
SQRT | SQRT(9) | 3 | |
MOD | MOD(5, 2) | 1 | |
RAND | RAND() | 0.7537623539136372 | |
CEIL | CEIL(2.3) | 3 | |
FLOOR | FLOOR(2.3) | 2 |
_2.4.流程控制表達(dá)式和函數(shù)
CASE WHEN 表達(dá)式1 THEN 結(jié)果1 [WHEN 表達(dá)式1 THEN 結(jié)果1 …] [ELSE 默認(rèn)結(jié)果] END
如:SELECT number, score, CASE WHEN score < 60 THEN ‘不及格’ WHEN score < 90 THEN ‘及格’ ELSE ‘優(yōu)秀’ END As level FROM student_score;
CASE表達(dá)式還有第二種形式:
CASE 待比較表達(dá)式 WHEN 表達(dá)式1 THEN 結(jié)果1 [WHEN 表達(dá)式2 THEN 結(jié)果2 …] [ELSE 默認(rèn)結(jié)果] END
它的含義是:
(1).待比較表達(dá)式值和表達(dá)式1值相同時(shí),整個(gè)CASE值是結(jié)果1
(2).待比較表達(dá)式值和表達(dá)式2值相同時(shí),整個(gè)CASE值是結(jié)果2
…
(3).待比較表達(dá)式值和所有WHEN后的表達(dá)式值都不同,則整個(gè)CASE表達(dá)式的值就是ELSE之后的默認(rèn)結(jié)果。
如:SELECT name, department, CASE deparement WHEN ‘計(jì)算機(jī)學(xué)院’ THEN ‘1級(jí)學(xué)科’ WHEN ‘航天學(xué)院’ THEN ‘2級(jí)學(xué)科’ END AS 學(xué)院類別 FROM student_info;