高级数据过滤
目录组合Where子句AND 操作符OR 操作符AND 和 OR 组合使用IN 操作符NOT 操作符LIKE 操作符百分号%通配符下划线_通配符本篇文章内容的前置知识为过滤数据如果不了解可点击链接学习过滤数据使用 SELECT WHERE组合Where子句之前所讲的 WHERE 子句在过滤数据时使用的都是单一的条件。为了进行更强的过滤控制SQL 允许给出多个 WHERE 子句。这些子句有两种使用方式即以AND 子句或 OR 子句的方式使用。AND 操作符AND 操作符用于组合多个条件要求所有条件都成立时才会返回记录。例如SELECT vend_id, prod_price, prod_name FROM products WHERE vend_id 100 AND prod_price 100;该查询会返回 vend_id 为 100 且 prod_price 小于或等于 100 的产品。OR 操作符OR 操作符用于表示多个条件之间只要有一个成立即可。例如SELECT prod_name, vend_id FROM products WHERE vend_id 100 OR vend_id 101;该查询会返回 vend_id 为 100 或 101 的所有产品无论其他条件如何。AND 和 OR 组合使用在 SQL 中AND 和 OR 可以组合使用。当这两者一起使用时AND 的优先级更高所以 SQL 在处理时会先处理 AND 操作符除非使用括号改变优先级。例如SELECT prod_name, prod_price, vend_id FROM products WHERE vend_id 100 OR vend_id 101 AND prod_price 100;该查询返回满足以下任一条件的产品vend_id 为 100无论价格如何或 vend_id 为 101 且 prod_price 大于等于 100。SELECT prod_name, prod_price, vend_id FROM products WHERE (vend_id 100 OR vend_id 101) AND prod_price 100;该查询返回 供应商为 100 或 101 且 价格大于等于 100 的产品。IN 操作符IN 操作符是多个 OR 条件的简写它可以使查询更加简洁。例如SELECT prod_name, vend_id FROM products WHERE vend_id IN (100, 101);相当于SELECT prod_name, vend_id FROM products WHERE vend_id 100 OR vend_id 101;IN 操作符的优先级高于 ANDAND高于 ORNOT 操作符NOT 操作符用于否定条件返回不符合指定条件的记录。NOT 放在被否定的条件前。SELECT prod_name, vend_id FROM products WHERE NOT vend_id 100;该查询会返回所有 vend_id 不等于 100 的产品。SELECT * FROM products WHERE NOT (vend_id IN (100, 101));该查询会返回 vend_id 不在 100 和 101 中的产品。LIKE 操作符LIKE 操作符用于 SQL 查询中进行模式匹配。与直接使用精确值的比较不同LIKE 允许使用通配符来查找与模式匹配的记录。百分号%通配符百分号 % 用于匹配任意数量的字符包括 0 个字符SELECT prod_id, prod_name FROM products WHERE prod_name LIKE 无线%;该查询将返回所有以 无线 开头的产品名称。SELECT prod_id, prod_name FROM products WHERE prod_name LIKE %电脑;该查询将返回所有以 电脑 结尾的产品名称。SELECT prod_id, prod_name FROM products WHERE prod_name LIKE %电%;该查询将返回产品名称中包含 “电” 字 的产品。下划线_通配符下划线 _ 用于匹配单个字符。SELECT prod_price, prod_name FROM products WHERE prod_price LIKE _99;该查询将返回产品价格中任意一个数字后跟 99 的产品比如 299399尚未完结可点击链接跳转下一篇文章创建和操纵表与约束-CSDN博客