国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

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

student、sc、course 三張表講透 SQL:建表、查詢與優(yōu)化 簡介這是一份配合《數(shù)據(jù)庫系統(tǒng)概論》課程的SQL建表與數(shù)據(jù)插入練習(xí)文檔面向正在學(xué)習(xí)數(shù)據(jù)庫原理與SQL基礎(chǔ)操作的學(xué)生。PDF內(nèi)完整給出了student、course、sc三張經(jīng)典表的建表語句包含主鍵、唯一約束、默認(rèn)值及外鍵關(guān)聯(lián)并附帶覆蓋學(xué)生選課場景的示例插入數(shù)據(jù)可幫助讀者理解關(guān)系模型、參照完整性及SC復(fù)合主鍵的設(shè)計(jì)思路。整個壓縮包僅含1個PDF文件大小48KB輕量易用適合課前預(yù)習(xí)、實(shí)驗(yàn)參考或考前快速復(fù)習(xí)。文檔將創(chuàng)建數(shù)據(jù)庫、建表、插入數(shù)據(jù)與更新預(yù)修課程學(xué)分等步驟按順序拆解并在course表插入中特別說明了外鍵約束下不能一次性插入的原因便于讀者避開常見操作誤區(qū)。目前已有1907人學(xué)習(xí)下載對初學(xué)數(shù)據(jù)庫系統(tǒng)概論、需要動手搭建練習(xí)環(huán)境的學(xué)習(xí)者具有直接參考價值。1. 數(shù)據(jù)庫系統(tǒng)概論里的 student、sc、course一套練習(xí)表為什么能講透 SQL數(shù)據(jù)庫系統(tǒng)概論課程里流傳最廣的一套SQL練習(xí)就是用 student、sc、course 這三張表反復(fù)折騰查詢很多學(xué)校的實(shí)驗(yàn)課、期末復(fù)習(xí)題、甚至面試前突擊都在用它。這套表的數(shù)據(jù)量不大結(jié)構(gòu)卻把主鍵、外鍵、多對多關(guān)系、聚合、連接、子查詢這些核心概念全串起來了比去 LeetCode 刷零散題目要完整得多。網(wǎng)上流傳的配套 PDF 往往只給題目和答案缺了建表腳本和邊界情況的說明新手拿到手第一反應(yīng)是“表長什么樣”都不知道。我按最常見的教材結(jié)構(gòu)把整套環(huán)境重建一遍從建庫到驗(yàn)證一條龍講清楚學(xué)生能照著跑準(zhǔn)備 SQL 面試的能當(dāng)復(fù)習(xí)提綱想自己出練習(xí)題的也能直接參考這套設(shè)計(jì)。2. 先建庫再建表student、sc、course 的結(jié)構(gòu)設(shè)計(jì)與建表 SQL2.1 三張表的字段設(shè)計(jì)外鍵怎么連、主鍵怎么定先看這套表的數(shù)據(jù)模型。student 表存學(xué)生基本信息course 表存課程信息sc 表是學(xué)生選課成績表用來連接前兩者。之所以需要 sc 這張中間表是因?yàn)橐粋€學(xué)生可以選多門課一門課也可以被多個學(xué)生選學(xué)生和課程之間是多對多關(guān)系直接在一個表里加字段會造成大量數(shù)據(jù)冗余和更新異常。sc 表把學(xué)號和課程號各存一條記錄再加上成績字段就把多對多關(guān)系拆成了兩個一對多關(guān)系。student 表的常見字段是學(xué)號、姓名、性別、年齡、系別主鍵用學(xué)號 sno。course 表的主鍵是課程號 cno同時會有一個 cpno 字段表示先修課程號這個字段指向課程表自身的主鍵形成自引用外鍵用來做“查先修課”這類的遞歸查詢練習(xí)。sc 表的主鍵是 (sno, cno) 聯(lián)合主鍵sno 和 cno 分別引用 student 和 course 的主鍵grade 字段存百分制成績。這個設(shè)計(jì)的巧妙之處在于兩個字段的聯(lián)合主鍵能防止同一學(xué)生同一課程出現(xiàn)兩條重復(fù)選課記錄這是數(shù)據(jù)完整性約束里的典型考點(diǎn)。練習(xí)時還會用到 cpno 為 NULL 的“沒有先修課”的記錄這就把 SQL 里的 NULL 處理難題也帶出來了。字段類型也要留意學(xué)號和課程號雖然是數(shù)字但常見教材把它們定義成 CHAR 而不是 INT目的是讓前導(dǎo)零能保留也方便練習(xí)字符串比較。2.2 標(biāo)準(zhǔn)建表腳本MySQL 與 SQL Server 的語法差異很多初學(xué)者從 PDF 里抄答案時發(fā)現(xiàn)在自己電腦上建表總是報(bào)錯原因往往是教材示例用的 SQL Server 語法而本機(jī)裝的是 MySQL。兩種數(shù)據(jù)庫的建表語法大體相似但在字符集、自增列、外鍵約束這些細(xì)節(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ù)要單獨(dú)說明。DEFAULT CHARSET utf8mb4 是為了讓中文姓名和課程名正常存儲如果使用默認(rèn)的 latin1 字符集插入中文時會變成亂碼或者直接報(bào)錯utf8mb4 比 utf8 多支持 emoji 等四字節(jié)字符對練習(xí)環(huán)境來說更保險。表引擎指定 InnoDB是因?yàn)橥怄I約束只有 InnoDB 支持MyISAM 引擎雖然查詢快但建外鍵時 MySQL 會靜默忽略不報(bào)錯也不生效這是最隱蔽的一個翻車點(diǎn)。sage 用 SMALLINT 而不是 INT是教材里的經(jīng)典設(shè)計(jì)用來讓大家理解“夠用就好”的字段長度設(shè)計(jì)思路。grade 用 DECIMAL(5,1)意思是總長度 5 位、小數(shù) 1 位最高能存 999.9百分制成績足夠用而且能保留一位小數(shù)方便練習(xí) AVG 聚合時看到非整數(shù)值。如果是 SQL Server 環(huán)境比如學(xué)校機(jī)房或者公司里的老項(xiàng)目建表腳本要微調(diào)。SQL Server 不區(qū)分 utf8mb4默認(rèn)就是在排序規(guī)則屬性里處理中文自增列需要 IDENTITY 關(guān)鍵字CHAR 字段在 SQL Server 里默認(rèn)非 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原因很實(shí)在SQL Server 的 VARCHAR 只能存英文字符N 前綴類型才能存中文給 ssex 字段加 DEFAULT N男 是因?yàn)?SQL Server 默認(rèn)值里如果直接寫中文字符常量在有些中文排序規(guī)則下會報(bào)“對象名無效”一類的怪異錯誤實(shí)測最穩(wěn)的方式就是加 N 前綴。用了 GO 分隔批次是因?yàn)?SQL Server 的 CREATE DATABASE 之后必須 USE 切換上下文如果兩個語句在同一個批次里執(zhí)行后面的 CREATE TABLE 可能仍然被解析到 master 庫。這塊屬于 SQL Server 特有的玄學(xué)問題按上面分批次寫就不會出錯。2.3 插入練習(xí)數(shù)據(jù)覆蓋基礎(chǔ)查詢需要的典型取值建完表之后必須插入數(shù)據(jù)才能練習(xí)。數(shù)據(jù)量不用大但要覆蓋邊界情況NULL 成績、先修課缺失、同系別多人、男女都有、成績重復(fù)這些都會在后續(xù)查詢練習(xí)里反復(fù)用到。下面這套插入數(shù)據(jù)是經(jīng)典教材里的標(biāo)準(zhǔn)樣本數(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);這段插入腳本里有兩處需要細(xì)看。course 表里課程 3 的 cpno 是課程 1課程 5 的 cpno 是課程 7形成了一個有向的“先修課鏈條”練習(xí)自連接時可以查“間接先修課”這類題目。sc 表里最后一條記錄 grade 為 NULL表示王敏選了數(shù)據(jù)庫課但還沒出成績這就是聚合函數(shù)和 WHERE 條件練習(xí)里最容易出錯的地方COUNT(grade) 會忽略 NULL而 COUNT(*) 不會。INSERT 語句用多值逗號分隔語法比逐條 INSERT 效率高很多而且一旦中間某行出錯整個語句會回滾不會出現(xiàn)“插了一半”的臟數(shù)據(jù)。數(shù)據(jù)插入后建議先跑兩條驗(yàn)證語句確認(rèn)環(huán)境可用。SELECT COUNT() FROM student; 應(yīng)該返回 4SELECT COUNT() FROM sc; 應(yīng)該返回 7。如果數(shù)字對不上優(yōu)先檢查是否漏跑了某個批次或者外鍵約束攔截了部分插入。3. 練習(xí)題的梯度設(shè)計(jì)從單表查詢到窗口函數(shù)3.1 第一梯度單表查詢、排序與去重表建好、數(shù)據(jù)插完就可以開始真正的練習(xí)。第一梯度只涉及單張表目標(biāo)是練 SELECT 的基礎(chǔ)功投影、選擇、排序、去重。這類題目在面試?yán)锟粗唵蔚芏嗳藢懗鰜淼?SQL 在邊界情況下是錯誤的尤其是去重和 NULL 處理。先看一個最基礎(chǔ)的查詢查所有學(xué)生的學(xué)號和姓名。這道題沒有難度但能驗(yàn)證表結(jié)構(gòu)是否正常。SELECT sno, sname FROM student;接著看一個稍微有考點(diǎn)的題目查詢所有學(xué)生的系別。如果直接寫 SELECT sdept FROM student結(jié)果里會出現(xiàn)重復(fù)的 CS。要得到唯一的系別列表得去重。SELECT DISTINCT sdept FROM student;DISTINCT 在這里的語義是“對查詢結(jié)果整體去重”也就是說只有兩行所有選中列的值都相同才合并。它作用于整個 SELECT 的投影列表而不是只作用于緊挨著的那個字段。很多人以為 SELECT DISTINCT sname, sdept 的意思是“只對 sname 去重保留 sdept”實(shí)際上它是把 (sname, sdept) 作為一個整體判斷重復(fù)。這是一個高頻面試題也解釋了為什么同樣一句 DISTINCT 在不同組合列下結(jié)果差異巨大。第二梯度之前還要過一個排序練習(xí)查全體學(xué)生名單按年齡降序排列。SELECT sno, sname, sage FROM student ORDER BY sage DESC;ORDER BY 的執(zhí)行順序在 SQL 邏輯中排在 SELECT 之后所以它可以使用 SELECT 列表里的別名比如 ORDER BY 年齡。這個順序問題很多人混淆實(shí)際上 SQL 語句的書寫順序是 SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY但邏輯執(zhí)行順序是 FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY。搞清楚這個順序后面理解“為什么 WHERE 里不能使用別名”才不會靠死記硬背。3.2 第二梯度多表連接、聚合與分組第二梯度是這套練習(xí)表的重頭戲也是 SQL 能力分水嶺。連接查詢要把兩張或多張表按條件拼接聚合查詢則把多行匯總成一行。兩者經(jīng)常組合出現(xiàn)。最常見的連接練習(xí)查詢每個學(xué)生的選課成績需要 student 表和 sc 表通過 sno 連接。SELECT student.sno, sname, cno, grade FROM student, sc WHERE student.sno sc.sno;這是隱式連接寫法教材里用得最多但實(shí)際項(xiàng)目里我更推薦顯式 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 里只留過濾條件。這種拆分的實(shí)際意義是當(dāng)查詢超過三張表時隱式連接特別容易漏寫一個連接條件導(dǎo)致產(chǎn)生笛卡爾積結(jié)果行數(shù)爆炸到幾十萬條這就是俗稱的“翻車現(xiàn)場”排查時還不好定位。顯式 JOIN 配合縮進(jìn)每個連接關(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)鍵細(xì)節(jié)AVG(grade) 會自動忽略 NULL所以王敏那條沒有成績的記錄不會拉低平均值。如果想把 NULL 當(dāng)作 0 參與平均就得先寫 CASE WHEN grade IS NULL THEN 0 ELSE grade END 把 NULL 轉(zhuǎn)換掉但這在實(shí)際業(yè)務(wù)中是否合理要看場景一般成績表里 NULL 代表“缺考/未出分”忽略比當(dāng) 0 處理更符合業(yè)務(wù)語義。再進(jìn)階一步查詢選了 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 里因?yàn)樗恰敖M”的特征不是“行”的特征。很多初學(xué)者把聚合條件誤寫在 WHERE 里報(bào)錯就是因?yàn)闆]理解這個執(zhí)行順序。3.3 第三梯度子查詢、EXISTS 與窗口函數(shù)第三梯度是進(jìn)階內(nèi)容也是 PDF 練習(xí)里區(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 比較時不會因類型問題出錯因?yàn)?MySQL 會按 DECIMAL 精度自動比較。這道題練習(xí)的價值在于它要求先理解聚合結(jié)果是標(biāo)量值然后才能把它當(dāng)作 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 來提升性能。練習(xí)時可以把 EXISTS、IN、JOIN 三種寫法都試一遍觀察執(zhí)行計(jì)劃差異這是理解優(yōu)化器行為的很好素材。窗口函數(shù)是近幾年 SQL 面試的高頻考點(diǎn)這套表同樣能練。比如查每門課成績排名前 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 成績否則排序時空值會默認(rèn)排最前面結(jié)果就錯了。3.4 練習(xí)答案的驗(yàn)證方式用 EXPLAIN 看執(zhí)行計(jì)劃光寫出能跑出結(jié)果的 SQL 不算完還得知道它是怎么跑的。數(shù)據(jù)庫提供了 EXPLAIN 命令來查看執(zhí)行計(jì)劃這是從“會寫 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í)行計(jì)劃里最需要關(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)境幾百萬行就徹底卡死了。做練習(xí)時每寫完一道題都順手把執(zhí)行計(jì)劃拉出來看一眼。等把 system→const→ref→range→ALL 這幾檔都親眼見過一遍才算真正對 SQL 優(yōu)化有了體感。到這一步student、sc、course 這套練習(xí)表的價值才算被完全榨干——它不僅教你寫 SQL還教你診斷 SQL。4. 做這套練習(xí)常見的 5 個坑從建表失敗到結(jié)果對不上4.1 主鍵重復(fù)與 NULL插入數(shù)據(jù)時的第一道坎現(xiàn)象執(zhí)行 INSERT 語句報(bào)錯提示 duplicate entry 或者不能為 NULL。原因聯(lián)合主鍵的任意重復(fù)都會觸發(fā)沖突比如向 sc 表重復(fù)插入 (201215121, 1) 這條選課記錄。另外student 表的 sno 是主鍵插入 NULL 也會被拒絕但 sc 表的 sno 和 cno 是外鍵同時又是聯(lián)合主鍵的一部分如果這兩列有一個為 NULLInnoDB 對主鍵列有隱式 NOT NULL 約束同樣報(bào)錯。解決插入前先用 SELECT 確認(rèn)數(shù)據(jù)是否存在。習(xí)慣性在插入腳本里加 INSERT IGNORE 或者 ON DUPLICATE KEY UPDATE 確實(shí)能跳過錯誤但練習(xí)場景不建議這么做因?yàn)檫@會掩蓋數(shù)據(jù)本身的重復(fù)問題。更推薦的方法是直接面對報(bào)錯通過 SELECT sno, cno, COUNT() FROM sc GROUP BY sno, cno HAVING COUNT() 1 查重復(fù)數(shù)據(jù)再決定保留哪一條。4.2 字符集與排序規(guī)則中文亂碼的根源現(xiàn)象插入中文后查詢顯示亂碼或者 CREATE TABLE 直接報(bào)錯字符集不識別。原因MySQL 默認(rèn)字符集可能是 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%; 看當(dāng)前會話的字符集再把連接參數(shù)統(tǒng)一。SQL Server 那邊建庫時把排序規(guī)則指定為 Chinese_PRC_CI_AS 基本可以一勞永逸。4.3 外鍵約束與刪除順序先刪 sc 還是先刪 student現(xiàn)象執(zhí)行 DELETE FROM student WHERE sno201215121; 報(bào)錯提示 foreign key constraint fails。原因sc 表里有引用這個學(xué)號的記錄而 sc 表的外鍵約束默認(rèn)行為是 NO ACTION即存在子記錄時不允許刪除父記錄。解決先刪子表再刪父表。正確順序是 DELETE FROM sc WHERE sno201215121; 然后 DELETE FROM student WHERE sno201215121;。這個順序問題的價值不僅在于完成刪除操作它本身就是關(guān)系模型里“引用完整性”的絕佳教學(xué)案例。實(shí)際業(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ù)庫把兩表做了笛卡爾積每行和另一表的每行配對。解決連接查詢時先確認(rèn)結(jié)果行數(shù)是否等于符合業(yè)務(wù)邏輯的行數(shù)。經(jīng)驗(yàn)判斷標(biāo)準(zhǔn)是如果多表連接沒有 WHERE 或 JOIN ON 條件返回行數(shù)是各表行數(shù)乘積必然有問題。連接條件漏寫時數(shù)據(jù)庫不會報(bào)錯因?yàn)榈芽柗e在語法上是合法的這是最讓人頭疼的地方。實(shí)踐中寫多表查詢時先分別跑一遍 SELECT COUNT(*) FROM 各表估算出預(yù)期結(jié)果行數(shù)范圍再執(zhí)行連接查詢。另外養(yǎng)成每張表用別名、JOIN 條件顯式寫在 ON 子句里的習(xí)慣能顯著降低漏寫概率。4.5 聚合與非聚合混用GROUP BY 的經(jīng)典報(bào)錯現(xiàn)象執(zhí)行 SELECT sno, cno, AVG(grade) FROM sc GROUP BY sno; 報(bào)錯提示 cno 不在 GROUP BY 子句中。原因SQL 標(biāo)準(zhǔn)要求 SELECT 列表中出現(xiàn)的非聚合列必須全部出現(xiàn)在 GROUP BY 中。這是因?yàn)榉纸M后每組只有一行非聚合列如果不在分組鍵里數(shù)據(jù)庫不知道該取組內(nèi)哪行的值。MySQL 的 ONLY_FULL_GROUP_BY 模式默認(rèn)開啟所以直接報(bào)錯如果關(guān)掉這個模式雖然能執(zhí)行但返回的 cno 是組內(nèi)隨機(jī)一行結(jié)果不可預(yù)測。解決搞清楚查詢意圖。如果確實(shí)想查每個學(xué)生的學(xué)號和他每門課的成績就不該用 GROUP BY如果只想查每個學(xué)生平均分SELECT 里就不該出現(xiàn) cno。這個報(bào)錯其實(shí)是數(shù)據(jù)庫在保護(hù)你比暗中返回隨機(jī)值好得多。練習(xí)時遇到這種錯誤先停下來理清“我要的是明細(xì)還是匯總”再動手改 SQL是最快的路徑。5. 把練習(xí)成果接到真項(xiàng)目驗(yàn)證方法、索引設(shè)計(jì)與一條實(shí)用技巧5.1 用索引設(shè)計(jì)與執(zhí)行計(jì)劃對比來驗(yàn)證練習(xí)效果練習(xí)做完后建議做一個加索引前后的對比實(shí)驗(yàn)。以 sc 表為例在不建任何輔助索引的情況下執(zhí)行按 cno 過濾的查詢EXPLAIN 結(jié)果會顯示 typeALL 全表掃描。然后手動加一個索引CREATE INDEX idx_sc_cno ON sc(cno);再執(zhí)行同樣的查詢EXPLAIN 里 type 會變成 refrows 預(yù)估數(shù)明顯下降。這個對比就是把前面練習(xí)里學(xué)到的東西真正用到性能優(yōu)化上的關(guān)鍵一步。實(shí)際業(yè)務(wù)中聯(lián)合索引的設(shè)計(jì)比單列索引更值得關(guān)注。sc 表最常見的查詢模式是按 (sno, cno) 查成績或者按 cno 查選課名單。如果業(yè)務(wù)偏向前者聯(lián)合主鍵已經(jīng)覆蓋如果后面要頻繁按 cno 查單建 idx_sc_cno 就能避免每次回表。5.2 把三張表遷移到真實(shí)業(yè)務(wù)場景邊界在哪里student、sc、course 畢竟是教學(xué)模型遷移到真實(shí)項(xiàng)目時有三個明顯的邊界要注意。一是數(shù)據(jù)量生產(chǎn)環(huán)境單表百萬行起步這套練習(xí)表沒有分區(qū)、沒有數(shù)據(jù)生命周期管理直接照搬會有性能問題。二是缺失審計(jì)字段真實(shí)業(yè)務(wù)表幾乎都要有 create_time、update_time、操作人這幾個字段教學(xué)表里完全沒有上線前要補(bǔ)。三是沒有軟刪除和狀態(tài)字段真實(shí)業(yè)務(wù)不會物理刪除記錄而是用 status 字段標(biāo)記有效性練習(xí)表的 DELETE 操作要改成 UPDATE status。一個比較實(shí)用的落地方式是把這三張表當(dāng)作一個“最小可運(yùn)行的數(shù)據(jù)模型”在公司內(nèi)部做技術(shù)分享或者新人培訓(xùn)時用來演示慢 SQL 優(yōu)化和連接查詢原理。數(shù)據(jù)量小、字段簡單、問題復(fù)現(xiàn)快比拿生產(chǎn)庫演練安全得多。我有一個習(xí)慣每次講 SQL 優(yōu)化之前先在本地用這套表造 10 萬行數(shù)據(jù)然后故意寫幾條不帶 WHERE 的連接查詢讓新人親眼看到全表掃描導(dǎo)致查詢時間從毫秒級變成秒級再讓他們自己用 EXPLAIN 定位問題。這種直觀對比比講半小時理論都有用。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
97Ai亚洲| 日韩内射视频| 曰韩操B| 999国产精品999久久久久久| 青青草久久| 伊人影院在线理论播放| 狠狠干狠狠干| 色五月激情综合网| 亚洲1区2区三区高清中文字幕| 国内一区二区免费| 淫荡网址| 91色婷婷综合久久中文字幕二区| 成人草草视频| Julia Annxxxxx| 日韩精品99久久久久久中文字幕| 极品内射| 狠狠2050在线观看| 青操影院| 日韩性爱小视频| 大香蕉手机在线| 亚洲情色一区二区三区| 天天日美女的B| 96AV久久久| 青青草自拍视频在线播放| 九九性爱网| 丰满的三级少妇欧美久久久| 国产 热久久久久国产精品| 亚洲无码com| 中日韓欧美高清| 欧美 亚洲 在线| 国产97av| 亚州男人天堂| 欧美一级AAAAAAA| 精品国产肉丝袜在线拍国语| 日韩久久.一级黄色片| 黄片qw| 日韩三A大片在线观看| 综合久久少妇中文字幕| 人人看人人插| 中文久久爆乳| 蜜臀久久久久久999| www.zbzhongsen.com| 婷婷亚洲天堂| 欧美人妻精品| 人人综合| 91久久国外网| avav青青草久久夜| 老熟女综合| 啪啪视频免费在线观看| 欧美五十路熟| 欧美在线播放aaaa| 蜜桃传媒一区二区亚洲| 欧美亚洲se91| 亚洲天堂一二| 熟妇综合一区二区三区| 天天天天天天天天天天干美女| 五月婷婷激情综合| 屌妞视频久久久久久久| 东北操逼| 一级乱伦网站| 香一区二区三区| 嗯,啊。舔我逼| 日本加勒比无码专区| 伊人国产成人av网站| 久久透逼视频| 精品91摸| 97精品人妻一二三四| 9Ⅰ老熟女| 大二网站亚洲| 久久久久久欧美精品se一二三四| 中文字幕少妇色 | 精品妇操一区二区三区| 欧综合网| 日韩无码黄色片| 亚洲人人操| 国厂麻豆77q4| 中文字幕三四五区| 老熟妇一区二区三区…| 丁香六月激情综合| 日日干天天干夜夜爽| 欧美91色| 久久久久久波多野吉衣高潮| 国产二区视频在线观看电影| 久久天天艹| 日本在线播放不卡一区| 91九色丨国产丨爆乳| 亚洲精品蜜桃久久久久久久| 成人久久久| 欧美久久人人网| 欧美性战999| 97亚洲在线| 成在线人在线观看视频| 亚洲熟女乱综合一区二区三区| 欧美男人的天堂| 日韩亚洲国产视频| 在线97在线| 亚洲久9| 插穴性爱视频在线观看| 97天天做| 91福利网在线观看| 亚洲第一视频 欧美风情 日韩| 日本色日夜干| 国产99热| 性91| 丰满人妻一区二区三区免费,| 高清肉丝中文无码| 激情综合色| 天天热精品| 日本操大逼| 高潮综合网| 国产精品区在线12p| 二对二中文字幕。| 操逼无码一区| 操死我了啊啊啊| 在线A日本| 亚洲狼狼干综合1| A一区片| 九九热超碰97亚洲最新香蕉| 无遮挡又黄又刺激的视频| av操操不卡| 亚洲欧美色图片| 91狠婷| 四虎免费在线观看| 欧插网站| 爱妃国产亚洲视频中文字幕| 久久久久久久久久黄色网| 精品久久无码午夜福利| 啊啊啊啊在线播放| 六月丁香啪啪| 久久一二三四| 欧美 日韩 另类 亚洲| 国内毛片婷婷六月色| 色网在线| 日夜啪电影| 91亚洲综合| 97爱免费插| 日本性交操一区二区不卡系列| 欧美永久激情一区二区| 性色av婷婷久久一区二区点复制| 男人的午夜天堂| 日本天天人人狠狠在线日美女 | 口爆吞精在线观看| 欧美啪啪啪91| 殴美综合色88| 亚洲欧美日韩精品久久久一区二区| 亚洲欧美日韩国产丝袜自拍中文| 久操不卡视频| 国产特级毛片AAAAAA高潮流水 | 综合少妇网| 97二区四区| ji熟女.com| 人妻人久久精品中文字幕| 激情五月激情综合网| 色牛aV| 久久伊人青青草| 国产亚洲精品自在线亚洲情侣| 起碰97| 茄子社区国产精品| 爽爽爽免费视频| 欧美久久人人网| 啊啊啊好大好深| 欧美性色综合网| 操逼网站视频漫画国产| 国产精品爱欲| 亚洲黄色AV电影| 大香蕉国产中文自拍| www.色婷婷色综合| 人人潮人人摸| 国产二区三区免费视频| 四虎影视国产精品| 亚洲色图综合网| 精品国产乱码久久久久久影片| 亚洲精品人妻在线| 久久神马| 久久久偷拍| 白丝在线一区| 综合天天网| 成人欧美一区二区三区黑人一| 天天摸夜夜添无码小视频| 亚洲精品久久久久久久蜜桃臀| 丰满丝袜少妇AV| 欧美中文字幕一区| 91精品电影18| 久久久涩| 国产精品国产| 天天躁狠狠躁av| 久久久久9999妇女| 亚洲综合影视| 久久AV无码1区2区3区| 99久久这里只有精品| 国产亚洲色婷婷久久99精品91| 夜夜操青青草| 欧美性爱www免费版| 亚洲av性爱电影| 天天综合网在线观看| 一区二区不卡免费| 日本 情色 1区2区3区| 淫色网综合| 一区二区偷拍拍视频| 欧美日本一区二区a人| 国产精品国产自产高清AV| 97精品一区二区视频| 久久精品店| 东京热毛片177b2viP| 欧美色另类| 夜夜久久久| 国产9熟妇视频网站| 亚洲色欧| 亚洲欧美清纯| 亚洲欧美日韩免费电影| 无码人妻丰满热妇又大又粗| 亚洲无码一区二区三区三州| 九九AV| 亚洲男人天堂2019| 丰满人妻一区二区三区在线| 天堂涩涩| 欧美,亚洲,日韩,v,天堂,手机在线观看 | 1024午夜激情男人的天堂| 91久久堂| 爱丝福利| 91中出| 丰满美女一级毛片在线播放| 中文字幕人成乱码熟女香港| 无码最新| 另类图片五月天| 东北黄色电影| 91女优在线观看| 久久久久久免费电影| 亚洲少妇综合| 搡老女人911熟妇老熟女| 91在线秘 男同| 无码天天操| 久久精品性| 99丝袜福利在线播放| 中文字幕天天天天天| 夜夜骑操视频| 97在线视频免费| 国产精品盗摄 偷窥盗摄| 国产欧美日韩一区二区三区| 97色插| 黄站在线免费观看| 欧美色涩| 色青青久久影视| 亚洲综合97中文网| 久草男人天堂| 久久精品国产AV一区二区三区| 午夜无码精品免费看性色| 成人欧美一区二区三区黑人一| 91亚洲不卡一区| 97就爱干| 亚一综合久久久久久久久久| 青青草视频久久久久| 97资源站国产精品| 涩涩涩综合| 久久久人妻| 天美精品一区二区三区四区在线观看| 日韩天天综合| 日本高清_区二区三区 | 久热在线精品免费观看| 青青网三级视频| 六月婷婷一区二区三区| 探花视频免费观看国产专区| 亚洲欧美日韩综合在线尤物 | 97资源站日韩| 欧美视频在线视频免费va| 亚洲高清内射| 精品久久久久久久| 超碰人人干| 伊人青青草久久| 黄页av| www.男人天堂| www久久国产精品| 色性综合| 91丨人妻丨国产丨丝袜| 日本色色色| 国产精品久久久久久9999| 女性喷水高潮在线观看| 久久综合18p| 在线播放欧洲免费av| 中国女人内射6XXXXX| 欧美日韩黄色片一区二区三区四区人与兽做爱| 99re在线| 久久欧洲| 五月丁香六月综合缴清无码| 亚洲少妇色图自慰直播| 国产黄色影片在线观看| A啊啊在线观看| 国产乱伦视频污| 97精品国产97久久久久久| 午夜噜噜噜| 色综合久久88色综合久久天天| 密臀AV在线| 国产一级高跟丝袜| 亚洲天堂电影网| 亚洲av影音先锋| 新97国产超碰| 牛黄色久午久| 91性情| 夜夜爽77777| 美女网站91| 欧美日不卡| 97精品久久| 亚洲最大黄网| 久思思热视频在线观看| 欧美综合 站| 午夜精品探花| 久久久精品网| 97国产亚洲中文在线| 国产性爱在线视频一区二区| 亚洲天堂少妇| 怡红院怡春院| av日韩在线观看电影| 欧美日韩妖精91com| 极品色社| 人妻 丝袜美腿 中文字幕| 久久久91福利姬| 激情五月婷| 无码高清操逼网址| 干妹子| 一二三区在线| 五月婷网站| 日韩在线观看AV| 曰韩欧美国产传媒麻豆第一区| 97这里只有精品| 国产av热热色| 美女刺激久久国产欧美| 九九精品无码专区免费| 亚洲精品97久久中文字幕| 九九久久九九久久| 乱伦AVxx| 久久国产在线一区二区| 另类欧美综合| 免费久久9999| www.婷婷| 国产一区二区啪啪视频| 极品综合| 激情小说激情视频| 青青伊人加勒比海| 天天综合网国产| 免费簧片在线观看| 樱花蜜乳av| 97亚洲精品超碰| 人人噜夜夜操| 日本丝袜美腿人妻九九| 九九激情网| av日韩国产一区二区| 久久丝袜| 亚州欧美综合| 少妇500双飞99| 4399成人黄A片| 国产精品爽爽v| 国内伊人久久久久久网站视频| 97超视频在线观看| 日日夜夜青青草母狗| 日产狠狠干| 亚洲欧美激情在线视频| 91快色色色色色| 色综合V| 99999精品| 久久中文字幕女同性恋一区| 天天激色| 色老牛| 黑人中出21连凳花野真衣| 狠狠操夜夜操蜜桃视频三区| 嗯啊不要啊在线| 久久 国产精品 一区| 淫荡熟女乱伦网| 强奸乱伦AV一天堂网| 国产精品福利视频| 日韩欧美日韩| 日本一级特级毛片视频| 国产精品自拍视频| 试看60秒 爽| 九九九网站| 麻豆av一区二区| 少妇的嫩逼图片| 性生活性生大爱77AV国产| 在线中文AV| 国产女人9999| 超碰久在线天天做| 亚洲成人性爱网站在线播放| 青青免费在线视频一区| 国产精品永久免费10000| 囯产精品久久久久久久久久梁医生| 欧美国产婷婷久久| TS人妖另类精品视频系列| 3PAV乱伦视频| 国内偷自视频区视频综合| 波多野结衣AV无码一区| A片 AV一级在线播放观看免费| 精品伊人久久久大香线蕉小说| 看日韩操逼| 九九综合久久| 国产女人高潮视频| 96AV久久久| 九九夜精品九九在线| 60秒试看最爽10分钟网站| 欧美国产视频| av草草在线电影| 精品成人久久久人人亚洲| 亚洲毛片久久| 黑人狂躁日本妞一区二区三区| 少妇高潮对白在线观看| 夜夜爽33333| 中文字幕88av在线| 夜夜免费视频| 国产激情视频一区区三区| 精品国产三级av韩国在线| 国产又黄又粗的视频| 国产精品嫩草影院免费| 无码9区| 欧美性暴力猛交XXXX| 加勒比伊人综合| 夜夜春夜夜操| 无码人妻精品一区二区三区99不卡 | 人人干人人操人人..com| 丁香五月激情综合| 九九九精品一区二区无码| 91女日逼| 国产亚州高清国产拍精| 96精品在线| 久久久久9999妇女| 九九久久久| 色色色色日本| 四虎影库国产精品免费| 亚洲 无码 有码 中文字幕| 亚洲天天操| 人人妻人射| 久久啊哟| 天天日天天干天天摸天天操| 国产精品视频自拍在线| 亚洲欧美精品91| 超碰久久网| 又大又大又大又粗爽高潮观看| 少妇3P性爱自拍| 欧美 亚洲 综合 制服| 欧美激色| 曰韩精品视频一区二区| 亚洲综合在线高清| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 欧美在线干| 久久久九九九九| TS人妖另类精品视频系列 | 国产人人干| 久久产精品一区二区三区电影| 少妇高潮对白在线观看| 四虎视频在线观看| 亚洲国产精品成人综合| 中文字幕一区av| 色偷偷2020免费视频播放| 天天操夜夜操狠很操| 第二页中文字幕| 欧姜老司机| 亚洲激情在线一区二区| 天天干夜夜肏| 91天堂色男人的天堂| 欧美日韩大陆黑人少妇99| 97aiaiai| 嗯嗯啊操我| 中文字幕精品码亚洲| 亚洲AV无码国产精品久久久久| 神马久久久久久久久久| 国产精品久久久久久亚洲色欲| 国产精品一区二区三区在线密挑| 久久精品国产亚洲av水密被窝| 久久性爱免费送| 欧美爱国产综合、| 国产日韩欧美三级片| 好爽要喷了| 最新啪啪视频| 日韩黄色成人性爱| 国产玖玖| 欧美五区| 久久久久久日韩| 91久久久老司机| 国产高清免费不卡av| 亚洲自拍一区夜夜操| 久久久久久亚洲Av无码| 日韩精品怡红院| 欧美人与性动交a美精品| 中国的操老妇女| av天堂5| 1024精品在线| 精品.99999| 日韩av免费一级电影| 一本大道综合伊人精品热热| 日韩国产成人自拍视频| 久草色在线观看| 午夜天堂精品久久久久91| 国产久久久久久| xxx亚洲午夜天堂| 一级成人性爱| 亚洲第一男人天堂| 97天天爽| 亚洲精品无码久久AV| 国产尤物在线三区| 99热精品青草在线 | 在线人人人人人人精品超| 国产97色在线 | 亚洲| 水澄无码AV| 第四色奇米影视777| 日韩大香蕉精品在线视频| 亚洲国产无码精品首页久久久| 91五十路| 久久6热精品99视频| 久久99热这里只频精品6学生| 草草电影院| 大香蕉92| 亚洲丝袜B诱惑| 国产精品自在自拍视频| 操一操摸一摸| 亚洲欧美变态| 欧美情色男人的天堂| 天美麻花大全视频| 人人操人人插 - 百度 - 百度| 黄久在线| 亚洲色图欧美色图制服丝袜| 91超级碰| 夜夜影视四色| 亚洲成人精品在线一区| 成人三级片一区二区三区视频| 啊啊啊啊啊好大好舒服想要| 五月激情综合网| 欧美日韩性爱无码| AV一起草在线| 中文字幕97| 91狠狠综合久久| 精品中文日韩字幕视频| 蜜臀精品1区2区| 日本色色网| 久干9操| 热思思免费视频| 成人一二三区| 亚欧美综合| 亚洲吊色| 屌妞视频久久久久久久久久久久| 久久久精品国产亚洲伊人| 操逼逼无码| 国产精品免费日韩| 超碰色男人操熟女| 日本黄大片在线观看视频| 日韩在线电影| 久久久91| 亚洲日韩电影| 99久久99久久免费精品蜜臀| 91色宗合| 97欧美在线| 欧美色院| 久久夜夜| 91在线免费精品视频| 另类欧美色| 成人无码欧美一级A片狼牙直播| 国产av色网| 欧美高潮| 亚洲色图欧美色图在线播放| 欧亚韩国999| 激情文学亚洲| 精品无码少妇| 亚洲se91| 日韩精品资源专区二区| 亚洲春色欧美激情自拍| 天天操人人操狠狠插| 国产日产精品久久快鸭的功能介绍| 欧美18 在线观看| 免费观看性欧美一级| 国产精品99精品视频网站| 色黄污美女啪啪啪免费网站| 欧美一级A片不卡视频。| www.91理论| 黄色毛片A片| 婷婷色中文字幕| 激情综合五月天| 欧美线天码中字| 丰满欧美放荡少妇在线| 男女啊啊啊| 中文字幕一区二区视频在线观看| 日本爽爽爽爽爽爽免费视频| 亚洲免费在线探花| 2020国产精品| 精品国产嫩穴视频| 加勒比AV网| 加勒比久久av| 欧美色图 色综合图| 91一区二区三区蜜桃| 大黄片做爱的大的| 日本久久99| 日韩/97| 欧美丝袜美女电影一二三四区| 一二三四区电影| 黑人娇小av在线播放| 十八禁视频一区二区| 男男H黄动漫啪啪无遮挡网站| 能看的av| 麻豆精品三区视频| 欧美中文综合| 国产91精品福利在线| 69人妻精品一区二区绯色| 97超碰无码网| 亚91网| 少妇人妻好深太紧了vr91| 制服乱伦| 青青伊人加勒比海| 国产毛片毛片4p懂色| 午夜福利精品| yazhousetuoumei| 99999亚洲另类| 操www| 欧美日韩丝袜| 精品无码一区二区三区| 日韩无码操逼片| 色婷婷五月天| 国产天天噜一噜久久久| 午夜福利激情在线视频| 亚洲色人妻综合| 后入综合久久| 国产精品美女在线一区| 久久综合乱子伦国产免费| 中文字幕第二页| 国产一级不卡在线观看| 欧美综合加勒比在线| 久久香蕉国产线看观看亚洲女人 | 精品人妻一二三四区视频| 久久精品熟女亚洲AV麻豆软件| 日本操BAV| 淫骚熟女一区二区三区| 被操高清无码视频| oumeisetu综合| 熟人人妻少妇精品久久| 丝袜美腿制服人妻二区中文字幕| 午夜精品久久久久| 久久永久无码人妻视频| 免费观看欧美日韩操逼视频| 五月天日日操夜夜操| 中文字幕一区二区韩| 欧美日韩少妇色情| 欧美精品69性爱| 天天看片天天爽| 久久久无码视频| 狠狠穞A片一區二區三區| 物业黑人 AV一区| 精品人妻av在线播放| 美女AV一区二区| {男男暴菊gay无套网站| 青青青青草av在线观看| 日韩簧片免费看| 91中文精品日韩欧美在线| 丁香七月婷婷| 欧美熟女激情| 人人操人人干xxx| 91国产丝袜足交精品视频| 亚洲婷婷丁香在线| 精品v1区| 久久首页| 欧洲站一级二级三级h| 蜜臀AV网站| 人妻激情视频| 欧美1727免费观看视频| 91免费看一区二区三区| 亚洲精品骚逼| 日韩丰满熟妇| 南澳成人一级片在线播放| 五月天激情综合网| 黄色大片视频在线免费看| 99热精品青草在线 | 97一本大道亚洲一区| 亚洲二区精品在线观看| 久久久性爱| 人妻加勒比东京热| 中文字幕欧美日韩三级| 老熟妇综合| 亚洲欧洲日韩国产自在线| 一卡二卡在线播放| 天天操天天射青青草| 欧美日韩另类在线| 亚洲男人天堂视频| 99国产人成精品| 国产色图乱伦| 啊啊啊啊好疼视频| 久久99操天天日| 成人影院永久免费观看网址| 日本97久久| www.97在线| 奇米四色影视777久久久| 91激情国产| 成人精品电影| 亚洲一区二区三区四区视频| 久久超碰97| 久久亚码| 亚洲欧洲美腿丝袜| 亚洲乱码国产乱码精网站| 91欧美网| 九9热伊人| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 天美传媒国产原创中文字幕亚洲欧美另类 | 美女午夜福利免费视频| 亚洲男人天堂2017| 久久綜合很很很| 国产激情视频在线观看| 精品毛片av一区二区| 久久黄黄黄| 日本男人插女人的逼黄色| 五月婷婷丁香| 很黄很色的视频在线观看| 日韩一级二级三级| 超碰无码五月97| 丝袜性亚洲| 日本有码久久| 伊人色综合网电影| 国产精品熟女九色九色蜜臀| 97天天摸天天爽| 久久久一区二区| 亚洲网自拍| 青青草操逼逼视频| 无码WWW免费视频网站| 女人精品内射国产99| 99少妇| 天天爱综合网| 精品人妻一区春色| 亚洲色图欧美色图制服丝袜| 蜜桃久久综合视频| 99久久久久| 伊人色综合网电影| 久久高清欧美国产| 99精品视频在线观看免费| 久久草草亚洲蜜桃臀| 亚洲天堂男人| 久久中出| 97干在线| 超碰免费97| 囯产精品久久久久久久久久二区三区 | 亚洲伊人成综合成人网| 亚洲色交| 99re久久| 欧美色性情| 亚洲中文字幕一区二区| 亚洲综合色图欧美| 四虎精品亚洲| 美女性91| 免费国产视频| 毛片久久| 欧美一区二区日韩三区| 国产精品日韩在线一区| 91搞逼视频| 日韩精品碰碰| A 天堂在线观看视频| 另类一区| 日本三级中国三级99人妇网站| 丁香五月色情| 亚洲综合网电影91| 久久人人爽爽爽人久久久| 蜜奶av| 一区二区视频你懂的| 超碰1997| 大干人妻| 神马久久午夜| 都市久久精品激情亚洲| 色乱二区| 婷婷五月花| 性色avv| 日韩精品第3页| 天天操熟妇| 97超碰香蕉| 囯戸精品高潮呻吟旡码| 亚洲一区二区三区四区视频| 五月色综合| 夜夜爽妓女| 欧美熟女丝袜| 色老大| 伊人操你| 色欲日韩欧美在线一区| 亚洲综合网电影91| 久久久不卡区一区二区三区久久久| 久草精品视频| 久久精品区| 国产在线强奸视频| 五月丁香激情综合| 日韩精品高清资源在线| 国产风韵犹存熟妇三区| 国产97亚洲| 国产不卡免费在线视频| 男人的天堂啪啪| 亚州 综合 色图| 欲香欲色综合天天伊人| 韩三级a视频在线观看| 熟女突然公开看18禁影片| 欧美日韩色图片| 丰满丝袜少妇AV| 青娱乐淫乱1314| 91九色在线| 精品网站99999| 国产97在线 | 亚洲| 十八禁的黄污污免费网站| 97超碰jingpin| 九九亚洲色在线观看| 人人爱人人乐人人操| 天天插天天操| 黑人精品久久97| 国产一国产一级毛片古装| 大香蕉免费乱伦视频| 综合网欧| 久久色精品视频在线| 欧美强奸一区二区诱惑| 天天享受天天看| 97超碰欧美手机| 欧美亚洲尤物久久| 亚州色站 日韩电影| 久草这里只有精品| 偷窥自拍A片| 九九九九免费高| 亚洲国产成人精品999| 一区二区三区在线资源| 久久亚洲日韩国产欧| 免费αⅴ在线观看| 嗯嗯啊啊用力视频免费| 91精品人妻一区二区三区蜜桃| 国产成人无码高清| 天综合网欧美| 亚洲天堂一区二区久久| 亚洲第一页欧美| 亚洲影院成人| 清纯唯美激情四射| 蜜臀久久99精品久久久久久婷婷| 91九色在线| 婷婷10月天青娱乐| 国产高清成人传媒影视| 久久久久96| 亚洲成a人在线观看久| 一区二区国产视频在线观看| 久综合国内精品自在自线| 日本不卡码黄色| 久久国产AⅤ| 夜夜嗨AV蜜臀av| 黄色免费网| 少妇同性| 精品中文字幕一区二区| 99色骚| 超碰在线观看av不卡| 国产精品久久久久久久久久久久久久久| 一区二区三区免费视频入口| 偷拍亚洲高清图片| www.亚洲黄色| 熟妇人妻一区二区三在线| 国产精品 久久久精品一牛| 婷婷色香| 99老司机精品视频在线观看| 精品美女少妇一区二区三区| www.99中文字幕| 色五月激情AV在线| 欧美做爰无码A片视频| 日韩精品人妻中文字幕不卡乱码| 中文久久爆乳| 天天综合官网| 青青草原综合久久大伊人精品| 欧美一区二区一级岛国大片| 男人的天堂在线| 操逼网站视频漫画国产| 亚洲人妻爽爽爽| 天美国产精品| 国产精品久久久久久久AV大片| 亚洲国内精品成人不卡| 国产亚洲精品第一最新| 久久97视频| 亚洲精品蜜桃久久久一区二区三区| 1000部熟女视频在线观看| 东京热不卡视频| 99精品久久久久久久婷婷蜜桃| 国产99热| 怡红院成人av| 中文字幕 国产 精品| 97超碰人妻| 国产美女精品| 久久激情视频| 久久精品久久久久久久久| 视频黄站| 欧美日韩情色一区二区| 夜夜天天噜狠狠爱2021| 欧成人在线| 日本日日色视频| 欧美日韩性爱视屏免费看了| 国语av狠狠色丁香婷婷综合激情| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 欧亚日韩中文在线| 亚洲自拍一区夜夜操| 五月丁香婷婷综合网| 久久免费99精品久久久久久| 97久操| 久久国99999| 九九色色| 国产精品色片一区二区| 天天拍夜夜| 风月影院男女十八禁| 欧美九九爱| 乱伦日本色图AⅤ| 欧美AAAA黄片| 97操b| 天天操天天日青青草超碰av| 少妇99成人麻豆| 成人av动漫在线观看| 国产极品粉嫩馒头一线天av| 欲色综合| 岛国不卡超碰护士AV在线播放| 久久久久久久久久久久久久久性生活视频| 国产高清在线观看欧美| 12一15性XXXX粉嫩国产| 易易A毛视频| 久久久久久少妇| 欧美人妻色| 久久9亚洲| 激激五月| 五月天婷婷小说| 久久婷婷综合国际产色怕| 亚洲图片日本AⅤ欧美在线| 国产9区| 好爽视频在线观看| com 首页 18岁 禁区 女优 免费 精选 同城| 欧美少妇第一页| 看看小穴| 你操综合| 成人贴图日韩欧美| 丁香五月av| 日韩av乱伦| 一区在线国产播放| 操逼片中文| 欧美aaaaaaa| 嗯啊抽插大香蕉网页| 日韩免费看在线黄色片| 日本国产欧美一区三区二区| 女性91网站| 看全色黄大色大片免费视频| 91爱| 中文字幕后石码三区四区| 伊人操| 久久男人天堂| 亚洲图片欧美色图| 亚洲第一页第二页激情| A 天堂| 一区AV| 狠狠操官网| 成 人片 黄色大片| 香蕉久久AⅤ...| 亚洲成人日韩小说| 中文字幕91页| 中日韩欧美精品无码AⅤ一区二区| 成人性爱视频在线看| japan日本高清乱xxxx| 操逼逼福利视频| 亚洲各类熟们中文字幕| 蜜乳av首页| 长长久久免费视频| 91美女视屏| 大香蕉在线免| 久久久熟女一区| 亚洲精品第一| 日韩乱伦视频| 五月丁香久久| 国产久久久9999| 大香蕉男人的天堂| 蜜桃臀AV在线| 91观看 国产白丝| 99婷婷一区二区| 色网在线视频观看免费| 五月婷婷丁香中文字幕| 精品一区二区啪啪啪| 香蕉一区二区三区在线视频| 天天日天天屌天天操| 亚州精品人妻一二三区| 中文字幕三四区| 亚洲国产婷婷在线播放| 人人透人人操| 综精品久久久aaaa| 伦理日韩国产久久| 亚洲国产天堂| 天天插夜夜操| 精品久久99| 天天做天天爱天天爽AV| av草草在线电影| 亚洲av青草久久一区二区| 熟女乱伦A| 日韩精品99999| 超碰久久草| 无码78| 乱伦av麻豆| 混色激情av| 97热视频在线观看| 亚洲天堂男人天堂| 欧美东京热精品A∨| 91熟女熟妇视频网站| 国产一区二区久久| 香蕉视频欧美一卡二卡| 亚洲精品天堂久久A∨51成人漫| 久热这里| 久久综合久色欧美综合狠狠| 草草草草视频| 一级久久性爱视频| 日本999精品视频| 欧美情色亚洲| 国产精品一区二区三区,亚洲综合 性开放中文AV高清无码免费看 | 人妻少妇色综合| 亚洲精品一卡二卡三卡福利视频网站 | 七月婷婷综合| 久久香蕉国产线看观看猫咪av| 亚洲情色婷婷五月天| 爱丝福利| 日本欧美一区二区三区免费| 台湾佬中文娱乐自偷自拍| 香港久久久| 黄骗免费| 国产精品熟女九九九| 蜜桃久久一区二区| 欧美日韩第一页| 色呦色呦色精品| 老熟女搡BBBB搡BBBB视频| 素人播放一区| 日韩精品啪啪啪| 在线观看黄色电话| 97资源免费视频| 日韩在线地址一| 九九热免费国产视频婷婷伊人| 欧美色蜜桃97| 亚洲午夜av| 91狠狠狠| 手机看av网站在线看| 天天综合麻豆视频| 夜夜天天噜狠狠爱2021| 91国产大片| 18禁无码永久免费无限制| 中文字幕在线观看第二页| 亚洲色图欧美| 97天天摸天天碰| 快灬快灬 一下爽蜜桃在线观看 | 先锋女优在线观看视频| 丁香婷婷大香蕉| 日韩本不卡视频在线观看| 熟女视频久久| 97伊人超碰| 99九九久久| 精人妻一区二区三区| 五月天婷婷色色| 亚洲色电影在线| 蜜臀国产AV中文字幕| 高清无码人妻久久久一区二区三区aⅴ| 97久久超碰| 97资源亚洲| 内射白嫩美女| 亚洲中文字幕精品一区| 影音综合网| 日逼逼免费看| 久久成人午夜狠狠| 黑人黄片在线免费观看| 亚洲第一视频 欧美风情 日韩| 影音先锋国产精品| 人妻少妇精品视频一区二区三区| 人妻啊啊人妻啊| 欧美亚洲| 亚州综合色图| 国产黄色av大片网站 | 婷婷五月天福利| 九九AV| 情色五月天久久久| 国产免a费看黄片在线| 韩国嫰模上门援交视频| 色婷婷九月| 翔田千里AV无码秘 三区| 99 国产丝袜在线| 国产精品探花视频| 少妇天堂| 极品内射| www.国产高潮精品| 91天天综合日韩欧美| 91殴美大片| 日本五十路熟女一区二区| 欧美视频一区二区三区| 920日本午夜免费| 欧美一区二区三区互相| 国产精品动态一区二区三区四四| 亚洲日本韩国在线| 亚洲无码偷拍| 色69大色97香蕉| juliaann精品熟女一区| 八人操人人摸人人看| 久久久久久久性爱| 中文字幕78| 九九伊人网| 久久五十路熟女人妻| 加勒比99999| 97国产色图 | 欧美性少妇| 中文字幕av久久爽Av| 99精品久久久久久久婷婷蜜桃| 尤物网站91| 久久精品无码熟妇一区二区三区视频导航| 玖玖97综合| 懂色AV蜜臀无码精品APP| 91欧美大片| 男人的天堂kva| 熟女欧美日韩综合婷婷| 亚洲综合在线视频| 国产成人欧美一区二区三区的国产| 久久精品国产亚洲粉嫩| 91精品国久久久久久无码| 国产九月婷婷| 新版天堂中文资源8在线| 黑人精品XXX一区一二区| 深喉吞精| 午夜精品久久久久久久| 久久伊人网视频一区二区三区| 十八禁啪啦拍视频无遮挡| 日韩中文字幕精品一区在线| 热99re69精品8在线播放| 91青青在线视频| 五十路熟女工口 | 色97欧美| 久草精品一区 | 熟妇国产免费一区| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 国产偷拍网站| 久久女人| 少妇贴图| 亚洲色图8| 麻豆a'v电影| 少妇精品久久久| 九九拍拍精品视频在线播放| 国产不卡精品91| 天天天天干| 91久久久久久久| 国产精品视频精品一二| 激情视屏国产乱伦强奸| av在线免费一区二区| 久久亚洲欧美中文字幕国语| 国产毛片毛片4p懂色| 午夜精品久久久| 亚洲综合97| 亚洲色人| 男人的天堂 在线一区| 91美女视频在线观看| 天堂性色| 久夜视频| a'v在线资源| 丁香色狠狠色综合久久小说| 另类图片综合| 97久久久| 亚洲āv网址在线观看| 国内亚洲高清无码| 日本羞羞的视频在线播放| 中文字幕第9页萱萱影音先锋| 欧美性xxxxx狂欢| 97无码视频在线播放| 人人干黄色| 免费精品中文字幕| 国产网红精品| 无码国产精品久久久久| 人妻精品视频一区二区| 精品成人av一区二区三区在线| 欧美性爱精品一区二区| 丁香六月婷婷综合| 日韩精品99999| 刺激性视频黄页| 亚洲欧美精品久| 嫩草91| 亚91网|