1. 程式人生 > >mysql中的增刪改以及資料備份(講義)

mysql中的增刪改以及資料備份(講義)

----分組查詢&篩選學習:
     --關鍵字:group by 分組欄位名,分組欄位名....
         --注意1:使用了分組後,在select語句中只允許出現分組欄位和多行函式。
         --注意2:如果是多欄位分組,則先按照第一欄位分組,然後每個小組繼續按照第二個欄位繼續分組,以此類推。
         --注意3:在where子句中不允許出現多行函式。
     --分組篩選
         --關鍵字:having
              --作用:針對分組進行分組後的資料篩選,允許使用多行函式。
              --注意:having關鍵必須和分組結合使用。不允許單獨使用。   
              --where和having的比較:
                 --where子句不允許出現多行函式,having允許出現多行函式
                 --where子句和having都可以使用普通欄位直接進行篩選,但是where的效率高於having
                    --where執行順序: from--->where--->group by-->select-->order by
                    --having執行順序:from--->group by-->select--->having--->order by
               --結論:在分組語句中,使用where進行欄位級別的篩選,使用having進行多行函式的篩選。    
      --查詢最高工資和員工數
      select max(sal),count(*) from emp
      --查詢不同部門的最高工資
      select deptno,max(sal) from emp group by deptno
      select * from emp
      --查詢不同工作崗位的員工數
      select job, count(*) from emp group by job
      --查詢不同部門的不同工作崗位的人數
      select deptno ,lower(job),count(*) from emp group by deptno,job order by deptno
      --查詢不同部門的不同工作崗位的並且人數大於1的資訊
      select deptno ,lower(job),count(*) from emp  group by deptno,job having count(*)>1 order by deptno
      --查詢部門號大於10的不同部門的不同工作崗位的人數
          --使用having關鍵字
          select deptno ,lower(job),count(*) from emp group by deptno,job  having deptno>10  order by deptno
          --使用where關鍵字
          select deptno,job,count(*) from emp where deptno>10 group by deptno,job  order by deptno
---SQL查詢語句的結構
        --select 子句                  要查詢的資料(oracle函式,別名,連線符,去除重複,邏輯運算)
        --from語句                     決定要查詢的表(表名)             
        --where子句                    篩選資料(篩選條件,關鍵字)
        --group by子句                 分組     (分組欄位)
        --having子句                   分組篩選   (多行函式篩選條件)
        --order by子句                 排序       (排序)
        --from-->where--->group by-->select--->having--->order by