一、用通配符进行过滤
通配符本身实际上是SQL的WHERE子句中有特殊含义的字符,SQL支持几种通配符。通配符只能搜索只能用于文本字段(字符串),非文本数据类型字段不能使用通配符搜素。运用:怎样搜素产品中包含文本bean bag的产品?
LIKE操作符
- 谓词
- 操作符何时不是操作符?答案是,它作为谓词时。从技术上来说,LIKE是谓词问不是操作符。虽然最终的结果相同,但应对此术语用所了解。
百分号(%)通配符
- 最常使用的通配符就是百分号(%)在搜索中,%表示任何字符串出现的任意次数。eg:为了找出所有以fish起头的产品,可以使用以下SELECT语句:
SELECT pro_id, pro_name FROM Products WHERE pro_name LIKE 'fish%'```
- 输出结果:
| pro_id | pro_name |
| :-: | :-: |
| BR02 | fish bean bag toy |
- 注意:搜索是区分大小写的。'Fish%'与fish bean bag toy就不匹配
***
###下划线(_)通配符
- 另一个有用的通配符是下划线(_),下划线的用途与%一样,但它只匹配单个字符,而不是多个字符。eg:为了找出所有以__ inch起头的产品,可以使用以下SELECT语句:
SELECT pro_id, pro_name FROM Products WHERE pro_name LIKE '__ inch Teddy bear'```
- 输出结果:
pro_id | pro_name |
---|---|
BR02 | 12 inch Teddy bear |
BR03 | 18 inch Teddy bear |
方括号( [] )通配符
- 方括号( [] )通配符用来指定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符。eg:找出所有名字以M或J起头的联系人,可用如下查询语句:
SELECT cust_contact FROM Customers WHERE cust_contact LIKE '[JM]%' ORDER BY cust_contact ```
- 输出结果:
| cust_contact |
| :-: |
| Jim jones |
| John Smith |
| Michelle Green |
***
###实验通配符的技巧
- 正如所见,SQL的通配符很有用。但这种功能是有代价,即通配符搜索比一般前面讨论的其他搜索要耗费更长的时间。这里总结一下通配符的使用技巧。
- 不用过度使用通配符。如果其他操作符能实现相同的目的,应该使用其他操作符。
- 在确实需要使用通配符时,也尽量不要把它们用在搜索模式的开始处。通配符置于开始处,搜索起来是最慢的。
- 仔细注意通配符的位置。如果放错地方,可能不会返回想要的结果。
***
***
***
#二、汇总数据
###SQL聚焦函数
|函数|说明|
| :-: | :-: |
| **AVG()** | 返回某列的平均值 |
| **COUNT()** | 返回某列的行数 |
| **MAX()** | 返回某列的最大值 |
| **MIN()** | 返回某列的最小值 |
| **SUM()** | 返回某列均值之和 |
- #####运用:
- 确定标准的函数(或者满足某个特定条件或包含某个特定值的行数)
- 获得表中某些行的和
- 找出表列(或所有行或某些特定的行)的最大值、最小值、平均值