數據庫應用(四): Ubuntu 下 MySQL 數據庫簡單查詢


簡單查詢

  查詢語句核心語法

  SELECT  [DISTINCT] *|{字段名1, 字段名2, 字段名3,……}
                       FROM 表名
             [WHERE 條件表達式1]
             [GROUP BY 字段名 [HAVING 條件表達式2]]
             [ORDER BY 字段名 [ASC|DESC]]
             [LIMIT [OFFSET] 記錄數
  1. “字段1,字段2…”表示從表中查詢的指定字段,星號(“*”)通配符表示表中所有字段,兩者為互斥關系,任選其一。“DISTINCT”是可選參數,用於剔除查詢結果中重復的數據
  2. from 表示從指定的表中查詢數據

  3. “WHERE”是可選參數,用於指定查詢條件

  4. “GROUP BY”是可選參數,用於將查詢結果按照指定字段進行分組,“HAVING”也是可選參數,用於對分組后的結果進行過濾。

  5. “ORDER BY”是可選參數,用於將查詢結果按照指定字段進行排序。排序方式由參數ASC或DESC控制,其中ASC表示按升序進行排列,DESC表示按降序進行排列。如果不指定參數,默認為升序排列
  6. “LIMIT”是可選參數,用於限制查詢結果的數量。LIMIT后面可以跟2個參數,第一個參數“OFFSET”表示偏移量,如果偏移量為0則從查詢結果的第一條記錄開始…以此類推。如果不指定OFFSET,其默認值為0。第二個參數“記錄數”表示返回查詢記錄的條數。

  

  查詢student表中的所有字段

    

 

 

   

  查詢student表中name字段和gender字段的數據(查詢指定屬性)

    

 

 

   PS: 指定查詢對象 需要用 where 來限制 相關的條件表達式如下

      

 

 

 

   例如:

    查詢name為“wusong”的姓名和 性別

    

 

 

 

  帶IN關鍵字的查詢  

  

SELECT *|字段名1,字段名2,……
FROM 表名
WHERE 字段名 [NOT] IN (元素1,元素2,……)

  例如:  

    查詢student表中id值為1、2、3的id、成績 、姓名、性別

    

 

 

 

  帶BETWEEN AND關鍵字的查詢

        —判斷某個字段的值是否在指定的范圍之內

SELECT *|{字段名1,字段名2,……}
FROM 表名
WHERE 字段名 [NOT] BETWEEN 值1 AND 值2

  例如:

    查詢student表中id值在2和5之間的學生id和姓名

      

 

 

 

  

  空值查詢

    —判斷某些列是否有NULL值

SELECT *|字段名1,字段名2,……
FROM 表名
WHERE 字段名IS [NOT] NULL

  例:

    查詢student表中gender為空值的id、姓名、成績、性別

      

 

 

 

  帶DISTINCT關鍵字的查詢

             —去重

SELECT DISTINCT 字段名 FROM 表名;

    例:

      查詢student表中gender字段的值,查詢記錄不能重復

        

 

 

     DISTINCT關鍵字作用於多個字段

SELECT DISTINCT 字段名1,字段名2,…… 
FROM 表名;

    在上面的語法格式中,只有DISTINCT關鍵字后指定的多個字段值都相同,才會被認作是重復記錄。

 

 

 

  

  帶LIKE關鍵字的查詢

    —判斷兩個字符串是否相匹配

SELECT *|{字段名1,字段名2,……}
FROM 表名
WHERE 字段名 [NOT] LIKE '匹配字符串';

  例:

    查找student表中name字段值包含字符“y”的學生id和姓名

      

 

 

   

  下划線(_)通配符    

    下划線通配符只匹配單個字符,如果要匹配多個字符, 需要使用多個下划線通配符。  

    PS: 漢字占兩個

 

  使用百分號和下划線通配符進行查詢操作

      百分號和下划線是通配符,它們在通配字符串中有特殊含義,

  因此,如果要匹配字符串中的百分號和下划線,就需要在通配字符串中使用右斜線(“\”)對百分號和下划線進行轉義,

  例如,“\%”匹配百分號字面值,“\_”匹配下划線字面值。

    名字中含有 % 的

  

 

 

   

  

  帶AND關鍵字的多條件查詢

        -----連接兩個或者多個查詢條件

  

SELECT *|{字段名1,字段名2,……}
FROM 表名
WHERE 條件表達式1 […… AND 條件表達式n];

例:  

  查找id >5 的女生   

 

 

 

 

  

  帶OR關鍵字的多條件查詢

    — 記錄滿足任意一個條件即被查出

SELECT *|{字段名1,字段名2,……}
FROM 表名
WHERE 條件表達式1 OR […… OR 條件表達式n];

    例

       查詢student表中id字段值小於3或者gender字段值為“女”的id、姓名、性別 

      

 

 

 

  OR和AND關鍵字一起使用的情況

    AND的優先級高於OR,因此當兩者在一起使用時,應該先運算AND兩邊的條件表達式,再運算OR兩邊的條件表達式。

 

  

  使用LIMIT限制查詢結果的數量

    

 SELECT 字段名1,字段名2,……
     FROM 表名
     LIMIT [OFFSET,] 記錄數

    LIMIT:后面可以跟2個參數,“OFFSET”:為可選值,表示偏移量,如果偏移量為0則從查詢結果的第一條記錄開始…以此類推,如果不指定其默認值為0。

    “記錄數”:表示返回查詢記錄的條數。

  

  例:

    查詢student表中grade字段值從第5位到第8位的學生。

      

 

 

 

  高級查詢

    1. COUNT()函數用來統計記錄的條數
      SELECT COUNT(*) FROM 表名

       

    2. SUM()是求和函數,用於求出表中某個字段所有值的總和 
      SELECT SUM(字段名) FROM 表名;

       

    3. AVG()函數用於求出某個字段所有值的平均值
      SELECT AVG(字段名) FROM student;

       

    4. MAX()函數是求最大值的函數,用於求出某個字段的最大值
      SELECT MAX(字段名) FROM student;

       

    5. MIN()函數是求最小值的函數,用於求出某個字段的最小值
       SELECT MIN(grade) FROM student;

       

    6. ORDER BY對查詢結果進行排序
      SELECT 字段名1,字段名2,……
      FROM 表名
      ORDER BY 字段名1 [ASC | DESC],字段名2 [ASC | DESC]……

      PS: NULL 會被認為最小, 建議and 上非空檢測

    7. GROUP BY對字段值進行分組查詢
           SELECT 字段名1,字段名2,……
           FROM 表名
           GROUP BY 字段名1,字段名2,……[HAVING 條件表達式];

  

 

 

  學習不易,諸君共勉


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM