日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满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ì)思路。整個(gè)壓縮包僅含1個(gè)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)概論、需要?jiǎng)邮执罱ň毩?xí)環(huán)境的學(xué)習(xí)者具有直接參考價(jià)值。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)橐粋€(gè)學(xué)生可以選多門課一門課也可以被多個(gè)學(xué)生選學(xué)生和課程之間是多對多關(guān)系直接在一個(gè)表里加字段會(huì)造成大量數(shù)據(jù)冗余和更新異常。sc 表把學(xué)號和課程號各存一條記錄再加上成績字段就把多對多關(guān)系拆成了兩個(gè)一對多關(guān)系。student 表的常見字段是學(xué)號、姓名、性別、年齡、系別主鍵用學(xué)號 sno。course 表的主鍵是課程號 cno同時(shí)會(huì)有一個(gè) cpno 字段表示先修課程號這個(gè)字段指向課程表自身的主鍵形成自引用外鍵用來做“查先修課”這類的遞歸查詢練習(xí)。sc 表的主鍵是 (sno, cno) 聯(lián)合主鍵sno 和 cno 分別引用 student 和 course 的主鍵grade 字段存百分制成績。這個(gè)設(shè)計(jì)的巧妙之處在于兩個(gè)字段的聯(lián)合主鍵能防止同一學(xué)生同一課程出現(xiàn)兩條重復(fù)選課記錄這是數(shù)據(jù)完整性約束里的典型考點(diǎn)。練習(xí)時(shí)還會(huì)用到 cpno 為 NULL 的“沒有先修課”的記錄這就把 SQL 里的 NULL 處理難題也帶出來了。字段類型也要留意學(xué)號和課程號雖然是數(shù)字但常見教材把它們定義成 CHAR 而不是 INT目的是讓前導(dǎo)零能保留也方便練習(xí)字符串比較。2.2 標(biāo)準(zhǔn)建表腳本MySQL 與 SQL Server 的語法差異很多初學(xué)者從 PDF 里抄答案時(shí)發(fā)現(xiàn)在自己電腦上建表總是報(bào)錯(cuò)原因往往是教材示例用的 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;這段腳本里幾個(gè)參數(shù)要單獨(dú)說明。DEFAULT CHARSET utf8mb4 是為了讓中文姓名和課程名正常存儲如果使用默認(rèn)的 latin1 字符集插入中文時(shí)會(huì)變成亂碼或者直接報(bào)錯(cuò)utf8mb4 比 utf8 多支持 emoji 等四字節(jié)字符對練習(xí)環(huán)境來說更保險(xiǎn)。表引擎指定 InnoDB是因?yàn)橥怄I約束只有 InnoDB 支持MyISAM 引擎雖然查詢快但建外鍵時(shí) MySQL 會(huì)靜默忽略不報(bào)錯(cuò)也不生效這是最隱蔽的一個(gè)翻車點(diǎn)。sage 用 SMALLINT 而不是 INT是教材里的經(jīng)典設(shè)計(jì)用來讓大家理解“夠用就好”的字段長度設(shè)計(jì)思路。grade 用 DECIMAL(5,1)意思是總長度 5 位、小數(shù) 1 位最高能存 999.9百分制成績足夠用而且能保留一位小數(shù)方便練習(xí) AVG 聚合時(shí)看到非整數(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ī)則下會(huì)報(bào)“對象名無效”一類的怪異錯(cuò)誤實(shí)測最穩(wěn)的方式就是加 N 前綴。用了 GO 分隔批次是因?yàn)?SQL Server 的 CREATE DATABASE 之后必須 USE 切換上下文如果兩個(gè)語句在同一個(gè)批次里執(zhí)行后面的 CREATE TABLE 可能仍然被解析到 master 庫。這塊屬于 SQL Server 特有的玄學(xué)問題按上面分批次寫就不會(huì)出錯(cuò)。2.3 插入練習(xí)數(shù)據(jù)覆蓋基礎(chǔ)查詢需要的典型取值建完表之后必須插入數(shù)據(jù)才能練習(xí)。數(shù)據(jù)量不用大但要覆蓋邊界情況NULL 成績、先修課缺失、同系別多人、男女都有、成績重復(fù)這些都會(huì)在后續(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形成了一個(gè)有向的“先修課鏈條”練習(xí)自連接時(shí)可以查“間接先修課”這類題目。sc 表里最后一條記錄 grade 為 NULL表示王敏選了數(shù)據(jù)庫課但還沒出成績這就是聚合函數(shù)和 WHERE 條件練習(xí)里最容易出錯(cuò)的地方COUNT(grade) 會(huì)忽略 NULL而 COUNT(*) 不會(huì)。INSERT 語句用多值逗號分隔語法比逐條 INSERT 效率高很多而且一旦中間某行出錯(cuò)整個(gè)語句會(huì)回滾不會(huì)出現(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)先檢查是否漏跑了某個(gè)批次或者外鍵約束攔截了部分插入。3. 練習(xí)題的梯度設(shè)計(jì)從單表查詢到窗口函數(shù)3.1 第一梯度單表查詢、排序與去重表建好、數(shù)據(jù)插完就可以開始真正的練習(xí)。第一梯度只涉及單張表目標(biāo)是練 SELECT 的基礎(chǔ)功投影、選擇、排序、去重。這類題目在面試?yán)锟粗唵蔚芏嗳藢懗鰜淼?SQL 在邊界情況下是錯(cuò)誤的尤其是去重和 NULL 處理。先看一個(gè)最基礎(chǔ)的查詢查所有學(xué)生的學(xué)號和姓名。這道題沒有難度但能驗(yàn)證表結(jié)構(gòu)是否正常。SELECT sno, sname FROM student;接著看一個(gè)稍微有考點(diǎn)的題目查詢所有學(xué)生的系別。如果直接寫 SELECT sdept FROM student結(jié)果里會(huì)出現(xiàn)重復(fù)的 CS。要得到唯一的系別列表得去重。SELECT DISTINCT sdept FROM student;DISTINCT 在這里的語義是“對查詢結(jié)果整體去重”也就是說只有兩行所有選中列的值都相同才合并。它作用于整個(gè) SELECT 的投影列表而不是只作用于緊挨著的那個(gè)字段。很多人以為 SELECT DISTINCT sname, sdept 的意思是“只對 sname 去重保留 sdept”實(shí)際上它是把 (sname, sdept) 作為一個(gè)整體判斷重復(fù)。這是一個(gè)高頻面試題也解釋了為什么同樣一句 DISTINCT 在不同組合列下結(jié)果差異巨大。第二梯度之前還要過一個(gè)排序練習(xí)查全體學(xué)生名單按年齡降序排列。SELECT sno, sname, sage FROM student ORDER BY sage DESC;ORDER BY 的執(zhí)行順序在 SQL 邏輯中排在 SELECT 之后所以它可以使用 SELECT 列表里的別名比如 ORDER BY 年齡。這個(gè)順序問題很多人混淆實(shí)際上 SQL 語句的書寫順序是 SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY但邏輯執(zhí)行順序是 FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY。搞清楚這個(gè)順序后面理解“為什么 WHERE 里不能使用別名”才不會(huì)靠死記硬背。3.2 第二梯度多表連接、聚合與分組第二梯度是這套練習(xí)表的重頭戲也是 SQL 能力分水嶺。連接查詢要把兩張或多張表按條件拼接聚合查詢則把多行匯總成一行。兩者經(jīng)常組合出現(xiàn)。最常見的連接練習(xí)查詢每個(gè)學(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 邏輯等價(jià)但顯式寫法把連接條件從 WHERE 中分離出來WHERE 里只留過濾條件。這種拆分的實(shí)際意義是當(dāng)查詢超過三張表時(shí)隱式連接特別容易漏寫一個(gè)連接條件導(dǎo)致產(chǎn)生笛卡爾積結(jié)果行數(shù)爆炸到幾十萬條這就是俗稱的“翻車現(xiàn)場”排查時(shí)還不好定位。顯式 JOIN 配合縮進(jìn)每個(gè)連接關(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。這里有一個(gè)關(guān)鍵細(xì)節(jié)AVG(grade) 會(huì)自動(dòng)忽略 NULL所以王敏那條沒有成績的記錄不會(huì)拉低平均值。如果想把 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 在分組之后過濾組。同一個(gè)條件寫在 WHERE 和寫在 HAVING 里語義完全不同。比如查出平均成績大于 85 的課程AVG(grade) 85 這個(gè)條件只能放在 HAVING 里因?yàn)樗恰敖M”的特征不是“行”的特征。很多初學(xué)者把聚合條件誤寫在 WHERE 里報(bào)錯(cuò)就是因?yàn)闆]理解這個(gè)執(zhí)行順序。3.3 第三梯度子查詢、EXISTS 與窗口函數(shù)第三梯度是進(jìn)階內(nèi)容也是 PDF 練習(xí)里區(qū)分“會(huì)寫”和“寫得優(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 );這個(gè)子查詢是典型的非相關(guān)子查詢內(nèi)層執(zhí)行一次得到課程 1 的平均分外層再逐行比較。注意如果 AVG 結(jié)果帶多位小數(shù)和外層 grade 比較時(shí)不會(huì)因類型問題出錯(cuò)因?yàn)?MySQL 會(huì)按 DECIMAL 精度自動(dòng)比較。這道題練習(xí)的價(jià)值在于它要求先理解聚合結(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)且語義清晰。這個(gè)查詢是相關(guān)子查詢對 student 表每一行都要執(zhí)行一次子查詢但數(shù)據(jù)庫優(yōu)化器通常會(huì)把它改寫成 JOIN 或 semi-join 來提升性能。練習(xí)時(shí)可以把 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ù)不會(huì)把多行合并成一行每行仍然保留自己的身份。這個(gè)特性讓“分組 top N”這類查詢變得非常簡潔。注意內(nèi)層先 WHERE grade IS NOT NULL 過濾掉 NULL 成績否則排序時(shí)空值會(huì)默認(rèn)排最前面結(jié)果就錯(cuò)了。3.4 練習(xí)答案的驗(yàn)證方式用 EXPLAIN 看執(zhí)行計(jì)劃光寫出能跑出結(jié)果的 SQL 不算完還得知道它是怎么跑的。數(shù)據(jù)庫提供了 EXPLAIN 命令來查看執(zhí)行計(jì)劃這是從“會(huì)寫 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ù)異常大時(shí)要檢查外鍵列上有沒有索引。sc 表的 sno 和 cno 列如果沒建索引JOIN 就會(huì)退化成嵌套循環(huán)全表掃數(shù)據(jù)量小的時(shí)候感覺不到到了生產(chǎn)環(huán)境幾百萬行就徹底卡死了。做練習(xí)時(shí)每寫完一道題都順手把執(zhí)行計(jì)劃拉出來看一眼。等把 system→const→ref→range→ALL 這幾檔都親眼見過一遍才算真正對 SQL 優(yōu)化有了體感。到這一步student、sc、course 這套練習(xí)表的價(jià)值才算被完全榨干——它不僅教你寫 SQL還教你診斷 SQL。4. 做這套練習(xí)常見的 5 個(gè)坑從建表失敗到結(jié)果對不上4.1 主鍵重復(fù)與 NULL插入數(shù)據(jù)時(shí)的第一道坎現(xiàn)象執(zhí)行 INSERT 語句報(bào)錯(cuò)提示 duplicate entry 或者不能為 NULL。原因聯(lián)合主鍵的任意重復(fù)都會(huì)觸發(fā)沖突比如向 sc 表重復(fù)插入 (201215121, 1) 這條選課記錄。另外student 表的 sno 是主鍵插入 NULL 也會(huì)被拒絕但 sc 表的 sno 和 cno 是外鍵同時(shí)又是聯(lián)合主鍵的一部分如果這兩列有一個(gè)為 NULLInnoDB 對主鍵列有隱式 NOT NULL 約束同樣報(bào)錯(cuò)。解決插入前先用 SELECT 確認(rèn)數(shù)據(jù)是否存在。習(xí)慣性在插入腳本里加 INSERT IGNORE 或者 ON DUPLICATE KEY UPDATE 確實(shí)能跳過錯(cuò)誤但練習(xí)場景不建議這么做因?yàn)檫@會(huì)掩蓋數(shù)據(jù)本身的重復(fù)問題。更推薦的方法是直接面對報(bào)錯(cuò)通過 SELECT sno, cno, COUNT() FROM sc GROUP BY sno, cno HAVING COUNT() 1 查重復(fù)數(shù)據(jù)再?zèng)Q定保留哪一條。4.2 字符集與排序規(guī)則中文亂碼的根源現(xiàn)象插入中文后查詢顯示亂碼或者 CREATE TABLE 直接報(bào)錯(cuò)字符集不識別。原因MySQL 默認(rèn)字符集可能是 latin1中文無法存儲。SQL Server 則可能是排序規(guī)則不匹配導(dǎo)致數(shù)據(jù)庫兼容級別或排序規(guī)則沖突。解決MySQL 建庫時(shí)顯式指定 DEFAULT CHARSET utf8mb4并且連接字符串里也要加上 characterEncodingutf8 或 utf8mb4。一個(gè)容易被忽略的坑是即使數(shù)據(jù)庫和表的字符集都對了如果客戶端連接的字符集不對插入時(shí)仍會(huì)出現(xiàn)亂碼。先執(zhí)行 SHOW VARIABLES LIKE character_set%; 看當(dāng)前會(huì)話的字符集再把連接參數(shù)統(tǒng)一。SQL Server 那邊建庫時(shí)把排序規(guī)則指定為 Chinese_PRC_CI_AS 基本可以一勞永逸。4.3 外鍵約束與刪除順序先刪 sc 還是先刪 student現(xiàn)象執(zhí)行 DELETE FROM student WHERE sno201215121; 報(bào)錯(cuò)提示 foreign key constraint fails。原因sc 表里有引用這個(gè)學(xué)號的記錄而 sc 表的外鍵約束默認(rèn)行為是 NO ACTION即存在子記錄時(shí)不允許刪除父記錄。解決先刪子表再刪父表。正確順序是 DELETE FROM sc WHERE sno201215121; 然后 DELETE FROM student WHERE sno201215121;。這個(gè)順序問題的價(jià)值不僅在于完成刪除操作它本身就是關(guān)系模型里“引用完整性”的絕佳教學(xué)案例。實(shí)際業(yè)務(wù)中還有一種做法是給外鍵加上 ON DELETE CASCADE讓數(shù)據(jù)庫自動(dòng)刪子記錄但這在生產(chǎn)環(huán)境非常危險(xiǎn)一不小心就級聯(lián)刪掉大量業(yè)務(wù)數(shù)據(jù)我一般建議顯式控制刪除順序而不是依賴級聯(lián)。4.4 連接條件漏寫笛卡爾積的翻車現(xiàn)場現(xiàn)象多表連接查詢返回的結(jié)果行數(shù)異常多比如 student 4 行和 sc 7 行連接后返回 28 行。原因連接條件沒寫或者寫錯(cuò)數(shù)據(jù)庫把兩表做了笛卡爾積每行和另一表的每行配對。解決連接查詢時(shí)先確認(rèn)結(jié)果行數(shù)是否等于符合業(yè)務(wù)邏輯的行數(shù)。經(jīng)驗(yàn)判斷標(biāo)準(zhǔn)是如果多表連接沒有 WHERE 或 JOIN ON 條件返回行數(shù)是各表行數(shù)乘積必然有問題。連接條件漏寫時(shí)數(shù)據(jù)庫不會(huì)報(bào)錯(cuò)因?yàn)榈芽柗e在語法上是合法的這是最讓人頭疼的地方。實(shí)踐中寫多表查詢時(shí)先分別跑一遍 SELECT COUNT(*) FROM 各表估算出預(yù)期結(jié)果行數(shù)范圍再執(zhí)行連接查詢。另外養(yǎng)成每張表用別名、JOIN 條件顯式寫在 ON 子句里的習(xí)慣能顯著降低漏寫概率。4.5 聚合與非聚合混用GROUP BY 的經(jīng)典報(bào)錯(cuò)現(xiàn)象執(zhí)行 SELECT sno, cno, AVG(grade) FROM sc GROUP BY sno; 報(bào)錯(cuò)提示 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)錯(cuò)如果關(guān)掉這個(gè)模式雖然能執(zhí)行但返回的 cno 是組內(nèi)隨機(jī)一行結(jié)果不可預(yù)測。解決搞清楚查詢意圖。如果確實(shí)想查每個(gè)學(xué)生的學(xué)號和他每門課的成績就不該用 GROUP BY如果只想查每個(gè)學(xué)生平均分SELECT 里就不該出現(xiàn) cno。這個(gè)報(bào)錯(cuò)其實(shí)是數(shù)據(jù)庫在保護(hù)你比暗中返回隨機(jī)值好得多。練習(xí)時(shí)遇到這種錯(cuò)誤先停下來理清“我要的是明細(xì)還是匯總”再動(dòng)手改 SQL是最快的路徑。5. 把練習(xí)成果接到真項(xiàng)目驗(yàn)證方法、索引設(shè)計(jì)與一條實(shí)用技巧5.1 用索引設(shè)計(jì)與執(zhí)行計(jì)劃對比來驗(yàn)證練習(xí)效果練習(xí)做完后建議做一個(gè)加索引前后的對比實(shí)驗(yàn)。以 sc 表為例在不建任何輔助索引的情況下執(zhí)行按 cno 過濾的查詢EXPLAIN 結(jié)果會(huì)顯示 typeALL 全表掃描。然后手動(dòng)加一個(gè)索引CREATE INDEX idx_sc_cno ON sc(cno);再執(zhí)行同樣的查詢EXPLAIN 里 type 會(huì)變成 refrows 預(yù)估數(shù)明顯下降。這個(gè)對比就是把前面練習(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í)有三個(gè)明顯的邊界要注意。一是數(shù)據(jù)量生產(chǎn)環(huán)境單表百萬行起步這套練習(xí)表沒有分區(qū)、沒有數(shù)據(jù)生命周期管理直接照搬會(huì)有性能問題。二是缺失審計(jì)字段真實(shí)業(yè)務(wù)表幾乎都要有 create_time、update_time、操作人這幾個(gè)字段教學(xué)表里完全沒有上線前要補(bǔ)。三是沒有軟刪除和狀態(tài)字段真實(shí)業(yè)務(wù)不會(huì)物理刪除記錄而是用 status 字段標(biāo)記有效性練習(xí)表的 DELETE 操作要改成 UPDATE status。一個(gè)比較實(shí)用的落地方式是把這三張表當(dāng)作一個(gè)“最小可運(yùn)行的數(shù)據(jù)模型”在公司內(nèi)部做技術(shù)分享或者新人培訓(xùn)時(shí)用來演示慢 SQL 優(yōu)化和連接查詢原理。數(shù)據(jù)量小、字段簡單、問題復(fù)現(xiàn)快比拿生產(chǎn)庫演練安全得多。我有一個(gè)習(xí)慣每次講 SQL 優(yōu)化之前先在本地用這套表造 10 萬行數(shù)據(jù)然后故意寫幾條不帶 WHERE 的連接查詢讓新人親眼看到全表掃描導(dǎo)致查詢時(shí)間從毫秒級變成秒級再讓他們自己用 EXPLAIN 定位問題。這種直觀對比比講半小時(shí)理論都有用。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
男女无套 免费网站| 久久黄色视频一区二区三区 | 欧美色图下一页| 福利操逼| 久9精品| 99热色这里只有精品| 亚洲人妻久久| 精品无码一区二区人妻久久蜜桃| 婷婷五月丁香五月| 欧美黄片免费在线观看视频| 国内毛片四区| 久草热制服丝袜在线观看| 久久久久久69国产一区二区| 狠狠操,使劲操| 91挑色欧美| AV九九| 另类亚洲一区二区三区| 欧美日韩制服| 美国三级日本三级久久99| 女人爽到高潮久久久| 亚洲精品乱码线路中文字幕| 国产精品一区二区三区免费视频| 96久久久精品| 色第一页| 可以看的av| 盗摄女人妻在线| 白丝av| 十八禁电影伊人网| 在线小视频| 一区二区首页| 99这里都是精品| 久久这里是精品| 9118禁| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 精品无码一区二区三区| 97操b| 天天综合~91| 9Ⅰ超碰| 亚洲国产97在线精品一区| 欧美日韩色图片| 美国aaaaa一级黄片| 日韩操逼性鲍| 国产福利电影| 国产精品美女久久久久久网站| 久草色在线观看| 一区二区三区无卡视频在线观看| 农村妇女一级二级三级视频| 亚洲国产成人高清在线| **一级毛片国产| 亚洲天堂无码| 91一区二匹| 久久久久久久久久久久久9999| 亚洲色电影在线| 91网站18在线观看| 老外又粗又长一晚做五次| 躁躁日曰躁2020| 国产一区二区三区久久久精品| 1000午夜黄色| 99日韩| 日本一二区不卡| 青青草吊丝| 亚洲综合在线高清| 天天综合色电影| 日本高清电影欧美色图| 91精品久久久久久综合五月天| 成人五级久久| 日本大香蕉| 日本高清有码网址视频| 97爱综合| 久久超碰天天| 欧美性高潮| 久久精品成人一区二区三区蜜臀| 亚洲国产丝袜在线观看| 91天天爽| 狠狠操夜夜| 国产亚洲精品农村妇女| www超碰| 99爱久久视频频| 九X超碰| 四虎免费看黄| 国产白丝网站| 国产精品盗摄 偷窥盗摄| 日韩无码精品综合久久| 日操粉逼逼| 色五月综合网| 久久久久久中文版| 天天综合中文字幕 91| 性无码专区2020| 精品国模无码| 色婷婷狠狠18禁| 精品人妻一区二区三区-国产| 北条麻妃性愛视频| 妇女一区二区三区| 熟妇的味道HD中文字幕| 色久综合| 国产精品一区二区麻豆| 天堂v无码免费视频| 亚洲精品三区在线观看| 日本少妇va7777| 精品综合久久久久久97| 精品中文字幕第一页| 国产一级不卡在线观看| 伊人青青草久久| 可乐操亚洲蜜911| 五码视频在线观看| 性爱动态120秒| 久久99草| 亚洲男人久久综合天堂| 婷婷五月天社区| 热久日综合| 超碰美国| 狠狠五月天| 美女AV一区二区| 综合欧美亚洲| 国产精品视频白浆免费| 人人做天天爱| 日韩中文字幕国产| 大香蕉视频一二三区| 国产精品com| 超碰97亚洲| 国产精品乱码久久久久久久久| 免费超碰97久久| 激情人妻另类| 黄色一区三区| 夜夜操一区二区| 欧洲综合视频| 久久伊人网视频一区二区三区| 国内精品不卡无毒99999| 日本一本道A级黄色毛片试看60分钟| 1024亚洲中文字幕久在线看片你懂的 | 国产欧美日韩在线观看麻豆传媒公司| 中文字幕福利视频一区二区三区在线观看| 色黄色美女大长腿午夜视频| 老熟女乱伦一区| 乱伦强奸区日韩| 啊啊啊好多水| yw尤物av无码点击进入麻豆| 7月婷婷综合| 久草线上视频免费看| 国产日韩在线播放av| 久久久久久久久久久久久久久乱码| 嗯嗯啊啊操我| 亚洲精品97在线| 九九九九九九视频免费| 大香蕉伊在线久草麻豆天堂故事| 激情网色| 欧美啪啪啪91| 成人夜夜爽| 国产精品久久泡妞网站| 日韩欧美女优电影| 家庭乱伦国产| SUV一区二区在线看| 91在线超高颜值国产| 操死我了嗯嗯嗯| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 韩日无码在线观看| 美女诱惑在线一区| 欧美,日韩,亚洲视频| 天堂av2019| 国产乱伦视频污| 久久久久9久久久久| 国产精品久久久啊| 性爱欧美五月| www色色com| 大香蕉线| 99热 按摩 日韩| 伊人久久大香线蕉无码| 综合色久欲| 九九热最新| 欧美激情综合网| 国产大片精久久久久久| 五月丁香六月婷| 亚洲91色| 亚洲精品久久久久久| 欧美亚洲尤物久久| 日韩精品在线观看网站| 日韩9999| 香蕉大久久久| 深夜福利黄片| 亚洲激情av| 精品国产72| 蜜汁欧美| 国产操伦| 人人色97| 大屁股熟女一区二区三区| 亚洲色图一区二区三区| 人人干人人操人人..com| www.狠狠干.coom | 久久国产在线一区二区| 人妻熟女字幕一区二区| 久久机热| 亚洲欧美综合区自拍另类| 亚洲欧美成人在线| 中文字幕诱惑制服人妻丝袜美丝袜美 | 久久久免费一级黄片| 欧美色图亚洲特色| 国内一区二区免费| 亚洲欧美日韩不卡人妻| 97人人干| 综合网亚洲在线| 熟女乱伦A| 色色激情| 亚洲久久东京热一二三四五区视频| 尤物视频视频官网| 高清不卡 中文 人妻| 精品久久久中文字幕不| 99欧美| 久久肏大逼| 伊人影院在线理论播放| 2017天天拍大香蕉| 青青草国产亚洲精品久久| 999久久久九九九九| 久久久久久AV无码免费网站| 97精品人妻一二三四| 蜜臀亚洲中文| 九九热精品免费视频| 国产AV色黄看到爽| 丝袜 中出 制服 人妻 美腿 中文字幕| 情色日播放AV| 大香伊人在线一区| 一本正道久久熟女| 久久久久骚| 国产日本熟女顶级一区二区三区视频| 2020视频1区2区3区| 成人av动漫在线观看| 无码精品一区二区三区潘金莲| 日韩精品字幕| 国产午夜福利电影免费在线观看| 99超碰碰| 91天天爽| 啊啊啊啊嗯嗯在线久久久| 青青草男人天堂| 国产污视频麻豆传媒一区二区 | 久湿久久| 亚洲在线观看| 亚洲男人天堂AV| 国产精品熟女一区二区三区| 日本性爱视频一级| 操B视频日韩无码| 国产毛片久久久久久久| 亚洲 国产 精品一区| 亚洲日韩美国人妻| 色色色色网站| 农村妇女一级二级三级视频| 免费看污网站| com 首页 18岁 禁区 女优 免费 精选 同城 | 欧美自拍偷拍综合图片| 999精品国产高清一区二区| 91精品微拍福利| 一本色道久久天天射天天干| av网页一区二区三区| 国产精品久久久久中文字幕| 九九在线视频| 天天摸夜夜摸| 人人九九精| 日韩欧美女求操每天更新| 亚州男人天堂| 人人玩人人添人人澡免费| 精品欧美А∨无码黑人大荫蒂 | 99re在线| 永久电影三级在线观看| 熟女六十路| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 超碰久超碰久| 极品欧美一区二区三区| 国产精品自拍欧美在线| 9久超碰| 99色骚| 亚洲天天更新| 日韩亚洲中文有码视频| 美女诱惑1区2区| 丁香婷婷激情五月天无毒不卡| 99热国产精品| 国产精品久久天天干| 亚洲导航深夜福利| 亚洲熟妇丝袜在线观看| 久久国产精品视频| 另类欧美色| 欧美少妇色综合| 亚av顶级裸体一区二区三区四区五区 | 亚洲色图尤物视频| 女色视频社区| 搞中出视频在线观看| 大香蕉淫人| 精品人体无圣光凹凸| 亚洲精品人妻吞精av | 亚洲1区| 亚洲天堂AV在线播放| 激情综合网亚洲| 亚洲第二页| 操逼999| 磁力99AV| 啪啪91| 九九热免费视频| 探花一区在线| 日韩 欧美 另类 人妻| 97超碰人人操人人操| 久久久精品久久| 91伊人大香蕉| 日本蜜桃| 一区黄二区黄| 91蜜臀熟女| 国产精品久久久久无码AV会牛| 国产AAAAAABBBBB| 欧美97爱| 国产夫妻性生活视频| yy少妇精品久久| 不卡超碰护士AV在线免费播放| 色五月首页| 男人a天堂手机在线版| 日韩欧美操逼xxx| 91亚洲网| 国产91美女视频| 97资源站久久| 老司机福利社视频在线观看| 日本久久超碰| 伊人骚琪琪亚洲天堂网站| 校园春色 亚洲| 成人情色综合网| 亚洲欧美国产精品久久久久久久| 久久久久九九九| 欧美91在线+|+欧美| 999久久久免费精品国产牛牛| 国产丝袜视频| 快播久久人人aV| 白嫩91在线亚洲| 熟女久久| 91精品人妻一区二区三区蜜桃| 久久精品国产亚洲粉嫩| 午夜性生活av免费在线看| 天美传媒精品一区二区| 日本中文字幕不卡视频| 男人的天堂VA在线| 丁香五月自拍| 国产午夜在线观看| 欧美情色贴图| 婷婷亚洲五月***久久| 99这里只有精品| 日韩人妻少妇 一区二区三区| 啊啊啊啊好疼视频| 日本三级黄页| 亚洲图片欧美色图| 日韩操呦呦影院在线观看| 八人操人人摸人人看| 国产和美国毛片| 黄色人人| 免费一级精品啪啪视频| 制服乱伦| 歐美一級亂黃99在綫精品| 亚洲91av| 暴力av在线| 精品国产乱码久久| 国产人妻天天干精品| 素人播放一区| 国产suv精品一区| 亚洲久9| 日韩操逼HD| 国产树林里野战在线看| 91暧暧| 大香蕉2017| 影音先锋每日最新资源在线观看 | 嗯嗯嗯啊啊在线观看| 啪啪视频mP4| 国产一区二区啪啪视频| 26uuu成人影片| 97天堂| 欧美爱国产综合、| 99xav| 人人么人人操| 在线观看精品国产免费| 欧美91精彩| 怡红院成人视频| 无码高清国产AV| 69超碰综合| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 久久久精品91八戒| 99爱在线视频| 97av,com| 欧美精品日韩久久久九| 97免费在线观看| 日韩欧美丝袜诱惑| 一区二区三区四区姦女| 亚洲欧美精品久| 大香蕉综合| 午夜无遮挡男女啪啪视频| 欧美成人一区二区三区在线播放 | 翔田千里一区二区三区奶水| 国产精品久久久视频| 深夜激情| 操逼日韩无码 | 国产农村妇女一区二区| 97日韩欧美亚洲| 一类无码操逼视频| 天天操天天看| 久操com| 午夜啊啊啊| 欧美日韩国产成人高清| 91在线色| 欧美A片中文字幕| 99自拍B亚洲| 成人精品在线观看| 综合欧美激情网| 精品国产一区二区三区四区在线看| 亚洲情欲| 国内偷拍精品一区二区| 日本亚洲嫩草影院啪啪| 日本特黄f c2| 麻豆国产精品午夜视频| 亚洲射综合网| 久久久国产av美女私房| 亚洲在钱| 91大学精品激情戏| 啊啊啊啊啊啊在线观看| 欧美三级一级| 草莓精品视频在线免费观看| 亚洲污污网站| 特级丰满少妇一级AAAA爱毛片| 裸体美女久久久| 亚洲 自拍偷拍 欧美| 青青草狠狠撸| 无套内射性感少妇视频| 一二三区精品视频| 天天色悠悠激情| 美国精品国产精品| 婷婷探花久久精品一区| 99热精品免费| 欧美高清18A片| 久久婷婷亚洲欧| 亚洲天堂女优在线| 好爽,再快点啊哈嗯嗯嗯嗯| 久久超碰98| 国产又长又大又粗的视频| 九九九九九九视频免费| 亚洲情色中文字幕一区| 欧美极品少妇交| 欧美亚洲高清不卡| 亚洲国产成人精品女人久久久| 国产第12页| 亚洲aV无码成人在线观看| 亚洲无套久久嗯嗯| 91制服丝袜| 一级人妻性爱视频| 伊人久久婷婷| 国产人妻一区二区三区欧美毛片| 97碰久久| 亚洲少妇综合在线播放| 97国产色综合| 草久在线| 成人性爱电影一区二区| 国产视频一区二区三区久久亚洲天堂 | 秋霞午夜视频一区二区| 七月丁香婷婷| 亚洲九区| 大香蕉青青9| 日曰骚久久精品| 中日韩熟女| 这里有精品| 亚洲中字慕不卡| 亚洲激情综合另类男同| 久久久久久久久久久久久久9999| 九九人妻| 中文字幕精品资源在线| 亚洲色悠悠久久88| 98人妻精品一区二区色欲| 亚洲精品99| 香蕉精品二区二区| 国产女生在线| 日韩精品三级片长长久久| 中欧人妻丝袜中文字幕| 超碰超碰欧美| 天天肏视频| 日本精品第一视频在'| 搞中出视频在线观看| 国产精品盗摄 偷窥盗摄| 中文字幕狠狠玩| 日本啊啊啊啊啊视频| 91综合熟女| 色色综合网站| 91丨人妻丨国产丨丝袜| 亚洲午夜免费狠狠干| 97超碰伊人| 免费一级毛片在线视频观看| 婷婷人妻激情| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 婷婷五月花| 欧美爱国产综合、| 免费A V在线| 国产女人9999| 好好的日:com久久九九| av九九| 亚洲限制级| 97亚洲中文| 9999久久久久| 97色亚洲| 亚洲熟女乱综合一区二区三区 | 国产 亚洲 一二三四| 亚洲91亚洲| 免费a级毛片av无码久久精品中文字幕| wwe 天天干.com| 一区二区免费电影久久| 麻豆区久久久久亚| 99激情| 亚洲黑人在线| 日韩欧美视频青青| 黑人白女精品一区| 91女优在线观看 | 手机av亚洲丝袜美腿日韩第一页二页| 久久久免费的精品| 黄色成年| 99RE在线视频精品,这里只有精品| 欧美日韩国产另类综合| 国产成人精品午夜福利| 色色婷| 无码高清操逼网址| 免费男人的天堂| www.色婷婷| 日本一级特级毛片视频| 精品综合久久久久久97| 激情丁香五月婷婷| 91性高朝久久久久久久久| 情侣开房子拍 日韩无码 女的很漂亮| 青娱乐欧美激情一区二区| 伊人嫩草| 日本九九久久99播| 激情五月天丁香| 亚洲一区在线观看欧洲 | 色综合一区二区三区| 青女在线| 亚州情色j区| 九色精品视频导航1| 亚州欧美总和| 免费农村成人少妇人妻Aa一区二区视频 | 国产精品人妻一区二区| 97操b| 性生活无遮挡纯毛片在线看| 亚洲综合在线视频| 免费观看国产小粉嫩喷水精品午| 偷拍综合网| 熟女露脸激情自拍视频| 亚洲AO在线| 久草大| 九月丁香综合网| 欧美综合网| 国产精品对白自产拍| 六月丁香网| 极品极品色影院| 大学生口爆吞精| 欧美综合第一页| 91天天爽| 亚洲国产丝袜在线观看| 美女久久久久久久| 国产精品宅男免费| 一本久道久久综合狠狠爱| 成人性交午夜免费片| 久久免费看高潮毛片韩国| 日操粉逼逼| 国产精品不卡高清在线观看| 好涩综合| 欧美激情精品| 激情一区二区| …亚洲黄色厕厕女女在线播…| 日韩射图| 精品天堂| 亚洲不卡三级手机播放| 婷婷涩嫩草鲁丝久久午夜精品| 精品十八在线观看| 欧美日韩亚洲天堂| 久久午夜色播影院免费高清| 99re在线| 在线综合 亚洲 欧美中文字幕| 天天看精品动漫视频一区| 测评在线观看AV| 久久精品日韩| 天天肏夜夜肏| 日本美女性生活久久久久久久| 亚洲午夜免费狠狠干| 欧美黄页在线| 久久夜精品一区二区三区| 久久久九| 在线观看不卡一区二区三区| 免费超碰97在线观看| 久操热线| 91在线色| 国产一线二线三线av| 在线日韩日本亚洲国产| 在线国产一区二区av| 超碰79人人乐| 春色综合免费| 午夜操一操| 亚洲一区二区精品福利| 1区2区3区在线视频| 亚洲精品不卡一二三区| 百度百度日本操逼| www黄片免费看com| 97超碰天天爱天天爱| 秘书高跟黑色丝袜国产91在线| 久久9久| 国产成人精品亚洲日本| 91最新综合| 快灬快灬 一下爽蜜桃在线观看| 欧美性生活男人的天堂| 天天操夜夜嗨| 天天看特黄的免费网站| 97精品免费视频网站| 强奸乱伦日韩AV| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 女欧美一区二三区| 精品国产一区二区三区av在线资源| 中文字幕版| 97精品一区二区视频| 五月天激情小说网| 人妻久久| 99无码视频| 密臀在线视频| 色婷婷丁香五月| 99中文字幕| 欧美嗯啊……在线观看视频免费| 亚洲区 欧美区| 五月综合激情网| 9I1性色影院| 天天做天天爱天天高潮| 亚洲女人91| 久热无码| 啊啊啊啊啊在线| 久久精品视频久久久| 翔田千里AⅤHD无码| 久久亚洲色图中文字幕| 懂色AV蜜臀无码精品APP| 伊人久久亚洲色欲综合网站| 韩日精品四区| 91丨豆花丨熟女| 999久久芭蕾| 长长久久免费视频| 国产JDAV无码视频在线观看| 天堂资源站| 久热大香蕉| av在线播放国产一区| 伊人久大| 神马午夜久久久| 操逼网免费无码视频| 亚洲av性爱电影| 破处bbq| 亚洲日韩av一区二区三区百合| 九月丁香婷婷色| 东北熟女91| 欧美制服网站美腿丝袜| 天天日天天舔天天喷天天射| 五月丁香大香蕉| 人妻一区二区三区| 天美av在线观看| 人妻精品一区二区全免费| 青青草男人天堂| 色欧美色交综合| 亚洲在线观看| 四虎国产成人精品免费一女五男| 美女大乳久久久久久久女人18| 一本一首道人妻少妇免费久久| 91强在线播放| 国产精品美女| 亚洲免费人妻在| 久久9亚洲| 亚洲图片偷拍欧美| 翔田千里爆乳巨臀无码| 亚洲高清在线| 99热这里都是精品| 99在线啪| 91伊人久| 麻豆久久视频在线地址| 亚洲色欲一区二区三区| 亚洲小说视频| 免费综合亚洲中文| 激情黄色五月天| 囯产精品久久久久久久久久梁医生| 色一色综合网| 亚洲大胆人体av| 国产91av在线播放| 国产av青草| 久久久性| 青青草九九九九九| 亚洲欧美伦综合| 色激情五月天| 久久线上视频免费看| 欧美性爱精品一区二区| 蜜桃臀AV在线| 免费av大片| 久久久久久裸体| 国产精品视频一区二区三区八戒| 国产精品久久久久久久久久久久久久久久久久 | 91真人天天在线| 91香蕉视频在线观看免费| 久久亚洲婷婷| 啊啊啊好大好深| 人妻激情偷乱视频一区二区三区 | 人人考人人摸人人干| 美女性91| 大鸡吧尹人在线| 亚洲图片欧美色图| 禁十八久久| 夜间福利片1000无码| 欧美后入式| 精品国产少妇高潮视频| 日产欧美电影一区二区三区| 淫骚熟女一区二区三区| 人妻99p| 久久久久久97| 偷拍片久久| 人妻久久久| 天天操人人操狠狠插| 亚洲九九视频| 国产一区二区三区不卡手机在线| 操婢日韩| 99在线精品视频| 97碰| 亚洲黄色电影| 欧美性区| 大香蕉啪啪网| 亚洲无吗在线视频| 日本一级特级毛片视频| 日本黄色天堂| 亚洲色图加勒比| 99无码精品| 91天堂色男人的天堂| 在线观看一级α片刺激高潮视频| 欧美图片色五月天| 色色综合97| 亚洲麻豆av一区二区| 6080yy午夜理论三级一区二区三区无码| 乱色老一区二区三区的观看方式| 在线观看高清AV| 蜜伊人色综合97| 可以免费看黄片的视频| 黄色二级片网站| 午夜乱轮操逼视频免费看| julia在线观看久久| 91东北熟女| 国产精品久久久777| 嫩草美女久久| 熟女精品一区二区在线观看| 国产不卡免费在线视频| 久久久艹艹艹| 岛国激情视频在线观看| 欧洲一区二区三区免费| 91麻豆天美国产欧美| 91午夜无码| 天天操天天舔| 欧美激情久| 伊人女女资源在线观看| 好爽视频在线观看视频| 日本日日色视频| 中文字幕精品区先锋资源| 天天日天天干天天摸天天操| 人妻天堂综合网| AA级电影三区| 久久9免费视频| 综合网久久| 无码抄逼网| 婷婷在线视频在线观看| 天天色综合影视网| 97 国产一区| 国产69精品久久久久99尤物| 久久久性爱| 蜜臀久久99精品| 天天添天天干电影| 精品在线观看视频在线| 秋霞一级A片黄色视频| 9118禁| q2午夜理论片夜色av| 欧美国产有色电影| 精品大久久| 少妇高潮对白在线观看| AA级电影三区| 亚洲丝袜少妇在线| 最新亚洲黄色免费电影| 国产福利一区二| 人摸人人操人| 日韩丝袜人妻AV| 啊啊啊啊啊啊啊啊啊在线观看| 亚洲色图欧美色图在线播放| 欧美日韩1234| 国产精品黄色三级av| 99热免费| 少妇三P| 亚州欧美在线| 欧美日日操| 美女啊啊啊啊pc| 欲色啪| 欧美特大AA级黄片| 国产成人+综合亚洲+天堂| juliaann精品熟女一区| 91麻豆一二三区| 青青草中文字幕| 人人透人人操| 久久久专区| 久操电影| 欧美成人9797| 亚洲在线A| 福利社区午夜一区二区| 欧美一区二区在线资源| 99久草| 欧美日韩性爱无码| 国精综合一二三区影视| 九久精品| 99在线精品视频| 女人香蕉久久毛毛片精品| 亚洲三区视频| 91久久久久久久| 欧美亚洲尤物久久| 国产日产欧产美韩系列麻豆免费| 夜夜影视四色| 青青草中日韩在线| 啪啪资源网| 人妻黑丝袜电影| 在线A日本| 国产乱码久久久久久| 亚洲国产精品无码AV在线| 亚洲日韩XXX| 免费中文在线| 欧美性性性| 久99| 翔田千里AV无码秘 三区| 日韩一级二级在线| 人人看欧美性爱| 9精品久久久久| 综合色图,成人综合网| 妇女性内射冈站HDWWWCOM| 玖玖资源中文字幕制服丝袜| 蜜乳Av成人片网站| 熟女少妇一区二区三区| 天天日天天干天天整| 综合欧美色图| 美女久久久久久久| 色999五月色| 啪啪综合网| 天综合网欧美| 亚欧精品久久久久久久久久久| 亚欧毛片基地国产毛片基地| 我想要啊 啊 啊| 天天操天天射青青草| 亚洲国产尤物yw在线观看| 亚州欧美在线| 国产精品第一页国产大屁股视频免费区i| A片 AV一级在线播放观看免费 | 国产精品久久蜜乳av| 色欲久久99精品久久| 91亚洲欧美综合高清在线| 亚洲综合色男人网| 91蜜臀在线久久久久| 青青国产精品在线| 久久亚州高清| 亚洲精品白丝| 精品乱子一区二区三区99| 91l欧美在线| 超碰综合97在线| 国产9熟妇视频网站| 9久久久久| 热G综合热G中文| 久9久9精品| 久草毛片电影怡| 熟妇艹鸡八| 丝袜制服字幕在线| 丝袜制服字幕在线| 欧美中文字幕一区 | 激情干在线| 美女诱惑久久| 在线中文字幕| 中文字幕久热视频在线| A级片日韩欧美国产欧美视频精选观看| 亚洲日韩97| 婷婷涩嫩草鲁丝久久午夜精品| 久久啊啊| 亚洲无码 国产无码| 欧美精品99久久久**| 欧美麻豆成人同性GⅤ在线| 精品亚洲国产成人AV制服丝袜| 欧美特大AA级黄片| 国产懂色精品国产av| 天天干一区二区| 国产乱婷婷精品二区三区| 最新中文字幕av| 亚洲图片偷拍欧美| 60秒不遮不挡| 亚洲国产91精品一区二区久久| 波多野结衣先锋影音| 亚洲精品中文字幕一区在线视频| 日本在线播放不卡一区| 婷婷在线播放| SS久久| 欧洲精品久久| 久 久无码人妻AV| 久久九九视频九九视频| 亚洲宅男天堂| 精品中文日韩字幕视频| 一区,二区,三区视频| 日韩欧美中文字幕搭讪巨乳美人妻视频| 亚洲乱妇p22| 亚洲欧洲网站免费观看| 婷婷综合久久| 日日日日做夜夜夜夜做无码97| 国产精品9999| 黄色网址在线免费观看| 欧美男女午夜啪啪| 91日产桃蜜| 欧美亚洲一级在线观看| AV中文在线可看| 欧美另类自拍 | 九九九九九九九九九九九九九九九女| 亚洲97网站| 欧美超碰97| 日韩在线观看中文字幕视频| 久久成人午夜狠狠| 加勒比av网| 久久中文字幕人妻熟av女蜜柚| 欧美97爱| 久久久久久久综合,国产| AV色五月天| 日本成人在线不卡一区二区三区 | 人人妻人人澡人人爽久久av| 大屁股xxxxx| 九九九九欧美| 午夜福利一区二区影院| 人妻少妇色综合| 亚洲色图日韩丝袜制服一区二区五月在线| 日韩高清黄片| 台湾佬中文娱乐自偷自拍| 亚洲欧美第一页| 美日韩一卡二卡三卡免费人妻精品| 老鸭窝成人| 丝袜剧情| 夫妻AV网站| 美国精品国产精品| 97色欧洲| 性色高清在线| 亚洲欧美日韩免费观看| 78久久久| 8050午夜少妇无码| 麻豆美女丝袜人妻中文| 狠狠躁AV| 一本一道波多野毛片中文在线| 亚洲少妇色图自慰直播| 久草视频观看视频在线| 操国产逼| 97精品中文字幕| 自拍大香蕉乱插| AVE乱伦| 熟女一区二区| 视频国产精品未满十八禁止在线观看| 国产精品3| 婷婷视频网| 热99这里有精品综合久久| 国产乱码精品久久久久久| 国产一级高跟丝袜| 国产美女91| 久操综合在线| 伊人久久在线视频观看| 97国产超碰| 熟女91网| 一本久久精品中文字| 人妻熟女av国产网站| 亚洲熟女性高潮久久久| 蜜臀久久99精品久久久久| 黑人精品久久97| 日韩精品国模| 操九九九九九九| www.av在线视频| 香蕉久久AⅤ...| 日本不卡二区| 热G综合热G中文| 亚洲性感丝袜诱惑在线观看| 口爆综合网| 欧美日韩国产色图在线| 国产美女mm131爽爽爽爽| 八戒午夜福利理论片| 老女人综合网| 中文字幕五月婷婷免费| 色综合av综合久久| 亚洲黄色电影| 偷拍 亚洲 欧美| 成人国产二区三区在线,男女精品。| 日本午夜福利影院| 亚洲熟妇乱女区二区三区| 色性欧美| 91电影色诱| 亚洲宗合网| 久久婷婷亚洲欧| 快播久久人人aV| 超碰人妻久久| 无码78| 97亚洲欧美| 天天欲望网| 国产传媒日韩| 国产一级不卡在线观看| 韩国一级做A片免费的| 一区二区三区四区五区高清无码永久视频 | 91美| 探花视频免费观看国产专区| 亚洲一二三四区| 18+91网站| 超碰人妻97| 中文字幕第23区| 91老熟女老女人国产老太| 91精品电影18| 夜夜高潮夜夜爽| 婷婷色一区| 91+欧美| 亚洲熟女乱综合一区二区三区| 国内一级精品| 久久婷婷色| 蜜臀一二三区| 亚洲欧美洲综合| 欧美一区二区三区不卡高清视频| 久久久久久久九九九九| 亚洲国产精品99久久久| 国产亚洲禁久一区二区| 人人色人人操在线| 色哟哟-国产专区| 91强在线播放| 久久久久久人体| 综合久久少妇中文字幕| 成年人黄色小视频网站| 麻花豆传媒剧国产MV出差| 激情综合网五月婷婷五月天| 色九九综合| 狠狠爱综合网| 伊人久久亚洲中文字幕不卡| 香蕉欧美| 一区二区 韩日AV| 999久久久久久久精| 啊啊在线| 婷婷AV一区二区三区| 亚洲欧洲第二视频在线观看色图| 日韩欧美俄罗斯A片| 97超碰天天爱天天爱| 中文字幕后石码四区五区| 亚洲最大的黄色电影网站。| 久久久久国色αv免费观看| Julia在线播放亚洲久久| 香蕉免费一区二区三区不读| 台湾成人无码AV| 日韩天天综合| 密桃99999| 人妻丝袜美腿中文字幕| 67914在线精品观看| 欧美日日操| 精品女同一区| 久久精品国产亚洲AV片多多| 精品人妻av区天天看片| 啊嗯好大视频在线观看| 天天干天天操天天干天天操| 超碰人妻97| 欧美爆操91| 亚洲精品人妻吞精av| 狠狠操狠狠燥| 91伊人大香蕉| 欧美亚涩| 日韩999| 99色热国产视频精品| 国产真乱mangent| 少妇色综合| 欧美日韩成人| 中文字幕精品免费一区二区| 精品国产99999| 60秒免费小视频| 蜜桃久久久久久久| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 久久大香蕉| 日韩视频啪啪| 日本成人A片免费看| 欧美日韩黄片精品在线| 蜜桃臀一区二区三区久久| 超硑97精品| 超碰久热| 亚洲成人免费中文字幕| 亚州色图欧美色图| 欧美91网站| 日本欧美m v精品网站加| 色综合20p| 91jk色拍| 蜜臀亚洲中文| 91美女色视频亚洲| 超碰夫妻97| 丁香婷婷啪啪| 强奸乱伦大香蕉网| 日韩 欧美 视频 在线 一区| 日本性爰一道本| 尤物一级在线免费观看| 777AV电影| 人人操人人操草草| 国产白嫩漂亮KTV在线| 国产亚洲日韩在线三区黑人| 搡老熟女免费视频 | 成人福利视频网| 熟女人妇一区二区三区| 国产无码三级视频在线观看| 熟妇乱伦一区二区| AV色五月天| 97日韩欧美亚洲| 婷婷av在线中文字幕| 少妇高潮特黄A片| 99re这里只有精品中心播放 | 在线有码中文字幕| 成人av影院在线观看| 十八禁视频网站| 97欧美精品综合| 欧美色999| AV和黑人在线播放| 你懂的在线观看区国产| 欧美精品日韩久久久九| 九九热视频在线观看| 96久久久精品| 午夜一区| 国产吞精a级片激情电影| 色五月婷婷五月天| 1024午夜激情男人的天堂| 97超色| 欧美高清18A片| 中文字幕在线免费观看视频| 熟女高潮合集-永久久久-成人AV | 色色97爱| 9国产超碰| 2019AV天堂| 91少妇高潮| 99久久网站| 青青草在线视频美女| 91综合色噜噜| 色婷婷久久| 中文字幕日韩情色| 亚洲久热| 99999re| 120分钟婬片免费看| 啊啊啊啊啊啊啊啊啊在线观看| 亚洲日韩人妻中文字幕一区| 亚洲国产欧美中文永久| 国产日逼视频| 婷婷人妻激情| 蜜臀av在线播放一区二区三区| 中文字幕免费看| 2010男人的天堂| 91久久精品美女高潮喷水| 人人看人人摸人人色| 日韩本不卡视频在线观看| 亚洲人成网www| 男人女人18禁片免费看网站| 久久AV无码1区2区3区| 自拍偷拍草一草| 情色大香蕉| 色婷婷电影网| 九九九九精品| 欧美熟妇操操视频| 高清无码 国产精品| 丝袜综合色图| 日韩人妻播放| 风月影院男女十八禁| 99色悠悠| 色性综合| 亚洲天天艹| A一区片| 欧美白嫩女HD| 国产高清不卡视频| 国产视频一区二区三区久久亚洲天堂 | 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 |