where 条件子句

where 条件子句

where 子句用于检索数据中符合条件的值

搜索条件由一个或多个表达式组成,结果返回布尔值

1、逻辑运算符

运算符 语法 描述
and && a and b a&&b 逻辑与
or || a or b a||b 逻辑或
not ! not a ! a 逻辑非

尽量使用英文字母

2、逻辑运算符练习

  • 查询成绩在95~100之间的studentno

    -- AND 练习
    SELECT `studentno`,`studentresult` AS 'between 95 and 100' FROM result 
    WHERE `studentresult`>=95 AND `studentresult`<=100; 
    
    -- 也可以用 between and
    SELECT `studentno`,`studentresult` AS 'between 95 and 100' FROM result 
    WHERE `studentresult` BETWEEN 95 AND 100; 
    

  • 查询学生成绩(除了1000号)

    -- NOT 练习
    SELECT `studentno`,`studentresult` AS '除1000号以外的学生成绩' FROM result
    WHERE `studentno` !=1000;
    -- 或者
    SELECT `studentno`,`studentresult` AS '其他学员成绩' FROM result
    WHERE NOT `studentno` =1000;
    

  • 查询1001,1002号学员成绩

    -- OR 练习
    SELECT `studentno`,`studentresult` AS '1001,1002学员成绩' FROM result
    WHERE `studentno`=1001 OR `studentno`=1002;
    


3、模糊查询:比较运算符

运算符 语法 描述
IS NULL a IS NULL 如果为空,返回true
IS NOT NULL a IS NOT NULL 如果不为空,返回true
BETWEEN a BETWEEN b AND c 若a在b和c之间则返回true
LIKE a LIKE b SQL 匹配,若a匹配b则返回true
IN a IN(a1,a2,a3......) 若a为a1,a2,a3...其中之一,则返回true

4、模糊查询练习

1.LIKE 练习:查询名字带王学员的住址

用 LIKE

结合%(代表任意个字符)

结合 _(代表一个字符)

比如要查王X就用LIKE '王_'

要查王XX就用LIKE '王__'

......

以此类推

  • 查询所有王姓学员

    -- LIKE 练习
    -- 语法为 LIKE 结合 %(代表0到任意个字符) 或者 _(代表一个字符)
    SELECT `studentname`,`address` AS '家庭住址' FROM student
    WHERE `studentname` LIKE '王%';
    

  • 查询王X学员

    -- LIKE 结合 _ 代表一个字符
    SELECT `studentname`,`address` AS '家庭住址' FROM student
    WHERE `studentname` LIKE '王_';
    

  • 查询王XX学员

    -- LIKE 结合 __ 代表两个字符
    SELECT `studentname`,`address` AS '家庭住址' FROM student
    WHERE `studentname` LIKE '王__';
    

  • 查询名字中间带有三水的学员

    -- LIKE %三水%
    SELECT `studentname`,`address` AS '家庭住址' FROM student
    WHERE `studentname` LIKE '%三水%';
    


2.IN 练习:查询指定学号学员信息

  • 查询1001 1002 1003 号学员姓名和住址

    -- IN 练习
    -- 语法为 字段名 IN(......)
    SELECT `studentno`,`studentname` AS '学员姓名',`address` AS '家庭住址' FROM student
    WHERE `studentno` IN(1001,1002,1003);
    

  • 查询家庭住址在北京的学员学号、姓名和家庭住址

    这个还是用 LIKE 吧,因为可以用 %和_ 进行模糊匹配

    -- 查询家庭住址在北京的学员学号和姓名
    SELECT `studentno`,`studentname` AS '学员姓名',`address` AS '家庭住址' FROM student
    WHERE `address` LIKE '%北京%';
    


3.IS NULL 和 IS NOT NULL 练习

需要注意的是语法为

字段名='' OR 字段名 IS NULL

字段名 IS NOT NULL

  • 查询出生日期为空的学员姓名,学号,家庭住址

    -- 查询出生日期为空同学的姓名,学号,家庭住址
    SELECT `studentno`,`studentname` AS '学员姓名',`address` AS '家庭住址' FROM student
    WHERE `borndate` IS NULL;
    

  • 查询出生日期不为空的学员姓名,学号,家庭住址

    -- 查询出生日期不为空同学的姓名,学号,家庭住址
    SELECT `studentno`,`studentname` AS '学员姓名',`address` AS '家庭住址' FROM student
    WHERE `borndate` IS NOT NULL;
    


4.BETWEEN 练习

  • 查询学号为1003-1007学员的姓名,学号,家庭住址

    -- BETWEEN 练习
    -- 查询学号为1003-1007学员的姓名,学号,家庭住址
    SELECT `studentno` AS '学员学号',`studentname` AS '学员姓名',`address` AS '家庭住址' FROM student
    WHERE `studentno` BETWEEN 1003 AND 1007;
    

posted @   无关风月7707  阅读(94)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示