美文网首页嵌牛IT观察
数据库学习(八)

数据库学习(八)

作者: 大猫_23fe | 来源:发表于2018-07-12 11:24 被阅读10次

    顾颖17021223250

    转载自https://blog.csdn.net/tc_1337/article/details/80924588

    【嵌牛导读】:单表查询

    【嵌牛鼻子】:查询

    【嵌牛提问】:如何操作数据库进行表的查询?

    【嵌牛正文】:

    一、简单查询

    SELECT [DISTINCT] * | {字段名1, 字段名2, 字段名3,...}

    FROM表名 [WHERE 条件表达式1]

    [GROUP BY字段名 [HAVING 条件表达式2]]

    [ORDER BY字段名 [ASC | DESC]]

    [LIMIT [OFFSET]记录数]

    说明: LIMIT[OFFSET]记录数: "LIMIT" 是可选参数,用于限制查询结果的数量. LIMIT后面可以跟两个参数,

    第一个参数"OFFSET"表示偏移量, 如果偏移量为0则从查询结果的第一条记录开始,偏移量为1则从查询结

    果的第二条记录开始,以此类推. OFFSET为可选值, 如果不指定其默认值为0.第二个参数"记录数"表示返回

    查询记录的条数.

    1.1查询所有字段

    SELECT字段名1, 字段名2, ...FROM 表名;

    SELECT * FROM表名;

    1.2查询指定字段

    SELECT字段名1, 字段名2, ... FROM 表名;

    二、按条件查询

    2.1带关系运算符的查询

    SELECT字段名1, 字段名2, ... FROM 表名 WHERE 条件表达式

    关系运算符包括:

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

    2.2带IN关键字的查询

    IN关键字用于判断某个字段的值是否在指定的集合中,如果字段的值在集合中, 则满足条件,该

    字段所在记录将被查询处理.

    SELECT * |字段名1, 字段名2, ... FROM 表名

    WHERE字段名 [NOT] IN (元素1, 元素2, ...)

    2.3使用BETWEEN AND 关键字查询

    BETWEEN AND用于判断某个字段的值是否在指定的范围之内,如果字段的值在指定范围则满足条件

    该字段所在的记录将被查询出来,反之则不会被查询出来.

    SELECT * | {字段名1, 字段名2, ...} FROM 表名

    WHERE字段名 [NOT] BETWEEN 值1, AND 值2 ;

    其中,值1 和 值2 都包含在结果集之内.

    2.4空值查询

    SELECT * |字段名1, 字段名2, ... FROM 表名

    WHERE字段名 IS [NOT] NULL;

    2.5带DISTINCT 关键字的查询

    SELECT DISTINCT字段名 FROM 表名;

    其中, DISTINCT关键字可以作用于多个字段

    SELECT DISTINCT字段名1, 字段名2, ... FROM 表名;

    当DISTINCT关键字作用于多个字段时,只有这个多个字段的值都对应相同,才被认为是重复记录.

    2.6带LIKE关键字的查询

    SELECT * | {字段名1, 字段名2,...} FROM 表名 WHERE 字段名[NOT] LIKE ‘匹配字符串’;

    “匹配字符串”是指用来匹配的字符串,其值可以是一个普通字符串,也可以是包含百分号(%)和下划线

    (_)的通配符字符串。

    百分号(%)通配符:匹配任意长度的字符串,包括空字符串。

    下划线(_)通配符:只能匹配单个字符,如果要匹配多个字符,需要使用多个下划线通配符。

    如果使用多个下划线匹配多个连续的字符,下划线之间不能有空格。

    注意:如果要匹配字符串中的百分号和下划线,就需要在通配字符串中使用右斜线(“\”)对百分号

    和下划线进行转义。

    2.7带AND关键字的多条件查询

    SELECT * | {字段名1, 字段名2,...} FROM 表名

    WHERE条件表达式1 AND 条件表达式2 [... AND 条件表达式n];

    2.8带OR关键字的多条件查询

    只要记录满足任意一个条件就会被查询出来。

    SELECT * | {字段名1, 字段名2, ...} FROM 表名 WHERE 条件表达式1 OR 条件表达式2 [...OR条件表达式n];

    注意:AND的优先级高于OR,当AND和OR关键字一起使用的时候,先运算AND两边的条件表达式,

    再运算OR两边的条件表达式。

    三、高级查询'

    3.1聚合函数

    常见函数:

    COUNT( )返回某列的函数   MAX() 返回某列的最大值  MIN() 返回某列的最小值

    SUM()返回某列值的和    AVG() 返回某列的平均值

    SELECT COUNT(*) FROM表名;

    SELECT SUM(字段名) FROM 表名;

    SELECT AVG(字段名) FROM  表名;

    ....

    3.2对查询结果排序

    SELECT字段名1, 字段名2, ... FROM 表名 ORDER BY 字段名1 [ASC | DESC], 字段名2 [ASC|DESC]

    注意:在按照指定字段进行升序排序时,如果某记录的字段值为NULL,则这条记录会在第一条显示,

    这是因为NULL值可以被认为是最小值。

    3.3分组查询

    SELECT字段名1, 字段名2,... FROM 表名 GROUP BY 字段名1, 字段名2,...

    [HAVING条件表达式]

    说明:指定的字段名1,字段名2等是进行分组的依据。

    HAVING关键字指定条件表达式对分组后的内容进行过滤。

    GROUP BY和聚合函数一起使用,可以统计出某个或者某些字段在一个分组中的最大值、最小值、平均值等。

    注意:HAVING关键字和WHERE关键字作用相同,都用于设置条件表达式对查询结果进行过滤,两者区别在于

    HAVING关键字后可以跟聚合函数,而WHERE关键字后不能。

    3.4使用LIMIT限制查询结果的数量

    可以指定查询结果从哪一条记录开始以及一共查询多少条信息。

    SELECT字段名1, 字段名2,... FROM 表名 LIMIT [OFFSET,] 记录数

    说明:参数“OFFSET”表示偏移量,如果偏移量为0,则从查询结果的第一条记录开始,偏移量为1

    则从查询结果的第二条记录开始,依次类推。

    参数“记录数”表示返回查询记录的条数。

    四、为表和字段取别名

    SELECT * FROM表名 [AS] 别名;

    SELECT字段名 [AS] 别名 [, 字段名[AS] 别名...] FROM 表名;

    相关文章

      网友评论

        本文标题:数据库学习(八)

        本文链接:https://www.haomeiwen.com/subject/qtblpftx.html