• MySQL 2 SQL数据使用(检索、排序、过滤:SELECT/FROM/LIMIT/ORDER BY/DESC/WHERE/AND/OR/IN/NOT)


    1. 使用SELECT语句从表中检索一个或多个数据列。

    选择什么?从哪里选?

    多条SQL语句必须以分号分隔;SQL语句不区分大小写。空格被忽略,可以用一或多个空格分开指令。

    检索单个列:

      SELECT 列名  FROM 表名;

    检索多个列: 当心逗号

      SELECT 列1,列2,列3  FROM 表;

    检索所有列:(*)通配符

      SELECT * FROM 表;

    DISTINCT关键字:指示MySQL只返回不同的值

      SELECT DISTINCT 列 FROM 表;

    LIMIT关键字:限制结果

      SELECT 列 FROM 表 LIMIT 5;  //只选择其中5条记录返回

      如果要指定开始的行:  SELECT 列 FROM 表 LIMIT 5, 5;  //从第5行开始,选择5行返回。数据不足时,只返回满足行的数据。第一行行号为0。

      LIMIT m, n;  //从m行开始返回n行  一个等同的写法是:LIMIT m OFFSET n;

    使用完全限定的表名:

      SELECT products.prod_name FROM products;  //同时使用表名和列名来引用列

      SELECT products.prod_name  FROM  crashcourse.products;  //表可以用数据库名和表名一起来限制

    2.  排序数据

    子句:SQL语句由子句构成,有些子句是必需的,而有的是可选的。一个子句通常由一个关键字和所提供的数据组成。

    ORDER BY子句取一个或多个列对输出进行排序。

      SELECT 列 FROM 表 ORDER BY 列;  //以列对输出进行排序

    ORDER BY子句选择的列通常是显示的列,但也可使用未检索的列。

    按多个列进行排序:

      指定列名,列名之间用逗号分隔开。

      SELECT prod_id, prod_price, prod_name

      FROM products

      ORDER BY prod_price, prod_name;

    在按多个列排序时,排序完全按照所规定的顺序进行。按上述例子就是 在prod_price相同时按prod_name进行排序。

    指定排序方向:  ORDER BY默认升序,还可以降序,要使用DESC配合。

      SELECT prod_id, prod_price, prod_name

      FROM products

      ORDER BY prod_price DESC;

    DESC在ORDER BY所指列后面表示该列按降序排序,即Z~A。

      SELECT prod_id, prod_price FROM products ORDER BY prod_id DESC, prod_price;

    与DESC相反的关键字是ASC,但一般省略,因为默认就是按升序排列。

    排序中,大小写字母被视为相同。

    ORDER BY子句的位置:应跟在FROM 子句后面。如果使用LIMIT,他必须位于ORDER BY之后。

      SELECT prod_id FROM products

      ORDER BY prod_id

      LIMIT 3, 5;

    3. 过滤数据 WHERE

    搜索条件:过滤条件,检索数据时根据特定操作或报告的需要提取数据的子集。

    WHERE子句在表名(FROM子句)之后给出:

      SELECT prod_name, prod_price

      FROM products

      WHERE prod_price=2.50;

    只过滤出prod_price等于2.5的数据。

    WHERE子句操作符:(<>和!=相同)

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

    BETWEEN和AND一起使用

      SELECT prod_name FROM products BETWEEN 5 AND 10;

    空值检查:NULL空值,它与字段包含0、空字符串或仅仅含有空格不同。

    通过IS NULL检查具有NULL值的列:

      SELECT prod_name FROM products WHERE prod_price IS NULL;  //返回prod_price为空的记录中的prod_name

    组合WHERE子句:

    操作符:用来联结或改变WHERE子句中的子句的关键字,也称为逻辑操作符。

    AND操作符:用来检索满足前后条件的行

      SELECT prod_id, prod_price, prod_name

      FROM products

      WHERE vend_id = 1003 AND prod_price <= 10;

    OR操作符:

    它指示MySQL检索匹配任一条件的行。

      SELECT prod_name, prod_price

      FROM products

      WHERE vend_id = 1002 OR vend_id = 1003;

    计算次序:

    WHERE可包含任意数目的AND和OR操作符。允许两者结合以进行复杂和高级的过滤。

    SQL在处理OR操作符前,优先处理AND操作符。

    可以用括号括住一个WHERE后的条件。

    IN操作符:

    用来指定条件范围,范围中的每个条件都可以进行匹配。IN取合法值的由逗号分隔的清单,全都括在圆括号中

      SELECT prod_name, prod_price

      FROM products

      WHERE vend_id IN (1003, 1002)

      ORDER BY prod_name;

    IN操作符与OR操作符有所重叠,IN操作符要比OR操作符方便处理长的合法选项清单,且IN操作符速度较快。IN还可以包含其它SELECT子句。

    NOT操作符:

    WHERE子句中的NOT操作符有且只有一个功能,那就是否定它之后所跟的任何条件。

      SELECT prod_name, prod_price

      FROM products

      WHERE vend_id NOT IN (1002,1003)

      ORDER BY prod_name;

  • 相关阅读:
    slf4j绑定log4j失败
    [转]activiti5用户任务分配
    关于ajax提交的公共接口的一大用处
    jQuery插件开发方式
    centos7安装mysql
    Centos7安装JDK
    奇葩问题:spring+mybaits项目突然出现其中一些Mapper类找不到
    JAVA多线程下,获取递增的序列号
    库存扣减的流水账记录问题
    My97DatePicker使用的问题
  • 原文地址:https://www.cnblogs.com/cjj-ggboy/p/12529975.html
Copyright © 2020-2023  润新知