上一篇中我们说了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表中的所有记录

select 代表查询,* 代表查询所有 from 要查那张表 后面接你的表格名就行
二、现在我要查询s_id是101的所有数据了,相比于上面的,这条查询就多了一个条件了

在查询语句后面接一个 where 后面加上你的查询条件就行,也可以换成f_name="apple"哦
三、现在我们要查询s_id=101的水果名字,不查询所有水果信息了怎么办

成功啦,就是把 select 后面*换成你要查询出来字段就行
四、现在我们要查询所有s_id不等于101也不等于102的记录

不等于 != 两个条件之间加and
and和or区别
and:两边的条件同时满足
or:一边条件满足就行
五、现在我们查询水果价格在2块钱到10块钱之间的水果

当我们要查询数值在什么什么之间的时候 用between and 吧
六、当我们查询表中有哪些s_id的时候,我们就要把重复的s_id去重了

把你要去重的字段用distinct括起来,查询出来就行了
七、现在我们要把价格排序查询出来

注意:排序有两种哦 asc是升序 desc 是降序,order by 是默认升序排序
八、现在我们要把s_id进行分组,然后求每个供应商水果的平均价格

用到函数就是avg求平均值的函数,group by 后面接你的要分组的字段
这种类型的查询还有另一种写法,不过我们就换一个条件吧,分组之后,查询出最贵的水果价格

group by 后面接一个 having having 要跟分组group by 组合使用哦,不能独立存在
九,现在我们要来学习一个超级厉害的模糊查询,给的查询条件就是 查询出名字b开头的水果

模糊查询的关键字 like %号是叫统配符,当条件换成包含的时候,就把'b%' 换成 '%b%';
还有一个LIMIT我就不讲啦嘿嘿嘿。
网友评论