美文网首页
SQL—检索数据

SQL—检索数据

作者: Mg明明就是你 | 来源:发表于2016-10-17 17:52 被阅读108次
    • 数据库(database):
      • 是一个以某种有组织的方式存储的数据集合。最简单的方法是将数据库想象为一个文件柜。

    SELECT语句

    使用select检索表数据

    • 检索单个列:(pro_name是列名,Products是表)
      - SELECT pro_name FROM Products;
    • 检索多个列
      - SELECT pro_id,pro_price,pro_name FROM Products;
    • 检索所有列:(* 是通配符)
      - SELECT * FROM Products;
    • 检索不同的值:(DISTINCT)
      - SELECT DISTINCT vendo_id FROM Products 注意不能部分使用DISTINCT。因为DISTINCT 作用于所有的列,不仅仅是跟在最后的那一列。比如:SELECT DISTINCT pro_id,pro_price,所有的列都会被检索出来。
    • 限制结果:(LIMIT)
      - SELECT pro_name FROM Products LIMIT 5 OFFSET 5 (注意:第1点、LIMIT 1 OFFSET 1会检索第2行,而不是第1行。第2点、LIMIT 4 OFFSET 3等价于LIMIT 3,4)
    • 使用注释:(--或#或/* /)
      - SELECT pro_name --这是一条注释 FROM Products (第一点:注释使用--(两个连字符)嵌在行内。--之后就是注释。 第二点:在一行的开始使用#。这一整行都将作为注释。第三点:注释从/
      开始,到/结束,/和*/之间的任何内容都是注释)



    排序检索数据

    排序数据(ORDER BY)

    保证ORDER BY是SELECT语句中最后一条语句,如果不是,就会出现错误信息。

    • 按单个列排序:(pro_name是列名,Products是表)
      - SELECT pro_name FROM Products ORDER BY pro_name ;
    • 按多个列排序
      - SELECT pro_id,pro_price,pro_name FROM Products ORDER BY pro_name,pro_price;
    • 按列位置排序
      - SELECT pro_id,pro_price,pro_name FROM Products ORDER BY 2,3;
    • 指定排序方向
      - SELECT pro_id,pro_price,pro_name FROM Products ORDER BY pro_price DESC; // 降序排序 (注意:如果想在多个列进行降序排序,必须对每一列指定DESC关键字)



    过滤数据

    使用WHERE语句

    数据库一般包含大量的数据,很少需要表中的所有行。通常只会根据特定的操作或报告的需要提取表中数据的子集。只检索所需数据需要的指定的搜索条件(search criteria),搜索条件也称为过滤条件(filter condition),在SELECT语句中,数据根据WHERE语句中指定的搜索条件进行过滤。WHERE语句在表名(FROM语句)之后给出。
    - SELECT pro_id,pro_price,pro_name FROM Products WHERE pro_price = 3.67;

    WHERE语句操作符

    操作符 说明 操作符 说明
    = 等于 > 大于
    <> 不等于 >= 大于等于
    != 不等于 !> 不大于
    < 小于 BETWEEN 在指定的两个值之间
    <= 小于等于 IS NULL 为NULL值
    !< 不小于 nil
    • 检查单个值
      • SELECT pro_id,pro_price,pro_name FROM Products WHERE pro_price < 7;
    • 不匹配检查
      • SELECT vend_id,pro_name FROM Products WHERE vend_id <> 'DLL02';
    • 范围值检查:(指定开始日期和结束日期之间的所以日期或者价格区间)
      • SELECT pro_price,pro_name FROM Products WHERE pro_price BETWEEN 5 AND 8;
    • 空值检查
      • SELECT cust_name FROM Customers WHERE cust_email IS NULL;



    高级过滤数据

    组合WHERE子句

    主要有两种方式:即以AND子句或者OR子句的方式使用。区别在AND要满足多个条件,而OR在WHERE子句的第一个条件得到满足的情况下就不会计算第二个条件了(不管第二个条件是否满足,相应的行22都会被检索出来) 。如果WHERE子句中,有AND也有OR,优先2处理AND操作符。

    • AND操作符
      • SELECT pro_id,pro_price,pro_name FROM Products WHERE pro_price < 7 AND pro_name = 'DLL02';
    • OR操作符
      • SELECT pro_id,pro_price,pro_name FROM Products WHERE pro_price < 7 OR pro_name = 'DLL02';
    • 求值顺序
      • SELECT pro_id,pro_price,pro_name FROM Products WHERE pro_price < 7 OR pro_name = 'DLL02' AND pro_id = '3';

    IN操作符

    IN操作符用来指定条件范围,范围中的每个条件度可以匹配。IN取一组由逗号分隔、扩在圆括号中的合法值。

    • SELECT pro_price,pro_name FROM Products WHERE vend_id IN ('DLL02','BRS02');

    NOT操作符

    WHERE子句中的NOT也有且只有一个功能,那就是否定其后所跟的任何条件

    • SELECT pro_price,pro_name FROM Products WHERE NOT vend_id = 'DLL02' ORDER BY pro_name ;

    相关文章

      网友评论

          本文标题:SQL—检索数据

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