where 条件查询
条件 | 说明 |
---|---|
= | 等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
!= 或者 <> | 不等于 两个都表示不等于。 |
数据库的数据非常多,在进行查询的时候,通过条件进行查询,可以过滤结果。
基本语法
select * from table
where 条件
查询学生表中 年龄(age)大于30岁的所有同学信息;
select * from students
where age>30;
查询学生表中 成绩(score) 大于60分 的所有同学信息;
select * from students WHERE score > 60;
查看所有男生同学的信息;
select * from students where sex='男';
如果条件的字段有字符串,需要在外面添加 单引号 或者双引号。
查看所有 有语文成绩的同学 信息; 科目(course)为语文;
练习
- 查看 课程(course)为 数学的 所有信息;
- 查看成绩(score) 小于 60 的所有信息;
- 查看年龄 不等于30 的所有信息;
- 查看成绩大于等于 90 的所有信息;
between … and … 区间
查询年龄在 30-50 之间的所有学生;
select * from students where age between 30 and 50;
成绩在60-90 之间的学生信息;
select * from students where score between 60 and 90;
between … and … 中间只能是数字。
in … 指定范围
查看所有同学中年龄为 30,35,38的同学信息;
select * from students where age in (30,35,38);
查看所有同学中 成绩为 30, 80,90 的同学信息;
select * from students WHERE score in (30,80,90);
查看有语文,数学成绩的同学信息;
SELECT * FROM students WHERE course in ('语文','数学');
like 模糊匹配
使用like 可以对字符串进行模糊匹配。
% 匹配0个或者多个字符
查找所有姓王的同学信息;
select * from students where username like "王%";
查找姓名中包含
小
字的所有学生信息;select * from students where username like "%小%";
查找姓名中 最后一个字是
锤
字的学生信息;select * from students where username like "%锤";
_ 匹配一个字符
查询姓名为 两个字的 学生信息。
select * from students where username like "__";
查询姓名为三个字并且姓 王 的同学信息;
select * from students WHERE username like "王__";
练习
查询 成绩在 30-60之间的同学信息;
select * from students where score between 30 and 60;
查询 英语,语文 成绩;
select * from students where course in ("语文","英语");
查询 成绩为 30,60,90的同学;
select * from students where score in (30,60,90);
查询 姓名中包含飞字的学生信息;
select * from students where username like "%飞%";
查询 所有姓名为 三个字的学生信息;
select * from students where username like "___";
查询 科目不等于 数学的所有信息; ```sql select * from students where course <> “数学”;
<a name="yF6ZT"></a>
## is Null 为空
![image.png](https://cdn.nlark.com/yuque/0/2022/png/87080/1646466946901-3fe23aca-b439-4dd7-bdec-889bf4b382fd.png#clientId=u37731247-9575-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=147&id=u619c0246&margin=%5Bobject%20Object%5D&name=image.png&originHeight=294&originWidth=600&originalType=binary&ratio=1&rotation=0&showTitle=false&size=26482&status=done&style=none&taskId=u32a1f6b0-6308-462e-9c63-2dfb68854dc&title=&width=300)<br />数据表中有 空的数据。
1. 查找 age 为 Null 的同学信息
```sql
select * from students where age is Null;
not表示相反,使用方式放在 where 条件后面。
年龄不在30-60 之间
select * from students where not age between 30 and 60;
年龄不为 Null 的学生信息;
select * from students where not age is null;
姓名不为2个字的信息;
select * from students where not username like "__";
年龄不在 30,35,38 岁的学生;
select * from students where not age in (30,35,38);
查询 姓名中不包含飞字的学生信息;
select * from students where not username like "%飞%";
多个条件
and 表示并且
基本语法 ```sql select * from students WHERE — 第1个条件 And — 第2个条件
多个条件同时满足 使用 and
1. 查找年龄在 30岁以上,同时 成绩在60分以上;
```sql
select * from students where age > 30 and score > 60;
- 查找年龄不为Null 并且 姓名为3个字的同学; ```sql select * from students WHERE not age is null — 年龄不为null AND username like “_“; — 姓名为 3个字
3. 查找 年龄大于20岁,姓名包含`王`, 成绩在 60-80 之间;
```sql
select * from students where
age > 20
and
username like "%王%"
and
score between 60 and 80;
- 查找 成绩不是 30,60,90, 性别为男, 年龄在 20-30 之间; ```sql select * from students where not score in (30,60,90) and sex = ‘男’ and age between 20 and 30;
<a name="ZGF1P"></a>
## or 表示或者
多个条件中只要有1个条件符合即可。<br />基本语法
```sql
select * from students
where 条件1
or 条件2
年龄 30-50 或者 成绩在 大于80;
select * from students where age between 30 and 50 or score > 80;
年龄不在 30,35,40, 或者 成绩 不为null, 或者 姓名为 两个字;
select * from students where not age in (30,35,40) -- 不在 30,35,40 or not score is null -- 成绩 不为null or username like "__"; -- 姓名为 两个字
and 和 or 一起使用
在一些复杂的条件中需要 and or 组合在一起使用,
- 符合下面两种条件之一即可;
- 年龄在30-50 并且 姓名为3个字 age between 30 and 50 and username like “_“
- 语文成绩在80分以上 course=”语文” and score > 80 ```sql select * from students where (age between 30 and 50 and username like “_“) or (course=”语文” and score > 80);
![image.png](https://cdn.nlark.com/yuque/0/2022/png/87080/1646471616979-98ddbcda-46a0-405c-a047-a3b3d631c997.png#clientId=u37731247-9575-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=212&id=uc686a738&margin=%5Bobject%20Object%5D&name=image.png&originHeight=424&originWidth=934&originalType=binary&ratio=1&rotation=0&showTitle=false&size=34059&status=done&style=none&taskId=u98dec602-aa63-4f0e-b9f2-842661b7d4b&title=&width=467)
2. 如下两个条件, 必须同时符合
1. 性别 男 或者 年龄>30 sex="男" or age > 30
1. 姓名为3个字 或者 成绩>60 username like "___" or score > 60
```sql
select * from students
where ( sex="男" or age > 30)
and ( username like "___" or score > 60);
思维导图
作业
数据库作业
远程连接数据库, 数据库连接信息如下
数据库地址: rm-bp188nr95fk4l9545ao.mysql.rds.aliyuncs.com 用户名: fanmao85 密码: 85@fanmao
查询 所有同学的 姓名(username), 年龄(age) 信息;
- 查询 年龄在50-90 之间的同学;
- 查询 姓名为 三个字的同学;
- 查询 姓 王的同学;
- 查询 姓王的男同学;
- 查询 姓名中不包含 王 并且 姓名为2个字的同学;
- 查询 语文成绩及格的同学;
- 查询 数学成绩不及格的30岁以下的同学;
- 查询 成绩在30,60,90 的同学的语文成绩;
- 符合如下两个条件之一
- 性别为女 或者成绩 及格
- 语文大于80
- 必须符合如下条件
- 性别为男 或者 成绩及格
- 姓名为三个字 或者年龄 不在 30-50之间
请将数据库作业保存到文件中。
周作业
在gitee.com 网址上注册账号(已经有的不用再注册)登录上去 创建新的仓库,仓库名为fanmao_2022_3
使用root账号登录Linux服务器,进入 /tmp 目录
- 删除 /tmp 目录下所有的文件
- 使用
yum -y install git
命令 在Linux上安装git 命令 在Linux中执行下面语句
git config --global user.name "改为自己的用户名" git config --global user.email "改为自己的邮箱"
在Linux中使用git clone 命令将 第1步创建的仓库 同步到 /tmp 目录下 ,同步成功之后 /tmp 目录下会有一个 fanmao_2022_3
- 在Linux上使用cd 进入 fanmao_2022_3 目录下
- 将数据库作业的答案文件上传到Linux的 /tmp/fanmao_2022_3 目录下
- 在Linux中使用 git 命令提交 到git 仓库
- 打开 码云 网站找到自己的仓库,检查文件是否已经提交成功。