• (原创)SQL总结(二)


    过滤数据

    有时候在搜索时需要指定搜索范围,过滤掉一些不需要输出的数据

    使用where子句

    SELECT prod_name,prod_id,prod_price FROM Products WHERE prod_price=3.49;表示输出价格为3.49的所有行的name,id,price项。
    注意,如果要使用排序,那么ORDER BY一定要位于WHERE子句之后。

    where子句的操作符

    这一部分看书即可,包括等于=,不等于<>,小于<,等操作符
    另外还有BETWEEN表示在指定的两个值之间,IS NULL表示为NULL值
    SELECT prod_name,prod_price FROM Products WHERE prod_price BETWEEN 5 AND 10 ORDER BY prod_name;
    如果操作符后面是字符串,那么需要将字符串用单引号,如果是数值,则不需要。
    SELECT prod_name,prod_price FROM Products WHERE prod_price IS NULL;

    高级数据过滤

    组合where子句

    AND OR
    SELECT prod_name,prod_id,prod_price FROM Products WHERE prod_price<=4 AND vend_id ='DLL01';

    求值顺序

    如果,在where子句中and和or太多,容易造成输出错误问题,因为在处理OR之前,会先处理AND,这可能与我们的初衷不同。因此,我们需要时刻添加括号来保证求值顺序。
    SELECT prod_name,prod_id,prod_price FROM Products WHERE (vend_id ='DLL01' OR vend_id ='BRS01') AND prod_price>=10;

    IN

    SELECT prod_name,prod_id,prod_price FROM Products WHERE vend_id IN ('DLL01','BRS01') AND prod_price>=10;
    IN与OR完成了相同的功能。

    NOT

    用来否定其后所跟的任何条件。
    SELECT prod_name,prod_id,prod_price FROM Products WHERE NOT vend_id 'DLL01' ORDER BY prod_price;

    通配符进行数据过滤

    LIKE操作符

    问题引出,怎么搜索产品名称中包含文本 bean bag 的所有产品?
    通配符:用来匹配值的一部分的特殊字符。
    搜索模式:有字面值、通配符或两者组合构成的搜索条件。
    注意 通配符搜索只能作用于文本字段(字符串),非文本数据类型字段不能使用通配符搜索。
    最常使用的通配符是%
    SELECT prod_id,prod_name FROM Products WHERE prod_name LIKE 'Fish%';找出所有以词Fish起头的产品。
    注意,有的数据库区分大小写,但是MYSQL不区分。
    SELECT prod_id,prod_name FROM Products WHERE prod_name LIKE '%bean bag%';
    比较有用的地方是根据邮件地址的一部分来查找电子邮件。如 WHERE email LIKE '%@sina.com';
    注 %不能匹配NULL。
    下划线(_)通配符。
    与%的区别,一个_只匹配单个字符,两个_就匹配两个字符,而一个%就能匹配多个字符。
    SELECT prod_id,prod_name FROM Products WHERE prod_name LIKE '__ inch teddy bear';可以匹配inch前的两个字符。
    方括号[]通配符。
    用来指定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符。
    只有ACCESS和SQL Server支持集合。

  • 相关阅读:
    java中的访问控制符
    DDD CQRS和Event Sourcing的案例:足球比赛
    你用过Spring中哪些功能?
    基于角色的权限访问控制初步
    mybatis深入学习
    GNU make学习笔记
    XmlFactoryBean和DefaultListableBeanFactory学习
    重新组织函数
    【JRebel 作者出品--译文】Java class 热更新:关于对象,类,类加载器
    不吹不黑,关于 Java 类加载器的这一点,市面上没有任何一本图书讲到
  • 原文地址:https://www.cnblogs.com/rayshaw/p/9021123.html
Copyright © 2020-2023  润新知