mysql 表數(shù)據(jù)高級操作

更新數(shù)據(jù)

  • 基本語法
    update 表名 set 字段 = 值[,字段2=值] [where 條件]
  • 高級新語法(限制數(shù)量)
    update 表名 set 字段 = 值[,字段2=值] [where 條件][limit 更新數(shù)量]
update my_copy set name = 'c' where name = 'a' limit 3; -- 更新記錄中含有name= a的前三條

刪除數(shù)據(jù)

  • 普通刪除
    delete from 表名 [where 條件];
  • 限制刪除
    delete from 表名 [where 條件] limit 記錄數(shù);
delete from my_copy where name = 'a' limit 10; -- 刪除前10條
  • 在刪除場景中,如果表中主鍵存在自增長,當記錄刪除后狭吼,自增長不會還原邓梅。
    思路:請空表猜年,充值自增長
    數(shù)據(jù)刪除不會影響表結(jié)構(gòu)替饿,只能刪除表后重建表
    truncate 表名; -- 先刪除赞别,后新增改變

查詢數(shù)據(jù)

  • 基本語法
    select 字段列表/* from 表名[where 條件];
  • 完整語法
select [select 選項] 字段列表[字段別名]/* from 數(shù)據(jù)源 [where 條件子句] [group by 條件子句] [having 條件子句] [order by 條件子句] [limit 條件子句]

(1) select 選項 :

select 對查出結(jié)果的處理方式:

  • all:默認選項,保留所有結(jié)果
  • distinct :去重岛琼,(兩條記錄的所有字段相同)

(2)字段別名

當查詢數(shù)據(jù)時底循,字段的名字并不一定能滿足需求(尤其是多表查詢時,會出現(xiàn)同名字段)所以需要對字段名進行重命名槐瑞。
語法:
字段名 as 別名

select id,number as 學號,name as 姓名, sex as 性別 from my_student;

(3) 數(shù)據(jù)源

數(shù)據(jù)源即數(shù)據(jù)庫中的表熙涤,只要結(jié)構(gòu)上構(gòu)成二維表,都滿足數(shù)據(jù)源的要求困檩。有三種來源:
單表數(shù)據(jù)源灭袁,多表數(shù)據(jù)源,查詢語句

  • 單表數(shù)據(jù)源
    select * from 表名
  • 單表數(shù)據(jù)源
    select * from 表名1,表名2,表名3...
  • 查詢語句
    因為查詢語句也是二維表結(jié)構(gòu)
    select * from (select 語句) as 表名
    SELECT * FROM (select * frombanner_item)as item

(4)where 子句

用來判斷和篩選數(shù)據(jù)窗看,where 子句返回的結(jié)果:0或者1茸歧,沒有bool 類型,0代表false ,1代表true显沈。
where 1代表匹配所有條件都成立

  • 判斷條件:
    比較運算符:> ,< ,>=,<=,!=, <>(不等于),=,like,between and,in,not in
    邏輯運算符:&& 软瞎,||,拉讯!
    where原理:where語句是唯一一個在磁盤獲取數(shù)據(jù)就開始判斷的條件涤浇,判斷如果符合條件,則將數(shù)據(jù)放到內(nèi)存魔慷。
select * from my_student where id = 1 || id = 3 || id =5;
select * from my_student where id in(1,3,5)
select * from my_student where height >= 170 && height <= 180;
select * from my_student where height between 170 and 180;
PS :between 是區(qū)間值只锭,左邊的值一定要小于等于右邊的值

(5)group by

分組的意思,根據(jù)某個字段分組院尔,相同的分到同一組
基本語法:group by 字段名

分組的意義是為了統(tǒng)計數(shù)據(jù)(按組統(tǒng)計:按分組字段進行統(tǒng)計)蜻展;
分組一般和統(tǒng)計函數(shù)一起使用
SQL 提供了一系列的統(tǒng)計函數(shù):
count():統(tǒng)計分組后的記錄數(shù),每一組有多少記錄
count()有兩種參數(shù)邀摆,count(*)代表統(tǒng)計記錄纵顾,count(字段名)代表統(tǒng)計對應(yīng)的字段,但記錄中有null的 不統(tǒng)計施逾。
max():統(tǒng)計每組中的最大值
min():統(tǒng)計每組中的最小值
avg():統(tǒng)計平均值
sum():統(tǒng)計和

統(tǒng)計商品中推薦產(chǎn)品總數(shù):

  • 單字段分組
SELECT recommend, COUNT(*) FROM `product` GROUP BY `recommend` ;

SELECT recommend, COUNT(*),sum(`price`) ,max(`stock`) ,min(stock),avg(`price`)  FROM `product` GROUP BY `recommend` ;
  • 多字段分組
SELECT `class_id` ,`sex` ,COUNT(*) FROM `student` GROUP BY `class_id` ,`sex`  ;
-- 先按班級分組,再按性別分組
SELECT `class_id` ,`sex` ,COUNT(*),group_concat(name) FROM `student` GROUP BY `class_id` ,`sex`  ;
-- group_concat 函數(shù)可以將結(jié)果中的某個字段進行字符串連接
  • 回溯統(tǒng)計 with rollup
    任何一個分組后例获,都會有一個小組汉额。最后都需要向上級根據(jù)分組字段匯報統(tǒng)計結(jié)果。
SELECT `class_id` ,COUNT(*) FROM `student` GROUP BY `class_id`  with rollup ;
屏幕快照 2017-08-08 下午12.27.52.png

(6)having 子句

與where子句一樣讥脐,進行條件判斷啼器。
where子句是針對磁盤數(shù)據(jù)進行判斷,在數(shù)據(jù)進入內(nèi)存后岖免,進行了一些諸如分組操作后,分組的結(jié)果就需要having子句來處理颅湘。
having幾乎能做where的所有操作鹿寨。但having能做的有些處理薪夕,where卻不能。具體表現(xiàn)如下:
1.having 能做分組后的統(tǒng)計操作馏慨,where卻不能姑隅,因為統(tǒng)計函數(shù)是內(nèi)存級別叮盘,where操作的數(shù)據(jù)還在磁盤中

SELECT `recommend` , COUNT(*) FROM `product` GROUP BY `recommend` 
-- 選出商品是否推薦的分組
屏幕快照 2017-08-08 下午3.36.23.png
SELECT `recommend` , COUNT(*) FROM `product` GROUP BY `recommend` HAVING  COUNT(*) >8
-- 選出推薦商品和非推薦商品中大于8的商品個數(shù)

屏幕快照 2017-08-08 下午3.39.16.png
SELECT `recommend` , COUNT(*) FROM `product`  WHERE   COUNT(*) >8 GROUP BY `recommend` 
 -- 錯誤
屏幕快照 2017-08-08 下午3.45.05.png

2.having 能使用字段別名愈魏,而where不能

SELECT `recommend` , COUNT(*) as total FROM `product` GROUP BY `recommend` HAVING  total >8

(7) order by

排序 根據(jù)某個字段進行升序或者降序排序胡本。依賴于校對集披粟,有校對集判斷是否區(qū)分大小寫等等

使用語法:order by 字段名 [asc|desc] -- 默認asc 升序

SELECT * FROM `product` ORDER BY   `stock` 

排序也可以多字段排序冷冗,先按一個字段排碰镜,再次基礎(chǔ)再進行排序

SELECT * FROM `product` ORDER BY   `recommend` DESC ,`stock` 

(8) limit

limit 是一種限制數(shù)量的語句

limit有兩種方式:

  • 只用來限制長度
SELECT * FROM `product`  LIMIT 10
  • 限制起始位置
    語法:limit 起始位置,長度
SELECT * FROM `product`  LIMIT 0 ,10
SELECT * FROM `product`  LIMIT 10 ,10

limit 常用于數(shù)據(jù)分頁

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蜒茄,隨后出現(xiàn)的幾起案子唉擂,更是在濱河造成了極大的恐慌,老刑警劉巖檀葛,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件玩祟,死亡現(xiàn)場離奇詭異,居然都是意外死亡屿聋,警方通過查閱死者的電腦和手機空扎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門藏鹊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人转锈,你說我怎么就攤上這事盘寡。” “怎么了黑忱?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵宴抚,是天一觀的道長勒魔。 經(jīng)常有香客問我甫煞,道長,這世上最難降的妖魔是什么冠绢? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任抚吠,我火速辦了婚禮,結(jié)果婚禮上弟胀,老公的妹妹穿的比我還像新娘楷力。我一直安慰自己,他們只是感情好孵户,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布萧朝。 她就那樣靜靜地躺著,像睡著了一般夏哭。 火紅的嫁衣襯著肌膚如雪检柬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天竖配,我揣著相機與錄音何址,去河邊找鬼。 笑死进胯,一個胖子當著我的面吹牛用爪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播胁镐,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼偎血,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了盯漂?” 一聲冷哼從身側(cè)響起烁巫,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宠能,沒想到半個月后亚隙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡违崇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年阿弃,在試婚紗的時候發(fā)現(xiàn)自己被綠了诊霹。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡渣淳,死狀恐怖脾还,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情入愧,我是刑警寧澤鄙漏,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站棺蛛,受9級特大地震影響怔蚌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜旁赊,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一桦踊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧终畅,春花似錦籍胯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至妖爷,卻和暖如春蝶涩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背赠涮。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工子寓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人笋除。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓斜友,卻偏偏與公主長得像,于是被迫代替她去往敵國和親垃它。 傳聞我的和親對象是個殘疾皇子鲜屏,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 什么是SQL數(shù)據(jù)庫: SQL是Structured Query Language(結(jié)構(gòu)化查詢語言)的縮寫。SQL是...
    西貝巴巴閱讀 1,817評論 0 10
  • 50個常用的sql語句Student(S#,Sname,Sage,Ssex) 學生表Course(C#,Cname...
    哈哈海閱讀 1,234評論 0 7
  • 1国拇、說明:創(chuàng)建數(shù)據(jù)庫CREATE DATABASE database-name2洛史、說明:刪除數(shù)據(jù)庫drop dat...
    codeSirCao閱讀 434評論 0 2
  • 前言 之前文章就粗略的設(shè)計到了多線程,比如說gcd酱吝。其實關(guān)于多線程的呢還有NSThread,NSOperation...
    __夏至未至閱讀 347評論 0 0
  • 我曾住的一座城 叫蕪湖 也叫江城 在那度過三年時光 我時常去看望 那同歲月般長的江 她蓬亂的頭發(fā) 令人心寒 下雨了...
    海水未頂閱讀 216評論 0 1