sql select语句(where)过滤数据

sql select语句(where)过滤数据

  1. where基本使用

    #返回 ms_user表age小于13的所有项的name,age
    SELECT name,age FROM ms_user WHERE age<13;
    

    WHERE语句操作符

    操作符 说明
    = 等于
    < 小于
    <= 小于等于
    > 大于
    >= 大于等于
    != 不等于
    <> 不等于
    BETWEEN 在指定的两个数之间
    #这些操作符很好理解就不做过多的记载和解释了
    注:其中 != 和 <>的作用是相同的,因为习惯于其他编程语言的习惯,我们通常用的都是 !=
    例: SELECT * FROM ms_user WHERE id != 3;
        SELECT * FROM ms_user WHERE id <> 3;
    
    注: 当进行过滤数据时,字符串需要使用单引号 ''
    例: SELECT * FROM ms_user WHERE name = 'lisi';
    
    注: 当需要同时使用 ORDER BY 子句和 WHERE 子句时,应该让 ORDER BY 位于 WHERE 之后,否则将会产生错误
    例: SELECT * FROM ms_user WHERE age < 13 ORDER BY age;
    
    BETWEEN 用法 : 使用BETWEEN必须只等连个值---所需范围的低端值和高端值。 两个值用 AND 连接
    例: SELECT * FROM ms_user WHERE age BETWEEN 5 AND 10;
    # 检索ms_user表中age在 5到10之间的数据;
    
  2. 空值检索

    在创建表示我们可以指定一个列是否可以包含空值。在一个列不包含值的时候,称其为包含空值NULL
    # 注:NULL 无值(no value), 他与字段包含0,空字符串或包含空格不同。
    SELECT 中有一个特殊的WHERE 子句,可以检索具有NULL值的列 :(IS NULL)
    例: SELECT * FROM ms_user WHERE name IS NULL;
    
  3. 数据过滤

    1. AND  OR ,与java 语言中的 && || 类似,用法也类似
    例: SELECT * FROM ms_user WHERE name = 'wzy' AND age < 21; 
        SELECT * FROM ms_user WHERE age < 5 or age >15;
    

    注:AND的优先级高于OR, 当AND 和 OR 同时使用的时候SQL 优先处理AND ,我们可以通过圆括号来明确分组相应的操作符,来达到自己的目的。

    SELECT * FROM ms_user WHERE (age = 3 or age = 13) AND name = 'wzy';
    
    注:任何时候使用具有 AND 和 OR 操作符的WHERE 子句,都应该使用圆括号明确地分组操作符,不要过分依赖于默认计算顺序,加括号又没坏处,还增加程序的可读性。
    

    IN 操作符

    2. IN 用处应该是和 OR 差不多,甚至一样。
    IN 操作符用来指定条件范围,范围中的每个条件都可以进行匹配。
    SELECT * FROM ms_user WHERE age IN(3,5);
    SELECT * FROM ms_user WHERE age = 3 OR age = 5;
    

    NOT 操作符

    3. NOT 用来否定其后跟的条件的关键字
    SELECT * FROM ms_user WHERE age NOT IN(3,5);
    #返回 ms_user 表中 age 不等于 3或5 的数据。
    AND OR IN 都可以和NOT 一起使用。 
    
  4. 用通配符进行过滤

    • 通配符: 用来匹配值的一部分的特殊字符。
    • 搜索模式 : 由字面值,通配符或两者组合构成的搜索条件
    1. % 百分号通配符
    用法: a%  :匹配以a开头的所有字符串
    	  %a  : 匹配以a结尾的所有字符串
    	  %a% : 匹配包含a的所有字符串
    	  a%b : 匹配以a开头以b结尾的所有字符串
    在使用通配符的时候,必须使用LIKE 操作符。
    LIKE 指示 MYSQL 后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较。
    例: SELECT * FROM ms_user WHERE name LIKE '%zy';
    
    注: WHERE name LIKE '%'; 看起来可以匹配任何值,但有一个例外 NULL, NULL 不能匹配到。
    
    2. _ 下划线通配符,与%的用途一样,但下划线只匹配单个字符,而不匹配多个字符。
    例: SELECT * FROM ms_user WHERE name LIKE '_zy';
    # 他只能匹配到 wzy, 但匹配不到  wwzy,zy ,因为 _ 只能匹配到zy 前的一个字符,不能多也不能少。
    
    
发布了28 篇原创文章 · 获赞 1 · 访问量 587

猜你喜欢

转载自blog.csdn.net/qq_41911729/article/details/104451677
今日推荐