学好SQL--MySQL简单使用(3)
1.查
對(duì)表的查詢幾乎可以說(shuō)是增刪改查中最難也是最重要的,所以我另外拿出來(lái)寫一篇博客 A.簡(jiǎn)單查詢
select * from 表名;
還是拿昨天那張表來(lái)測(cè)試吧,插入幾條數(shù)據(jù)(批量插入方法)
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)` 復(fù)制代碼select * from my_movie;
> select mId,mName from my_movie
> select mId mid,mName mname from my_movie; 對(duì)比這兩張圖就可以很容易看出區(qū)別
去掉重復(fù)數(shù)據(jù)查詢,比如這里的價(jià)格,我先插入一條價(jià)格特別的數(shù)據(jù) > insert into my_movie values (null,'未來(lái)青年','44.6','oliver','2017-11-11');
先對(duì)價(jià)錢進(jìn)行查詢
select mPrice from my_movie;
select distinct(mPrice) from my_movie;
將所有的電影價(jià)格+10顯示
> select mName,mPrice+10 from my_movie;
看到?jīng)]這里所有價(jià)格都+10顯示出來(lái)了,但是這只是數(shù)據(jù)顯示而已,并沒有真的所有價(jià)格都加了10
B.條件查詢
select * from my_movie where mName = '蝙蝠俠';
select * from my_movie where mName like '%俠;
查詢電影名 名字最后一個(gè)字是 俠
select * from my_movie where mName like '%俠'
今天發(fā)生了個(gè)尷尬的事,我領(lǐng)導(dǎo)在操作數(shù)據(jù)庫(kù),突然碰到一個(gè)需要模糊查詢的要求,然后寫了 查了半天都沒弄出來(lái)(他很久沒寫代碼了 忘記了),然后問(wèn)我 我看了下,就覺得奇怪了,一個(gè)簡(jiǎn)單的模糊查詢還有什么技巧,結(jié)果我也沒看出來(lái) sql那里有問(wèn)題,最后他百度 才發(fā)現(xiàn)竟然沒有寫 % ,尷尬。。。。。
查詢主鍵是1,3,4的電影信息
select * from my_movie where mId in(1,3,4);
這里同時(shí)查詢多個(gè) 使用關(guān)鍵字 in(,,,) 如果不在表中的條件,比如這里一共只有五條數(shù)據(jù),主鍵最高是5,我要查詢主鍵為9 的數(shù)據(jù),是查不到的,如下
select * from my_movie where mId in(1,3,9);
C.排序查詢
select * from my_movie order by mPrice asc;
排序結(jié)合其他條件結(jié)合,比如 排序和模糊 結(jié)合查詢,查詢 電影名最后一個(gè)字是 俠 并對(duì)結(jié)果按價(jià)格降序排列
select * from my_movie where mName like "%俠" order by mPrice desc;
注意:這里不需要使用 and 連接兩個(gè)條件
D.聚合函數(shù) 獲得所有電影價(jià)錢的總和
select sum(mPrice) as totalPrice from my_movie;
這里可以使用 as 也可以不使用
獲取所有電影的平均價(jià)格
select avg(mPrice) from my_movie;
獲取所有商品的個(gè)數(shù)
select count(*) from my_movie;
E:分組操作 對(duì)一個(gè)表中的數(shù)據(jù)進(jìn)行分組查詢,比如這里,我添加一個(gè)分組Id字段用來(lái)對(duì)表中的數(shù)據(jù)分成兩組,mId為1 2屬于超級(jí)英雄一組,3 4 5分為非凡英雄一組,分組id為 cId
alter table my_movie add cId varchar(20);
查詢表如下
現(xiàn)在設(shè)置表中的數(shù)據(jù)
update my_movie set cId = '1';
也可以條件設(shè)置數(shù)據(jù)
update my_movie set cId = '2' where mId in(3,4,5);
好的 到這里 ,對(duì)數(shù)據(jù)已經(jīng)分組完成,現(xiàn)在可以進(jìn)行分組查詢了
首先根據(jù)cId進(jìn)行分組,分組后查詢各組電影的個(gè)數(shù)
select cId,count(*) from my_movie group by cId;
根據(jù)cId進(jìn)行分組,分組后統(tǒng)計(jì)每組商品平均價(jià)格,并且平均價(jià)格必須要大于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;
注意: 這里是對(duì)分組后的數(shù)據(jù)進(jìn)行篩尋,所有不是用 and 而是用 having
ok 到這里 就是查詢中的簡(jiǎn)單知識(shí),復(fù)雜的查詢太復(fù)雜了 一篇寫不完
總結(jié)
以上是生活随笔為你收集整理的学好SQL--MySQL简单使用(3)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: hapi lab测试框架简单使用
- 下一篇: Redis 入门笔记