当前课程知识点:MySQL数据库案例教程 >  第4章 查询与视图 >  4.2 单表查询 >  4-2-2where子句

返回《MySQL数据库案例教程》慕课在线视频课程列表

4-2-2where子句在线视频

下一节:4-2-3group子句

返回《MySQL数据库案例教程》慕课在线视频列表

4-2-2where子句课程教案、知识点、字幕

接下来我们来学习where子句

在MySQL中

常用的条件表达式有三种

关系表达式 逻辑表达式 特殊表达式

每种表达式有不同的运算符

首先来学习关系表达式的运算符

关系运算是比较

两个数据的大小相等关系的

有6种运算符

>、>= 、< 、<=、=、<>或!=

其中不等于有两个符号

关系运算符两边的表达式类型

应保持一致或兼容

下面就通过案例

来学习如何使用这些运算符

案例8

查询student表中

李璐璐的所有字段信息

查询语句可以这样写

select * from student

where sname=‘李璐璐’

字符型常量出现在表达式中

需要加上单引号

运行

查询出李璐璐的所有字段信息

案例9

查询score表中

成绩在90分以上的学号 课程号 成绩

查询语句可以这样写

select sid,cno,result

from score where result>=90

数值型常量出现在表达式中

不需要加上单引号

运行

查询出成绩在90分以上的

学号 课程号和成绩

案例10

查询2001以后出生的

人员姓名 性别 出生日期

查询语句可以这样写

select sname,sex,birth

from student

where birth>=’2001-01-01’

或者select

sname,sex,birth from student

where year(birth)>= 2001

运行

两条语句查询结果相同

但是有一些初学者会这样写

select sname,sex,birth from student

where birth>=2001

运行

可以发现查询不到正确结果

原因是>=两边的数据类型不兼容

前面学过

日期型是有固定格式的

年份是一个整数

这两种类型不能进行比较运算

请同学们切记这一点

对于日期型

需要注意两个问题

一是日期型常量表达形式

出现在表达式中需要加上单引号

二是日期型数据大小问题

后面的日期比前面的要大

关系运算相对简单

只要注意每种类型数据的常量

怎么表达

就能正确写出关系表达式

接下来我们学习逻辑运算符

逻辑运算符有三个

NOT、AND、OR

not 是非运算 求反运算

and 逻辑与

两个表达式都为真

结果为真

or 逻辑或

两个表达式当中有一个为真

结果为真

下面来看几个案例

案例11

查询student表中

非“信息工程系”的全体学生的信息

这个语句可以这样写

select * from student

where department<>’ 信息工程系’

不等号也可以是!=

select * from student

where department!=’ 信息工程系’

还可以写成逻辑非运算

select * from student

where not department=’ 信息工程系’

这三个语句执行结果是一样的

案例12

查询score表课程号“01”

且 result在90分以上的

学号 课程号 成绩

这个查询有两个条件

cno=’01’和result>=90

这两个条件是同时满足的关系

因此这两个条件需要用and来连接

select sid,cno,result from score

where cno=’01’and result>=90

执行

查询出01号课程

在90分以上的记录

案例13

查询student表

李璐璐和李小钱的所有字段信息

姓名是李小璐和小钱

可以这样表达

sname=‘李璐璐’

sname=‘李小钱’

这两个条件该怎么连接呢

在这里我们不能简单的被查询要求的

李小璐和李小钱迷惑

在查询时

对表中的每一条记录

我们在查看它的时候

这条记录的姓名

要没么是李小璐

要么是李小钱

而不能同时是李璐璐又是李小钱

select * from student

where sname=‘李璐璐’

and sname=‘李小钱’

执行

会发现语句执行没有问题

但是却没有查询出记录

将and 改成 or

执行

就能够查询出正确的结果

初学查询条件表达式时

同学们还要先分析数据

然后再看查询结果是否正确

不能简单的认为

查询语句执行正确

就完事大吉了

一定要学会分析

才能准确表达查询需求

逻辑表达式一般用于解决复杂的查询条件

学习和使用时需要多多思考和分析

接下来学习第三种表达式

特殊表达式

特殊表达式大多是针对

某类特定条件的专用表达式

MySQL常用的特殊表达式有四个

BETWEEN…AND 、IN、LIKE、IS NULL

BETWEEN…AND 表示在某个范围之间

一般为数值型

IN 是集合运算

判断某个数在不在某个集合内

如果在 条件为真

否则为假

LIKE 是模糊匹配

与%和-结合进行模糊匹配

IS NULL 判断空值

判断字段值是否为空

如果为空 条件为真

否则为假

来看案例14

查询score表中

在成绩80-90之间的成绩信息

这个查询条件

可以使用between and来执行

语句可以这样写

select * from score

where result between 80 and 90

执行

就能够查询出正确的结果

来看案例15

查询student表中

李璐璐和李小钱的所有字段信息

这个查询我们刚刚使用

关系表达式和逻辑表达式查询过

那接下来我们再用in来写查询条件

select * from student

where sname in

(‘李璐璐’ ,‘李小钱’)

in后面的集合用小括号括起来

小括号内的多个常量值

用逗号分隔的

先运行上面的语句

再运行下面的

查询结果是一样的

很显然

in这种写法更简单直观

尤其是查询多个值时

使用in将更加方便

案例16

查询student表中姓李的学生信息

数据库中查询分为

精确查询和模糊查询

前面学过的等号进行判断的

就是精确查询

这种不确定字段精确信息的查询

在数据库中叫模糊查询

模糊查询可以使用like实现

使用like时

表达中需包含通配符%和_

%表示多个任意字符

而下划线则表示单个任意字符

这个查询可以这样写

select * from student

where sname like

那我们只知道第一个字符是李

后面字符都不知道

就用%通配

语句是这样的

select * from student

where sname like ‘李%’

执行

查询出姓李的学生信息

注意like后面的表达式

一定要包含有%和_通配符

我们再来学习两个函数

left(字符串,n)和substring(字符串,n1,n2)

这两个函数都是用于

截取字符串中的字符

left从字符串最左边的

第一个字符开始截取n个字符

substring则从第n1个位置开始

截取n2个字符

函数将在后面章节学习到

因此

这个查询可以这样写

select * from student

where left(sname,1)=‘李’

或者select * from student

where substring(sname,1,1)=‘李’

可以看到

这三条语句执行结果相同

再来看一个案例

案例17

查询student表中姓李 姓张的学生信息

这个查询可以有多种实现的方法

既可以使用函数截取姓名的首字符

也可以使用like

还可以in来使用

我们分别来书写

select * from student

where sname like ‘李%’

or sname like ‘张%’

select * from student

where left(sname,1)=‘李’

or left(sname,1)=‘张’

或者select * from student

where left(sname,1) in(‘李’,‘张’)

可以看到

三条语句执行结果相同

这个查询还有很多其他写法

请同学们在课下尝试书写 调试

来看案例18

查询sname的第二个字

是“小”的学生信息

这个查询我们使用

like和通配符来模糊查询

select * from student

where sname like ‘_小%’

运行

当然 这个查询还有别的实现方法

也请同学们在课下自己调试

来看案例19

查询addr为“郑州”的学生信息

由于地址在输入的时候

没有什么强制要求

郑州不确定出现在

addr字段的什么位置

因此语句可以这样写

select * from student

where addr like‘%郑州%’

执行

可以看出addr字段包含郑州的记录

都被查询出来

案例20

查询result为空的成绩信息

查询可以这样来写

select * from score

where result is null

控制判断需要使用is null

不能写成 result=‘’的形式

请同学们记住使用方法

执行

表中并没有成绩为空的记录

对于where子句我们就学习

这三种运算符和表达式

在实际使用过程中

它们都不是孤立的

需要经常结合在一起解决复杂的问题

where子句就学习到这里

MySQL数据库案例教程课程列表:

第1章 数据库基础知识

-1.1 数据库基础知识

--1.1 数据库基础知识视频

--1-1数据库基础知识课件

-1.2 MySQL的安装与运行

--1-2MySQL安装与运行视频

--1-2MySQL安装与运行课件

--1-2MySQL安装与运行实训

-第1章 测试

第2章 数据库和表的基本操作

-2.1 数据库的基本操作

--2-1数据库的基本操作视频

--2-1数据库的基本操作课件

--2-1数据库的基本操作实训

-2.2 表的基本操作

--2-2表的基本操作视频

--2-2表的基本操作课件

--2-2表的基本操作实训

-2.3 MySQL数据类型

--2-3MySQL数据类型视频

--2-3MySQL数据类型课件

--2-3MySQL数据类型实训

-2.4 约束设置

--2-4约束设置视频

--2-4约束设置课件

--2-4约束设置实训

-2.5 索引

--2-5索引视频

--2-5索引课件

--2-5索引实训

-第2章测试

第3章 记录操作

-3.1 插入记录

--3-1 插入记录视频

--3-1插入记录课件

--3-1插入记录实训

-3.2 修改记录

--3-2修改记录视频

--3-2修改记录实训

--3-2修改记录课件

-3.3 删除记录

--3.3删除记录

--3-3删除记录实训

--3-3删除记录课件

-第3章 测试

第4章 查询与视图

-4.1 select语句

--4.1select 语句视频

--4-1select语句课件

--4-1select语句实训

-4.2 单表查询

--4-2-1select子句

--4-2-2where子句

--4-2-3group子句

--4-2单表查询实训

-4.3 多表查询

--4-3多表查询视频

--4-3多表查询课件

--4-3多表查询实训

-4.4 子查询

--4-4子查询视频1

--4-4子查询视频2

--4-4子查询课件

--4-4子查询实训

-4.5 外键

--4-5外键视频

--4-5外键课件

--4-5外键实训

-4.6 视图

--4-6视图视频1

--4-6视图视频2

--4-6视图课件

--4-6视图实训

-第4章测试

第5章 高级操作

-5.1 函数

--5-1自定义函数视频

--5-1系统函数

--5-1函数课件

--5-1 函数实训

-5.2 流程控制语句

--5-2流程控制语句视频

--5-2流程控制课件

--5-2流程控制实训

-5.3 事务与游标

--5-3事务与游标视频

--5-3事务与游标课件

--5.3事务与游标实训

-5.4 存储过程

--5-4存储过程视频

--5-4存储过程课件

--5-4存储过程实训

-5.5 触发器

--5-5触发器视频

--5-5触发器课件

--5-5触发器实训

-第5章测试

第6章 备份与还原

-6.1 数据库备份与还原

--6-1数据库备份与还原 视频

--6-1数据库备份与还原 课件

--6-1数据库备份与还原 实训

-6.2 异构数据源导入导出

--6-2异构数据源导入导出 视频

--6-2异构数据源导入导出 课件

--6-2异构数据源导入导出 实训

-第6章测试

第7章 用户与权限

-7.1 用户管理

--7-1用户管理 视频

--7-1用户管理 课件

--7-1用户管理 实训

-7.2 权限管理

--7.2 权限管理 视频

--7.2 权限管理 课件

--7.2 权限管理 实训

-7.3 应用实例开发

--7-3应用实例开发 视频

--7-3应用实例开发 课件

--7-3应用实例开发 实训

-第7章测试

4-2-2where子句笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。