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