学好SQL--MySQL简单使用(3)

1.查

对表的查询几乎可以说是增删改查中最难也是最重要的,所以我另外拿出来写一篇博客
A.简单查询

select * from 表名;

还是拿昨天那张表来测试吧,插入几条数据(批量插入方法)

insert into my_movie values 
(null,'闪电侠',22.34,'guoxiaoxia','2014-11-12'),
(null,'蝙蝠侠',44.6,'xiaomi','2014-02-25'),
(null,'疑犯追踪',66.3,'jack','2015-03-14'),
(null,'妙警贼探',102.4,'tom','2017-08;3)`

select * from my_movie;

学好SQL--MySQL简单使用(3)_第1张图片


select mId,mName from my_mov>
select mId mid,mName mname from my_movie;

学好SQL--MySQL简单使用(3)_第2张图片
学好SQL--MySQL简单使用(3)_第3张图片
对比这两张图就可以很容易看出区别



去掉重复数据查询,比如这里的价格,我先插入一条价格特别的数据

insert into my_movie values (null,’未来青年’,’44.6’,’oliver’,’2017-11-11’);

先对价钱进行查询

select mPrice from my_movie;

学好SQL--MySQL简单使用(3)_第4张图片

select distinct(mPrice) from my_movie;

学好SQL--MySQL简单使用(3)_第5张图片



将所有的电影价格+10显示

select mName,mPrice+10 from my_movie;

学好SQL--MySQL简单使用(3)_第6张图片

看到没这里所有价格都+10显示出来了,但是这只是数据显示而已,并没有真的所有价格都加了10


B.条件查询

select * from my_movie where mName = ‘蝙蝠侠’;

学好SQL--MySQL简单使用(3)_第7张图片

select * from my_movie where mName like ‘%侠;

学好SQL--MySQL简单使用(3)_第8张图片

查询电影名 名字最后一个字是 侠

select * from my_movie where mName like ‘%侠’

学好SQL--MySQL简单使用(3)_第9张图片

今天发生了个尴尬的事,我领导在操作数据库,突然碰到一个需要模糊查询的要求,然后写了 查了半天都没弄出来(他很久没写代码了 忘记了),然后问我 我看了下,就觉得奇怪了,一个简单的模糊查询还有什么技巧,结果我也没看出来 sql那里有问题,最后他百度 才发现竟然没有写 % ,尴尬。。。。。

查询主键是1,3,4的电影信息

select * from my_movie where mId in(1,3,4);

学好SQL--MySQL简单使用(3)_第10张图片

这里同时查询多个 使用关键字 in(,,,) 如果不在表中的条件,比如这里一共只有五条数据,主键最高是5,我要查询主键为9 的数据,是查不到的,如下

select * from my_movie where mId in(1,3,9);

学好SQL--MySQL简单使用(3)_第11张图片

C.排序查询

select * from my_movie order by mPrice asc;

学好SQL--MySQL简单使用(3)_第12张图片

排序结合其他条件结合,比如 排序和模糊 结合查询,查询 电影名最后一个字是 侠 并对结果按价格降序排列

select * from my_movie where mName like “%侠” order by mPrice desc;

注意:这里不需要使用 and 连接两个条件

学好SQL--MySQL简单使用(3)_第13张图片

D.聚合函数
获得所有电影价钱的总和

select sum(mPrice) as totalPrice from my_movie;

这里可以使用 as 也可以不使用
学好SQL--MySQL简单使用(3)_第14张图片

获取所有电影的平均价格

select avg(mPrice) from my_movie;

学好SQL--MySQL简单使用(3)_第15张图片

获取所有商品的个数

select count(*) from my_movie;

学好SQL--MySQL简单使用(3)_第16张图片

E:分组操作
对一个表中的数据进行分组查询,比如这里,我添加一个分组Id字段用来对表中的数据分成两组,mId为1 2属于超级英雄一组,3 4 5分为非凡英雄一组,分组id为 cId

alter table my_movie add cId varchar(20);

查询表如下
学好SQL--MySQL简单使用(3)_第17张图片

现在设置表中的数据

update my_movie set cId = ‘1’;

学好SQL--MySQL简单使用(3)_第18张图片

也可以条件设置数据

update my_movie set cId = ‘2’ where mId in(3,4,5);

学好SQL--MySQL简单使用(3)_第19张图片

好的 到这里 ,对数据已经分组完成,现在可以进行分组查询了

首先根据cId进行分组,分组后查询各组电影的个数

select cId,count(*) from my_movie group by cId;

学好SQL--MySQL简单使用(3)_第20张图片

根据cId进行分组,分组后统计每组商品平均价格,并且平均价格必须要大于40

select cId,avg(mPrice) as avgPrice from my_movie group by cId having avgPrice >40;
select cId,avg(mPrice) from my_movie group by cId having avg(mPrice) >40;

学好SQL--MySQL简单使用(3)_第21张图片

注意: 这里是对分组后的数据进行筛寻,所有不是用 and 而是用 having

ok 到这里 就是查询中的简单知识,复杂的查询太复杂了 一篇写不完

你可能感兴趣的:(select,sql,条件查询,模糊查询,排序查询,学好SQL,想去哪就去哪)