美文网首页程序员
MYSQL的单表查询

MYSQL的单表查询

作者: 顾四秋 | 来源:发表于2017-11-01 17:06 被阅读0次

上一篇中我们说了mysql的建库和建表的操作(http://www.jianshu.com/writer#/notebooks/18277867/notes/19063412)
今天我们就来学习一下mysql的单表查询,首先我们来把这篇教学要用表和数据准备好:

创建表的sql语句:

 create table fruits(f_id char(10) not null primary key,s_id int(11),f_name char(50),f_price decimal(8,2));

表里插入数值的语句:

insert into fruits values('a1',101,'apple',5.20),('a2',103,'apricot',2.20),('b2',104,'berry',7.60
),('b5',107,'xxxx',3.60),('bj1',101,'blackberry',10.20),('bs1',102,'orange',11.2
0),('bs2',105,'melon',8.20),('c0',101,'cherry',3.20),('l2',104,'lemon',6.40),('m
l',106,'mango',15.60);

一、 表和数据建好之后,我们就执行一条超级简单的查询语句查询fruits表中的所有记录

~R(_OQ5UD72PF$XNMJD35DF.png

select 代表查询,* 代表查询所有 from 要查那张表 后面接你的表格名就行

二、现在我要查询s_id是101的所有数据了,相比于上面的,这条查询就多了一个条件了

VJA7K~FL0G8H9)6{7}8Z5ZA.png

在查询语句后面接一个 where 后面加上你的查询条件就行,也可以换成f_name="apple"哦

三、现在我们要查询s_id=101的水果名字,不查询所有水果信息了怎么办

8BUGL}~@2IQEMC$_W%G~C8R.png

成功啦,就是把 select 后面*换成你要查询出来字段就行

四、现在我们要查询所有s_id不等于101也不等于102的记录

QSR`ELY18J{X}PP{49N`DMT.png

不等于 != 两个条件之间加and
and和or区别
and:两边的条件同时满足
or:一边条件满足就行

五、现在我们查询水果价格在2块钱到10块钱之间的水果

(R$7{4}7QYNTF5R1%F6OC{V.png

当我们要查询数值在什么什么之间的时候 用between and 吧

六、当我们查询表中有哪些s_id的时候,我们就要把重复的s_id去重了

IFPYL1~5NXSU4X50J}{WSU4.png

把你要去重的字段用distinct括起来,查询出来就行了

七、现在我们要把价格排序查询出来

asd.jpg

注意:排序有两种哦 asc是升序 desc 是降序,order by 是默认升序排序

八、现在我们要把s_id进行分组,然后求每个供应商水果的平均价格

J9L@XF~{`~B%ZG5{OMK4@Y3.png

用到函数就是avg求平均值的函数,group by 后面接你的要分组的字段

这种类型的查询还有另一种写法,不过我们就换一个条件吧,分组之后,查询出最贵的水果价格

j.jpg

group by 后面接一个 having having 要跟分组group by 组合使用哦,不能独立存在

九,现在我们要来学习一个超级厉害的模糊查询,给的查询条件就是 查询出名字b开头的水果

_SJM4@L_HIWK~5HGLK`L))J.png

模糊查询的关键字 like %号是叫统配符,当条件换成包含的时候,就把'b%' 换成 '%b%';

还有一个LIMIT我就不讲啦嘿嘿嘿。

相关文章

网友评论

    本文标题:MYSQL的单表查询

    本文链接:https://www.haomeiwen.com/subject/targpxtx.html