MYSQL数据库 查询我们建完的表格~~~

在我们对数据库进行操作时,在建成表格后我们一般不进行修改,所以更多的操作是查询。
对于一个表格,我们只想查询它的部分列的内容,该怎么做?
想让我们看看原来的表格
在这里插入图片描述

#查询表students的 id name 列的内容
select id,name from students;

在这里插入图片描述
当我们需要消除表中重复的值时:

#消除students表中gender的重复值
select distinct gender from students

在这里插入图片描述

#消除两列重复的值
select distinct id,gender from students;

在这里插入图片描述
我们发现,gender列有重复行,造成这种结果的原因是什么呢?
其实我们已经消除了重复行,尽管有gender列存在一致的行,但是它们的id列内容不重复。
所以在消除重复的操作时,消除的判断是基于整个行的。

where语句

where 是对于行的筛选
where 后可以进行怎样的判断呢?

1.比较运算符
等于 =
大于 >
大于等于 >=
小于<
小于等于 <=
不等于 != 或 <>

例:

#查询id大于等于2的同学
select * from students where id>=2

在这里插入图片描述
2.逻辑运算符
与 and
或 or
非 not
例:

#查询id>=3的男同学【注】gender=0为女  gender=1为男
select * from students where id>=3 and gender=1;

在这里插入图片描述
3.模糊查询
like
% 表示任意多个任意字符
_ 表示一个任意字符

例:

#查询名字以奇开头的学生
select * from students where name like '奇%';

在这里插入图片描述
这样我们就可以查询出name中以 “奇”开头的同学。
我们可以通过 '奇_'查询name以”奇“开头,两个字符的同学。
也可以通过’%奇%‘查询name中包含”奇“字的同学。
例2:

#查询name中包含’哈‘或者’奇‘开头的学生
select * from students where name like '奇%' or name like '%哈%';

在这里插入图片描述

范围查询:
in 表示在一个非连续的范围内
between 表示在一个连续范围内

例:

#查询id为1和3的学生
select * from students where id in (1,3);

在这里插入图片描述

#查询id=3至id=4的同学
select * from students wheere id between 3 and 4;

在这里插入图片描述

空判断:
null 与 ’ ‘ 是不同的
判空 is null (不为空为 is not null)
例:
#更换另一个列表如下
在这里插入图片描述

#将表中的hobby列为null的显示出来
select * from student where hobby is null;

在这里插入图片描述

优先级
小括号,not,比较运算符,逻辑运算符
and 比 or 先运算,如果同时出现,想先执行or,需要加小括号

猜你喜欢

转载自blog.csdn.net/IWTK_wcl/article/details/83995989