前面談到了select的一些簡單的運用,此次會更進一步的學習select查詢。
包括:where條件限定查詢、範圍查詢、模糊查詢、查詢結果的排序.
where條件限定查詢
select *from emp where emp.deptno = 10;--查詢公寓號為10的所有員工 select *from emp where job='CLERK';--注意CLERK是大小寫敏感的
我們知道Condition由列名運算式,常量和比較操作符組成,那麼都有哪些比較操作符呢?
常用比較操作符
以上各個比較操作符就不一一嘗試了!以後會遇到的。
範圍查詢(Between and)
現實中我們有這種需求,需要查詢一個資料區段,這就可以使用between and實現了
--查詢工資在4000-8000的員工 select *from emp where sal between 4000 and 8000;
Tips:這裡需要注意的是between 後面要先寫低值後寫高值,不然語句不會錯
但是不可能查詢到結果!
模糊查詢(Like 、Not Like)
like 模糊查詢一般是針對字元匹配操作的。 字元匹配操作可以使用萬用字元 “%” 和 “_”:
%:表示任意個字元,包括零個; _:表示一個任一字元;
簡單例子:
select *from emp where ename like '_M%';--查詢名字的第二個字元為"M"的員工
不過這裡需要思考的是:如果我們需要查詢的字串中存在“%”、“-”之類的情況又如何呢?
解決辦法:
使用escape
簡單例子:
insert into emp(Ename,Empno) VALUES('K%iritor',100);--人為的插入一條語句 select *from emp where ename like 'K/%iritor' escape '/' ;
通過escape加上“/”逸出字元(逸出字元可以自己任意指定),將逸出字元後面的字元
轉義為原來的字元,其中逸出字元的指定和使用者需要查詢的欄位的值有關。
至於not like就不做過多示範了!
結果排序
ASC:升序排序,預設的。
select *from emp order by sal;
DESC:降序排序
select *from emp order by sal;
以上都是針對單列進行排序如何針對多列進行排序呢?
--先對工資升序,若工資相同則對名字進行降序
select *from emp order by sal asc,ename desc;
就這樣吧,至於上表中的一些比較操作符,日後會用到的!