1.distinct關鍵字
作用:檢索出有不同值的列,比如一個商品表中存在供應商vend_id,一個供應商會對應很多商品,我們要查找有多少供應商,就可以用到該關鍵字去重。
select distinct vend_id from products;
2.limit關鍵字
作用:返回表中指定行范圍的數據
select prod_name from products limit 5; --返回不多於5行的數據
select prod_name from products limit 5,5; --返回從5行開始的5行。
關鍵字limit在分頁中應用較多,假設一個業務場景,每頁顯示10條數據,根據當前頁數顯示該頁數據,pc表示當前頁,則表中起始行 ts = pc*10-10+1
第一種方式:
select * from t_book limit ts,10
這樣當數據量很大時候,后面頁的數據需要跨越很多數據,我們可以采取第二中方式進行優化
第二種方式:
select * from t_book where book_id>(select t_id from t_book order by limit ts,1) limit 10
3.order by關鍵字
作用:對所查詢的列進行降序排列
select prod_name from products order by prod_name;
也可以對多列進行排序
select * from products order by prod_price,prod_name; --這樣只有當prod_price有相同的值時候,才會按prod_name排序
也可以在字段后加上DESC關鍵字進行指定降序排序
select prod_name from products order by prod_name desc;
order by 和 limit 組合可以查詢最大值
select prod_price from products order by prod_price DESC limit 1;
order by 和 where 語句連着使用時要放在where后面。
4.and 和 or 結合使用
應用場景:返回商品價格大於10元,且由1002或1003生產的產品
select * from products where (vend_id=1002 or vend_id=1003) and prod_price>=10;
5.IN 和 NOT IN
用 IN 可以代替 or
應用場景:假設1002和1003生產的商品
select * from products where vend_id = 1002 or vend_id = 1003; -- or方法
select * from products where vend_id in (1002,1003); -- in方法
select * from products where vend_id not in (1002,1003); -- not in方法查詢不是1002 和 1003 生產的商品
6. like 關鍵字
作用:進行一些模糊匹配,通常和一些通配符進行搭配查找
select * from products where prod_name like 'jet%' --匹配以jet開頭的字符
select * from products where prod_name like '%dcb%' --匹配任何位置包含dcb字符商品信息
select * from products where prod_name like '_jet' -- _匹配一個字符
select * from products where prod_name like '[jdk]%'; --匹配以 j , d , k ,開頭的商品 select * from products where prod_name like '[!jdk]%'; --匹配不以 j , d , k ,開頭的商品
7.update 關鍵字
作用:根據一些條件更新數據庫中的值
update products set prod_price = 100 where prod_name = jet; --修改商品名稱為jet商品價格
如果不加判斷會修改所有商品價格
8.union 關鍵字
UNION 操作符用於合並兩個或多個 SELECT 語句的結果集。
請注意,UNION 內部的每個 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的數據類型。同時,每個 SELECT 語句中的列的順序必須相同。
SELECT City FROM Customers UNION SELECT City FROM Suppliers ORDER BY City;
UNION 不能用於列出兩個表中所有的城市。如果一些客戶和供應商來自同一個城市,每個城市只會列出一次。UNION 只會選取不同的值。請使用 UNION ALL 來選取重復的值!
SELECT City FROM Customers UNION ALL SELECT City FROM Suppliers ORDER BY City;