数据库的基本语法教程---注意事项(查询以及方法用法)

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

只需要在最后加上这一句就可以.

猜你喜欢

转载自blog.csdn.net/lg_1996/article/details/81095705
今日推荐