1. 程式人生 > 其它 >DRF上手即用簡易教程

DRF上手即用簡易教程

  • 模糊查詢: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;