數據庫的基本語法教程---注意事項(查詢以及方法用法)

1.查詢

寫查詢的時候,如果是多表連接查詢,先將表之間的主外鍵關係搞清楚,用到哪個表再將表連接起來,然後再寫需要查詢的字段,再寫where條件,最後,千萬別忘了分組(group by),因爲多表的數據太多,一定要分組查詢一下,將重複的去掉,不然結果會出錯.

注意:寫查詢語句時候,要注意left join的用法,left join on 當題目給出明確要求時用它,反之就默認用join on就可以.

2.SUBSTR(字段,1,3)的用法,它的用法很簡單,就是從字段的第一個,查找到第三個位置.比如說VALUES(SUBSTR('ABCDEF',1,3))輸出結果就是ABC.

3.分頁查詢的用法--ROW_NUMBER()OVER(),在一個語句中,嵌套一個查詢頁的範圍,最後輸出前幾名,例如:

SELECT

    NAMES,

    報警數量

FROM

    (   SELECT

            M.NAMES                    AS NAMES,

            COALESCE(SUM(LD.NUM),0) AS 報警數量 ,

            ROWNUMBER() OVER(

            ORDER BY

                COALESCE(SUM(LD.NUM),0) DESC)AS RNUM

        FROM

            LOGSTATUS_DAY1 LD

            JOIN MONITORITEM1 MI

            ON LD.MONITORITEMID=MI.ID

            JOIN MONITORINSTANCE1 M

            ON MI.INSTANCEID=M.ID

            GROUP BY

                M.NAMES

            ORDER BY

                COALESCE(SUM(LD.STATUS),0) DESC

    )

WHERE

    RNUM BETWEEN 1

    AND 3

這就是嵌套一個語句.分出頁,取幾個,就where幾個.其實這是一個笨方法,還有一個簡單的查詢前幾名,例如:

SELECT

    C.NAMES,

    SUM(A.NUM) AS SUMNUM

FROM

    LOGSTATUS_DAY1 A

        JOIN MONITORITEM1 B

            ON A.MONITORITEMID=B.ID

        JOIN MONITORINSTANCE1 C

            ON B.INSTANCEID=C.ID

GROUP BY

    C.NAMES

ORDER BY SUMNUM DESC

FETCH FIRST 3 ROWS ONLY

只需要在最後加上這一句就可以.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章