数据库-mysql(四)

                                                                                     过滤数据

数据库表一般包含大量的数据,只检索所需数据需要指定搜索条件(search criteria),搜索条件也称为过滤条件

eg :      select  name from student  where name="zhangsan";


注意:SQL过滤与应用过滤 

    数据也可以在应用层过滤。为此目的,SQL的 SELECT 语句为客户机应用检索出超过实际所需的数据,然后客户机代码对返回数据进行循环,以提取出需要的行。通常,这种实现并不令人满意。因此,对数据库进行了优化,以便快速有效地对数据进行过滤。让客户机应用(或开发语言)处理数据库的工作将会极大地影响应用的性能,并且使所创建的应用完全不具备可伸缩性。此外,如果在客户机上过滤数据,服务器不得不通过网络发送多余的数据,这将导致网络带宽的浪费。
  注意: WHERE 子句的位置 

  在同时使用 ORDER BY 和 WHERE 子句时,where在前,orderby 在后,应该先条件在排序

mysql支持的条件操作符

                                             操 作 符  说 明
                                             =                等于
                                             <>            不等于
                                             !=              不等于
                                             <                 小于
                                             <=            小于等于
                                              >                  大于
                                              >=             大于等于
                                       BETWEEN     在指定的两个值之间

注意:MySQL在执行匹配时默认不区分大小写(所以name,和NAME做条件匹配出的是同一条记录)

  *****特别记忆:and 和多个or 连接做条件,and 和 or 是并列的,要什么逻辑就把一组括起来

         eg:select * from student where name='张三'  and price=21   or price=22,or price=23;(张三,21//22//23)

          eg:select * from student where name='张三'  and (price=21  or price=22,or price=23);(张三和21//张三和22//张三和23)

 注意:   NULL 无值(no value),它与字段包含 0 、空字符串或仅仅包含
空格不同;在创建表时,表设计人员可以指定其中的列是否可以为空。在
一个列可以为空时,称其为包含空值 NULL

空值检查:

     eg: select * from student where price is null;

这条语句返回没有价格(空 price字段,不是价格为0)的所有产品

 操作符in 跟多个or 的效果相同

     eg:select * from student where price in(21,22,23);

            select * from student where price =21  or  price =22  or  price =23);

NOT操作符   :  WHERE 子句中用来否定其后跟条件的关键字

通配符

    通配符可在搜索模式中任意位置使用,并且可以使用多个通配符

  %任意字符任意次;_只匹配单个字符

 like 模糊查询,一般跟通配符配合使用

eg:   like  'jet%'

       like  '%jet%' 

       like  'a%jet%e' 

*********like 'jet' 也对,但不返回任何行值,跟通配符使用才返回值*********

正则表达式

       随着过滤条件的复杂性的增加, WHERE 子句本身的复杂性也有必要增加。
这也就是正则表达式变得有用的地方。正则表达式是用来匹配文本的特殊的串(字符集合)。如果你想从一个文本文件中提取电话号码,可以使用正则表达式。如果你需要查找名字中间有数字的所有文件,可以使用一个正则表达式。如果你想在一个文本块中找到所有重复的单词,可以使用一个正则表达式。如果你想替换一个页面中的所有URL为这些URL的实际HTML链接,也可以使用一个正则表达式(对于最后这个例子,或者是两个正则表达式)。
       所有种类的程序设计语言、文本编辑器、操作系统等都支持正则表
达式,MySQL用 WHERE 子句对正则表达式提供了初步的支持,允许你指定正则表达式,过滤 SELECT 检索出的数据。

      

       

        







   

   

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值