久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

MySQL DML語句全解析:INSERT、UPDATE、DELETE、SELECT實(shí)戰(zhàn)指南

MySQL DML語句全解析:INSERT、UPDATE、DELETE、SELECT實(shí)戰(zhàn)指南 學(xué)MySQL有一段時(shí)間了今天想認(rèn)認(rèn)真真聊聊DML語句也就是數(shù)據(jù)操作語言。無論你是剛建好庫和表的新手還是已經(jīng)能寫簡單查詢的初級(jí)開發(fā)者DML都是每天接觸最多、出問題也最多的部分。INSERT、UPDATE、DELETE、SELECT這四條核心命令幾乎覆蓋了業(yè)務(wù)開發(fā)中90%的數(shù)據(jù)操作場(chǎng)景。這篇文章我打算用一套可以跟著敲的示例表從定義講到用法再講到實(shí)操中才遇得到的坑整體就是一篇可以當(dāng)成“第三章”筆記來用的長文。如果你正好學(xué)到數(shù)據(jù)庫操作這一塊或者平時(shí)寫SQL總感覺哪里不夠踏實(shí)那這篇內(nèi)容應(yīng)該能幫上忙。提示本文所有示例都基于MySQL 8.0環(huán)境使用的字符集是utf8mb4建議你也用同樣的配置避免后面演示時(shí)出現(xiàn)亂碼問題。1. 先把概念理清楚DML到底是什么1.1 DML在SQL家族里的位置SQL語言按功能劃分成幾大類DDL數(shù)據(jù)定義語言負(fù)責(zé)CREATE、ALTER、DROP這些建表改表的操作DCL數(shù)據(jù)控制語言負(fù)責(zé)GRANT、REVOKE這類權(quán)限管理TCL事務(wù)控制語言管的是COMMIT、ROLLBACK而DML就是數(shù)據(jù)操作語言核心成員就四個(gè)INSERT、UPDATE、DELETE、SELECT。這里值得說一下有些老資料會(huì)把SELECT單獨(dú)歸為DQL數(shù)據(jù)查詢語言但在MySQL官方手冊(cè)和絕大多數(shù)面試場(chǎng)景里SELECT依然被歸入DML范疇因?yàn)樵鰟h改查本身就是圍繞“數(shù)據(jù)操作”這個(gè)整體概念展開的。你在寫DML時(shí)SELECT作為查詢操作反過來經(jīng)常嵌套在INSERT、UPDATE、DELETE里充當(dāng)數(shù)據(jù)來源分開理解是正確的但放在一起學(xué)更順手。DML操作的對(duì)象是數(shù)據(jù)行不是表結(jié)構(gòu)。換句話說DDL影響的是表的“骨架長什么樣”DML影響的則是“表里到底裝了什么內(nèi)容”。我見過不少初學(xué)者把ALTER TABLE和UPDATE混在一起其實(shí)區(qū)別特別簡單你想給表加一列那是DDL你想把某行數(shù)據(jù)的某個(gè)字段值改一下那是DML。1.2 為什么建議先掌握DML很多教程喜歡先花大篇幅講數(shù)據(jù)類型、約束、索引這些內(nèi)容當(dāng)然重要但如果你是零基礎(chǔ)一上來就背這些理論很容易勸退。更好的節(jié)奏是先會(huì)用DML把自己手頭的數(shù)據(jù)“玩轉(zhuǎn)”再回頭補(bǔ)理論知識(shí)理解會(huì)深很多。比如你寫一條INSERT語句時(shí)自然會(huì)接觸到字段類型、默認(rèn)值、非空約束寫一條UPDATE時(shí)自然會(huì)碰到WHERE條件的威力寫SELECT時(shí)自然會(huì)遇到索引為什么會(huì)讓查詢變快。從這個(gè)角度看DML是打通整個(gè)MySQL學(xué)習(xí)路徑的關(guān)鍵節(jié)點(diǎn)。學(xué)完這一章你基本就能獨(dú)立完成“建表、灌數(shù)據(jù)、改數(shù)據(jù)、刪數(shù)據(jù)、查數(shù)據(jù)”的完整閉環(huán)這對(duì)后續(xù)學(xué)習(xí)事務(wù)、索引、優(yōu)化都特別有幫助。2. 準(zhǔn)備一套能跟著練的示例表沒有數(shù)據(jù)支撐的SQL文章都是耍流氓所以先建兩張表一張學(xué)生表一張班級(jí)表。這兩張表之間有外鍵關(guān)聯(lián)后續(xù)演示多表操作時(shí)也用得上。-- 班級(jí)表 CREATE TABLE class_info ( id INT AUTO_INCREMENT PRIMARY KEY COMMENT 班級(jí)ID, class_name VARCHAR(50) NOT NULL COMMENT 班級(jí)名稱, create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 創(chuàng)建時(shí)間 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT班級(jí)信息表; -- 學(xué)生表 CREATE TABLE student_info ( id INT AUTO_INCREMENT PRIMARY KEY COMMENT 學(xué)生ID, name VARCHAR(50) NOT NULL COMMENT 學(xué)生姓名, age INT COMMENT 年齡, gender TINYINT DEFAULT 0 COMMENT 性別: 0未知 1男 2女, class_id INT COMMENT 所屬班級(jí)ID, score DECIMAL(5,2) COMMENT 總分, enroll_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 入學(xué)時(shí)間 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT學(xué)生信息表;這里用class_info和student_info是為了避免和MySQL的保留字沖突比如order這種詞就不能直接當(dāng)表名新手如果習(xí)慣用student、class其實(shí)也可以但加個(gè)后綴更保險(xiǎn)。兩張表建好之后先插入幾條班級(jí)數(shù)據(jù)作為鋪墊INSERT INTO class_info (class_name) VALUES (軟件工程1班), (計(jì)算機(jī)科學(xué)2班), (大數(shù)據(jù)3班);從這一節(jié)開始下面的所有DML示例都會(huì)圍繞這套表展開你可以直接復(fù)制到自己的測(cè)試庫里跑跟著看效果。3. INSERT插入語句向表里喂數(shù)據(jù)的幾種姿勢(shì)3.1 基礎(chǔ)單行插入INSERT最基礎(chǔ)的語法是INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...);舉個(gè)例子向?qū)W生表插入一條記錄INSERT INTO student_info (name, age, gender, class_id, score) VALUES (張三, 20, 1, 1, 588.50);這里有幾個(gè)細(xì)節(jié)值得注意。字段列表可以不寫全沒寫的字段會(huì)使用默認(rèn)值比如enroll_time沒寫就自動(dòng)取當(dāng)前時(shí)間id沒寫就自動(dòng)生成自增值。但如果你把某個(gè)NOT NULL字段漏掉了并且該字段沒有默認(rèn)值MySQL會(huì)直接報(bào)錯(cuò)。所以新手在一開始就要養(yǎng)成“寫INSERT時(shí)明確字段列表”的習(xí)慣這比簡寫成INSERT INTO student_info VALUES (...)要穩(wěn)健得多因?yàn)楹笳咭笾档臄?shù)量和順序必須和表結(jié)構(gòu)完全一致表結(jié)構(gòu)一變你的SQL就崩了。字段的順序可以按自己的意愿排列只要值和字段一一對(duì)應(yīng)就行。比如我把年齡和班級(jí)ID換一下順序也完全沒問題只要VALUES里跟著換就行。3.2 多行插入與SET寫法多行插入是MySQL一個(gè)很實(shí)用的特性一次插入多條記錄時(shí)性能會(huì)比循環(huán)執(zhí)行單條INSERT好很多。語法就是在VALUES后面用逗號(hào)分隔多組值INSERT INTO student_info (name, age, gender, class_id, score) VALUES (李四, 21, 1, 1, 552.00), (王五, 19, 2, 2, 621.50), (趙六, 22, 1, 3, 487.00), (錢七, 20, 2, 2, 599.00);執(zhí)行完這條語句我們可以順帶用SELECT驗(yàn)證一下SELECT * FROM student_info;除了VALUES寫法MySQL還支持SET形式的插入INSERT INTO student_info SET name 孫八, age 18, gender 2, class_id 3;這種寫法更直觀尤其適合一次只插入一條記錄的場(chǎng)景寫起來不像VALUES那樣容易看花眼。但它的缺點(diǎn)是不太方便插入多行。所以我的建議是單條插入用SET批量插入用VALUES多行這個(gè)習(xí)慣可以一直保持下去。3.3 INSERT ... SELECT把查詢結(jié)果灌進(jìn)表里有些場(chǎng)景下你需要把另一張表或者同一張表的某些行的數(shù)據(jù)復(fù)制到目標(biāo)表里。這時(shí)候INSERT ... SELECT就是效率最高的方式不需要先把數(shù)據(jù)查出來再手動(dòng)拼INSERT。-- 把班級(jí)ID為2的學(xué)生復(fù)制到班級(jí)ID為3 INSERT INTO student_info (name, age, gender, class_id, score) SELECT name, age, gender, 3, score FROM student_info WHERE class_id 2;這里有一個(gè)很重要的點(diǎn)SELECT子句返回的列數(shù)和類型必須和INSERT后面的字段列表匹配否則MySQL會(huì)報(bào)“Column count doesnt match value count”的錯(cuò)誤。另外需要注意如果原表里有自增主鍵你復(fù)制數(shù)據(jù)時(shí)可以不把主鍵復(fù)制過去讓目標(biāo)表自動(dòng)生成新的主鍵。這種寫法在實(shí)際業(yè)務(wù)里特別常用比如你要把“舊表數(shù)據(jù)遷移到新表”“把正式環(huán)境的數(shù)據(jù)抽一份到測(cè)試環(huán)境”用一條SQL就搞定了。我在實(shí)際項(xiàng)目里遇到過好幾次因?yàn)槿藶閺?fù)制數(shù)據(jù)導(dǎo)致的錯(cuò)誤用INSERT ... SELECT配合WHERE條件反而更可控。3.4 主鍵沖突處理INSERT IGNORE和ON DUPLICATE KEY UPDATE給表里插入數(shù)據(jù)時(shí)最頭疼的問題之一就是主鍵沖突。比如你想插入一個(gè)ID1的學(xué)生但表里已經(jīng)有ID1的數(shù)據(jù)了直接執(zhí)行INSERT會(huì)報(bào)錯(cuò)。解決辦法有三種。第一種是INSERT IGNORE遇到主鍵或唯一鍵沖突就自動(dòng)跳過這條數(shù)據(jù)不報(bào)錯(cuò)INSERT IGNORE INTO student_info (id, name, age) VALUES (1, 張三, 20);第二種是ON DUPLICATE KEY UPDATE它的邏輯是如果主鍵沖突了就執(zhí)行后面的更新操作不沖突才執(zhí)行插入。舉個(gè)實(shí)際用法INSERT INTO student_info (id, name, age, score) VALUES (1, 張三, 20, 590.00) ON DUPLICATE KEY UPDATE age VALUES(age), score VALUES(score);這里VALUES(age)和VALUES(score)指的是你INSERT語句中試圖插入的值。執(zhí)行效果是ID1的記錄存在則把a(bǔ)ge更新為20、score更新為590.00如果不存在就正常插入完整的記錄。這在做數(shù)據(jù)同步、每日批處理任務(wù)時(shí)幾乎是標(biāo)配寫法。第三種是REPLACE INTO這種方式的邏輯是先嘗試插入如果遇到主鍵沖突就先刪除原來的行再插入新行。它看起來和ON DUPLICATE KEY UPDATE有點(diǎn)像但執(zhí)行代價(jià)更高因?yàn)閯h除和重新插入會(huì)導(dǎo)致自增主鍵發(fā)生變化。除非你能接受這一點(diǎn)否則我不推薦新手習(xí)慣性用它。我在多個(gè)項(xiàng)目里都見過因?yàn)橛肦EPLACE導(dǎo)致數(shù)據(jù)被重建、外鍵關(guān)聯(lián)出問題的案例盡量用INSERT ... ON DUPLICATE KEY UPDATE才是更穩(wěn)的選擇。3.5 INSERT相關(guān)的常見坑插入數(shù)據(jù)時(shí)最容易出問題的幾個(gè)點(diǎn)我單獨(dú)列出來字符串和日期必須加引號(hào)。數(shù)值類型可以裸寫但字符串和日期不加引號(hào)時(shí)MySQL會(huì)嘗試把它解析成數(shù)值或報(bào)錯(cuò)。比如插入abc不寫引號(hào)直接就炸了。NULL和空字符串是兩回事。NULL表示未知表示空字符串。如果字段設(shè)置了NOT NULL插入NULL會(huì)報(bào)錯(cuò)但插入不會(huì)。自增列不要手動(dòng)賦值。除非你清楚自己在做什么否則讓MySQL自己生成主鍵就好。手動(dòng)插入一個(gè)很大的ID可能會(huì)把自增序列搞得混亂。超長字段值會(huì)被截?cái)嗷驁?bào)錯(cuò)。MySQL在嚴(yán)格模式下8.0默認(rèn)開啟會(huì)直接報(bào)錯(cuò)非嚴(yán)格模式下會(huì)靜默截?cái)噙@也是很多“數(shù)據(jù)看起來不對(duì)”的根源。判斷當(dāng)前模式可以用SELECT sql_mode;4. UPDATE更新語句改數(shù)據(jù)之前先想清楚4.1 基本UPDATE語法和條件過濾UPDATE的基本語法UPDATE 表名 SET 字段1 值1, 字段2 值2 WHERE 條件;比如把張三的年齡改成21UPDATE student_info SET age 21 WHERE name 張三;這里要單獨(dú)講講WHERE子句的重要性。UPDATE不帶WHERE就是對(duì)整張表的所有行執(zhí)行更新。有一次我在測(cè)試環(huán)境執(zhí)行UPDATE student_info SET score 600結(jié)果是全表學(xué)生的成績?nèi)兂?00分。在測(cè)試環(huán)境可能一笑了之如果在生產(chǎn)環(huán)境后果不堪設(shè)想。所以每次寫UPDATE都可以在心里默念一遍我的WHERE真的能精準(zhǔn)圈定目標(biāo)數(shù)據(jù)嗎建議在更新前先跑一遍同條件的SELECT確認(rèn)影響范圍SELECT * FROM student_info WHERE name 張三;然后再放心執(zhí)行UPDATE。這個(gè)習(xí)慣一點(diǎn)都不麻煩但能省下無數(shù)后悔藥。4.2 關(guān)聯(lián)更新多表UPDATE有些場(chǎng)景下你要根據(jù)另一張表的數(shù)據(jù)來更新當(dāng)前表。比如班級(jí)改名后你想把學(xué)生表里所有該班級(jí)學(xué)生的班級(jí)名稱同步更新就可以用多表UPDATEUPDATE student_info s JOIN class_info c ON s.class_id c.id SET s.class_id 2 WHERE c.class_name 計(jì)算機(jī)科學(xué)2班;這里JOIN是用來關(guān)聯(lián)兩張表的它的核心邏輯是先找出班級(jí)名為“計(jì)算機(jī)科學(xué)2班”的班級(jí)ID然后更新學(xué)生表中對(duì)應(yīng)的行。這種寫法的好處是省去了子查詢讓SQL更清晰。更常見的一種寫法是利用子查詢UPDATE student_info SET score score 10 WHERE class_id IN (SELECT id FROM class_info WHERE class_name LIKE %計(jì)算機(jī)%);這句話會(huì)把計(jì)算機(jī)相關(guān)班級(jí)的所有學(xué)生成績加10分。注意MySQL里更新同一張表時(shí)子查詢直接引用同一張表可能會(huì)報(bào)“You cant specify target table for update in FROM clause”的錯(cuò)誤這個(gè)后面在常見問題里我會(huì)詳細(xì)說解法。4.3 UPDATE時(shí)容易被忽略的細(xì)節(jié)第一字段值的合法性。UPDATE不會(huì)自動(dòng)檢查你新賦的值是否合理比如把年齡改成-5MySQL不會(huì)攔你除非你建了CHECK約束。業(yè)務(wù)上的校驗(yàn)應(yīng)該由應(yīng)用層負(fù)責(zé)或者在建表時(shí)加合理的CHECK約束。第二數(shù)據(jù)類型的隱式轉(zhuǎn)換。如果字段是字符串類型你給它賦一個(gè)數(shù)值MySQL會(huì)嘗試自動(dòng)轉(zhuǎn)換雖然一般不報(bào)錯(cuò)但可能導(dǎo)致索引失效查詢變慢。所以寫UPDATE時(shí)盡量保持值的類型和字段類型一致。第三唯一鍵沖突。更新時(shí)如果新值導(dǎo)致唯一鍵重復(fù)MySQL會(huì)報(bào)錯(cuò)。比如你把某個(gè)學(xué)生的姓名改成和另一個(gè)學(xué)生相同而姓名列設(shè)置了UNIQUE約束這條UPDATE就會(huì)失敗。5. DELETE刪除語句刪數(shù)據(jù)其實(shí)是門技術(shù)活5.1 DELETE基本語法與注意事項(xiàng)DELETE的基本語法DELETE FROM 表名 WHERE 條件;比如刪除張三DELETE FROM student_info WHERE name 張三;同樣DELETE不帶WHERE就是清空整張表。而且DELETE和UPDATE還有一個(gè)區(qū)別有些數(shù)據(jù)庫系統(tǒng)對(duì)于不帶WHERE的DELETE會(huì)要求額外的權(quán)限或確認(rèn)但MySQL默認(rèn)不會(huì)攔你所以誤刪的可能性更高。我的建議是刪除前先SELECT確認(rèn)刪除時(shí)盡量用主鍵或唯一鍵來圈定范圍不要只憑姓名這種可能重復(fù)的字段來刪。5.2 DELETE和TRUNCATE的區(qū)別很多新手問清空表的時(shí)候用DELETE還是TRUNCATE這兩者的核心區(qū)別如下對(duì)比維度DELETETRUNCATE操作類型DML逐行刪除DDL重建表結(jié)構(gòu)是否可帶WHERE可以按條件刪不可以直接清空?qǐng)?zhí)行速度慢逐行操作并寫日志快直接釋放數(shù)據(jù)頁自增ID是否重置不重置繼續(xù)往下增長重置從1開始是否可以回滾在事務(wù)中可以默認(rèn)不可回滾場(chǎng)景上如果只是刪掉部分?jǐn)?shù)據(jù)必然用DELETE如果要清空整張臨時(shí)表并且不需要保留自增ID的連續(xù)性TRUNCATE更合適。需要注意TRUNCATE會(huì)觸發(fā)MySQL的隱式提交即使你把它包在事務(wù)里也回滾不了這一點(diǎn)一定要記牢。5.3 多表刪除同時(shí)刪兩張表的數(shù)據(jù)需要同時(shí)刪除多個(gè)表的數(shù)據(jù)時(shí)多表DELETE就派上用場(chǎng)了。比如刪除班級(jí)ID為3的班級(jí)同時(shí)刪除該班級(jí)下的所有學(xué)生DELETE s, c FROM student_info s JOIN class_info c ON s.class_id c.id WHERE c.id 3;這里要注意DELETE后面跟的是表別名表示你要?jiǎng)h的是哪幾個(gè)表的數(shù)據(jù)而不是刪JOIN的結(jié)果。如果只寫DELETE FROM student_info那就只刪學(xué)生表班級(jí)表還得再寫一條SQL。實(shí)際開發(fā)中多表刪除要特別謹(jǐn)慎尤其是存在外鍵關(guān)系時(shí)。如果表之間設(shè)置了ON DELETE CASCADE刪父表記錄時(shí)子表會(huì)自動(dòng)刪如果沒有外鍵約束或者約束方式是RESTRICT刪父表會(huì)報(bào)錯(cuò)得手動(dòng)刪完子表再刪父表。5.4 誤刪除的補(bǔ)救思路雖然不想嚇唬人但每個(gè)DBA和開發(fā)者都遲早會(huì)遇到誤刪數(shù)據(jù)的情況。簡單說幾個(gè)補(bǔ)救方向。如果MySQL開啟了binlog可以通過binlog日志把刪除操作找回來這是比較標(biāo)準(zhǔn)的恢復(fù)手段。測(cè)試環(huán)境下很多實(shí)例默認(rèn)沒開binlog生產(chǎn)環(huán)境一般都會(huì)開。如果你已經(jīng)把DELETE包在事務(wù)里并且還沒COMMIT直接ROLLBACK就能恢復(fù)。日常預(yù)防上可以給重要的表建定時(shí)備份任務(wù)甚至用軟刪除加一個(gè)is_deleted字段來代替物理刪除。軟刪除在業(yè)務(wù)系統(tǒng)里非常常見避免了數(shù)據(jù)真正丟失帶來的風(fēng)險(xiǎn)。另外MySQL 8.0里有UNDO日志保留時(shí)間的配置刪除的數(shù)據(jù)在短時(shí)間內(nèi)還是可恢復(fù)的但不要指望它最快最省事的還是“提前備份謹(jǐn)慎操作”。6. SELECT查詢語句DML里真正的主角6.1 基礎(chǔ)查詢與過濾排序SELECT的語法比前面三個(gè)都復(fù)雜因?yàn)樗休d了最豐富的查詢需求?;窘Y(jié)構(gòu)是SELECT 列名 FROM 表名 WHERE 條件 GROUP BY 列 HAVING 條件 ORDER BY 列 LIMIT 數(shù)量;先看最基礎(chǔ)的用法-- 查詢所有學(xué)生 SELECT * FROM student_info; -- 只查姓名和成績 SELECT name, score FROM student_info; -- 按成績降序排列 SELECT name, score FROM student_info ORDER BY score DESC;ORDER BY默認(rèn)為升序如果要降序要顯式加DESC。多字段排序時(shí)寫在前面的優(yōu)先級(jí)高。比如先按班級(jí)排序再按成績降序SELECT name, class_id, score FROM student_info ORDER BY class_id ASC, score DESC;6.2 條件過濾WHERE的進(jìn)階玩法WHERE子句里除了、、、這些比較運(yùn)算符還有一些很常用的寫法。-- 范圍查詢 SELECT * FROM student_info WHERE score BETWEEN 500 AND 600; -- 列表查詢 SELECT * FROM student_info WHERE class_id IN (1, 2, 3); -- 模糊查詢名字以張開頭 SELECT * FROM student_info WHERE name LIKE 張%; -- 空值判斷注意IS NULL不能寫成 NULL SELECT * FROM student_info WHERE class_id IS NULL;模糊查詢中%表示任意多個(gè)字符包括0個(gè)_表示任意單個(gè)字符。比如LIKE 張_只能匹配“張”加一個(gè)字的名字如“張三”匹配不了“張大壯”。這個(gè)細(xì)節(jié)在面試?yán)镆渤?肌_€有一個(gè)新手容易踩的坑NULL的判斷。NULL不是等于某個(gè)值也不是不等于某個(gè)值它是“未知”。所以任何 NULL的寫法都查詢不到數(shù)據(jù)只能用IS NULL或者IS NOT NULL。6.3 聚合函數(shù)與分組統(tǒng)計(jì)聚合函數(shù)是SELECT里非常核心的一塊。它把多行的值匯總成一個(gè)值常用的有COUNT、SUM、AVG、MAX、MIN。比如統(tǒng)計(jì)學(xué)生人數(shù)和平均分SELECT COUNT(*) AS total_count, AVG(score) AS avg_score FROM student_info;COUNT(*)統(tǒng)計(jì)的是所有行數(shù)包括值為NULL的行COUNT(score)只統(tǒng)計(jì)score列非空的記錄數(shù)。這個(gè)區(qū)別如果沒搞清楚統(tǒng)計(jì)結(jié)果可能會(huì)有偏差。分組統(tǒng)計(jì)要配合GROUP BY比如按班級(jí)統(tǒng)計(jì)人數(shù)和平均分SELECT class_id, COUNT(*) AS num, AVG(score) AS avg_score FROM student_info GROUP BY class_id;這里很自然地引出一個(gè)問題如果你想在分組之后再加篩選條件不能用WHERE而要用HAVING。比如只想看平均分大于550的班級(jí)SELECT class_id, AVG(score) AS avg_score FROM student_info GROUP BY class_id HAVING avg_score 550;WHERE和HAVING的區(qū)別可以簡單理解成WHERE在分組前過濾原始行HAVING在分組后過濾聚合結(jié)果。6.4 多表連接查詢JOIN的用法數(shù)據(jù)很少只存在一張表里實(shí)際業(yè)務(wù)里絕大多數(shù)查詢都要關(guān)聯(lián)多張表。最常用的是INNER JOIN它返回兩張表中滿足關(guān)聯(lián)條件的交集數(shù)據(jù)。SELECT s.name, c.class_name FROM student_info s INNER JOIN class_info c ON s.class_id c.id;這里INNER可以省略不寫直接寫JOIN效果一樣。ON后面寫的是關(guān)聯(lián)條件它決定了兩個(gè)表怎么拼在一起。LEFT JOIN則會(huì)把左表的所有數(shù)據(jù)都查出來即使右表沒有匹配的記錄右表字段會(huì)顯示為NULL。SELECT s.name, c.class_name FROM student_info s LEFT JOIN class_info c ON s.class_id c.id;LEFT JOIN在開發(fā)中使用頻率非常高比如你要查“每個(gè)學(xué)生的班級(jí)名即使這個(gè)學(xué)生沒有分配班級(jí)也要列出來”就必須用LEFT JOININNER JOIN會(huì)直接把沒分班的學(xué)生過濾掉。這兩種JOIN的區(qū)別一定要弄透面試和實(shí)際開發(fā)里都是重中之重。6.5 分頁查詢LIMIT的實(shí)用套路分頁查詢是列表頁功能的基本功。MySQL用LIMIT實(shí)現(xiàn)SELECT * FROM student_info ORDER BY id LIMIT 10 OFFSET 0;OFFSET 0表示從第1行開始取10行OFFSET 10就是從第11行開始。也可以簡寫成SELECT * FROM student_info ORDER BY id LIMIT 10, 10;這個(gè)寫法中LIMIT 10, 10的第一個(gè)10是偏移量第二個(gè)10是返回的行數(shù)。很多新手會(huì)記反所以建議直接用LIMIT 頁大小 OFFSET 偏移量這種寫法語義更清晰。分頁一定要配ORDER BY否則每次查出來的順序可能不一樣導(dǎo)致翻頁時(shí)數(shù)據(jù)出現(xiàn)重復(fù)或漏掉。7. 實(shí)戰(zhàn)小案例用DML完成一個(gè)完整需求把前面的知識(shí)串起來我們做一個(gè)模擬需求把計(jì)算機(jī)科學(xué)2班中成績低于550分的學(xué)生全部加10分然后統(tǒng)計(jì)各班人數(shù)和平均分。第一步先查詢一下目標(biāo)數(shù)據(jù)看看影響范圍SELECT s.id, s.name, s.score, c.class_name FROM student_info s JOIN class_info c ON s.class_id c.id WHERE c.class_name 計(jì)算機(jī)科學(xué)2班 AND s.score 550;第二步執(zhí)行更新UPDATE student_info SET score score 10 WHERE class_id IN (SELECT id FROM class_info WHERE class_name 計(jì)算機(jī)科學(xué)2班) AND score 550;這里我想專門解釋一下最容易出問題的地方如果你直接用JOIN的方式更新就把目標(biāo)表也關(guān)聯(lián)進(jìn)去MySQL可能報(bào)錯(cuò)用子查詢時(shí)如果子查詢和更新目標(biāo)表是同一張表也會(huì)出現(xiàn)限制。上面的寫法是先把class_info查出來再更新student_info沒有直接引用被更新的表所以能正常執(zhí)行這是我實(shí)際開發(fā)中被MySQL坑過之后總結(jié)出來的穩(wěn)妥寫法。第三步驗(yàn)證結(jié)果SELECT c.class_name, COUNT(*) AS student_num, AVG(s.score) AS avg_score FROM student_info s JOIN class_info c ON s.class_id c.id GROUP BY c.class_name;這個(gè)流程看著簡單但非常接近真實(shí)業(yè)務(wù)的處理邏輯先查再改再統(tǒng)計(jì)。每一步都在用前面講過的知識(shí)這就是DML的日常形態(tài)。8. 常見問題速查表與避坑指南8.1 高頻報(bào)錯(cuò)與解決方法問題現(xiàn)象報(bào)錯(cuò)信息原因解決方法插入數(shù)據(jù)時(shí)提示列數(shù)不匹配Column count doesnt match value countVALUES里的數(shù)量和字段列表數(shù)量不一致檢查字段列表和值列表一一對(duì)應(yīng)字符串忘記加引號(hào)Unknown column abc字符串被當(dāng)成列名解析字符串和日期必須加單引號(hào)更新同一張表時(shí)子查詢報(bào)錯(cuò)You cant specify target table for update in FROM clauseMySQL不允許同一張表作為更新目標(biāo)和子查詢來源子查詢外面再套一層臨時(shí)表或用JOIN使用保留字當(dāng)表名/列名You have an error in your SQL syntaxorder、group等詞是保留字加反引號(hào)或者換個(gè)名字中文亂碼顯示為問號(hào)字符集不一致建表用utf8mb4連接串加characterEncodingutf8查詢結(jié)果NULL判斷不出查不到數(shù)據(jù)用了 NULL改用IS NULL或IS NOT NULL刪數(shù)據(jù)沒有生效Rows matched: 0 Changed: 0WHERE條件沒有匹配到數(shù)據(jù)先SELECT驗(yàn)證條件是否成立8.2 新手最容易踩的5個(gè)坑第一個(gè)坑是UPDATE和DELETE忘了寫WHERE或者WHERE寫得過于寬松。我見過因?yàn)橐粋€(gè)WHERE id 0導(dǎo)致全表數(shù)據(jù)被改寫的案例這種錯(cuò)誤輕則數(shù)據(jù)錯(cuò)亂重則直接刪庫跑路。第二個(gè)坑是混淆了和IS對(duì)NULL的判斷。NULL NULL的結(jié)果是NULL所以條件不成立。所有對(duì)NULL的判斷都必須用IS NULL或IS NOT NULL。第三個(gè)坑是在多表JOIN時(shí)搞不清驅(qū)動(dòng)表和匹配表的角色。LEFT JOIN左邊的表是驅(qū)動(dòng)表它會(huì)全量保留右邊是匹配表匹配不到就補(bǔ)NULL。腦子里有這層概念寫起多表查詢才不會(huì)邏輯混亂。第四個(gè)坑是分頁越翻越亂。沒有ORDER BY的LIMIT分頁MySQL返回的記錄順序是不確定的尤其在數(shù)據(jù)量大的時(shí)候翻頁會(huì)出現(xiàn)重復(fù)數(shù)據(jù)。分頁時(shí)一定要指定唯一性強(qiáng)的排序字段。第五個(gè)坑是執(zhí)行完DML后忘了提交事務(wù)。如果你在代碼里開啟了事務(wù)但忘記COMMIT數(shù)據(jù)在別人眼里一直是舊狀態(tài)這種現(xiàn)象在排查“為什么數(shù)據(jù)改了前端沒變化”的問題時(shí)特別容易遇到。8.3 我的一點(diǎn)小建議既然看到這里了最后分享一個(gè)我用了很多年的習(xí)慣每次寫DML尤其是UPDATE和DELETE都強(qiáng)制自己先寫一條同名SELECT大概花兩三秒的時(shí)間確認(rèn)WHERE條件圈定的范圍再回頭執(zhí)行。這個(gè)習(xí)慣在壓力大、事情多的時(shí)候特別能救命。另外測(cè)試環(huán)境里練SQL時(shí)可以隨便造一些垃圾數(shù)據(jù)反復(fù)試把報(bào)錯(cuò)都見一遍反而到了生產(chǎn)環(huán)境就不慌了。我自己剛學(xué)MySQL那會(huì)兒就是把一份數(shù)據(jù)翻來覆去地插入、更新、刪除、再查回來折騰到最后四條命令的各種邊緣情況基本都摸清了。后續(xù)如果你想深入可以再往事務(wù)、鎖、索引優(yōu)化這些方向走但DML這關(guān)打得越扎實(shí)后面這些東西學(xué)起來就越順暢。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩精品区二区三区不卡| 韩国一级婬片A片无码天美| 色噜噜日韩精品| 丰满人妻aA一区二区三区| 国岛片视频| 日本91白丝| 少妇蹲下买菜露大唇0| 97欧美精品| 天天躁日日躁AAA片李宗瑞| 极品尤物在线观看| 偷拍亚洲情色| 人妻熟女午夜精品在线| 我想要啊 啊 啊| 国产隔壁老王影院在线| 少妇同性| 麻豆国产97在线| 天天草天天日| 国产刺激视频| 97色操| 成人一级性爱| 韩国嫰模上门援交视频| 波多野42部无码喷潮在线观看| 极品色社| 呦呦一区| 天天日天天射天天干| 男人天堂网站| 真实高潮91| 天美传媒精品一区二区| 99热在线播放| 91 偷| 亚洲欧美日韩精品久| 狠狠干妹子| 老司机老司机午夜影院| 偷拍2020| 特级毛片特黄久久免费看| 极品少妇99| 97资源视频| 日本A级视频| 岛国在线国产| 东北女人操比视频| 手机看片1025| 懂色Av一区二区三区| www.色99| 日本孕妇一区二区视频操逼免费看| 中文字幕 人妻不满 在线视频| 精品美女少妇一区二区| 97爱欧美| 亚洲中文日韩欧美大香蕉视频| 九一国产精品| 99精品成人免费看| 影视综合无码少妇| 区一二区日韩亚洲乱码av电影| 国产91福利小视频在线观看| 欧美精品偷拍| 丁香五月婷婷色| 啊啊啊啊好爽好舒服一区二区易域| 婷婷五月花| 天天射夜夜操| 超碰这里有精品| 婷婷综合久久| 先锋激情∨在线视频播放| 极品AV网站在线观看| 爱做久久久久久| 亚洲男人的天堂va亚洲男人社| 999日韩中文精品观看视频。| 亚洲情欲| 亚洲熟女一区| 超碰性爱97| 高清国产成人无码| 久久久九九| 色五月av| 久久99网站| www色婷婷| 欧美人与动性人交a| 97色视频在线| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 超碰97久| 青青青草原| AND人妻系列| 亚洲精品国产熟女久久久久久| 亚洲综合色图欧美| 日本天天人人狠狠在线日美女 | 成人性交午夜免费片| 欧美AB在线观看| 夜夜影视四色| 日韩91网| av东京热男人的天堂| 五月色综合| 亚洲欧洲综合av在线| 91狠狠综合久久| 天堂在线一区二区| 91 丝袜在线观看| 久久久久久久78| 99re在线观看| 欧美日韩第一页| 日韩人妻一区二区| 亚洲h片在线免费观看| 人人操人人插人人摸人人干| 五月丁香黄色网| 日本黄色精品| 亚洲交换| 97资源站久久| 夜草欧美| 欧美视频第二页| 性感女人网页在线观看视频| 色欲天天综合网| 日韩一级成人毛片免费观看| 欧美另类精品xxxx| 久久精品久久久久久久久| 日夜精品| 九九九免费视频| 偷拍亚洲情色| 亚洲大色鬼| 99精品伊人| 午夜精品久久久久久久99热影院| 台湾肥佬网一区二区三区| www.色婷婷| 国产原创剧情在线丝袜| 日韩AV熟女乱伦| 大黄片做爱的大的| 亚洲成人久久一区二区| 国产精品干干干| .精品人妻一区二区三| 国产无码成人无码| 青娱乐老司机视频| 久久久亚洲欧美综合| 热久久国产| 亚洲精品白浆高清久久久久久| 野狼福利社区| 91搞逼视频| 人人操人人摸avav| 国产精品久久99日日| 伦伦成年午夜免费视频| www.色婷婷| 91精品人妻电影| 福利视频一区二区微拍| 色牛牛AV| 超碰人妻在线| www.狠狠| 久久久噜噜噜久久久| 青青草原人妻| 神马午夜久久久| 欧美久久久| 欧美色图自拍| 亚洲一区日韩精品中文字幕| 欧洲久久一二线| 欧美A片中文字幕| 伊人专区一区二区三区| 色色色色综合网| 爽爽淫人网| 久久久久性熟视频| 中文字幕精品专区搜索结果91| 日日干夜夜骑| 天久久久噜噜噜久久国产精品爽爽 | 欧美人妖内射| 中文操逼字幕| 欧美性爱十八禁| 可以免费观看的AV| 日本一二区免费| 免费人人搞97| 欧洲亚洲人妻无码高清久久三区四区| 久久青青草在线视频| 日韩欧美性爱电影在线观看| 综合影视国产无码| 久久久亚洲精品电影免费看| 亚洲美女黄色| 91情色| 秋霞曰韩R级| 久久人妻97久久久久久久| 天天日天天屌天天操| 大香蕉日亚洲日本亚大| 综合免费无码中文| 日韩在线人妻网站| 清纯唯美综合| 99久久久久久久久| 精品人妻一区二区免费蜜桃| 伊人 俄罗斯 a v| 96精品久久久| 黄片免费视频2019| 精品少妇一区二区三区免费观看| 天美传媒精品久久视频| 欧美人妻精品一区二区| 97视频在线视频| 蜜臀在线视频| 日韩成人电影AV| 97超碰资源网| 日韩免费在线观看不卡| 婷婷色网| 91白嫩| 国产日韩欧美亚洲精品95 | 干妹子| 天天干天天舔| 亚洲91网。| 久久中文字幕在线观看| 欧美日韩性爱精品| 久久九操在线观看| 色官网在线| 亚洲和欧美裸体美女双飞视频| 俞拍久久国应视频| 91老熟女逼| 久久久日本电影| 一级黄色牲爱A级片| 超碰天天久久79| 网站A V在线| 婷婷伊人綜合中文字幕小说| 国产精品色约约| 日韩性爱毛片操骚逼| 啊嗯好大视频在线观看| 97色综合中文网| av国产无码| 97爱啪| 激情综合二| 麻豆黄站| 999国产精品999| 精品一区二区三区最新| 亚洲色欲天天天堂色欲网女| 超碰人妻久久人妻中文97| 欧美少妇色图| 欧美少妇一区二区三区| 亲子敌伦对白在线播放| 嗯……啊…嗯嗯…啊…好舒服| 久草这里只有精品 | A片大香蕉在线| 偷窥自拍亚洲色图| A级毛片在线看免费| 区一二区日韩亚洲乱码av电影| 亚洲古典另类欧美在线| 伊人少妇久久久| 91精品无码人妻系列| 一区超碰一区| 野狼激情网| 亚洲九九九| 中文字幕黑人大片| 不卡在线观看视频| 91视频观看网站| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 欧美久久草熟女| 亚洲人成网站7777| 欧美日动态视频| 免费一级精品啪啪视频| 超碰欧美97资源| 中文字幕亚洲在线一区| 中国AAAAAA黄色片| 日本丝袜美腿人妻九九| 日韩性爱电影一区| 992视频一区| 骚乳在线| 日韩免费a级毛片无码a∨| 自拍欧美| 99re视频在线观看这里只有精品| 日韩成年人性爱视频| 成人综合网 欧美| 91精品女厕偷拍视频| 亚洲诱惑天堂 | av大香蕉网站| 欧美人妻一区| 午夜a成v人电影| 国产欧洲精品亚洲午夜拍精品| 亚洲AV无码乱码在线观看性色| 人妻精品一区二区| 中文子幕一二三| 性爱乱伦一区| 国产激情视频一区区三区| 久久精品中文| 中文字幕视频在线观看一区二区| 丝袜人妻av一区二区| AV色五月天| 日韩99神马视频播放片在线播放| 天天艹天天日| 亚洲国产精品成人久久蜜臀| 人妻 欧美亚洲| 久久久9品一区二区三区| 国产69精品久久久久99尤物| 在线播放成人高清免费视频| 欧美日韩国产精品久久色婷婷| 天天影视激情欧美| 日日干日日| 在线观看免费视频国产| 日韩乱伦AⅤ| 热热色中文无码| 一区二区亚州激情久婷婷欧美| 97电影院超碰| 日韩性爱高清免费视频| 免费一级黄色录像影片| 日韩大香蕉| 欧美另类天堂| 亚洲97网站| 精品性爱久久视频| 91天美传媒精品| 蜜桃臀av在线观看| 超碰在线国产| 久久高清欧美国产| 狠狠中文字幕| 亚洲乱伦图片视频| 欧美成人A√在线一区二区| 99热8| 老熟女熟妇| 日韩中字av一区| 五月婷丁香| 婷婷精品| 精品人妻伦一二三区久久| 无码日韩人妻av一| 色狠狠 - 百度| 国产日韩色综合| 国产精品久久久久久久久久久久久久吹| 亚洲人久久久网| 神马久久啊啊| 精品久久大胆人体| 欧美色图片91| 色色毛片| 黄片免费日韩| 国产精品久久久久无码A√| 日本伦乱九九九综合| 亚洲国产一级黄色视频| 免费一级精品啪啪视频| 18禁中文字幕| 黄色网址在线免费观看| 久久亚洲av成人无码国产| 99热超碰在线| 国产欧美日韩精品中文| 91人妻尻屄视频| 久久狠狠色噜噜狠狠狠狠97 | 97精品97| 偷拍亚洲情色| 日本Suv精品一区二区| 96超碰网| 久草加勒比一区在线| av网站免费看| 亚洲精品无码成人久久久99| 亚洲精品亚洲人成在线麻豆| 亚洲 国产 精品一区| 国产黄色av大片网站| 99这里只有精品国产| 国产最火爆久久国产网站网站| 亚欧毛片基地国产毛片基地| 国产av波波国产精品| 一级特级aaaa毛片免费观看| 99无码精品| 日韩无码嘿咻黑热久| 中文字幕在线观看网页| 秋霞福利网| 日韩三级av片| 蜜乳成人AV| 最好看的中文字幕在线2018| av一区二区三区 中文| 熟妇熟女视频一区二区三区| 狠狠图片青青草| 夜夜做夜夜爽精品视频| dy888午夜老子影视达达兔| 91成人高清在线观看| 另类一区| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 国产真实子伦对白| 黄色av一区二区在线| 欧洲综合视频| 欧美色天堂网在线视频| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 囯产精品久久久久久久久久梁医生| 国产福利电影| 五月丁香| 亚洲91大片| 日本女人久久久| 一区操逼日比视频| 91无码中出人妻视频| 综合网久久| 9精品久久久久| 国产精品一区二区a| av日韩在线观看电影| 美女诱惑1区2区| 欧美成不卡网| 国产精品大香蕉| 日本羞羞的视频在线播放| 91美女视频在线观看| 欧美人与性动交a美精品| 99re视频在线观看这里只有精品| 九九九精品一区二区无码| 欧美激情亚洲情色| 国产精品999aaa| 日本123区操B视频| 久久亚洲天堂| 精品久久久高清无码| 91 手机在线播放 绯色| 熟女熟妇一区二区三四区| 国产欧美精选自拍一区| 91AV老熟女视频| 亚洲天堂资源网| 九九无码视频| 欧美一品道| 亚洲成人免费中文字幕| 亚洲欧美清纯| 国产AV高清AV无码| 亚州色图欧美| 国产一级内射无挡观看| 日本日日色视频| 久久色精品视频在线| 亚洲最大无码中文字幕网站| 亚洲综合大片| 国产福利一区二| 91麻豆天美国产欧美| 日本二三四区| 97干在线| 日本精品一区二区三区四区的功能| 婷婷五月成人| 色淫网站优优视频| 亚洲 欧美 天天| 亚洲性高潮| 999国产精品999| 亚洲极品| 五月婷婷激情综合| 久久久久久九九九| 久久久久久性爱视频| 色激情综合网站| 偷窥自拍亚洲色图| 国产强奸91| 97视频在线观看高清资源| 在线免费观看高清无码视频| 久久欧美按摩999| 96精品久久久久久久久久| 看看小穴| 日本色色视频网站| 牛牛久久国产精品视频一二三| 精品中文字幕一区二区| 国内操逼视频二区| 亚洲二区精品在线观看 | 国产白丝av| 91狠狠色丁香婷婷综合久久| 国产美女高潮| 综合天天网| 浪人综合网| wuyechaopeng| 精品久久久av| 亚洲91在线播放影院| 四虎在线观看网站| 99在线观看| aa片毛片| 91男同| 亚洲欧美经典一区二区| 18禁看网站一区| 欧美A√综合网| 亚洲国产尤物yw在线观看| 精品妇操一区二区三区| 久久久久久久久久久久久久久性生活视频 | 超碰99在线| 国产超碰97| 啊啊啊用力在线观看| 精品人妻av区天天看片| 歐美一級亂黃99在綫精品| 可免费观看的av毛片中日美韩| 天堂蜜桃无码视频一区二区| av网站免费线看| 亚洲图片偷拍欧美| 欧美A√综合网| 日日狠狠久久偷偷色综合免费| 人妻精品视频一区二区三区| 国产精品高潮久久AV| 婷婷丁香在线| 成人av毛片在线观看| 久草成人影片| 男人的天堂色偷偷青青草视频婷婷网| 中文字幕 国产 精品| 91综合色噜噜| 激情综合 婷婷五月 红杏| 熟女中出视频| 欧美亚州手机在线| 欧美日韩国内不卡| 国产精品人人爽人人做可爱福利| 超碰97丝袜| 亚洲情色综合网| 中文一区二区婷婷视频| 精品视频久久久久九九九九9999 | 久久精品人妻一区二区| 日本一二区免费| 丁香七月婷婷| 校园春色第一页| 欧美一级专区免费大片| 很黄很污的免费网站| 人人爱操| 婷婷AV一区二区三区| 久久久久久99AV无码免费网站| 日韩中文9| 国产精品久久久久久久久久久久久久久 | 人人操人人色网| 熟女熟妇一区二区三区视频| 97超碰免费人人性爱| 日本曲间由美性生活片| 亚洲综合网电影91| 99热欧美| 久久九九99| 欧美v亚洲v日韩v最新在线二区| 精品日韩人妻精品一二三区| 国产一区二区二区按摩精品啪视频| 亚洲一区中文字幕| 东京热伊久| 96精品一区| av久日| 色娱乐色呦呦夜夜夜夜av| 亚洲aw毛茸茸在线| 超AV色女| 大香蕉99热| 日韩乱码Av| 在线啊v一区| 久久免费精品视频免一| 日日摸夜夜夜夜爽| 色天使亚洲综合在线观看| 国产激情视频一区区三区| 激情五月天社区| 久久国产在线一区二区| 国产一区二区三区久久久精品| 天天亚洲| 久久91| 花花AV导航| 欧美激情精品| 91天天| 久久国产AⅤ| 操逼日批| 国产成人精品亚洲日本| 婷婷午夜| 日韩97视频!在线| 97干在线| 色女99一级片在线观看| 婷婷啪啪| 男人的天堂成人的社区| 色眯眯av| 亚洲女人91| a片久久久久久久久久久久 | 夜色AV无码手机在线影院| 国产剧情AV不卡在线观看| 人妻少妇av在线观看| 激情婷婷| 亚洲美女精品| 少妇精品久久久| 999久久芭蕾| 国产精品久久| 欧美午夜一区二区三区| 99热综合| 日欧毛片久久| 国产一区二区在线看| 九热中文字幕| 18啪啪手机免费性爱| 黑人黄片在线免费观看| 殴美,日韩国产伦精品| 欧美 亚洲 大香| 99re在线视频国产| 国产精品99999| a v网站在线播放| 丁香五月成人| 久久少妇人妻| 欧洲特黄毛片免费看欧洲毛片| 高清国产成人无码| 丁香五月激情综合国产| 操香逼| 国产一区二区在线看| 亚洲中文字幕精品一区| 国产亚洲国产超碰| 天天舔九色婷婷| 色男人色天堂东京热| 天天综合色图| 亚洲av淫乱| 精品射1999| 国产深喉| 日韩人妻制服丝袜av| 丝袜美腿欧美| 国产三级中文字幕粉嫩| 俺去啦俺来也久久综合| 色婷婷亚洲婷婷| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 91美| 日本熟妇人妻中出视频| 激情99| 欧美色图在线视频少妇| 日韩极品无码B| 大香蕉啪啪啪| 青青青草原| 一级片在线观看高清无码| 天天影视综合网欧美精品| 无码九九| 日韩免费av片高清无码| 91 亚洲 欧洲| 日韩精品-原创伙伴| 欧美亚洲日本激情在线| 亚洲精品白丝| 国产日韩区| 欧美第38页| 极品国产内射| 中文字幕91综合| 加勒比中文av| www.99热| 91精品久久久久| 五月婷婷AV| 亚洲欧美综合网站| 国产视频一区二区免费| 香蕉免费一区二区三区不读| 免费人成在线观看网站品爱网| 婷婷亚洲天堂| 超碰在线91| 五月婷在线| 强乱老妇中文字幕| 99色在线| 嗯嗯啊啊操我| 亚洲精品丝袜| 亲子敌伦对白在线播放| 91九久| 99热这里都是精品| 92福利社视频| 99热在线只有精品| 久久九九99| 亚州综合色| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 综合干干干av久久久综合网| 呦呦影院| 校园春色宗合网| 2021久久国产综合精品青草 | 欧日韩不卡视.频| aa片毛片| 走光一区92下载| 日美免费黄片| 综合 亚洲 欧美| 99久re热视频精品98| 在线观看色视频| 不卡六六在线91| 久久精品国产精品亚洲艾通辽熟妇 | 成人性爱美曰韩| 天美传媒AV国产在线| 自拍偷拍 日韩无码| 伊人宅男大香蕉| 欧美最婬乱婬爆婬性视频 | 色区久久| 麻豆天美在线| 污到发麻的视频 国产| 欧美日韩在线视频网站| 综合网色| 婷婷丁香九月| 变态综合色| 欧美午夜色妇色鬼| 日韩激情啪啪| 欧美人妻一区二区| 色精品极品| AV不卡在线| 婷婷色香伊人| 四虎永久在线精品免费网址| 亚洲导航深夜福利| 久久久久久九九九| 精品国产久久乱码| 操美女高潮抽搐白浆| 大鸡巴久久| 青青欧洲黑| 午夜福利视频在线一区| 免费观看日本操逼视频| 欧美日韩另类字幕中文| 校园春色 男人天堂| 久久久久亚洲av综合波多野制衣| 精品十八在线观看| 精品国产污一区二区三区| 激情 欧美 亚洲 小说| 亚洲在线综合| 欧洲与亚洲欧美精品中文字幕| av九九| 久久久亚洲高清不打码| 天天日天天操天天射河南省| 麻豆a'v电影| 九九热超碰97亚洲最新香蕉| 久久伊人大香蕉| 粉嫩粉嫩一区性色AV片| 亚洲美女av无码| 青青草在线视频播放器| 精品亚州18| 久久99亚洲精品久久99果| 欧美十八禁视频| 熟女人妻一区二区三区| 超碰98综合网| 少妇人妻无码| 强上我不卡卡| 蜜臀久久99精品久久久久久久久| 插欧洲美女欧美精品| 伦伦成年午夜免费视频| 国内偷拍精品一区二区| 精品一区二区三区麻豆| 国产一二三福利视频网| 日韩激情视频| JULIA一区二区三区在线播放| 99久久久无码精品国产人| 蜜桃狠狠色伊人亚洲综合网站| 秘书高跟黑色丝袜国产91在线| 伊人久久久日韩一区| 欧美性暴力猛交XXXX| 小草三级久久观看| 欧美另类色图片| 大香蕉亚洲中文| 99久视频| 色色激情五月天| 一级免费啪啪片| 亚洲一区二区三区欧美日韩| av午夜影院在线播放| 国产专区第一页| 亚洲麻豆av一区二区| 久久久96| 国产精品毛片?v一区二区三区| 亚洲h片在线免费观看| 国产最火爆久久国产网站网站| 国产精品视频自拍在线| 色y情视频免费看| 欧美亚洲| 婷婷亚洲天堂| 亚洲。日韩。欧美| 青青草原综合久久大伊人精品| 日韩精品高清资源在线| 中文啪啪视频| 日韩紧密久久| 亚洲日韩乱码中文无码蜜桃臀网站| av线电影| 青草一区二区| 国产精品第一区第一页| 色综合久久av| 97人人草| 精品国产自在在线99| 60秒免费小视频| 蜜臀99久久精品| 日韩97P| 第四色奇米影视777| 美女尤物人人操| julia高潮后不停追击中出| 久操视频免费在线观看| 丝袜天堂| 97久久久久| 亚洲另类天堂| 人妻中文字幕日韩电影| 96AV精品| 粉嫩小泬久久久一区二区| 亚洲天堂资源在线| 欧美国产精品久久九九| 国产精品久久久久无码AV会牛| 国产女上位好爽在线| 亚洲激情天堂网| 97超碰美女| 日韩免费高清大片在线| 婷婷99狠狠| 一区二区视频你懂的| 精品在线78| av网页一区二区三区| 强奸乱伦日韩AV| 狠狠搞 亚洲91| 72av视频| 天天操天天干一区二区 | 国模精品一区二区三区苹果色戒| 中文字日本乱码| 91制服丝袜中文字幕| 免费?级毛片无码?∨蜜芽试看| 六月婷婷综合| AV中文字幕剧情1区2区3| 乱伦熟女论坛| 男人天堂一区二区| 欧美日韩国产人人| 无码外流操逼视频| 屌色在线97视频| 欧美久久人体| JIZZJIZZ国产精品喷水| 国产性刺激| 亚洲福利影院一区久久| 久久婷婷伊人| 啊啊啊啊啊好舒服视频| 夜夜操青青草| 中文字幕91综合| 超碰97欧美| 男人的天堂2019AV| 亚洲素人综合| 黑人精品成人一区二区三区| 男人的天堂2010| 青青青在线高清视频在线一二三四区| 黄色免费网页无码| 亚洲色香| 免费精品人妻一区二区三| 在线视频五十市| 绯色一区二区三区不卡少妇| 伊人影院中文字幕| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 亚91网| 中国一级操逼视频| 国产精品乱人伊人网| 色五月激情综合网| 天堂av最新电影网| 最新日产中文在线麻豆| 福利五区| 五月天大香蕉| 九久久九九久视频| AV 少妇 人妻 偷拍| 精品人妻一区二区三区蜜桃视频| 国产AV高清AV无码| 美女爽到高潮91| www.91久久| 国语少妇精| 九九色色| 男人的天堂 在线一区| 人人澡人人爽人人精品| 视频一区二区免费在线| 久久超碰亚洲人| 少妇厨房愉情理伦片bd在线观看| 亚洲av热热色| 在线观看色视频| 九九热午夜欧亚国产视频| 久久久久久久久久8888| 青草精品视频日本久久久久网站在线| 少妇超碰在线| 91久久九九精品国产综合| 日本天堂网| 日本操逼视频导航| 麻豆一区二区三区在线看| 超碰在线看| 97爱| 91n免费处女| 黄色av一区二区在线| 欧亚日韩中文在线| 亚洲色9| 啪啪资源网| 男人的天堂com| 91久久久久久久久久久| 天天干干天天干干| 国产97av| 亚洲熟妇乱女区二区三区| 国产性爱在线视频一区二区| 色97欧美| 啪啪91| 黄色小视频日本txt| www.男人的天堂| 久久综合乱子伦国产免费| 亚洲 自拍偷拍 欧美| 久久精品操| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 狠狠激情综合狠狠操中文字幕| 午夜在线播放| 天堂精品小草| 久久色情| 欧美性爱日韩性爱| 97久久超碰亚洲| 综合激情97| 99精品久久| 国产真乱mangent| 久九九九九九九九热| 亚洲黄日韩无码专区| 亚欧Av| 黄片qw| 97精品一区二区三区免费| 四虎视频在线观看| 亚洲麻豆精品二区三区| 国产区性爱在线视频秋霞豆| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 99爱爱| 狠狠操夜夜| 中文字幕久久婷婷丁香五月天| 男人的天堂日韩| 四季AV综合网址| 国产乱色国产精品免费视| 色香欲综合| 久久久96精品| 大吊色| 国产又黄又猛又粗又爽的网站| 久久久 国产精品| 无码操逼视频一下| 欧美性xxxxx狂欢| 人人澡人人干| 射丝袜大香蕉| 亚洲青色欧美| 国产综合久久久鬼色| 99综合网| 爱射综合| 三级三久久线久久99久目本WW| 久久久久亚洲三级电影| 神马久久久久久久| 少妇高潮九九九九| 91在线一起| 后入式999| 久久综合久色欧美综合狠狠| 蜜臀精品1区2区| 久久久噜噜噜久久久| 亚洲春色激情小说| 日本色婷婷| 欧美性爱五月天| 久久精品三级影视| 亚洲最大成人a毛毛片| 自怕偷自怕亚洲精品| 日日摸日日碰夜夜爽视频| 后入式999| 亚洲欧美视| 蜜臀99999| 999综合色| 91丝袜在线视频| 婷婷伊人一区| 啊好大好舒服| 1956日韩精品| 日本一区三级韩国| 日韩免费人妻色情网站| 插日本熟女视频| 日本高清_区二区三区| 人人插人人摸人人| 黄网色一区二区三区四区精品| 隔壁邻居波多野结衣中文字幕 | 久久精品28| 欧美色道啊| 欧美丝袜亚洲| 亚洲资源站| 欧美久久人体| 久久中文字幕在线观看| 久久九色| 久久久久久免费电影| 亚洲欧美天| 亚洲丝袜综合| 神马久久69| 四虎精品一区| 久操免费观看| 91热色| 9丨久久九九九| a片久久久久久久久久久久 | 大香蕉免费乱伦视频| 秋霞成人一级在线观看| 天堂а√在线最新版在线| 蜜乳AV一区二区三区四| 国产精品色色| 青青草视频久久久久| 久久久久亚洲精品| 熟女熟妇伦久久影院毛片一区二区| 超碰久超碰久| 日本一级真人黄色性爱视频| 操逼天美3区| 亚洲超碰在线| 区日韩亚洲乱码av电影| 久久大陆| 人人操人人肉久久精品| 日本成人在线不卡一区二区三区| AV和黑人在线播放| 九九色热| 美女97超碰| 人妻另类| 成 人片 黄色大片| 一区二区三区精品视频| 日韩97视频!在线| 青草视频人妻在线观看| 4虎在线视频| 亚洲欧美日韩激情不卡| 欧美性爱日韩性爱| 日本超碰在线国产一区| 美女裸体麻豆天美蜜桃91| 国产蜜臀精品一区二区尤物| 成人av性爱电影在线观看| 久久三| 78p欧美| 91熟女丨老女人| 香蕉国产精品麻豆亚洲欧美日韩| 亚洲偷拍自拍在线视频| 九九九综合精品| 激情情色五月天| 国产亚洲深夜激情| 亚洲综合激情五月久久| 91精产一区二区三区| 综合 亚洲 欧美| 另类一区| 在线黄色污污网站| 日韩91网站| 99久久久无码国产精品性男| 日韩成人午夜精品久久高潮| 97视频在线免费| 无码高清国产AV| 亚州成人a∨| 欧美A√综合网 | 秋霞久久亚洲精品成人| 久久99国产综合精品女同| 亚洲天天天| 色婷婷成人| 少妇无码av专区线| 操逼视频色| 深爱激情五月天| 国产日产欧产美韩系列麻豆免费| 丰满美女一级毛片在线播放| 二色av| 欧美日韩97在线| 日婷婷| 中美日韩毛片| 欧美97超碰| 激情小说五月天| 日本熟妇色熟妇在线视频播放| 国产精品久久久久久高清无码免费看 | 久久超碰大香蕉| 亚洲本色精品一区二区久久| 俺去俺来也在线www| 丝袜av一区二区三区| 久久久9999| 人妻天天夜夜爽一区二区| 另类成人首页一区| 日欧亚洲二三区大片不卡| 嗯嗯啊啊操死我| 日本性爱视频一级| 天天摸,夜夜摸| 国产精品视频在线观看| www.色婷婷色综合| 久草电影网| 天天日B夜夜干B时时操B| 欧美 综合 亚洲| 伊人丁香五月婷婷| 91美女视频在线| 秋霞操逼片| 天天综合香 ld视频| 高清国产精品福利网站| 日本三级日本三级三级人妇四虎| 超碰九7免费| 精品久久人妻成人网| 色情婷婷久久五月天| 亚洲一区二区三区AV无码 | 校园春色综合| 国产老太乱伦一区| 久久久久久夜夜夜夜夜| 日本久久女同性恋视频| 国产高清1234区| 成人精品在线免费视频| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 自拍偷拍 高清无码| 日日夜夜草草草| 午夜福利精品| 人妻天天爽| 丁香五月自拍| 日本媚薬中文字幕在线| 99re这里只有精品中心播放| 精…码一二三区| 中美日韩毛片| 中文字幕熟女人妻丝袜| 精精夜夜| AV不卡在线| 午夜视频久久久| 中文字幕黑人大片| 亚洲欧洲日本精品中文a∨| 999久久久久久久精| 综合国产影视三级| 东北老女人的激情视频| 国产色精品午夜大片| 天堂综合网| 日韩一999精品| 日韩不卡在线一区二区| 蜜桃午夜视频一区二区| 内射白嫩美女| 亚洲一卡二卡在线免费| 97在线日韩中文字幕| 婷色五月| 亚川综合视频| 欧美日韩亚洲国产中文永久天天看| 强奸a片网| 欧美日韩在线小说 | 九九av| 爱妃国产亚洲视频中文字幕| 久草老司机| 99在线免费视频| 在线国产福利网址导航| 99精品无码| 91热情品| 无遮挡h肉动漫在线观看| 欧美日韩在线视频网站| 欧美大色交| 富二代亚洲精品99| 黄色香蕉视频网站一区| 91在线国产后入风骚翘臀美女素人| 日韩欧美麻豆大片| 欧美日韩国产黄色片| 97超碰超碰| 精吧天堂| wwe 天天干.com| 日本在线播放不卡一区| 青娱乐老司机视频| 精品二区三四区五电影| 75大香蕉| 久久久久婷婷| 亚欧日韩成人| 欧美九九九| 亚洲综合大片| 精品176精品2| 五月婷在线| 国产AV久久久蜜爱影集| 日本中文字幕不卡视频| 欧美春色| 天天摸天天舔天天操| 青青草吊丝| 国产成人+综合亚洲+天堂| 国产AV久久野战精品| 神马久久久久久久| 白嫩妹子国产骚| 人妻素股| 2025亚洲男人天堂| 殴美性色a级欧美| 五月天婷精品激情| 51一区二区三区| 国产日韩精品suv| 欧美乱欲| 国产欧洲精品亚洲午夜拍精品| laoshunv91| 青青草精品| 久久黄黄| 狠狠中文字幕| 色香色欲天天综合网天天来吧| 午夜120视频在线观看| 91av熟女人妻| 国产91影院| 亚洲日韩人妻中文字幕一区| 国产AV毛片| 亚洲国产一区二区入口| 国产女同在线观看视频| 中文字幕97| 蜜臀99久久国产| 99re6在线视频播放免费精品| 女人一区| 美女97超碰| 亚洲第一色页夜| 日本免费不卡二区| 亚洲人在线| 久草综合京东| 91久操| av大香蕉| 久久天天摸| 日韩情色视频| 色婷婷成人综合| 老色69| 欧美 青青草| 久久香蕉超碰97国产精品 | 国产av又色又爽又黄| 人人操人人摸人人看人人干| 国产探花日韩援交| 久久91精品国产9丨久久分亭| 黄色AAAAAAAAAAA大片| 欧美性生活免费网| 美中日韩无码| 国产浮力影院第1页| 又黄又硬又粗又长国产视频| 亚州一区二区成人片免费| 日韩高清黄片| 色色福利| 国产成人免费观看在线视频| 日韩AV一起草| 大香蕉亚洲中文| 久久日韩毛| 午夜福利在线视频1000| 嗯嗯啊好大| 风间由美日韩欧美久久| 国产传媒一区日韩| 亚洲丰满很很操| 丰满人妻一区二区三区四区| 欧美色图 色综合图| 精品日韩人妻视频| 中文字幕美女91| 人人摸人人叼| 九九九九久久久| 性感女人网页在线观看视频| 日本男人插女人的逼黄色| 亚洲欧美日韩电影网站一区| 亚州色图欧美色图| 一本色道久久综合精品婷婷| 97天天摸天天爽| 高清成年美女黄网站免费大全| 亚洲成熟国产精品美女| 日韩啪啪啪啪啪| 超碰亚洲97| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 国产肏屁眼视频| 十八禁电影伊人网| 97视频在线| 91丨人妻丨国产丨丝袜| 久久久久亚洲?V片无码V|