了解湖南/長沙365体育备用网址資訊,從365投注平台開始!365bet官网報名365bet官网本科
您當前的位置:首頁 > 校園動態

數據庫原理及應用(24)

數據庫原理及應用(24)

 

  三、SQL的數據查詢kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  1.SELECT查詢語句句型kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  在關系代數中最常用的式子是下列表達式:kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  ΠA1,…,An(σF(R1×…×Rm))kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  這里,R1、…、Rm為關系,F是公式,A1、…、An為屬性。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  與該表達式對應,SQL設計了SELECT—FROM—WHERE句型:kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT  A1,…,AnkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM  R1,…,RmkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  WHERE  FkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  注意:1)在學習時,應把SELECT語句和關系代數表達式聯系起來考慮問題。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  2)在WHERE子句的條件表達式F中可使用下列運算符:kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  比較運算符:〈、 〈=、 〉、 〉=、 =、 〈〉或!=kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  邏輯運算符:AND、OR、NOTkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  集合成員資格運算符:IN、NOT  INkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  謂詞:EXISTS、ALL、SOMEkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  聚合函數:AVG、MIN、MAX、SUM、COUNTkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  F中運算對象還可以是另一個SELECT語句,即SELECT語句可以嵌套。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  2.SELECT語句的使用技術kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT使用時有三種寫法:連接查詢、嵌套查詢和帶存在量詞的嵌套查詢。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  例:針對前面使用的教學數據庫,檢索學習課程號為C2課程的學生學號與姓名。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  第一種寫法(連接查詢):kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT  S.S#,SNAMEkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM  S,SCkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  WHERE  S.S#=SC.S#  AND  C#=’C2’kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  第二種寫法(嵌套查詢):kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT  S#,SNAMEkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM  SkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  WHERE  S#  IN(SELECT  S#kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM  SCkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  WHERE  C#=‘C2’)kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  第三種寫法(使用存在量詞的嵌套查詢):kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT  S#,SNAMEkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM  SkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  WHERE  EXISTS(SELECT  *kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM  SCkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  WHERE  SC.S#=S.S#  AND  C#=’C2’)kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  例:對于教學數據庫中四個基本表T、C、S、SC,用SELECT語句表示下面查詢。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  1)  檢索學習課程號為C2課程的學生學號與成績。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT  S#,SCOREkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM SCkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  WHERE C#=‘C2’kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  2)檢索學習課程號為C2課程的學生學號和姓名。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  見上例kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  3)檢索至少選修LIU老師所授課程中一門課程的學生學號與姓名。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT  S.S#,SNAMEkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM S,SC,C,TkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  WHERE S.S#=SC.S#  AND SC.C#=C.C#  kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  AND  C.T#=T.T#  AND  TNAME=’LIU’kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  4)檢索選修課程號為C2或C4課程的學生學號。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT  S#kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM  SCkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  WHERE  C#=’C2’  OR  C#=’C4’kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  5)檢索至少選修課程號為C2和C4課程的學生學號。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT  X.S#kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM  SC  AS  X,SC  AS  YkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  WHERE  X.S#=Y.S#  AND  X.C#=’C2’  AND  Y.C#=’C4’kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  6)檢索不學C2課程的學生姓名與年齡。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT  SNAME,AGEkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM  SkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  WHERE  S#  NOT  IN(SELECT  S#kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

            FROM  SCkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

            WHERE  C#=’C2’)kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  7)檢索學習全部課程的學生姓名。(在表S中找學生,在C中不存在一門課程,這個學生沒有學。)kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT  SNAMEkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM  SkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  WHERE  NOT  EXISTSkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

        (SELECT  *kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

        FROM  CkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

        WHERE  NOT  EXISTSkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

              (SELECT  *kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

              FROM  SCkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

              WHERE  SC.S#=S.S#  AND  SC.C#=C.C#))kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  8)檢索所學課程包含學號為S3學生所學課程的學生學號。(在SC表中找一個學生,不存在S3學的一門課,該學生沒有學。)kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT  DISTINCT  S#kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM  SC  AS  XkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  WHERE  NOT  EXISTSkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

      (SELECT  *kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

      FROM  SC  AS  YkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

      WHERE  Y.S#=’S3’kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

      AND  NOT  EXISTSkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

        (SELECT  *kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

        FROM  SC  AS  ZkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

        WHERE  Z.S#=X.S#  AND  Z.C#=Y.C#))kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  注:DISTINCT表示去掉重復值。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  3.聚合函數kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  COUNT(*):計算元組個數kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  COUNT(<列名>)  對一列中的值計算個數kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SUM(<列名>)    求某一列值的總和(此列值為數值型)kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  AVG(<列名>)    求某一列值的平均值(此列值為數值型)kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  MAX(<列名>)      求某一列值的最大值kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  MIN(<列名>)      求某一列值的最小值kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  說明:列名前均可加DISTINCT,表示去掉重復值。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  例1:求男生的總人數和平均年齡。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT  COUNT(*),AVG(AGE)kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM  SkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  WHERE  SEX=‘男’kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  例2:統計選修了課程的學生人數。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT  COUNT(DISTINCT  S#)kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM  SCkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  4.SELECT語句完整的句法kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT  <目標表的列名或列表達式序列>kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM  <基本表名和(或)視圖序列>kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  [WHERE  <行條件表達式>]kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  [GROUP  BY  <列名序列>kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

    [HAVING  <組條件表達式>]]kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  [ORDER  BY  <列名[ASC | DESC]>,…]kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  說明:[]表示其中的內容根據需要可以省略。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

      |表示二選一。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

       各子句的作用:SELECT子句用于指定輸出的內容;FROM子句用于指定要檢索的數據的來源表;WHERE子句稱為“行條件子句”,用于指定對元組的選取條件;GROUP  BY子句稱為“分組子句”,作用是指定對元組進行分類后再檢索;HAVING子句稱為“組條件子句”,用于指定對分類后的元組的選取條件;ORDER  BY子句稱為“排序子句”,作用是對檢索到的元組進行排序。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  整個語句的執行過程為:kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  1)讀取FROM子句中基本表、視圖的數據,執行笛卡兒積操作。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  2)選取滿足WHERE子句中給出的條件表達式的元組。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  3)按GROUP子句中指定列的值分組,同時提取滿足HAVING子句中組條件表達式的那些組。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  4)按SELECT子句中給出的列名或列表達式求值輸出。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  5)ORDER子句對輸出的目標表進行排序,按附加說明ASC升序排列,或按DESC降序排列。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  例1:統計每門課程的學生選修人數。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT  COUNT(S#)kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM  SCkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  GROUP BY  C#kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  例2:統計每門課程的學生選修人數,要求只查詢出選修人數超過50人的結果。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT  COUNT(S#)kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM  SCkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  GROUP BY  C#kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  HAVING  COUNT(S#)>50kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  例3:檢索每名學生的學號和年齡,查詢結果按年齡降序排列,年齡相同按學號升序排列。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT  S#,AGE>kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FROM  SkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  ORDER  BY  AGE  DESC,S#  ASCkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  5.SELECT子句的具體規定kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  SELECT  [ALL | DISTINCT] 〈列名或列表達式序列>|*kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  說明:1)DISTINCT選項保證重復的行將從結構中去除;而ALL選項是默認的,將保證重復的行留在結果中,一般可不必寫出。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

      2)*是對于在FROM子句中命名表的所有列的簡寫。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

      3)列表達式中允許出現+、-、*、/等運算符以及列名和常數、聚合函數等。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  例1:檢索男同學選修的課程的課程號。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

    SELECT  DISTINCT  C#kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

    FROM  S,SCkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

    WHERE  S.S#=SC.S#  AND  SEX=’男’kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  例2:檢索所有的學生信息。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

    SELECT *kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

    FROM  SkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

  例3:檢索每個學生的學號和出生年份。kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

    SELECT  S#,2008-AGEkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

    FROM  SkpJ365投注平台_365bet官网本科_365bet官网報名_首頁

kpJ365投注平台_365bet官网本科_365bet官网報名_首頁

 

數據庫原理及應用(24)

    365投注平台——致力于打造365投注平台第一網,以努力服務于廣大365bet官网學子、提供最全的365bet官网資訊為己任,發布365bet官网最新的新聞資訊,提供365bet官网專科365bet官网本科365bet官网報名365bet官网成績查詢等綜合信息

 

365bet官网
相關文章
    無相關信息
湖南365体育备用网址
365bet官网政策
365体育备用网址30年大事
365bet官网專業
365bet官网問答
名家訪談
365bet官网故事
365bet官网院校
365bet官网大綱
365体育备用网址復習方法
365体育备用网址筆記串講
365体育备用网址應試技巧
365bet官网真題
365bet官网就業
湖南論文指導
365bet官网實踐
365bet官网學位
365体育备用网址成績查詢
365体育备用网址考籍查詢
365体育备用网址學歷查詢


咨詢QQ:137847917
13548661633(微信同號)