<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                [TOC] ## 查詢數據表的結構和名稱 #### 首先介紹二個查詢語句: 1. 查詢表結構:`DESC 表名;` 2. 查詢當前庫中所有數據表:`SHOW TABLES;` #### 查看表結構實例: ~~~ DESC staff; ~~~ 結果如下: ![](https://box.kancloud.cn/f7362e9be213311ddaf978fc1c460882_1076x775.png) #### 查詢當前庫中所有數據表實例: ~~~ SHOW TABLES; ~~~ 結果如下: ![](https://box.kancloud.cn/4b819925dcb5e07601979875b7a91d69_1076x775.png) #### <span style="color:forestgreen">下面是本節課重點:</span> * * * * * ## 數據表查詢技術 ### 主要介紹單表查詢技術,多表查詢后面有專門課程講解 ### 基本語法 ~~~ SELECT 字段列表 WHERE 數據表 [GOURP BY 分組字段] [HAVING 分組查詢條件] [ORDER BY 排序字段] [LIMIT [起始索引],顯示數量] ~~~ #### <span style="color:red">注意:</span> >[danger] * 字段列表最好將需要顯示字段名稱寫出來,盡可能不要用'*'星號替代; >* GROUP BY 與 HAVING 配對使用,常用于統計查詢,字段常用聚合函數; >* ORDER BY 默認為升序ASC,常與LIMIT聯合使用; >* 在書寫時,GROURP 語句一定寫在ORDER 語句之前,最后才是LIMIT語句,否則會執行錯誤,切記! #### 下面用實例講解詳細用法: #### 1、[單條件]查詢工資大于3000元的員工姓名,部門和入職時間 * 分析: >[info] * 顯示字段:姓名、部門、入職時間,使用[AS]別名,讓結果看上去再直觀; > * 查詢條件:工資大于3000元; #### 語句: ~~~ SELECT id AS '編號', name AS '姓名', dept AS '部門', hiredate AS '入職時間' FROM staff WHERE salary > 3000; ~~~ * 運行結果: ![](https://box.kancloud.cn/14622fa8724bd3d68fbda8b14164c93e_1064x775.png) * * * * * #### 2、[復合條件]查詢工資大于3000元的開發部員工姓名,部門和入職時間 * 分析: >[info] * 顯示字段:姓名、部門、入職時間,使用[AS]別名,讓結果看上去再直觀; > * 查詢條件:復合查詢[AND]工資大于3000元,并且部門名稱是開發部; #### 語句: ~~~ SELECT id AS '編號', name AS '姓名', dept AS '部門', hiredate AS '入職時間' FROM staff WHERE (salary > 3000) AND (dept = '開發部'); ~~~ 復合條件中,各個子條件推薦用括號包起來,顯示結構清晰! * 運行結果: ![](https://box.kancloud.cn/0781cf8c036fda869320bad25005444f_1064x775.png) * * * * * #### 3、[分組查詢]查詢每個部門的最高、最低和平均工資 * 關于分組查詢字段的說明 >[info] 1、結果集的字段列表(SELECT 后面),必須包括分組字段,或者聚合函數。 2 、當然也可以包括其它字段,但是沒有意義,因為這些無關字段僅取分組中第一條記錄的值。 3、舉例:計算每個部門,最高工資是多少?如果在結果列字段中,出現員工姓名name,其實他不一定是工資最高的那個員工,他只是分組中第一個出現的記錄對應的name字段。真正的最高工資的員工有可能出現在第二或第三個位置上。 * 聚合函數:也叫統計函數,指僅返回一個值的函數,常用的有以下五個: |序號| 聚合函數 | 說明 | |---| --- | --- | |1| COUNT() | 返回滿足條件的記錄數量,如COUNT( * ) | |2| SUM() | 參數為數值型字段,返回一列總和 | |3| AVG | 參數為數值型字段或表達式,返回一列平均值 | |4| MAX | 參數為數值型、字符串或表達式,返回一列中最大值 | |5| MIN | 參數為數值型、字符串或表達式,返回一列中最小值 | * 查詢語句: ~~~ SELECT dept AS 部門 , MAX(salary) AS 最高工資,MIN(salary) AS 最低工資,AVG(salary) AS 平均工資 FROM tp5_staff GROUP BY dept ; ~~~ * <span style="color:red;">注意:</span> >[success] 查詢結果集中,不要出現除分組字段和聚合函數以外的字段名稱。 * 運行結果: ![](https://box.kancloud.cn/c293c0baeffd3522f81409bca0197980_1036x747.png) * * * * * #### 4、[多條件分組查詢]按性別查詢每個部門的最高、最低和平均工資 * 分析:根據任務,要先按性別進行分組,然后再按部門查詢各個數據 * 查詢流程是: * 先按性別分組,此處分為二個大組,男性(值為1)組、女性(值為0)組; * 在性別分組中,再按部門進一步分組,如:開發部、市場部、財務部等。 * 查詢語句: ~~~ SELECT sex AS 性別, dept AS 部門 , MAX(salary) AS 最高工資,MIN(salary) AS 最低工資,AVG(salary) AS 平均工資 FROM tp5_staff GROUP BY sex ,dept ; ~~~ * <span style="color:red;">注意:</span> * 查詢結果集中,分組字段必須全部出現,并且順序與group by 完全一致。 * 運行結果: ![](https://box.kancloud.cn/9d071655629553b2ade4ecf960d92417_1138x775.png) * * * * * #### 5、[分組條件查詢]查詢各部門平均工資大于2000的人數 ##### 掌握HAVING 語句的用法(僅用于GROUP BY 分組篩選) * 分析:根據任務,必須對分組中的統計數據進行條件篩選。 * 查詢流程是: * 先按部門分組, 如:開發部、市場部、財務部、客服服等; * 再統計各部門的平均工資,只查詢平均工資大于2000元; * 最后,只有符合條件的部門才會出現在查詢結果中。 * 查詢語句: ~~~ SELECT dept AS 部門 , COUNT(*) AS 人數 FROM tp5_staff GROUP BY dept HAVING AVG(salary) > 2000; ~~~ >[warning] * <span style="color:red;">注意:</span> > * 查詢結果集中, 只會顯示符合條件的記錄,除分組和聚合字段外,其它字段不要有; > * HAVING 分組條件只能是聚合函數 或者 常量 或來自子查詢。 * 運行結果: ![](https://box.kancloud.cn/6d41c0ad14a0e51f7911f2dd33f1874e_1138x775.png) * 這里簡單擴展一下: * 再查詢一個平均工資大于1500元的部門員工人數 * 查詢語句修改一個HAVING 條件 ~~~ SELECT dept AS 部門 , COUNT(*) AS 人數 FROM tp5_staff GROUP BY dept HAVING AVG(salary) > 1500; ~~~ * 查詢結果如下: ![](https://box.kancloud.cn/0c9d5fdfd92e5e2f1893fe1ecc88f22f_1138x775.png) * * * * * ### 6、[排序查詢]<br> ### 查詢工資最高的三個員工的編號、姓名、工資\部門和入職時間 #### 關鍵字:ORDER BY 排序字段 LIMIT [偏移量,]顯示數量 * 該實例比較簡單,我們直接上代碼: ~~~ SELECT id AS 編號,name AS 姓名 , ROUND(salary,0) AS 工資 , dept AS 部門, hiredate AS 入職時間 FROM tp5_staff ORDER BY salary DESC LIMIT 3; ~~~ * 運行結果如下: ![](https://box.kancloud.cn/20ecb4e6929d8206099798b36b16385f_1138x775.png) * * * * * ### 7、[綜合實例]查詢各部門最高工資,并按降序排序 * 降序:指由高到低排序,系統默認是升序,即由低到高。 * 分析:本案例用到了:GROUP BY 和 ORDER BY 操作 * 先查詢出每個部門的最高工資金額; * 再按最高工資金額字段進行降序排序。 * 語句如下: ~~~ SELECT dept AS 部門, ROUND(MAX(salary),0) AS 最高工資 FROM tp5_staff GROUP BY dept ORDER BY salary DESC; ~~~ * 運行結果: ![](https://box.kancloud.cn/69563c8ddd17c1159de24053ec7a3fe6_1138x775.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看