SQL语句整理(一) 数据库查询语言DQL

前言:

这是我学数据库时整理的学习资料,基本上包括了所以的SQL语句的知识点。

我的教材是人大王珊老师的《数据库系统概论》。

因为是手打的,所以会用一些细节打错了,但都挺明显也不多(考完试后我也没有心情继续整理了)。

希望能对大家有帮助。

SELECT [ALL|DISTINCT] <目标列表达式> [,<目标列表达式> ]...
FROM <表名或视图名> [ ,<表名或视图名> ]
| (<SELECT语句>) [AS] <别名>
[ WHERE <条件表达式> ]
[ GROUP BY <列名1> [ HAVING <条件表达式> ]]
[ ORDER BY <列名2> [ASC|DESC] ]

Note:

 1.<目标表达式>可以是:

    1) 属性列

    2) 算术表达式,如:2014-Sage

    3) 字符串常量,如:'姓名:'

    4) 函数,如:LOWER(Sdept) --> 用小写字母表示Sdept

 2.GROUP BY --> 将结果按照<列名1>的值进行分组,

                该属性列值相等的元组为一个组

   带有HAVING --> 只有满足指定条件的组才予以输出

   eg:

    SELECT Sno,AVG(Grade)

    FROM SC

    GROUP BY Sno

    HAVINT AVG(Grage)>=90;

 3.ORDER BY --> 按照<列名2>的值排序:ASC --> 升序(默认)

                                     DESC -> 降序

 4.查询条件(WHERE子句):

    1) 比较:

        =,>,<,>=,<=,!= or <>,!>,!<

        NOT+上述比较符

             Note: =后面接值 --> 比较操作

                   =后面接列 --> 连接操作

    2) 范围:

        BETWEEN lower_limit AND upper_limit

             Note: 包括lower_limit和upper_limit

        NOT BETWEEN lower_limit AND upper_limit

    3) 确定集合:

        IN

             eg: WHERE Sdept IN ('CS','MA','IS')

        NOT IN

    4) 字符匹配:

        LIKE

        NOT LIKE

             Note:

              语法:

               1.[NOT] LIKE '<匹配串>' [ESCAPE'<换码字符>']

               2.% --> 任意长度(可为0)的字符串

                 _ --> 任意单个字符串

             eg:

               WHERE Cname LIKE 'DB\_%i_' ESCAPE'\'

    5) 空值:

        IS NULL

        IS NOT NULL

             eg:

              WHERE Grade IS NULL

猜你喜欢

转载自www.cnblogs.com/daheww/p/10494965.html