zoukankan      html  css  js  c++  java
  • (原创)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支持集合。

  • 相关阅读:
    jquery加入购物车飞入的效果
    jQuery点击div其他地方隐藏div
    移动对meta的定义
    ZOJ
    博弈dp入门 POJ
    ZOJ 2967计算几何+单调栈
    牛客训练41D最小相似度bfs
    球的体积并
    二进制上的数位dpPOJ 3252
    数位dp入门 HDU 2089 HDU 3555
  • 原文地址:https://www.cnblogs.com/rayshaw/p/9021123.html
Copyright © 2011-2022 走看看