00102 SQL基礎:查詢


SELECT (DISTINCT) */column 1, column 2 FROM table_name (, table 2...) WHERE condition 1 AND/OR condition 2
/distinct: 可選參數,表示在輸出結果中去除重複值

一、 上述基本語言有如下可拓展語言:
  • ORDER BY:讓輸出結果以某種方式進行排序(一般以某列爲基準)
SELECT ... FROM... WHERE... ORDER BY column_name ASC/DESC
           /ASC 升序  可以不寫,是默認項
           /DESC 降序
    • 簡化寫法:
                    SELECT  column 1, column 2... FROM... WHERE... ORDER BY 1 ASC/DESC
                    /1表示select中制定的第一個字段,2、3、4以此類推
    • 多列排序:
                    SELECT ... FROM... WHERE... ORDER BY column1 ASC/DESC, column2 ASC/DESC
                  /同樣可以簡寫爲1、2、3
  • COUNT: 統計表裏的記錄數量
       SELECT COUNT((DISTINCT) */column_name) FROM... WHERE...
            /count的參數是列名或者*
            /distinct參數可以計數非重複項
  • 訪問其他用戶的表
    • 前提:獲得權限——GRANT
            SELECT ... FROM user.table WHERE...
                    /user: 可以代指其他用戶、其他數據庫或者其他規劃
  • 用字段別名來在查詢結果中代替原有的字段名,提高查詢結果的可讀性
      SELECT column_name new_name FROM ... WHERE...
          /new_name是新起的別名,用空格分隔
          /這種改變只在select的結果裏反映,並沒有改變原有的表     

二、WHERE條件詳述:
  • 比較操作符:大於、小於、等於、不等於、大於等於、小於等於
  • 邏輯操作符:用於對SQL關鍵字進行比較
    • IS NULL
    • BETWEEN...AND... (注意不是is between)
    • IN(list): in的參數是一個list,用圓括號括起來(它比用or連接好幾個要快)
    • LIKE: 利用通配符查找近似值,主要有以下兩種通配符
      • %:用於替代0個、1個或多個字符
      • _:用於替代一個字符or數字
    • EXIST: 是否存在,它的參數是一個SQL查詢語句
            SELECT ... FROM ... WHERE  EXIST ( SELECT ... FROM... WHERE... )
                     /當exist語句爲true時再返回總的select結果,否則不返回
                     /要注意,並不是返回符合exist的參數語句的值,而是隻有它爲真時才返回值,具體返回什麼取決於select的字段和where的其他條件  
    • ALL:將一個值與一個集合內的所有值進行比較(要與比較操作符組合使用)
      • 只有當對於集合內每一個值,給定字段和它進行比較的結果都爲true時返回該行(相當於好多個AND)
      • ALL的參數一般是一個SQL查詢語句
           SELECT ... FROM ... WHERE  column_name >/< ALL( SELECT ... FROM ... WHERE...)
    • ANY: 將一個值與一個集合內的所有值進行比較
      • 只要這個集合內有一個值比較結果爲true就返回該行(相當於好多個OR)
      • 參數是 一個SQL查詢語句
    • SOME: 和ANY一樣,是any的別名
  • 連接操作符:AND、OR
  • 求反操作符:NOT
  • 算術操作符:加減乘除

三、查詢結果變形——彙總函數
用途:從各種角度對查詢結果進行簡單的統計分析
  • COUNT函數:統計非空字段的數量
    • 與DISTINCT連用可以去重
    • 最後返回一個統計數字
       SELECT COUNT() FROM ... WHERE...
  • SUM函數:對指定字段的指定行的值進行求和,返回求和結果
       SELECT SUM(column_name) FROM ... WHERE...
    • 所處理的字段必須是數值型的
    • 如果對象是字符型,有一些可以默認轉化爲數值型加總,不能的返回0
  • AVG函數:求平均值
       SELECT AVG(column_name) FROM ... WHERE...
  • MAX函數:返回選定記錄中指定字段的最大值
       SELECT MAX(column_name) FROM ... WHERE...
  • MIN函數:返回選定記錄中指定字段的最小值,語法同上
以上函數都可以加上AS,來定義一個新的字段名稱存儲返回結果
     SELECT MAX/SUM/MIN/AVG/COUNT(column_name) AS new_name FROM ... WHERE...
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章