7.过滤数据
过滤语句是在where语句内进行的,和操作符AND|OR|IN|NOT|配合使用。
- 关键字可以将表中不同的过滤条件进行组合,筛选出我们需要的数据。
select prod_id, prod_price, prod_name
from products
where vend_id = 1003 and prod_price >= 10;
- 当需要OR与AND关键字配合使用时,解释器会先对AND执行,之后再执行OR,所以需要用()注意顺序,如果没有括号,解释器会将第2第3条命令链接在一起优先搜索,并不能保证1003ID的检索价格大于10
where (vend_id = 1003 or vend_id = 1004)AND prod_price >= 10;
- IN用来指定搜索的条件,范围中每个条件都可匹配,与OR有相似之处,IN的好处是搜索快于OR
- NOT可以与IN配合使用
8.用通配符进行过滤
- LIKE关键字对未知进行过滤,同时有区别于REGEXP正则表达搜索。
- 关键字LIKE与%配合使用,%表示双任意,任意字符出现任意次数,使用的位置也是任意,但是需要注意NULL值不会通过%搜索得到例如:
where prod_name = '%';不会得到NULL的返回
- 关键字LIKE与_配合使用,_表示单个字符匹配
- 通配符使用技巧:
1) 在搜索模式的开头谨慎使用,这样会搜索的很慢。
2) 不要过度使用通配符,有替代时尽量使用替代。
9.用正则表达式进行搜索
- 什么是正则表达?
正则表达式的处理对象是字符串,具有:
(1)匹配功能; 是第9节主要需要了解的功能
(2)切割功能;
(3)替换功能;
匹配功能REGEXP与LIKE的不同在于:LIKE关键字在匹配时与列中存储的整个元素比较,不能在列中比较元素的某一部分是否相似。LIKE关键字搭配通配符进行搜索。
REGEXP在搜索时将搜索条件当作条件,这与LIKE没什么不同,但是REGEXP可以匹配原则是列中元素的一部分,而LIKE是与整个元素做比较。
但是REGEXP是可以与整列进行比较的,需要使用定位符^与%声明。
- 匹配字符
(1)匹配特殊字符:使用\\为前导,表示转译,
(2)匹配多个字符
(3)多个字符
10.创建计算字段
- 什么是计算字段?
这是一种手段,用来提取保存在数据库中的信息,创建计算字段在SELECT关键字中运行
- 拼接字段
函数concat() as
- 执行算数运算
+ - * %
11.使用数据处理函数
SQL语句有很强的移植性,但是MySQL中的函数却没有