亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SQL基礎2

系統 2275 0
      
          1
      
      
        --
      
      
        聚合函數MAX(最大值)、MIN(最小值)、AVG (平均值)、SUM (和)、COUNT(數量:記錄的條數。)
      
      
          2
      
      
          3
      
      
        --
      
      
        查詢數學成績中最高分是多少分
      
      
          4
      
      
        select
      
      
        max
      
      (fMath) 
      
        as
      
       數學成績最高分 
      
        from
      
      
         MyStudent


      
      
          5
      
      
          6
      
      
        --
      
      
        求總分
      
      
          7
      
      
        select
      
      
        sum
      
      (fMath) 
      
        as
      
       總分 
      
        from
      
      
         MyStudent


      
      
          8
      
      
          9
      
      
        --
      
      
        求平均分(對空值不處理)
      
      
         10
      
      
        select
      
      
        avg
      
      (fMath) 
      
        as
      
       平均分 
      
        from
      
      
         MyStudent


      
      
         11
      
      
         12
      
      
        --
      
      
        求班級中總的記錄條數(總人數)也不考慮空值
      
      
         13
      
      
        select
      
      
        count
      
      (
      
        *
      
      ) 
      
        as
      
       總人數 
      
        from
      
      
         MyStudent


      
      
         14
      
      
         15
      
      
         16
      
      
        --
      
      
        ---------多條件查詢----------
      
      
         17
      
      
         18
      
      
        --
      
      
        查詢年齡在20--30歲之間的男學生
      
      
         19
      
      
        select
      
      
         20
      
      
        *
      
      
         21
      
      
        from
      
      
         MyStudent


      
      
         22
      
      
        where
      
       age 
      
        between
      
      
        18
      
      
        and
      
      
        30
      
      
        and
      
       gender
      
        =
      
      
        '
      
      
      
        '
      
      
         23
      
      
        --
      
      
        -between 18 and 30 也相當于是>=18 and <=30
      
      
         24
      
      
         25
      
      
        --
      
      
        查詢班級id為1 2 3的所有學生
      
      
         26
      
      
        select
      
      
        *
      
      
        from
      
      
         Student


      
      
         27
      
      
        where
      
       ClassId
      
        =
      
      
        1
      
      
        or
      
       ClassId
      
        =
      
      
        2
      
      
        or
      
       ClassId
      
        =
      
      
        3
      
      
         28
      
      
        --
      
      
        可以用in()替代多個or
      
      
         29
      
      
        select
      
      
        *
      
      
        from
      
      
         Student


      
      
         30
      
      
        where
      
       ClassId 
      
        in
      
      (
      
        1
      
      ,
      
        2
      
      ,
      
        3
      
      
        )


      
      
         31
      
      
         32
      
      
        --
      
      
        ----------模糊查詢------------
      
      
         33
      
      
         34
      
      
        --
      
      
        查詢出所有姓‘趙’的同學
      
      
         35
      
      
        --
      
      
        通配符%表示;任意多個任意字符
      
      
         36
      
      
        select
      
      
        *
      
      
        from
      
       MyStudent 
      
        where
      
       name 
      
        like
      
      
        '
      
      
        趙%
      
      
        '
      
      
         37
      
      
         38
      
      
        --
      
      
        查詢出姓名中包含‘敏’字的同學
      
      
         39
      
      
        select
      
      
        *
      
      
        from
      
       MyStudent 
      
        where
      
       name 
      
        like
      
      
        '
      
      
        %敏%
      
      
        '
      
      
         40
      
      
         41
      
      
        --
      
      
        查詢出所有姓‘趙’的同學,并且姓名是三個字的
      
      
         42
      
      
        --
      
      
        通配符_ 表示任意的單個字符
      
      
         43
      
      
        select
      
      
        *
      
      
        from
      
       MyStudent 
      
        where
      
       name 
      
        like
      
      
        '
      
      
        趙__
      
      
        '
      
      
         44
      
      
         45
      
      
        --
      
      
        查詢出姓名中包含‘趙’或‘云’的人的姓名 
      
      
         46
      
      
        --
      
      
        通配符[]表示括號中的任一個字符 只選一個匹配
      
      
         47
      
      
        select
      
      
        *
      
      
        from
      
       MyStudent 
      
        where
      
       name 
      
        like
      
      
        '
      
      
        [趙云]
      
      
        '
      
      
         48
      
      
         49
      
      
        --
      
      
        表示X與Y之間只要不是'趙'或‘云’的任意單個字
      
      
         50
      
      
        --
      
      
        [^]表示除了中括號中的任意單個字符
      
      
         51
      
      
        select
      
      
        *
      
      
        from
      
       MyStudent 
      
        where
      
       name 
      
        like
      
      
        '
      
      
        [^趙云]
      
      
        '
      
      
         52
      
      
         53
      
      
        --
      
      
        查詢姓名中包含%的
      
      
         54
      
      
        --
      
      
        用[]括起來,就表示轉義
      
      
         55
      
      
        select
      
      
        *
      
      
        from
      
       MyStudent 
      
        where
      
       name 
      
        like
      
      
        '
      
      
        [%]
      
      
        '
      
      
         56
      
      
         57
      
      
        --
      
      
        查詢出所有不姓趙的同學
      
      
         58
      
      
        select
      
      
        *
      
      
        from
      
       MyStudent 
      
        where
      
       name 
      
        not
      
      
        like
      
      
        '
      
      
        趙%
      
      
        '
      
      
         59
      
      
         60
      
      
        --
      
      
        查詢出學生成績中數學成績為空的人
      
      
         61
      
      
        --
      
      
        null在數據庫中表示unkonw(不知道),判斷一個值是否為null,也就不能用=或者<>來判斷
      
      
         62
      
      
        select
      
      
        *
      
      
        from
      
       MyStudet 
      
        where
      
       Math
      
        =
      
      
        null
      
      
         63
      
      
         64
      
      
        --
      
      
        null與null比較結果還是null(null就表示不知道,"不知道"在where中就認為是false,所以不返回任何數據)
      
      
         65
      
      
        select
      
      
        *
      
      
        from
      
       MyStudent 
      
        where
      
       Math
      
        <>
      
      
        null
      
      
         66
      
      
         67
      
      
        --
      
      
        查詢所有math為非null的值
      
      
         68
      
      
        select
      
      
        *
      
      
        from
      
       MyStudent 
      
        where
      
       Math id 
      
        not
      
      
        null
      
      
         69
      
      
         70
      
      
         71
      
      
        select
      
      
        *
      
      
        from
      
       tblstudent 
      
        group
      
      
        by
      
      
         TSGENDER


      
      
         72
      
      
        --
      
      
        請從學生表中查詢出每個班的班級Id和班級中男同學的人數: 
      
      
         73
      
      
        select
      
      
         74
      
         tsclassid 
      
        as
      
      
         班級id,


      
      
         75
      
      
        count
      
      (
      
        *
      
      ) 
      
        as
      
      
         班級人數


      
      
         76
      
      
        from
      
      
         TblStudent 


      
      
         77
      
      
        where
      
       tsgender
      
        =
      
      
        '
      
      
      
        '
      
      
         78
      
      
        group
      
      
        by
      
      
         tsclassid 


      
      
         79
      
      
        --
      
      
        一般分組語句group by 都要與聚合函數配合使用,如果沒有聚合函數,分組的意義不大。
      
      
         80
      
      
         81
      
      
        --
      
      
        當在select查詢語句中出現聚合函數時,這時不能在select查詢中再出現其他列,除非:該列也在group子句中出現或者也在聚合函數中出現。
      
      
         82
      
      
         83
      
      
         84
      
      
         85
      
      
        --
      
      
        請從學生表中查詢出每個班的班級Id和班級中男同學的人數并且班級人數大于2:
      
      
         86
      
      
        select
      
      
         87
      
         tsclassid 
      
        as
      
      
         班級id,


      
      
         88
      
      
        count
      
      (
      
        *
      
      ) 
      
        as
      
      
         班級人數


      
      
         89
      
      
        from
      
      
         TblStudent 


      
      
         90
      
      
        where
      
       tsgender
      
        =
      
      
        '
      
      
      
        '
      
      
         91
      
      
        group
      
      
        by
      
      
         tsclassid 


      
      
         92
      
      
        having
      
      
        count
      
      (
      
        *
      
      )
      
        >
      
      
        2
      
      
         93
      
      
         94
      
      
        --
      
      
        having語句后能跟什么列,主要看:分組后得到的結果集中包含什么列。
      
      
         95
      
      
         96
      
      
        --
      
      
        -------執行的順序------
      
      
         97
      
      
        select
      
      
         98
      
      
        --
      
      
        distinct / top 之類的關鍵字(這些都是一些現實的選項)
      
      
         99
      
           fgender 
      
        as
      
       性別,  
      
        --
      
      
        5>選擇列
      
      
        100
      
      
        count
      
      (
      
        *
      
      ) 
      
        as
      
      
         人數


      
      
        101
      
      
        from
      
       MyStudent 
      
        --
      
      
        1>先從MyStudent表中拿到數據(全部數據的一個結果集)
      
      
        102
      
      
        where
      
       fage
      
        >
      
      
        30
      
      
        --
      
      
        2>從MyStudent的數據中篩選出所有年齡大于30歲的人的信息(新結果集,都是年齡大于30的)
      
      
        103
      
      
        group
      
      
        by
      
       fgender 
      
        --
      
      
        3>按照性別分組,分完組以后又得到一個新結果集(分組后的結果)
      
      
        104
      
      
        having
      
      
        count
      
      (
      
        *
      
      )
      
        >
      
      
        355
      
      
        --
      
      
        4>基于分組以后的結果集,然后在篩選,篩選出那些組中記錄大于500的組。
      
      
        105
      
      
        order
      
      
        by
      
        人數 
      
        desc
      
      
        --
      
      
        6>最后把顯示出來的結果排序
      
      
        106
      
      
        107
      
      
        108
      
      
        --
      
      
        ------------類型轉換---------------
      
      
        109
      
      
        --
      
      
        select 100+'hello'
      
      
        110
      
      
        select
      
      
        cast
      
      (
      
        100
      
      
        as
      
      
        varchar
      
      (
      
        10
      
      ))
      
        +
      
      
        '
      
      
        hello
      
      
        '
      
      
        111
      
      
        112
      
      
        select
      
      
        convert
      
      (
      
        varchar
      
      (
      
        10
      
      ),
      
        100
      
      )
      
        +
      
      
        '
      
      
        hello
      
      
        '
      
      
        113
      
      
        114
      
      
        select
      
      
        convert
      
      (
      
        varchar
      
      (
      
        50
      
      ),
      
        getdate
      
      
        ())


      
      
        115
      
      
        select
      
      
        convert
      
      (
      
        varchar
      
      (
      
        50
      
      ),
      
        getdate
      
      (),
      
        101
      
      
        )


      
      
        116
      
      
        select
      
      
        convert
      
      (
      
        varchar
      
      (
      
        50
      
      ),
      
        getdate
      
      (),
      
        100
      
      
        )


      
      
        117
      
      
        select
      
      
        convert
      
      (
      
        varchar
      
      (
      
        50
      
      ),
      
        getdate
      
      (),
      
        111
      
      
        )


      
      
        118
      
      
        select
      
      
        convert
      
      (
      
        varchar
      
      (
      
        10
      
      ),
      
        getdate
      
      (),
      
        126
      
      
        )


      
      
        119
      
      
        120
      
      
        121
      
      
        122
      
      
        --
      
      
        --------------聯合----------------------
      
      
        123
      
      
        --
      
      
        union 的作用就是將多個結果集并到了一起
      
      
        124
      
      
        select
      
       tsName,tsAge 
      
        from
      
      
         tblstudent


      
      
        125
      
      
        union
      
      
        all
      
      
        126
      
      
        select
      
       TTName,tTAge 
      
        from
      
      
         DATA.dbo.TblTeacher


      
      
        127
      
      
        128
      
      
        --
      
      
        聯合要注意的地方
      
      
        129
      
      
        --
      
      
        1.多個結果集中的列的數據類型必須一一對應
      
      
        130
      
      
        --
      
      
        2.列的個數必須一樣
      
      
        131
      
      
        --
      
      
        聯合的時候如果只寫union 則會去除重復數據,如果寫unoin all 則不會去除重復的數據
      
      
        132
      
      
        133
      
      
        134
      
      
        --
      
      
        假設有個銷售表,請查詢出每個銷售員的銷售總金額以及總的銷售金額
      
      
        135
      
      
        --
      
      
        要求:總的銷售金額顯示在表的底部
      
      
        136
      
      
        select
      
      
        137
      
      
            銷售員,


      
      
        138
      
           銷售金額
      
        =
      
      
        sum
      
      (銷售數量
      
        *
      
      
        銷售價格)


      
      
        139
      
      
        from
      
      
         MyOrders


      
      
        140
      
      
        group
      
      
        by
      
      
         銷售員


      
      
        141
      
      
        union
      
      
        all
      
      
        142
      
      
        select
      
      
        '
      
      
        總銷售額:
      
      
        '
      
      ,
      
        sum
      
      (銷售價格
      
        *
      
      
        銷售數量)


      
      
        143
      
      
        from
      
      
         MyOrders


      
      
        144
      
      
        145
      
      
        146
      
      
        147
      
      
        --
      
      
        ---------字符串函數----------------
      
      
        148
      
      
        select
      
      
        len
      
      (
      
        '
      
      
        長度abc
      
      
        '
      
      ) 
      
        --
      
      
        返回字符的個數   5
      
      
        149
      
      
        select
      
      
        datalength
      
      (
      
        '
      
      
        長度abc
      
      
        '
      
      )  
      
        --
      
      
        返回是字節的個數 7
      
      
        150
      
      
        select
      
      
        lower
      
      (
      
        '
      
      
        Abc
      
      
        '
      
      )  
      
        --
      
      
        返回abc
      
      
        151
      
      
        select
      
      
        upper
      
      (
      
        '
      
      
        Abc
      
      
        '
      
      )  
      
        --
      
      
        返回ABC
      
      
        152
      
      
        153
      
      
        --
      
      
        LTRIM():字符串左側的空格去掉 
      
      
        154
      
      
        --
      
      
        RTRIM () :字符串右側的空格去掉 
      
      
        155
      
      
        156
      
      
        select
      
      
        '
      
      
        ===========
      
      
        '
      
      
        +
      
      
        rtrim
      
      (
      
        ltrim
      
      (
      
        '
      
      
             aaa       
      
      
        '
      
      ))
      
        +
      
      
        '
      
      
        ===============
      
      
        '
      
      
        157
      
      
        --
      
      
        返回===========aaa===============
      
      
        158
      
      
        159
      
      
        --
      
      
        LEFT()、RIGHT()  截取取字符串
      
      
        160
      
      
        select
      
      
        left
      
      (
      
        '
      
      
        abcdefg
      
      
        '
      
      ,
      
        2
      
      )  
      
        --
      
      
        返回ab
      
      
        161
      
      
        select
      
      
        right
      
      (
      
        '
      
      
        abcdefg
      
      
        '
      
      ,
      
        2
      
      ) 
      
        --
      
      
        返回fg
      
      
        162
      
      
        163
      
      
        --
      
      
        SUBSTRING(string,start_position,length),索引從1開始。
      
      
        164
      
      
        select
      
      
        substring
      
      (
      
        '
      
      
        abcdefg
      
      
        '
      
      ,
      
        2
      
      ,
      
        3
      
      )  
      
        --
      
      
        返回bcd
      
      
        165
      
      
        166
      
      
        167
      
      
        168
      
      
        --
      
      
        -------- 日期函數------------
      
      
        169
      
      
        --
      
      
        getdate 取得當前日期時間 
      
      
        170
      
      
        select
      
      
        getdate
      
      () 
      
        --
      
      
        2012-08-23 18:09:00.540
      
      
        171
      
      
        --
      
      
        DATEADD (datepart , number, date ),計算增加以后的日期。參數date為待計算的日期;參數number為增量
      
      
        172
      
      
        --
      
      
        參數datepart為計量單位
      
      
        173
      
      
        174
      
      
        select
      
      
        dateadd
      
      (
      
        month
      
      ,
      
        2
      
      ,
      
        getdate
      
      ())
      
        --
      
      
        2012-10-23 18:09:13.527
      
      
        175
      
      
        176
      
      
        --
      
      
        DATEDIFF ( datepart , startdate , enddate ) :計算兩個日期之間的差額。 datepart 為計量單位
      
      
        177
      
      
        select
      
      
        datediff
      
      (second,
      
        '
      
      
        2012-08-23 18:09:00.540
      
      
        '
      
      ,
      
        '
      
      
        2012-8-23 18:09:17.527
      
      
        '
      
      ) 
      
        --
      
      
        17 minute 分
      
      
        178
      
      
        179
      
      
        --
      
      
        DATEPART (datepart,date):返回一個日期的特定部分
      
      
        180
      
      
        --
      
      
        Month()、year()、day()來代替
      
      
        181
      
      
        select
      
      
        year
      
      (
      
        getdate
      
      ())  
      
        --
      
      
        2012
      
    

?

SQL基礎2


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 成人亚洲精品一区二区 | 国产精品ⅴ视频免费观看 | 久久精品99视频 | 久久中字| 亚欧成人毛片一区二区三区四区 | 一级s片| 国产在线观看一区精品 | 尤物视频一区 | 羞污影院| 国产www在线观看 | 国产午夜精品不卡视频 | 99精品久久99久久久久 | 欧美xvideosexo另类 | 在线成人免费视频 | 四虎精品影院在线观看视频 | 日韩精品一区二区三区中文字幕 | 久久久久久999 | 欧美在线观看一区二区 | 国产精品日韩欧美一区二区三区 | 综合久久2o19| 久草国产精品视频 | 亚洲伦理久久 | 日韩欧美一区二区三区不卡 | 久久99精品久久久久久噜噜丰满 | 四虎永久免费网站入口2020 | 精品无人区乱码一区二区三区手机 | 欧美激情在线精品一区二区 | 久久免费国产 | 国产精品久久久久影视不卡 | 免费观看日本a毛片 | 按摩理论片| 久久骚| 天天干夜夜操 | 国产精品 色 | 天天成人 | 欧美日韩中文字幕在线 | 日日爽夜夜 | 日韩欧美三区 | 久久国产精品最新一区 | 亚洲综合图片小说区热久久 | 国产免费成人在线视频 |