DRF上手即用簡易教程
阿新 • • 發佈:2022-05-10
- 模糊查詢:like,需要佔位符或者萬用字元。佔位符包括:
下劃線_,表示某個數字或字元僅出現一次。 %百分號,任意字元出現任意次數。 --查詢名字以S開頭的使用者 select * from emp where ename like('S%'); --查詢名字以S開頭且倒數第二個字元為T的使用者 select * from emp where ename like('S%T_'); 注意:使用like時候要慎重,like效率比較低。
- escape,使用轉義字元,可以自定義轉義字元。
--查詢名字中帶有%的使用者 select * from emp where ename like('%\%%') escape('\'); like注意事項: 1.不能過度使用萬用字元,如果其他操作符額能達到目的,就不要使用萬用字元。 2.確實需要使用萬用字元時,除非絕對必要,否則不要把萬用字元用到搜尋模式最開始處,因為這樣是最慢的。如'%A%','_A%'
- order by :進行排序操作
asc是預設的排序方式,表示升序。 desc表示降序。數值排序按照大小,字串排序按照字典序。 在排序時可指定多個欄位,且多個欄位可使用不同的排序方式。 select * from emp order by sal asc, ename desc; 每次執行orderby相當於做全排序,比較耗費系統資源,因此選擇在業務不繁忙的時候進行。
- 建立計算欄位:
我們經常需要直接從資料庫中檢索出轉換、計算或者格式化過的資料,而不是檢索出資料,然後再重新格式化。
計算欄位並不實際存在於資料庫表。
sql中允許select子句出現+-*/以及列名和常熟的表示式。
拼接欄位(|| +):首選||來作為拼接欄位(MySQL中||表示or,一般用concat());--使用計算欄位,字串連線符來連線,有兩種方式: select 'my name is' || ename name from emp; select concat('my name is',ename) name from emp; --計算所有員工的年薪 select ename,(e.sal+e.comm)*12 from emp e;//績效加基本工資*12,如果沒有績效的為NULL。 --NULL是比較特殊的,null做任何運算都還是null,因此要進行轉換。 引入nvl,nvl(a1,a2),如果a1為空則返回a2,不為空則返回a1; select ename,(e.sal+nvl(e.comm,0))*12 from emp e;
- sql中允許列值為空,空值用保留字NULL表示。NULL不同於數字0或者空格,它就是代表了一個不確定的內容。任何含有NULL值的數學表示式最後的結果都為空值。
select ename,sal,comm,(sal * 12)+comm "income" from emp;//此時有的員工沒有績效的員工則comm為NULL,結果為空值,可轉換為具體的值。 --可以通過函式將NULL轉換成一個確切的值 select ename,comm,nvl(comm,0) from emp; select ename,sal,comm,(sal*12) +nvl(comm,0) "income" from emp;