SELECT操作符
# 獲取products表中最貴的商品價(jià)格
# DESC 表示降序,ASC表示升序(默認(rèn)值)
SELECT prod_name, prod_price
FROM products
ORDER BY prod_name
DESC LIMIT 1;
WHERE操作符
#檢索價(jià)格小于等于10美元的所有產(chǎn)品
SELECT prod_name, prod_price
FROM products
WHERE prod_price <= 10;
#如果將值與字符串類型的列進(jìn)行比較,則需要限定引號。用來與數(shù)值列進(jìn)行比較的值不用引號.
#檢索名字為fuces的商品
SELECT prod_name, prod_price
FROM products
WHERE prod_name = 'fuses';
# 檢索價(jià)格在5美元和10美元之間或日期在指 定的開始日期和結(jié)束日期之間的所有產(chǎn)品
SELECT prod_name, prod_price
FROM products
WHERE prod_price BETWEEN 5 AND 10;
# 空值檢測。SELECT語句有一個(gè)特殊的WHERE子句,可用來檢查具有NULL值的列。 這個(gè)WHERE子句就是IS NULL子句。
# 返回沒有價(jià)格(空prod_price字段,不是價(jià)格為0)的所有產(chǎn)品
SELECT prod_name, prod_price
FROM products
WHERE prod_price IS NULL;
OR AND IN操作符
# 檢索由1002或者1003供應(yīng)商制造的所有產(chǎn)品的產(chǎn)品名和價(jià)格
SELECT prod_name, prod_price
FROM products
WHERE vend_id = 1002 OR vend_id = 1003;
# 選擇由供應(yīng)商1002或1003制造的且價(jià)格都在10美元(含)以上的任何產(chǎn)品
SELECT prod_name, prod_price
FROM products
WHERE (vend_id = 1002 OR vend_id = 1003) AND prod_price >= 10;
# 檢索供應(yīng)商1002和1003制造的所有產(chǎn)品(IN取合法值的由逗號分隔的清單,全都括在圓括號中)
SELECT prod_name, prod_price
FROM products
WHERE vend_id IN (1002, 1003)
OEDER BY prod_name;
NOT操作符
WHERE子句中用來否定后跟條件的關(guān)鍵字
# 列出除1002和1003之外的所有供應(yīng) 商制造的產(chǎn)品
SELECT prod_name, prod_price
FROM products
WHERE vend_id NOT IN (1002, 1003)
OEDER BY prod_name;
LIKE操作符
百分號通配符
匹配給定位置的0個(gè)、1個(gè)或多個(gè)字符
# 找出所有以詞jet起頭的產(chǎn)品
SELECT prod_name, prod_price
FROM products
WHERE prod_name LIKE 'jet%';
# 匹配任何位置包含文本anvil的值,而不論它之前或之后出現(xiàn)什么字符
SELECT prod_name, prod_price
FROM products
WHERE prod_name LIKE '%anvil%';
注意:尾空格可能會(huì)干擾通配符匹配。例如,在保存詞anvil 時(shí) , 如果它后面有一個(gè)或多個(gè)空格 ,則子句 WHERE prod_name LIKE '%anvil'將不會(huì)匹配它們,因?yàn)樵谧詈蟮膌后有多余的字符。解決這個(gè)問題的一個(gè)簡單的辦法是在搜索模式最后附加一個(gè)%。
注意:%不能匹配null值,即WHERE prod_name LIKE '%'不能匹配用值NULL作為產(chǎn)品名的行
下劃線通配符
下劃線的用途與%一樣,但下劃線只匹配單個(gè)字符而不是多個(gè)字符。
SELECT prod_name, prod_price
FROM products
WHERE prod_name LIKE '_ ton anvil';
可以匹配 prod_name為 1 ton anvil
,2 ton anvil
的商品, 不能匹配為12 ton anvil
的商品。
正則匹配
正則匹配模式?jīng)]有完全實(shí)現(xiàn)REGEXP的語法,他支持下面這幾種匹配方式
# 匹配連在一起的4位數(shù)字
SELECT prod_name, prod_price
FROM products
WHERE prod_name REGEXP '[[:digit:]]{4}';
# \表示轉(zhuǎn)義字符,mysql要用兩個(gè)斜杠,一個(gè)被用于mysql的解釋器,一個(gè)用于REGEXP的解釋器
SELECT prod_name, prod_price
FROM products
WHERE prod_name REGEXP '\([0-9] sticks?\)'
ORDER BY prod_name;
# TNT (1 stick)
# TNT (2 sticks)
計(jì)算字段
計(jì)算字段類似mongodb中的虛擬字段,后段把拼裝好的字段供前端消費(fèi)。mysql使用Concat函數(shù)拼接字段
# Concat中多個(gè)字符串之間用逗號分隔
SELECT Concat(vend_name, '(', vend_country, ')' AS vend_title
FROM vendors
ORDER BY vend_name;
# 結(jié)果:Jet Set(USA)
算術(shù)計(jì)算
SQL支持加減乘除運(yùn)算
# 輸出中顯示的 expanded_price 列為一個(gè)計(jì)算字段, 此計(jì)算為 quantity*item_price
SELECT prod_id, item_price, quantity, quantity*item_price AS expanded_price
FROM orderitems
WHERE order_num = 20005;
本文摘自 :https://www.cnblogs.com/