免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

student、sc、course 三張表講透 SQL:建表、查詢與優(yōu)化

student、sc、course 三張表講透 SQL:建表、查詢與優(yōu)化 簡介這是一份配合《數(shù)據(jù)庫系統(tǒng)概論》課程的SQL建表與數(shù)據(jù)插入練習文檔面向正在學(xué)習數(shù)據(jù)庫原理與SQL基礎(chǔ)操作的學(xué)生。PDF內(nèi)完整給出了student、course、sc三張經(jīng)典表的建表語句包含主鍵、唯一約束、默認值及外鍵關(guān)聯(lián)并附帶覆蓋學(xué)生選課場景的示例插入數(shù)據(jù)可幫助讀者理解關(guān)系模型、參照完整性及SC復(fù)合主鍵的設(shè)計思路。整個壓縮包僅含1個PDF文件大小48KB輕量易用適合課前預(yù)習、實驗參考或考前快速復(fù)習。文檔將創(chuàng)建數(shù)據(jù)庫、建表、插入數(shù)據(jù)與更新預(yù)修課程學(xué)分等步驟按順序拆解并在course表插入中特別說明了外鍵約束下不能一次性插入的原因便于讀者避開常見操作誤區(qū)。目前已有1907人學(xué)習下載對初學(xué)數(shù)據(jù)庫系統(tǒng)概論、需要動手搭建練習環(huán)境的學(xué)習者具有直接參考價值。1. 數(shù)據(jù)庫系統(tǒng)概論里的 student、sc、course一套練習表為什么能講透 SQL數(shù)據(jù)庫系統(tǒng)概論課程里流傳最廣的一套SQL練習就是用 student、sc、course 這三張表反復(fù)折騰查詢很多學(xué)校的實驗課、期末復(fù)習題、甚至面試前突擊都在用它。這套表的數(shù)據(jù)量不大結(jié)構(gòu)卻把主鍵、外鍵、多對多關(guān)系、聚合、連接、子查詢這些核心概念全串起來了比去 LeetCode 刷零散題目要完整得多。網(wǎng)上流傳的配套 PDF 往往只給題目和答案缺了建表腳本和邊界情況的說明新手拿到手第一反應(yīng)是“表長什么樣”都不知道。我按最常見的教材結(jié)構(gòu)把整套環(huán)境重建一遍從建庫到驗證一條龍講清楚學(xué)生能照著跑準備 SQL 面試的能當復(fù)習提綱想自己出練習題的也能直接參考這套設(shè)計。2. 先建庫再建表student、sc、course 的結(jié)構(gòu)設(shè)計與建表 SQL2.1 三張表的字段設(shè)計外鍵怎么連、主鍵怎么定先看這套表的數(shù)據(jù)模型。student 表存學(xué)生基本信息course 表存課程信息sc 表是學(xué)生選課成績表用來連接前兩者。之所以需要 sc 這張中間表是因為一個學(xué)生可以選多門課一門課也可以被多個學(xué)生選學(xué)生和課程之間是多對多關(guān)系直接在一個表里加字段會造成大量數(shù)據(jù)冗余和更新異常。sc 表把學(xué)號和課程號各存一條記錄再加上成績字段就把多對多關(guān)系拆成了兩個一對多關(guān)系。student 表的常見字段是學(xué)號、姓名、性別、年齡、系別主鍵用學(xué)號 sno。course 表的主鍵是課程號 cno同時會有一個 cpno 字段表示先修課程號這個字段指向課程表自身的主鍵形成自引用外鍵用來做“查先修課”這類的遞歸查詢練習。sc 表的主鍵是 (sno, cno) 聯(lián)合主鍵sno 和 cno 分別引用 student 和 course 的主鍵grade 字段存百分制成績。這個設(shè)計的巧妙之處在于兩個字段的聯(lián)合主鍵能防止同一學(xué)生同一課程出現(xiàn)兩條重復(fù)選課記錄這是數(shù)據(jù)完整性約束里的典型考點。練習時還會用到 cpno 為 NULL 的“沒有先修課”的記錄這就把 SQL 里的 NULL 處理難題也帶出來了。字段類型也要留意學(xué)號和課程號雖然是數(shù)字但常見教材把它們定義成 CHAR 而不是 INT目的是讓前導(dǎo)零能保留也方便練習字符串比較。2.2 標準建表腳本MySQL 與 SQL Server 的語法差異很多初學(xué)者從 PDF 里抄答案時發(fā)現(xiàn)在自己電腦上建表總是報錯原因往往是教材示例用的 SQL Server 語法而本機裝的是 MySQL。兩種數(shù)據(jù)庫的建表語法大體相似但在字符集、自增列、外鍵約束這些細節(jié)上有差異。下面給出兩套腳本先看 MySQL 版本這也是目前自學(xué)環(huán)境最常見的配置。CREATE DATABASE IF NOT EXISTS school DEFAULT CHARSET utf8mb4; USE school; CREATE TABLE student ( sno CHAR(9) PRIMARY KEY, sname VARCHAR(20) NOT NULL, ssex CHAR(2) DEFAULT 男, sage SMALLINT, sdept VARCHAR(20) ) ENGINEInnoDB; CREATE TABLE course ( cno CHAR(4) PRIMARY KEY, cname VARCHAR(40) NOT NULL, cpno CHAR(4), ccredit SMALLINT ) ENGINEInnoDB; CREATE TABLE sc ( sno CHAR(9) NOT NULL, cno CHAR(4) NOT NULL, grade DECIMAL(5,1), PRIMARY KEY (sno, cno), FOREIGN KEY (sno) REFERENCES student(sno), FOREIGN KEY (cno) REFERENCES course(cno) ) ENGINEInnoDB;這段腳本里幾個參數(shù)要單獨說明。DEFAULT CHARSET utf8mb4 是為了讓中文姓名和課程名正常存儲如果使用默認的 latin1 字符集插入中文時會變成亂碼或者直接報錯utf8mb4 比 utf8 多支持 emoji 等四字節(jié)字符對練習環(huán)境來說更保險。表引擎指定 InnoDB是因為外鍵約束只有 InnoDB 支持MyISAM 引擎雖然查詢快但建外鍵時 MySQL 會靜默忽略不報錯也不生效這是最隱蔽的一個翻車點。sage 用 SMALLINT 而不是 INT是教材里的經(jīng)典設(shè)計用來讓大家理解“夠用就好”的字段長度設(shè)計思路。grade 用 DECIMAL(5,1)意思是總長度 5 位、小數(shù) 1 位最高能存 999.9百分制成績足夠用而且能保留一位小數(shù)方便練習 AVG 聚合時看到非整數(shù)值。如果是 SQL Server 環(huán)境比如學(xué)校機房或者公司里的老項目建表腳本要微調(diào)。SQL Server 不區(qū)分 utf8mb4默認就是在排序規(guī)則屬性里處理中文自增列需要 IDENTITY 關(guān)鍵字CHAR 字段在 SQL Server 里默認非 Unicode插入中文要改成 NCHAR 或者設(shè)置合適的排序規(guī)則。CREATE DATABASE school; GO USE school; GO CREATE TABLE student ( sno CHAR(9) PRIMARY KEY, sname NVARCHAR(20) NOT NULL, ssex NCHAR(1) DEFAULT N男, sage SMALLINT, sdept NVARCHAR(20) ); GO CREATE TABLE course ( cno CHAR(4) PRIMARY KEY, cname NVARCHAR(40) NOT NULL, cpno CHAR(4), ccredit SMALLINT ); GO CREATE TABLE sc ( sno CHAR(9) NOT NULL, cno CHAR(4) NOT NULL, grade DECIMAL(5,1), PRIMARY KEY (sno, cno), FOREIGN KEY (sno) REFERENCES student(sno), FOREIGN KEY (cno) REFERENCES course(cno) ); GO這里把姓名、系別、課程名都換成了 NVARCHAR原因很實在SQL Server 的 VARCHAR 只能存英文字符N 前綴類型才能存中文給 ssex 字段加 DEFAULT N男 是因為 SQL Server 默認值里如果直接寫中文字符常量在有些中文排序規(guī)則下會報“對象名無效”一類的怪異錯誤實測最穩(wěn)的方式就是加 N 前綴。用了 GO 分隔批次是因為 SQL Server 的 CREATE DATABASE 之后必須 USE 切換上下文如果兩個語句在同一個批次里執(zhí)行后面的 CREATE TABLE 可能仍然被解析到 master 庫。這塊屬于 SQL Server 特有的玄學(xué)問題按上面分批次寫就不會出錯。2.3 插入練習數(shù)據(jù)覆蓋基礎(chǔ)查詢需要的典型取值建完表之后必須插入數(shù)據(jù)才能練習。數(shù)據(jù)量不用大但要覆蓋邊界情況NULL 成績、先修課缺失、同系別多人、男女都有、成績重復(fù)這些都會在后續(xù)查詢練習里反復(fù)用到。下面這套插入數(shù)據(jù)是經(jīng)典教材里的標準樣本數(shù)值我按常用版本保持基本一致。INSERT INTO student (sno, sname, ssex, sage, sdept) VALUES (201215121, 李勇, 男, 20, CS), (201215122, 劉晨, 女, 19, CS), (201215123, 王敏, 女, 18, MA), (201215125, 張立, 男, 19, IS); INSERT INTO course (cno, cname, cpno, ccredit) VALUES (1, 數(shù)據(jù)庫, NULL, 4), (2, 數(shù)學(xué), NULL, 2), (3, 信息系統(tǒng), 1, 4), (4, 操作系統(tǒng), 6, 3), (5, 數(shù)據(jù)結(jié)構(gòu), 7, 4), (6, 數(shù)據(jù)處理, NULL, 2), (7, PASCAL語言, 6, 4); INSERT INTO sc (sno, cno, grade) VALUES (201215121, 1, 92), (201215121, 2, 85), (201215121, 3, 88), (201215122, 2, 90), (201215122, 3, 80), (201215123, 2, 85), (201215123, 1, NULL);這段插入腳本里有兩處需要細看。course 表里課程 3 的 cpno 是課程 1課程 5 的 cpno 是課程 7形成了一個有向的“先修課鏈條”練習自連接時可以查“間接先修課”這類題目。sc 表里最后一條記錄 grade 為 NULL表示王敏選了數(shù)據(jù)庫課但還沒出成績這就是聚合函數(shù)和 WHERE 條件練習里最容易出錯的地方COUNT(grade) 會忽略 NULL而 COUNT(*) 不會。INSERT 語句用多值逗號分隔語法比逐條 INSERT 效率高很多而且一旦中間某行出錯整個語句會回滾不會出現(xiàn)“插了一半”的臟數(shù)據(jù)。數(shù)據(jù)插入后建議先跑兩條驗證語句確認環(huán)境可用。SELECT COUNT() FROM student; 應(yīng)該返回 4SELECT COUNT() FROM sc; 應(yīng)該返回 7。如果數(shù)字對不上優(yōu)先檢查是否漏跑了某個批次或者外鍵約束攔截了部分插入。3. 練習題的梯度設(shè)計從單表查詢到窗口函數(shù)3.1 第一梯度單表查詢、排序與去重表建好、數(shù)據(jù)插完就可以開始真正的練習。第一梯度只涉及單張表目標是練 SELECT 的基礎(chǔ)功投影、選擇、排序、去重。這類題目在面試里看著簡單但很多人寫出來的 SQL 在邊界情況下是錯誤的尤其是去重和 NULL 處理。先看一個最基礎(chǔ)的查詢查所有學(xué)生的學(xué)號和姓名。這道題沒有難度但能驗證表結(jié)構(gòu)是否正常。SELECT sno, sname FROM student;接著看一個稍微有考點的題目查詢所有學(xué)生的系別。如果直接寫 SELECT sdept FROM student結(jié)果里會出現(xiàn)重復(fù)的 CS。要得到唯一的系別列表得去重。SELECT DISTINCT sdept FROM student;DISTINCT 在這里的語義是“對查詢結(jié)果整體去重”也就是說只有兩行所有選中列的值都相同才合并。它作用于整個 SELECT 的投影列表而不是只作用于緊挨著的那個字段。很多人以為 SELECT DISTINCT sname, sdept 的意思是“只對 sname 去重保留 sdept”實際上它是把 (sname, sdept) 作為一個整體判斷重復(fù)。這是一個高頻面試題也解釋了為什么同樣一句 DISTINCT 在不同組合列下結(jié)果差異巨大。第二梯度之前還要過一個排序練習查全體學(xué)生名單按年齡降序排列。SELECT sno, sname, sage FROM student ORDER BY sage DESC;ORDER BY 的執(zhí)行順序在 SQL 邏輯中排在 SELECT 之后所以它可以使用 SELECT 列表里的別名比如 ORDER BY 年齡。這個順序問題很多人混淆實際上 SQL 語句的書寫順序是 SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY但邏輯執(zhí)行順序是 FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY。搞清楚這個順序后面理解“為什么 WHERE 里不能使用別名”才不會靠死記硬背。3.2 第二梯度多表連接、聚合與分組第二梯度是這套練習表的重頭戲也是 SQL 能力分水嶺。連接查詢要把兩張或多張表按條件拼接聚合查詢則把多行匯總成一行。兩者經(jīng)常組合出現(xiàn)。最常見的連接練習查詢每個學(xué)生的選課成績需要 student 表和 sc 表通過 sno 連接。SELECT student.sno, sname, cno, grade FROM student, sc WHERE student.sno sc.sno;這是隱式連接寫法教材里用得最多但實際項目里我更推薦顯式 JOIN 寫法結(jié)構(gòu)更清晰也更容易排查漏連接條件的問題。SELECT s.sno, s.sname, sc.cno, sc.grade FROM student s JOIN sc ON s.sno sc.sno;這兩條 SQL 邏輯等價但顯式寫法把連接條件從 WHERE 中分離出來WHERE 里只留過濾條件。這種拆分的實際意義是當查詢超過三張表時隱式連接特別容易漏寫一個連接條件導(dǎo)致產(chǎn)生笛卡爾積結(jié)果行數(shù)爆炸到幾十萬條這就是俗稱的“翻車現(xiàn)場”排查時還不好定位。顯式 JOIN 配合縮進每個連接關(guān)系一眼就能看全。連接之后接聚合查詢每門課的選課人數(shù)和平均成績。SELECT cno, COUNT(*) AS cnt, AVG(grade) AS avg_grade FROM sc GROUP BY cno;這段 SQL 的執(zhí)行順序是先 FROM sc 拿到全表GROUP BY cno 把相同課程號的記錄分到一組然后 SELECT 對每組執(zhí)行 COUNT 和 AVG。這里有一個關(guān)鍵細節(jié)AVG(grade) 會自動忽略 NULL所以王敏那條沒有成績的記錄不會拉低平均值。如果想把 NULL 當作 0 參與平均就得先寫 CASE WHEN grade IS NULL THEN 0 ELSE grade END 把 NULL 轉(zhuǎn)換掉但這在實際業(yè)務(wù)中是否合理要看場景一般成績表里 NULL 代表“缺考/未出分”忽略比當 0 處理更符合業(yè)務(wù)語義。再進階一步查詢選了 2 門及以上課程的學(xué)生學(xué)號。這要用 HAVING 對分組結(jié)果做過濾。SELECT sno FROM sc GROUP BY sno HAVING COUNT(*) 2;HAVING 和 WHERE 的區(qū)別必須在這里說透WHERE 在分組之前過濾行HAVING 在分組之后過濾組。同一個條件寫在 WHERE 和寫在 HAVING 里語義完全不同。比如查出平均成績大于 85 的課程AVG(grade) 85 這個條件只能放在 HAVING 里因為它是“組”的特征不是“行”的特征。很多初學(xué)者把聚合條件誤寫在 WHERE 里報錯就是因為沒理解這個執(zhí)行順序。3.3 第三梯度子查詢、EXISTS 與窗口函數(shù)第三梯度是進階內(nèi)容也是 PDF 練習里區(qū)分“會寫”和“寫得優(yōu)雅”的部分。子查詢分相關(guān)子查詢和非相關(guān)子查詢兩類。非相關(guān)子查詢的結(jié)果不依賴外層查詢先執(zhí)行一次即可相關(guān)子查詢每處理一行都要執(zhí)行一次子查詢性能差異很大。經(jīng)典題目查詢選修了課程 1 且成績高于該課程平均分的學(xué)生學(xué)號。SELECT sno FROM sc WHERE cno 1 AND grade ( SELECT AVG(grade) FROM sc WHERE cno 1 );這個子查詢是典型的非相關(guān)子查詢內(nèi)層執(zhí)行一次得到課程 1 的平均分外層再逐行比較。注意如果 AVG 結(jié)果帶多位小數(shù)和外層 grade 比較時不會因類型問題出錯因為 MySQL 會按 DECIMAL 精度自動比較。這道題練習的價值在于它要求先理解聚合結(jié)果是標量值然后才能把它當作 WHERE 的右值。再來看 EXISTS 子查詢這也是 SQL 面試題的常駐嘉賓。查出所有選了課程 2 的學(xué)生姓名。SELECT sname FROM student s WHERE EXISTS ( SELECT 1 FROM sc WHERE sc.sno s.sno AND sc.cno 2 );EXISTS 子查詢只關(guān)心“有沒有返回行”不關(guān)心返回什么列所以子查詢里寫 SELECT 1 是業(yè)界慣例比 SELECT * 性能略優(yōu)且語義清晰。這個查詢是相關(guān)子查詢對 student 表每一行都要執(zhí)行一次子查詢但數(shù)據(jù)庫優(yōu)化器通常會把它改寫成 JOIN 或 semi-join 來提升性能。練習時可以把 EXISTS、IN、JOIN 三種寫法都試一遍觀察執(zhí)行計劃差異這是理解優(yōu)化器行為的很好素材。窗口函數(shù)是近幾年 SQL 面試的高頻考點這套表同樣能練。比如查每門課成績排名前 2 的學(xué)生。SELECT cno, sno, grade FROM ( SELECT cno, sno, grade, ROW_NUMBER() OVER (PARTITION BY cno ORDER BY grade DESC) AS rk FROM sc WHERE grade IS NOT NULL ) t WHERE rk 2 ORDER BY cno;窗口函數(shù)的邏輯是OVER 子句定義窗口范圍PARTITION BY 劃分組ORDER BY 組內(nèi)排序ROW_NUMBER() 在窗口內(nèi)生成序號。和 GROUP BY 不同的是窗口函數(shù)不會把多行合并成一行每行仍然保留自己的身份。這個特性讓“分組 top N”這類查詢變得非常簡潔。注意內(nèi)層先 WHERE grade IS NOT NULL 過濾掉 NULL 成績否則排序時空值會默認排最前面結(jié)果就錯了。3.4 練習答案的驗證方式用 EXPLAIN 看執(zhí)行計劃光寫出能跑出結(jié)果的 SQL 不算完還得知道它是怎么跑的。數(shù)據(jù)庫提供了 EXPLAIN 命令來查看執(zhí)行計劃這是從“會寫 SQL”到“能調(diào) SQL”的必經(jīng)一步。以 MySQL 為例EXPLAIN SELECT s.sno, s.sname, sc.grade FROM student s JOIN sc ON s.sno sc.sno WHERE sc.cno 1;執(zhí)行計劃里最需要關(guān)注的是 type 列和 rows 列。type 顯示訪問表的方式從好到差依次是 system、const、eq_ref、ref、range、index、ALL。如果看到 ALL說明這條 SQL 正在做全表掃描。rows 列是預(yù)估掃描行數(shù)兩張表 join 的最終掃描行數(shù)異常大時要檢查外鍵列上有沒有索引。sc 表的 sno 和 cno 列如果沒建索引JOIN 就會退化成嵌套循環(huán)全表掃數(shù)據(jù)量小的時候感覺不到到了生產(chǎn)環(huán)境幾百萬行就徹底卡死了。做練習時每寫完一道題都順手把執(zhí)行計劃拉出來看一眼。等把 system→const→ref→range→ALL 這幾檔都親眼見過一遍才算真正對 SQL 優(yōu)化有了體感。到這一步student、sc、course 這套練習表的價值才算被完全榨干——它不僅教你寫 SQL還教你診斷 SQL。4. 做這套練習常見的 5 個坑從建表失敗到結(jié)果對不上4.1 主鍵重復(fù)與 NULL插入數(shù)據(jù)時的第一道坎現(xiàn)象執(zhí)行 INSERT 語句報錯提示 duplicate entry 或者不能為 NULL。原因聯(lián)合主鍵的任意重復(fù)都會觸發(fā)沖突比如向 sc 表重復(fù)插入 (201215121, 1) 這條選課記錄。另外student 表的 sno 是主鍵插入 NULL 也會被拒絕但 sc 表的 sno 和 cno 是外鍵同時又是聯(lián)合主鍵的一部分如果這兩列有一個為 NULLInnoDB 對主鍵列有隱式 NOT NULL 約束同樣報錯。解決插入前先用 SELECT 確認數(shù)據(jù)是否存在。習慣性在插入腳本里加 INSERT IGNORE 或者 ON DUPLICATE KEY UPDATE 確實能跳過錯誤但練習場景不建議這么做因為這會掩蓋數(shù)據(jù)本身的重復(fù)問題。更推薦的方法是直接面對報錯通過 SELECT sno, cno, COUNT() FROM sc GROUP BY sno, cno HAVING COUNT() 1 查重復(fù)數(shù)據(jù)再決定保留哪一條。4.2 字符集與排序規(guī)則中文亂碼的根源現(xiàn)象插入中文后查詢顯示亂碼或者 CREATE TABLE 直接報錯字符集不識別。原因MySQL 默認字符集可能是 latin1中文無法存儲。SQL Server 則可能是排序規(guī)則不匹配導(dǎo)致數(shù)據(jù)庫兼容級別或排序規(guī)則沖突。解決MySQL 建庫時顯式指定 DEFAULT CHARSET utf8mb4并且連接字符串里也要加上 characterEncodingutf8 或 utf8mb4。一個容易被忽略的坑是即使數(shù)據(jù)庫和表的字符集都對了如果客戶端連接的字符集不對插入時仍會出現(xiàn)亂碼。先執(zhí)行 SHOW VARIABLES LIKE character_set%; 看當前會話的字符集再把連接參數(shù)統(tǒng)一。SQL Server 那邊建庫時把排序規(guī)則指定為 Chinese_PRC_CI_AS 基本可以一勞永逸。4.3 外鍵約束與刪除順序先刪 sc 還是先刪 student現(xiàn)象執(zhí)行 DELETE FROM student WHERE sno201215121; 報錯提示 foreign key constraint fails。原因sc 表里有引用這個學(xué)號的記錄而 sc 表的外鍵約束默認行為是 NO ACTION即存在子記錄時不允許刪除父記錄。解決先刪子表再刪父表。正確順序是 DELETE FROM sc WHERE sno201215121; 然后 DELETE FROM student WHERE sno201215121;。這個順序問題的價值不僅在于完成刪除操作它本身就是關(guān)系模型里“引用完整性”的絕佳教學(xué)案例。實際業(yè)務(wù)中還有一種做法是給外鍵加上 ON DELETE CASCADE讓數(shù)據(jù)庫自動刪子記錄但這在生產(chǎn)環(huán)境非常危險一不小心就級聯(lián)刪掉大量業(yè)務(wù)數(shù)據(jù)我一般建議顯式控制刪除順序而不是依賴級聯(lián)。4.4 連接條件漏寫笛卡爾積的翻車現(xiàn)場現(xiàn)象多表連接查詢返回的結(jié)果行數(shù)異常多比如 student 4 行和 sc 7 行連接后返回 28 行。原因連接條件沒寫或者寫錯數(shù)據(jù)庫把兩表做了笛卡爾積每行和另一表的每行配對。解決連接查詢時先確認結(jié)果行數(shù)是否等于符合業(yè)務(wù)邏輯的行數(shù)。經(jīng)驗判斷標準是如果多表連接沒有 WHERE 或 JOIN ON 條件返回行數(shù)是各表行數(shù)乘積必然有問題。連接條件漏寫時數(shù)據(jù)庫不會報錯因為笛卡爾積在語法上是合法的這是最讓人頭疼的地方。實踐中寫多表查詢時先分別跑一遍 SELECT COUNT(*) FROM 各表估算出預(yù)期結(jié)果行數(shù)范圍再執(zhí)行連接查詢。另外養(yǎng)成每張表用別名、JOIN 條件顯式寫在 ON 子句里的習慣能顯著降低漏寫概率。4.5 聚合與非聚合混用GROUP BY 的經(jīng)典報錯現(xiàn)象執(zhí)行 SELECT sno, cno, AVG(grade) FROM sc GROUP BY sno; 報錯提示 cno 不在 GROUP BY 子句中。原因SQL 標準要求 SELECT 列表中出現(xiàn)的非聚合列必須全部出現(xiàn)在 GROUP BY 中。這是因為分組后每組只有一行非聚合列如果不在分組鍵里數(shù)據(jù)庫不知道該取組內(nèi)哪行的值。MySQL 的 ONLY_FULL_GROUP_BY 模式默認開啟所以直接報錯如果關(guān)掉這個模式雖然能執(zhí)行但返回的 cno 是組內(nèi)隨機一行結(jié)果不可預(yù)測。解決搞清楚查詢意圖。如果確實想查每個學(xué)生的學(xué)號和他每門課的成績就不該用 GROUP BY如果只想查每個學(xué)生平均分SELECT 里就不該出現(xiàn) cno。這個報錯其實是數(shù)據(jù)庫在保護你比暗中返回隨機值好得多。練習時遇到這種錯誤先停下來理清“我要的是明細還是匯總”再動手改 SQL是最快的路徑。5. 把練習成果接到真項目驗證方法、索引設(shè)計與一條實用技巧5.1 用索引設(shè)計與執(zhí)行計劃對比來驗證練習效果練習做完后建議做一個加索引前后的對比實驗。以 sc 表為例在不建任何輔助索引的情況下執(zhí)行按 cno 過濾的查詢EXPLAIN 結(jié)果會顯示 typeALL 全表掃描。然后手動加一個索引CREATE INDEX idx_sc_cno ON sc(cno);再執(zhí)行同樣的查詢EXPLAIN 里 type 會變成 refrows 預(yù)估數(shù)明顯下降。這個對比就是把前面練習里學(xué)到的東西真正用到性能優(yōu)化上的關(guān)鍵一步。實際業(yè)務(wù)中聯(lián)合索引的設(shè)計比單列索引更值得關(guān)注。sc 表最常見的查詢模式是按 (sno, cno) 查成績或者按 cno 查選課名單。如果業(yè)務(wù)偏向前者聯(lián)合主鍵已經(jīng)覆蓋如果后面要頻繁按 cno 查單建 idx_sc_cno 就能避免每次回表。5.2 把三張表遷移到真實業(yè)務(wù)場景邊界在哪里student、sc、course 畢竟是教學(xué)模型遷移到真實項目時有三個明顯的邊界要注意。一是數(shù)據(jù)量生產(chǎn)環(huán)境單表百萬行起步這套練習表沒有分區(qū)、沒有數(shù)據(jù)生命周期管理直接照搬會有性能問題。二是缺失審計字段真實業(yè)務(wù)表幾乎都要有 create_time、update_time、操作人這幾個字段教學(xué)表里完全沒有上線前要補。三是沒有軟刪除和狀態(tài)字段真實業(yè)務(wù)不會物理刪除記錄而是用 status 字段標記有效性練習表的 DELETE 操作要改成 UPDATE status。一個比較實用的落地方式是把這三張表當作一個“最小可運行的數(shù)據(jù)模型”在公司內(nèi)部做技術(shù)分享或者新人培訓(xùn)時用來演示慢 SQL 優(yōu)化和連接查詢原理。數(shù)據(jù)量小、字段簡單、問題復(fù)現(xiàn)快比拿生產(chǎn)庫演練安全得多。我有一個習慣每次講 SQL 優(yōu)化之前先在本地用這套表造 10 萬行數(shù)據(jù)然后故意寫幾條不帶 WHERE 的連接查詢讓新人親眼看到全表掃描導(dǎo)致查詢時間從毫秒級變成秒級再讓他們自己用 EXPLAIN 定位問題。這種直觀對比比講半小時理論都有用。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲婷婷丁香| 国精产品一区二区三区| 六月丁香激情网| 月色色综合婷婷网| 婷婷中文无码| 婷婷五月天日本无码| 一级AV片| 丁香五月激情五月| 色欲色香综合网| 亚洲无码成人性爰网| 色婷婷综合久久| 26UUU欧美激情一区二区| 9+1视频网址| 熟女色色一区二区| 五月婷丁香| 五月婷六月婷婷| 波多野结衣AV无码Porn| 超碰A V在线| 丁香五月香蕉| 婷婷久久网| 啪啪五月天啪啪| 亚洲精品一区中文字幕乱码| 99热这里只有精品99| 九九精品视频在线6| 婷婷五月丁香基地在线视频官网| 日韩成人电影在线播放| 亚州第一A片| 色色五月婷婷久久| 99热这里只有精品在线观看| 丁香五月婷婷激情中文| 五月丁香六月欧美| 久久这里99| 激情六月丁香| 97久久精品| Www.se.久久| 久草狼人| 中文字幕,综合,91| 开心激情站婷婷五月天| 夜夜撸天天日| 六月婷婷久久大全| av操一操| 丁香婷停五月激情综合深爱| 丁香婷婷六月激情综合| 五月婷婷,六月激情| 激情床戏| 婷婷六月激情小说网| 丁香亚洲色综合| 欧美色五月| 影视av久久久噜噜噜噜噜三级| 91久久婷婷人人澡草| 这里只精品| 中文字幕成人| 激情五月天在线观看色婷婷| 天天干夜夜操A片| www激情| 黄色高清无码| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 噢美99| 五月天com| 色色丁香婷婷| 99人碰碰碰| 中文av网| 婷婷久草| 黄色热99| 99日在线观看视频| 丁香五月婷婷图片综合| 性欧美大战久久久久久久83| 美女xx不卡| 国产在线aaa片一区二区99| 欧美天天综合网站上去吧| 婷婷中文无码| 超碰人人99| 丁香五月天激情综合| 能看的av片| 天天操夜夜爽天天操| 操操碰| 996精品热视频| 久久伊人婷| 4399精品一区二区| 国产成人综合网| 成人看片网站| 97婷婷五月| 成人美女网| 夫妇交换刺激做爰| 九九久久高清| 五月丁香 六月婷婷a| 天天做天天双| 激情五月天在线免费美女视频| 狠狠色噜噜狠狠狠888了| 五月天久久成人| 婷婷五月激情在线视频| 日日操日日撸| 另类视频五月天| 超碰狠狠操| 99热这里有精品| 中文字幕乱码亚洲精品一区| 日本一级一片免费视频| 久久久人妻久久久| 99综合视频| 97碰超级人人看| 97久久超碰| 国产精品久久久久9999小说| 97操碰视频| 久久久思思热| 99在线热视频| 草草色情综合网| 激情文学 综合 九月| 久久9精品视频| 99re熱| 激情综合女人网五月播播| 影音先锋 婷婷| 色播激情五月天| www.婷婷五月天.com| 九九色精品| 99在线视频观看| 五月婷婷精品视频| 婷婷五月天av网| 激情婷婷五月天在线观看| 亚洲综合狠狠艹| 婷婷五月天香蕉| 国模淫穴色图| 中文字幕在线免费看线人| 国精产品一区一区三区免费视频| 婷婷伊人久久| 综合一区二区三区| 国产伦亲子伦亲子视频观看| 婷婷综合在线播放| 天天成人综合| 991精品在线视频| 精品国产乱码久久久久夜深人妻| 超碰激情网| 99愛国产| W色综合| 婷婷午夜精品久久久| 五月天激情Av| 日本一道久久| 丝袜人妻| 色婷婷AAA| 六月婷婷AV| 天天操天天操| 丰满少妇猛烈A片免费看观看| 超碰在线超碰| 五月婷婷六月丁香五月| 丁香五月激情婷婷| 五月婷综合| 欧美激情丁香五月天久久婷婷一区| 日韩色色视频| 青青草Avb在线| 五月丁香啪啪激情| 99九九在线| 青草青草久9视频在线视频| 好吊操这里只有精品| 激情四射婷婷| 五月香婷婷| 日日日日日| 久久一操| 欧美日韩成人免费在线| WWW99热| 亚洲色综合性| 丁香婷婷午夜| 色色色欧美| 91九色精品| 五月天亭亭俺也| 91精品久| 丁香五月在线观看| 五月丁香六月成人| 婷婷91| 天堂成人A片永久免费网站| 激情五月天婷婷久久久久久久久久久| 99热久| 99成人精品六| 亚洲综合五月天| 色婷婷丁香五月天| 99在线精品免费视频| 午夜色色色极品视频| 五月六月伦理| 成人视频免费观看高清完整版在线观看| 玖玖精品视频99| 欧美人与性动交CCOO| 激情婷婷| 开心五月激情网| 久久综合热17c| 丁香五月成人| 婷婷十月丁香| pom538精品视频| 五月婷精品| 99热伊人| 超碰免费人人肏| 丁香五月婷婷激情蜜桃| 九九操操| 国内自拍97在线| 深爱激情六月天| 国产视频福利| 日本欧美成人片AAAA| 丁香五月天婷婷中文| 婷婷五月丁香基| 天天狠狠干| 久七香蕉| 久久久国产精品黄毛片| 情欲综合网| www五月婷婷88导航| 婷婷五月天激情综合深爱激情| 2005天天干天天1| 五月丁香成人| 天天射色五月天| 99热碰碰| 99丁香五月| 五月天成人在线播放| 欧美 日韩 成人 在线| 97综合在线| 欧美成人va| 色情五月天婷婷| 五月丁香婷婷激情影院欧美| 五月婷婷丁香综合,亚洲天堂| 99在线免费观看| 久久婷婷青草五月天| 五月丁香婷婷五月色| 大香蕉久久婷婷精品综合| 狠狠做六月爱婷婷综合aⅴ| 久久久久久久久月丁| 99久久性爱| 99在线精品视频免费| 婷婷激情六月中文| 色婷婷av在线观看| 99福利导航| 开心久久爱五月天| 狠狠干五月天婷婷网| 五月婷婷综合天天操| 五月天婷婷激情在线色图| 激情综合网亚洲色图| 丁香综合久久| 任我肏视频精品| 青青草成人网| 人妻人人操| 婷婷激情五月天在线视频| 久艹久| 九九在线视频| 丁香五月天社区| 久狠狠| 天天色天天干天天插| 国产婷婷综合| 色五月天丁香婷婷色| 91九色最新视频| 国产午夜一区二区三区| 欧美久久网| 情婷婷五月天在线| 色就是色婷婷五月亚洲激情| 五月丁香婷婷基地| 丁香五月电影| 九九99香蕉在线视频播放| 99热国内| se色99| 婷婷导航| 婷婷丁香五月天婷婷| 五月天社区婷婷丁香社区| 五月丁香六月综合图| 嫩草AV久久伊人妇女超级A| 另类视频一区| 婷婷伊人五月天| 国产精品美女| AV在线免费播放| 涩婷婷五月天在线精品视频| 激情六月天| 九热视频| 99热播放| 九九色热| 日韩人妻AV在线| 欧美搡BBBBB摔BBBBB| 色情五月丁香| 婷婷综合性爱网| 欧美性猛交99久久久久99按摩| 亚洲操操操| 伊人色综合网| 色.五月综合网| 亚洲精品一区无码A片| 中文字幕永久在线| 亚洲av电影网站| 日本五月婷婷| 国产又粗又大又爽又黄| 国产毛片操B| 五月天婷五月天综合网在线观| 色婷婷丁香| 婷婷丁香五月麻豆| 婷婷色色播五月天| 激情五月开心五月丁香五月| 丁香五月婷婷亚洲综合精品| 激情五月激情综合网| 色在线99| 99精品网| 伊人大综合| 久久九九99.www| 丁香伊人五月色婷婷五十路| 超碰人人在线| 五月婷婷花| se影音资源在线观看| 最新va在线播放| 久久视频婷婷视频| 五月丁香色| 三人荫蒂添的好舒服A片| 天天躁日日躁狠狠躁日日躁2022年5月9日 | 99热这里有精品| 超碰色热| 婷婷色在线观看| 狠狠久久婷五月综合色| 激情综合色播| 色婷婷综合网| 久久9999| yazhouzonghesese| 99热亚洲| 久久久婷| 色婷婷a v| 另类的婷婷| 日本性激情色播| 色爱综合网| 九九RE视频在线精品| 666555。COm毛片| 婷婷五月丁香色播| 久久婷婷欧美| 天天天天天天操| 狠狠色丁香乆乆| 色婷婷91| 精品久久久久久久人妻| 五月色丁香| 亚洲蜜桃精久久久久久久久久久久 | HD久久精品视频| 五月丁香花视频| 亚洲色婷婷婷婷人人爽| 久热中文字幕| 91主播在线| 婷婷欧美激情综合| 性生活视频98791| 国产精品91抖高| 午夜爱爱网站| www.minyis.com【JT】实力收量可预付QQ2101460746 | 婷婷综合影院| 色丁香六月| 成片免费观看视频大全| 久久99看免费| 丁香五月成人av| 亚洲爆乳无码精品AAA片蜜桃| se99热久久一本| 思思视频精品| 香蕉操亚洲| 婷婷成人av| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 超碰人人色| 激情综合另类| 丁香五月婷婷欧美成人色图| 最近韩国日本免费高清观看| 九九国产视频| 色色色色色色色色综合网| 31色区视频免费看| 人人爽欧美婷婷久久久五月丁香| 99热网精品| 97人人搞| 996热| 五月婷婷六月综合| 噜噜狠狠色综无码久久合欧美| 97精品人人A片免费看| 久久天天天| 99热在线精品播放| 超碰在线视屏| 91九色精品女同系列| 97人碰人操| 婷婷五月天亚洲色| www.97视频| 激情综合网,婷婷| 欧美日韩aaa| 久久xxxx| 少妇水多A片太爽了| 五月天啪啪| 九九色影视| 91碰人人| 激情五月天影院| 碰人人97| 激情综合网激情五月天| 九九综合| 91碰碰碰| 色婷婷五月天在线| 国产亚洲色婷婷久久99精品9j| 99r这里只有精品在线观看| 91无码一区人妻A片蜜| 开心五月婷婷在线| 99久久五月丁香野外| 五月婷综合| 丁香六月婷婷综合啪啪| www.99婷婷| 无码se| 这里只有精品在线观看视频| 狠狠va| 亚洲综合成人网| 九九99精品视频| 深爱激情丁香五月| 五月五月婷婷| 思思热99热| 播五月婷婷开心| 婷婷久热| 婷婷九月狠狠色| 激情五月综合亚洲另类| 最新热中文字幕| 操碰99| 狠狠色噜噜狠狠色噜噜噜999| 91操人| 大香蕉院线| 91丨九色丨国产在线| 久久大香蕉同僚| 五月开心婷婷中文字幕| 五月天大香焦| 9久久精品| 狠狠夜夜五月丁香| 久久99看免费| 国产午夜精品一区二区三区嫩草| www.五月.com| 插插插丁香五月婷婷| 色色色99| 成人丁香五月| 婷婷5月天激情综合| 亚洲无码影音| 狠狠操狠狠爱| 婷婷激情视频欧美视频自拍视频欧美剧| 无码人妻少妇色欲AV一区二区| 五月丁香综合激情网| 久久婷婷视频| 五月色天情| 狠狠第四色| 欧美性生交XXXXX无码小说| se99视频| 色情五月天导航| 欧美激情性做爰免费视频| 狠狠色噜噜狠狠狠狠综合| 日韩淑女人妻luan伦激情精品一区二| 深爱丁香激情| 欧美Va婷色| 五月综合激情网| 99在线免费视频| 欧美va视频不用播放器的va视频网| 亚洲成人av中文| 97天堂| 精品少妇蜜臀91| 碰碰91| 六月色 亚洲| 激情五月激情综合网| 久久人妻乱| 狠狠干婷婷| 亚洲精品久久久久久久久久吃药| 91狠狠色丁香| 99精品视频网| 色播五月婷婷五月| 久热这里只有精品66| 97干97色| 98永久精品| 色色999三级片| 久久99视频| 久久538| 激情久久天天| 色婷婷色五月另类综合| 丁香婷婷五月天激情四射| 超碰9799| 99性爱视频| 亚洲综合色婷婷| 丁香六月综合| 婷婷激情六月| 天天综合色| 久久婷婷五月天亚洲欧美| 九九熱最新視頻| 人伦30P| 国产亚洲色婷婷久久99精品9j| 免费无码毛片一区二区A片| 99视频在线精品免费观看2| 性爱久久| 久久六月天| 亚洲综合婷婷五月天| 五月花成人网| 人人爽人人爽人人爽人人爽| 五月天自拍视频| 丁香五月天天日| 国产1区2区3区在线观| 国产91视频| 婷婷五月色综合| 大香蕉 伊人夜| 一起草av在线观看| 9福利性视频欧美| 激情伊人网| 色女人久久| 色婷婷久久综| 色情综合网| 色五月丁香五月激情五月激情| 久久久97| 日本五月丁香| 天天搞天天色综合| 欧美色色色色色色色色色色| 亚洲激情网| 色播五月婷婷| 欧美怡红院黄站| 日本综合九九| 久99久视频免费观看| 天天摸天天肏| 综合激情网| 亚洲噜色| 亚洲 视频 导航 一区| 26uuu精品国产| 欧美日本一区二区三区| 久草热在线视频| 亚洲精品亚洲人成人网| 国产欧美日韩综合精品一区二区| 香蕉色色网| 五月丁香色综合| 色九九综合| 五月婷婷啪| 色婷婷4| 天天舔日日肏夜夜爽| 五月丁香淫淫婷婷婷| 31色区视频免费看| 五月丁香啪综合| 26UUU成人网| 日日懆天天懆| 97福利视频| 51精品国自产在线| 六月婷婷久久| 欧美综合在线五月天色婷婷| 激情綜合網址| 天天日天天肏天天奸| 9 1在线视频| 久久丁香五月综合六月激情红杏视频| 丁香六月天之亚州热女| 啊V视频在线观看| 日本视频不卡123区| 天色综合网| 99热99网| 天天插天天爱| 日韩在线观看网址| 婷婷久草| 丁香五月天狠狠| 大学生高潮无套内谢视频| 婷婷五月天渟渟| 九九热av| 天天日天天干天天操| 九九碰九九爱97超碰| 久久机热探花| 亚洲综合婷婷五月天| 日本久久婷婷| 婷婷五月丁香A∨| 五月综合婷婷开心网| 99ri视频在线播放| 天天操夜夜操| 婷婷在线免费| 碰97久久| 亚洲视频1区| 色天天久婷婷| 天天色色天天| 天天久综合网永久入口17v| 亚洲色欲AAAAAA| 色五月婷婷中文字幕在线观看| 久久九九大香蕉电院| 欧美色色色色色| 玖玖婷婷婷丁香五月| 六月丁香婷婷在线波多| 丁香五月激情综合| 色婷婷免费视频| 日本社区五月天激情| 激情又色又爽又黄的A片| 久操无码| 99热新网址| 亚洲V国产V欧美V久久久久久 | 人人看人人97| 99热这里只有精品免费观看| 久久九九思思| 狠婷婷五月| 国产肥白大熟妇BBBB视频| 丁香五月天偷拍| 综合婷婷久久| 婷婷人人操| 99精品在线观看视频| 91制片厂久久久国产电影| 天天噜天天爱| 欧类av怡春院| 亚洲 在线 性爱| 伊人在线视频| 色色色.com| 成熟妇人A片免费看网站| 婷婷丁香社区网| 丁香六月在线| 天天搽天天射| 国产精产国品一二三在观看 | 狠狠操狠狠爱| 99爱视频| 91精品国产91久久久久青草| 丁香婷婷色五月| 91久久久久久| 色播婷婷大香蕉| 精品人妻在线| 久久久激情| 九九综合九九| 公的粗大挺进了我的密道| 激情涩涩网| 国产精产国品一二三在观看| 婷婷播播五月天| 亚洲99热| 欧美性猛交99久久久99| 91九色国产| 五月丁香亭亭操逼| 婷婷人人操| 免费亚洲婷婷| 人人干女人| 任你艹| 久久九九中文字幕| 涩五月婷婷| 免费AV播放| 婷婷网影院| 色婷婷狠狠| 少妇日麻屄| 亚洲激情在线| 久久伊人日日夜夜| 爱久久小说下载网| 亚洲五月婷婷| 丁香六月天AV| 五他月天啪啪啪| 五月天婷婷操逼视频| 激情五月天视频| 五月婷婷激情久久| 久久久WWW| 五月开心播播网| 久久久婷丁香五月| 99伊人婷婷在线| 欧洲亚洲免费视频9| 亚洲日韩人妻操逼| 99精品视频播放| 开心五月深爱激情| 九九人人自拍| 精品欧美一区二区三区久久久 | www.婷婷,com| 亚洲 无码 中文字幕 中出| 春色激情| 天天玩夜夜操| 精品人妻伦| 奇米网大香蕉| 麻豆AV一区二区三区| 色婷婷五月天激情在线观看| 五月天播播综合| 91精品久| 国产欧美熟妇另类久久久 | 久久久久久久人妻| 四色五月婷婷在线观看| 亚洲精品乱码久久久久99| 婷婷五月丁香A∨| 久久久婷婷| 六月婷婷五月丁香| 精品少妇蜜臀91| 五月婷婷av| 激情婷婷视频在线| 久久AV无码精品人妻系列试探| 国产成人高清| 婷婷五月激情视频| 性做久久久久久久免费看| 免费视频这里只有精品| 99热 免费| 偷拍91九色| 人妻视频一区而且二区| 天天干天天拍| 色五月欧美| 99在线视频播放| 五月天婷婷婷| 丁香五月天综合网| 极品 少妇 内射| 久热精品视频在线观| 婷婷精品综合| 99热超| 91re色综合视频| 丰满少妇猛烈A片免费看观看| 久久婷婷精品| 99日本精品视频热| 97操碰视频| 九九综合| 五月婷婷六月色| 色五月综合激情| 六月丁香五月激情网| 99r这里只有精品哦| 综合色婷婷| www狠狠爱com| 久久综合综合综合| 微拍92| 情欲禁地| 碰碰碰97国产| 久久女伦| 色约约视频一区二区三区四区五区| 免费在线观看AV网站| 欧美黑人巨大性生话| 99热婷婷| 做爰丰满少妇1313| 日韩人妻白浆视频系列| 日本www免费九九| 色五月丁香A欧美com | 综合五月婷婷| bbwcuckold精品熟妇| 玖月婷婷爱丁香| 天天摸,天天爽| 五月丁香六月婷婷免费| 色丁香久久久| 日韩无码一区二区三区四区| 色综合久| 成人做爰黄A片免费看直播室男男 A片试看120分钟做受图片 | 亚洲婷婷性爱| 亚洲网在线观看| 免看黄大片AA | 天堂久热| 日日夜夜亚洲一区| 久久婷婷丁香花综合网| 青青999| 99碰网站| 五月丁香啪啪拍| 操日挥操日日| 日韩综合久久| 色999五月色| 亚洲AV成人在线| 婷婷六月色| 成人综合网站| 亚洲在线免费成人| 亚洲色图在线视频| 午夜丁香六月婷| 久久久国产精品黄毛片| 夜夜爽77777妓女免费下载| av不卡网站| 国产综合婷婷| 九九热这里有精品23| 五月丁香婷婷激情澎湃四射| 色色色婷婷| 五月天激情小说网| 黄色av高清| 成人AV在线网站| 深爱激情久久| 色综合婷婷| 中文字幕日本最新乱码视频| 五月激情射| 久久久er热| 丁香五月天AV| 五月婷在线| 中文字幕+中文在线| 天天色天天搡| 免费不卡狠操美女视频网| 亚洲综合在线视频| 久久九九99.www| 丁香九月综合| 人人摸人人| 色婷婷成人做爰A片免费看网站| 美女xx不卡| 久久99激情| 六月撸婷婷| 久久在线人妻| 五月天综合婷婷| 97碰91| 99热亚洲| 婷婷激情五月综合| 亚洲国产精品VA在线看黑人| 色综合久久88色综合天天99| 99色免费观看全部| 少妇被躁爽到高潮无码文| www.日韩国产| 99热在这里只有精品| 大香蕉九九| 91狠狠色| 人人摸人人干| se婷97| 99热这里只有精品一| 国产成人网址| 激情久久久久久久久久| 婷婷视频在线| 亚洲综合网在线| 色色色视频免费无码 | 天天日夜夜欢| 激情五月天视频| 亚洲精品无码A片一区二区| 五月婷婷五月天激情视频| 超碰成人在线观看| 婷婷五月色色| 婷婷五月天狠狠色| 狠狠色噜噜色狠狠狠综合色 | 能直接看的AV网站| 亚洲视频综合网| 婷婷久久五月天亚洲欧美国产日韩在线观看 | 婷婷激情鹿城五月天| 六月激情综合| 91九色网| 五月丁香六月成人| 婷婷丁香久久| 九九99精品视频在线观看| www.丁香黄色五月天人与| 五月丁香婷婷无码中文| 99这里只有精品|v| 另类小说五月天| 日韩在线婷婷五月天综合| 99在线资源视频| 噜综合| 激情六月婷婷| 激情五月丁香综合蜜桃| 色五月网址| 色色99色色| 国产古装妇女野外A片| 99综合婷婷五月| 亚洲日韩乱码一区二区三区四区 | 五月婷丁香亚洲| 婷婷在线日韩综合| 色五月丁香六月欧美综合| 天天操天天国产三级片处女学生妹| 综合色色婷婷| 狠狠干综合| 欧美成人精品A片免费一区99| 无码啪啪| 婷婷综合五月| 婷婷中文字幕版| 99热九九九九| 一区二区乱码视频| 婷婷五月激情网站| 亚洲精品久久久久久久久久吃药| 五月花综合| 97资源碰碰| 欧美va在线| 97婷婷色| 久久精品99国产精品日本| 色色色欧美色色| 97香蕉人人在线观看| 黄网免费看| www.zbzhongsen.com| 久久伊人大香蕉| 九月久久婷婷| 国产婷婷综合在线免费视频| 色欲久久久久久综合网综合网| 综合久久婷婷| 亭亭玉立国色天香| 91色噜噜狠狠狠狠色综合| 欧美久久网| 色婷婷久久| 激情五月www| 久久婷青青草原| 色丁香婷婷| AV网址大全在| 亚洲无线视频| 四虎婷婷五月天| 激情骚五月| 97精品综合| 亚洲久久婷婷| 亚洲最大在线| 五月天婷婷丁香成人网| 综合久久五月| 东北黄色一级| 中文字幕黄色片| 青青草婷婷综合五月| 色综合99无码 | 91人人网| 激情综合网五月天天| 综合久久六月| 狠狠干狠狠干| 久青操| www,五月丁,com| 五月丁香欧美综合| 天堂在线观看视频| 天天激情欧美美女| 久99热| 国内外色色色色色成人视频| 九九热在这里只有精品| 免费AV在线网址| 综合网色| 亚洲xx在线| 综合图片色色| 甈吧vv| 久久激情五月| 麻豆精品| 色婷婷五月综合| 色狠狠综合网| 婷婷香五月天| WWW激情五月天| 亚洲精品一二三| 丁香九九九九| 丁香五月Av| 99视频这里只有久久精品| 综合亚洲六月婷婷在线| 影音先锋 一区| 大操人妻| 操人妻AV| 丁香六月激情| 深爱五月婷| 色五月婷婷、老熟女| 91日韩美女被插视频| 久综合4| 欧美日韩99| 天天摸天天透天天舔| www.五月激情红色| 好好日激情五月天| 26UUU| 99久久久免费| 99riAv1国产在线观看| 中文av在线观看| 黄色av高清| 91中文狠狠综合| 成人无码精品1区2区3区免费看| 五月香婷婷| 超碰com| 五月婷婷九| 婷婷深爱五月| 色色亚洲视频| 五月天色丁香| 天天干夜夜谢| 激情丁香五月天| 久久久久丁香婷婷五月天| 欧美激情五月| 久久人妻伊人| 综合五月婷婷| 色婷婷在线视频| 久久婷婷亚洲| 91综合色| 九九综合九九| 丁香婷婷色五月| XX色综合| www.夜夜操| 欧美成人猛片AAAAAAA| 少妇人妻丰满做爰XXX| 久在线88综合| 玖久久网站| 秋霞网在线免费基地五月婷婷丁香| 思思热99er| 久久婷婷六月综合综合| 影音先锋男人资源站一区二区| 97久久久免费福利网址| 天堂综合久| 色射影院| 精品久久99| 少妇伦子伦精品无吗| 丁香五月天成人| 超碰免费电影| 九热久| 欧美黑人大吊| 丁香五月婷婷六月婷| 五月综合激情视频| 天天日天天爽夜夜爽| 五月天丁香成人社| 日韩aaaaa| 六月激情婷婷| 成 人片 黄 色 大 片| ztEJj| 热热99爱爱| 激情五月丁香婷婷夜夜操| 婷婷五六日| 99热这里只有精品22| 丁香五婷婷| 深夜男女福利刺激影院一区完整| 久久伊人大香蕉| 热99玖玖99玖玖99九九| 色色九九五月天| 天天射夜夜爽| 五月天激情啪啪| 亚洲国产成人在线| www.色五月| 五月激情射| 天天插综合在线| 婷婷丁香人妻天天久久| 丝袜人妻| 精品人妻一区二区三区在| 亚洲激情五月| 婷婷五月花丁香| 日本三级黄色大片| 亚洲成人无码专区| 亚洲av成人在线| 丁香伊人综合| 91wwmm导航| 99自拍视频| 色欲AVV| 国产AV不卡福利| 婷婷激情五月天天天开心| 五月丁香黄色| 99综合自拍| 色播五月婷婷综合| 国产熟妇乱子伦hd| 欧美大道不卡| 亚洲日本激情| 五月丁香啪| 五月综合亚洲| 亚洲日韩乱码一区二区三区四区 | 国产成人AV在线播放| 天天网站天天爽| 婷婷在线视频| 91色婷婷综合久久中文字幕二区| 变天就操逼婷婷五月| 免费的日逼视频| 五月丁香婷婷爱| 综合久久丁丁香婷| 色五月婷婷中文字幕| 性色视频| 亚洲精品国产A久久久久久| 美女黄频aⅴ视频| 天天摸人人摸| 国内外色色色色色成人视频| 99资源在线视频| 伊人五月丁香| 国产成人精品一区二三区熟女在线| 丁香久久综合| 99热这里只有精品86| 人妻丰满精品一区二区A片| 在线色色| 99爱爱网| 大香蕉天堂色| 婷婷无码视频| 江苏少妇性BBB搡BBB爽爽爽| AV伊人青草丁香六月| 五月婷婷深深爱| 亚洲视频1区| 婷婷五月丁香综合激情小说| 久久Xx| 开心色播色五月婷婷| 成人看片网站| 99热只有精品综合| www.97碰碰com| 9久9久| 欧美色色网| 国产欧美大香蕉一区| WWW激情五月天| 婷婷久久五月天| 欧美大香蕉视频| 婷婷五月激情的图片| 婷婷五月激情五月丁香五月| 狠狠干狠狠色| 九九亚洲视频| 91人人操人人看| 六月五月婷婷| www.久99| 婷婷激情五月天在线| 99热在线精品观看| 在线视频激情网站| 五月丁香六月香综合激情| 五月天婷婷无码| 成人在线日韩| www.色婷婷.com| 国产ava| 中文字幕av久久爽一区| 色吧婷婷五月亚洲| 我要射综合| 一起草日本| 丁香五月激情婷婷激情| 久久人人看| 久久久久9999| 色噜噜狠狠色综无码久久合欧美| 五月综合色| 97激情五月天| 久热99视频在线观看| 狠狠搞综合色| 激情婷婷五月丁香啪啪啪| 五月婷丁香久久久| 丁香五月天啪啪| 天天综合网91| 久久精品4| 99精品女人天堂| 九九热中文| 婷婷丁香射射| 91久久精品国产91性色TV| 五月激情综合深爱| 天天网曰日曰夜夜综合永久免费| 日本欧美成人片AAAA| 五月丁香六月激情综合| 五月婷婷在线视频| 森林影视大全,最好看的2019年视频 | 久久久性爱视频| 毛片新网地| 九九碰九九爱97| 亚洲天天免费| 五月激情综合婷婷| 九九 激情 网| 综合久久综合久久| 国产小精品| 中文av网站| 色天堂A| 九九激情网| 伊人AV五月婷| 毛v一区二区视频| 玖玖资源在线视频| 婷婷六月天亚州| 久久色五月| 亚洲亚洲人成综合网络| www.99热视频| 最新热中文字幕| 欧美人人草草| 九九99精品视频在线观看| 丁香五月天五码婷婷| 99久久97久久欧美综合网| 婷婷在线视频| 五月丁香中文| 色五月无码| 国产99久9在线| 99这里有精品视频| 色五月av| 丁香五月深爱五月婷婷| 五月天激情四射网站| 熟女人妻一区二区三区免费看| 深爱激情综合| 亚洲五月天综合| 99九九在线精品热动漫| 国精产品一区一区三区免费视频| 五月天久久综合婷婷| 97激情五月天| 大香蕉婷婷久久| 东京热五月婷婷| 亚州操人在线视频| 国产无套精品一区二区| 五月天激情偷拍| 久Se视频在线观看| 亚洲一区二区色图-亚洲精品国产精品乱码-成人AV | 99视频这里只有精品10| 亚洲色婷婷色| 免费国产视频| 91人人妻人人操人人爽| 美日韩成人| 九九热视频99| 无码色色| 就爱干 在线| 另类视频一区| 六月丁香婷婷色狠狠久久| 99在线精品观看99| caop在线| 综合图片色色| ss视频xx91| 婷婷丁香水多多视频| 99碰碰| 亚洲综合另类| 操操熟女| 久久月天堂| 色五月丁香五| 777影视理论片大全在线观看| 深爱激情综合| 99这里只有免费的小视频在线观看| 国产精品18久久久| www.激情五月天.con| 最近中文字幕2019视频1| 婷婷丁香花五月天| AV人人操| 99热在线观看精品免费| 亚洲AV永久无码影院黑人 | 26uuu视频欧美| Av在线不卡一区| 久久精品系列| 天天在线XXX| 五月丁香六月婷婷无码| 台湾佬天天日丁香婷婷五月天| 思思久ren热| 天天综合久久| 激情婷婷丁香五月天小说| AV在线免费播放| www.久久爱.com| 欧美超级视频97| 69色婷婷| 91xxxx九色| 99日在线观看视频| 丁香六月婷婷社区| 色五月,婷婷大香蕉| 五月婷婷9| 99er热精品视频| 五月丁香久久丝袜啪啪| 五月天婷婷色色首页| 久热免费视频| 亚洲另类电影| 国产亚洲在线观看| 久久婷婷视频| 天天爽天天爽| 五月丁香啪啪啪| 国产美女无遮挡裸体毛片A片| 日本精品人妻无码77777| 色色色热| 婷婷五月综合激情| 亚洲A片成人无码久久精品青桔| 99久久户外勾搭| 一本婷婷丁香久久 | 久久久网站| 亚洲愉拍99热成人精品| 欧美碰碰| 色婷天天| 五月色 亚洲| 这里只有精品视频在线看| 五月婷婷丁香在线| 日日干日日| 五月婷婷色| 久久xx| 可以免费观看的AV| 日本啪啪视频HD| 色五月婷婷激情基地| 亚洲国产成人综合| 日本激情ⅩXX免费视频| 99色播| 免费观看的婷婷五月视频在线| 日本色天堂| 99操99| av网站免费在线| 99人人干人人| 色婷婷五月天天天天天| 婷婷丁香五月天狠狠| 亚洲激情网| 亚洲综合草草| 性爱视频久久| 日本三级片片| 蜜臀丁香黄色婷婷五月天| 丁香五月激情六月综合| 色综合色| 婷婷丁香五月综合| 久久激情四射| 久久性爱视频| A网在线欧洲| 人妻九九九九| 无码人妻AV久久久一区二区三区| 99九九99九九九视频精品| AV操逼网| 久热这里只有精品视频6| 婷婷六月综合基地| 日本人妻伦在线中文字幕 | 丁香五月天亚洲综合| 99视频91| 狠狠干总合| 六月婷婷亚洲| 1024人妻| 日本9区视频| 超碰国产av| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 亚洲色爽| 1024操逼视频| av在线资源| 久久99久久久久久久噜噜| 99久久亚洲精品视频| 婷婷欧美色| 少妇人妻人伦A片| 日本人妻伦在线中文字幕 | 婷婷午夜综合| 久久er99热精品一区二区| 激情图片久久| 五月天艹天天| 这里只有精彩视频| 日韩在线一级| 天天成人丁香美女AV| 开心五月网 | 日日爽日日| 亚洲精品国产熟女久久久| 色综合狠狠色| 五月花亭亭| 蜜臀AV在线观看| 狼人久草| 99在线视频免费| 亚洲AV久久久久久久久久久久久久久久 | 久久久99视频| 停婷丁五月在线| 岛国AAAV| 婷婷五月久久| 婷婷综合在线| 情色婷婷五月天| 五月丁香中文| 91丨九色丨首页| 欧美综合激情五月| 婷婷五月天激情小说| 五月天婷婷基地丁香| 五月丁香性爱| 九九热大香蕉| 丁香五月激情综合| 免费无码毛片一区二区A片| 五月丁香手机在线| 一起草AV| 91 九色 熟女| 玖玖综合色| 天天综合网91| 丁香激情四射| 久久婷狠狠色| 亚洲AV网址| 1999天天操夜夜操| 五月天另类激情在线| www.色情五月天.com|