第七章 数据过滤
组合WHERE子句
AND操作符
SELECT prod_price,prod_name
FROM products
WHERE vend_id = 1003 AND prod_price <=10;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223132219939.png)
OR操作符
SELECT prod_price,prod_name
FROM products
WHERE vend_id = 1003 OR prod_price <=10;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223132331580.png)
计算计次
SELECT prod_price,prod_name,vend_id
FROM products
WHERE vend_id = 1003 OR vend_id = 1002 AND prod_price <=10;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223133351308.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTI0NjkwOQ==,size_16,color_FFFFFF,t_70)
SELECT prod_price,prod_name,vend_id
FROM products
WHERE (vend_id = 1003 OR vend_id = 1002) AND prod_price <=10;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223133511937.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTI0NjkwOQ==,size_16,color_FFFFFF,t_70)
IN 操作符
SELECT prod_price,prod_name,vend_id
FROM products
WHERE vend_id IN (1002,1003)
ORDER BY prod_name;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223133732736.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTI0NjkwOQ==,size_16,color_FFFFFF,t_70)
NOT操作符
SELECT prod_price,prod_name,vend_id
FROM products
WHERE vend_id NOT IN (1002,1003)
ORDER BY prod_name;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223134029648.png)
第八章 用通配符进行过滤
LIKE操作符
- 通配符:用来匹配值的一部分的特殊字符
- 搜索模式:由字面值,通配符或俩者组合成的搜索条件
百分号%:任意字符出现任意次
SELECT prod_id,prod_name
FROM products
WHERE prod_name LIKE 'jet%';
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223135250446.png)
下划线_ :任意单个字符
SELECT prod_id,prod_name
FROM products
WHERE prod_name LIKE '_ ton anvil';
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223135803283.png)
在使用通配符时,若非必要,则不要将通配符放在搜索模式的开头
用正则表达式进行搜索
使用MySQL正则表达式
SELECT prod_id,prod_name
FROM products
WHERE prod_name REGEXP '1000';
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223162657885.png)
(.)匹配任意一个字符
SELECT prod_id,prod_name
FROM products
WHERE prod_name REGEXP '.000';
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223162926411.png)
进行OR(|)匹配
SELECT prod_id,prod_name
FROM products
WHERE prod_name REGEXP '1000|2000';
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223163215419.png)
[ ]匹配几个字符之一
SELECT prod_id,prod_name
FROM products
WHERE prod_name REGEXP '[123]000';
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223163436445.png)
匹配范围
SELECT prod_id,prod_name
FROM products
WHERE prod_name REGEXP '[1-5] Ton';
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223163829209.png)
匹配特殊字符
SELECT prod_id,prod_name
FROM products
WHERE prod_name REGEXP '\\.';
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223164026298.png)
元字符 | 说明 |
---|
\\f | 换页 |
\\n | 换行 |
\\r | 回车 |
\\t | 制表 |
\\v | 纵向制表 |
匹配多个实例
元字符 | 说明 |
---|
* | 0或多个匹配 |
+ | 1或多个匹配 |
? | 0或1个匹配 |
{n} | 指定数目匹配 |
{n, } | 不少于指定数目匹配 |
{n,m} | 指定数目范围匹配 |
SELECT prod_id,prod_name
FROM products
WHERE prod_name REGEXP '\\([0-9] sticks?\\)';
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223171141596.png)
定位符
元字符 | 说明 |
---|
^ | 文本开头 |
$ | 文本结尾 |
[[:<;]] | 词开头 |
[[:>;]] | 词结尾 |
SELECT prod_id,prod_name
FROM products
WHERE prod_name REGEXP '^[0-9\\.]';
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223172345847.png)
创建计算字段
拼接字段
Concat()拼接俩个列
SELECT Concat(vend_name,'(',vend_country,')')
FROM vendors
ORDER BY vend_name;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223180033487.png)
RTrim() 删除数据右侧多余的空格
SELECT RTrim(vend_country)
FROM vendors
ORDER BY vend_name;
LTrim() 删除数据左侧多余的空格
Trim()删除数据俩侧多余的空格
AS 别名
执行算术计算
SELECT prod_id,
quantity,
item_price,
quantity*item_price AS 总价
FROM orderitems
WHERE order_num = 20005;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223181313846.png)