亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

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è)表里加字段會造成大量數(shù)據(jù)冗余和更新異常。sc 表把學(xué)號和課程號各存一條記錄再加上成績字段就把多對多關(guān)系拆成了兩個(gè)一對多關(guān)系。student 表的常見字段是學(xué)號、姓名、性別、年齡、系別主鍵用學(xué)號 sno。course 表的主鍵是課程號 cno同時(shí)會有一個(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í)還會用到 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í)會變成亂碼或者直接報(bào)錯(cuò)utf8mb4 比 utf8 多支持 emoji 等四字節(jié)字符對練習(xí)環(huán)境來說更保險(xiǎn)。表引擎指定 InnoDB是因?yàn)橥怄I約束只有 InnoDB 支持MyISAM 引擎雖然查詢快但建外鍵時(shí) MySQL 會靜默忽略不報(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ī)則下會報(bào)“對象名無效”一類的怪異錯(cuò)誤實(shí)測最穩(wěn)的方式就是加 N 前綴。用了 GO 分隔批次是因?yàn)?SQL Server 的 CREATE DATABASE 之后必須 USE 切換上下文如果兩個(gè)語句在同一個(gè)批次里執(zhí)行后面的 CREATE TABLE 可能仍然被解析到 master 庫。這塊屬于 SQL Server 特有的玄學(xué)問題按上面分批次寫就不會出錯(cuò)。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形成了一個(gè)有向的“先修課鏈條”練習(xí)自連接時(shí)可以查“間接先修課”這類題目。sc 表里最后一條記錄 grade 為 NULL表示王敏選了數(shù)據(jù)庫課但還沒出成績這就是聚合函數(shù)和 WHERE 條件練習(xí)里最容易出錯(cuò)的地方COUNT(grade) 會忽略 NULL而 COUNT(*) 不會。INSERT 語句用多值逗號分隔語法比逐條 INSERT 效率高很多而且一旦中間某行出錯(cuò)整個(gè)語句會回滾不會出現(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é)果里會出現(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 里不能使用別名”才不會靠死記硬背。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) 會自動忽略 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 在分組之后過濾組。同一個(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ū)分“會寫”和“寫得優(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í)不會因類型問題出錯(cuò)因?yàn)?MySQL 會按 DECIMAL 精度自動比較。這道題練習(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)化器通常會把它改寫成 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ù)不會把多行合并成一行每行仍然保留自己的身份。這個(gè)特性讓“分組 top N”這類查詢變得非常簡潔。注意內(nèi)層先 WHERE grade IS NOT NULL 過濾掉 NULL 成績否則排序時(shí)空值會默認(rèn)排最前面結(jié)果就錯(cuò)了。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ù)異常大時(shí)要檢查外鍵列上有沒有索引。sc 表的 sno 和 cno 列如果沒建索引JOIN 就會退化成嵌套循環(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ù)都會觸發(fā)沖突比如向 sc 表重復(fù)插入 (201215121, 1) 這條選課記錄。另外student 表的 sno 是主鍵插入 NULL 也會被拒絕但 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)檫@會掩蓋數(shù)據(jù)本身的重復(fù)問題。更推薦的方法是直接面對報(bào)錯(cuò)通過 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)錯(cuò)字符集不識別。原因MySQL 默認(rèn)字符集可能是 latin1中文無法存儲。SQL Server 則可能是排序規(guī)則不匹配導(dǎo)致數(shù)據(jù)庫兼容級別或排序規(guī)則沖突。解決MySQL 建庫時(shí)顯式指定 DEFAULT CHARSET utf8mb4并且連接字符串里也要加上 characterEncodingutf8 或 utf8mb4。一個(gè)容易被忽略的坑是即使數(shù)據(jù)庫和表的字符集都對了如果客戶端連接的字符集不對插入時(shí)仍會出現(xiàn)亂碼。先執(zhí)行 SHOW VARIABLES LIKE character_set%; 看當(dāng)前會話的字符集再把連接參數(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ù)庫自動刪子記錄但這在生產(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ù)庫不會報(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ì)還是匯總”再動手改 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é)果會顯示 typeALL 全表掃描。然后手動加一個(gè)索引CREATE INDEX idx_sc_cno ON sc(cno);再執(zhí)行同樣的查詢EXPLAIN 里 type 會變成 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ù)生命周期管理直接照搬會有性能問題。二是缺失審計(jì)字段真實(shí)業(yè)務(wù)表幾乎都要有 create_time、update_time、操作人這幾個(gè)字段教學(xué)表里完全沒有上線前要補(bǔ)。三是沒有軟刪除和狀態(tài)字段真實(shí)業(yè)務(wù)不會物理刪除記錄而是用 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
返回資訊列表
成人性爱视频在线看| 久久精品欧美一区蜜桃| 天天干天天爽| 性色av蜜臀av色欲aV| 久久99久久99精品天美传媒棢·纸:. | 西西美女视频网| 色青青久久影视| 久久少妇| 色哟哟av网址| 天天综合网91入口| av日韩在线观看电影| 富女玩鸭子一级毛片| AV丝袜东京热| 亚洲 se图 欧美电影| 黑人狂躁日本妞一区二区三区| 丰满欧美放荡少妇在线| 中出后入| 偷看洗澡一二三区美女| 伊人专区一区二区三区| 78操B| 亚洲中字慕不卡| 在线人妻熟女一区二区三区四区五区| A V少妇特黄三级| 熟女五十路一区二区三| 51一区二区三区| 男人久久天堂| 欧美爱爱97| 99色热| 天天综合网AV91| 加勒比综合九九99视频在线播放| 日本人体九九九九九九| 天美麻花大全视频| 久操操| 人人摸人人添人人操| 最新日日夜夜天天干干| 男女做爰猛烈动高潮A片免费应用| 久久神马| a男人的天堂久久一级A毛片| 天美传媒AV在线| 欧美图片校园春色| 欧美第五页| 91欧美性| 色色激情五月天| 97AV在线免费观看| 在线观看亚洲成人精品| 国产女大学生AV| 久久久久久AⅤ无码免费肉站| 一区二区三区黄色片a| 色哟哟 日韩精品| 九九九九九九综合| 日日夜夜骑| 欧美日韩制服| 猛猛干| 色97国产69香蕉| 很狠操| 亚洲一二三四区在线免费看视频| 黄久在线| 综合亚洲网| 欧美碰碰综合色| 亚洲欧美变态| 亚洲色人| 国产精品久久久久久久久久久久久久吹| 精品人妻久久久久一区二区三区| 欧美狠狠狠| 思思在线免费视频| 久久ww| 九九黄色网| 伊人91| 一区=区三区视频| 台湾大香蕉99热| 加勒比久久av| 亚洲性天堂| 操逼操2| 日本三级A片网站com| 欧美日韩日产免费网站看| 一中国女人毛片水真多| 天天综合日韩网| 丝袜综合色图| 麻豆黄站| 成人av在线播放| 日本在线不卡v二区| 五月色网| 丝袜av一区二区三区| 吊色| 69视频入口| 成人aⅴ一区二区三区| 美女自卫慰黄网站免费| 国产av热热色| 新亚洲无码| 人人做天天爱| 日韩二级| 抽插一区二区视频| av最新免费中文字幕| 人妻加勒比东京热| av 模特一区了| 天堂男人网| 一类av片在线看| 97亚洲国产影视| 久久精品高清无码一区| 国产精品99精品视频网站| 99色视频| 亚洲欧美激情小说| 亚洲激情综合另类男同| 日韩国语字幕| 亚洲av资源| 亚洲导航深夜福利| 老汉网| 欧美Ⅴ性爱| 亚洲一区中文字幕一区| 美女啪欧美一区| 欧美色999| 操逼日韩无码| avav青青草久久夜| 熟女人妻一区二区三区| 国产精品国产| 思思热在线cao| 首页亚洲国产高跟丝袜诱惑视频| 九九九九一区| 99热在线观看| 色天欧美| 中文字幕aⅴ在线视频| 青青草日本中文字幕| 我想要 啊 啊 啊| 婷婷五月天激情网| 艹精品| 无码男人天堂| 日本亚洲熟女视频| 亚洲高清色综合| 五月天色图影视| 欧美日韩不卡传媒| 婬女免费一二三区A片| 久久人妻办公室视频| 99精品无码| 欧美日韩一区二区三区四区蜜桃| 欧美精品偷拍| 久久久久国产精品片区无码直播| 欧洲一区二区| www.91色| 亚洲色图尤物视频 | 日本一卡二区在线| 超碰激情808| 日韩成年人性爱视频| 人妻美腿丝袜制服诱惑综合天堂-| 蜜臀99久| 青青草亚洲一区 | 日本欧美国内在线| 婷婷婷婷婷婷久久久久| 天天摸夜夜摸| 超碰成人免费| 精品人妻视频入口| 亚洲一本色码中文字幕| 日韩黄色一区二区三区| 亚洲色图欧洲| 精品人妻视频一区二区三区蜜桃视频| 中文字幕狠狠玩| 一区二三区四区视频大全套| 欧美|91色综合| 操www| 久日91在线| av绯色| 欧美欧美少妇| 人妻人人澡人人爽人人| 中国国国产一级特黄毛片| 四虎免费在线播放| 精品网站9999| 亚洲啪啪视频一区二区| 欧差乱伦二三| 亚洲第一男人天堂| 97午夜剧场日韩| 国产精品探花色| 欧美日韩人妻精品一区二区三区| 色老汉色| 在线观看一卡二卡| 欧美三级中文字幕hd| 国产馆| 撸撸成人在线视频| 六月色婷婷| 综合国产影视三级| 男人的天堂com| 青青草九九九九九| 91日韩在线| a一区二区三区乱码在线| 亚洲区 欧美区| 亚洲诱惑天堂| 伊人青青一区成人视频在线观看区| 欧美精品xxxwww| 日日干日日摸| 中文日韩欧美熟| 少妇国产不卡| 久久 国产精品 一区| 亚洲,日韩,欧美,成人播放| 国产久久天堂资源| 99re这里| 亚洲日韩熟女人妻高清在线| 熟女欧美日韩综合婷婷| 亚洲少妇色| 亚洲宅男天堂| 亚洲欧美国产其他二区| 永久免费av无码网站国产app| 97超碰香蕉| 久久精品一区二区三区蜜桃臀| 美女尤物福利视频| 大香蕉丝袜一级片| 男人的天堂不卡一区二区| 操逼1区| 国产成人91一区二区三区| 男人在线天堂| 国产粉嫩蜜臀av一区二区三区| 吉川爱美亚洲二区在线 | 9久久精品| 免费中文在线| 亚洲高清色综合| 日本欧美中文字幕| 国产精品久久久久久夜夜夜夜| 伊人玖玖网| 久久久久9999| 国产aⅴ无码片毛片一级网站| 操操逼视频| 男人天堂2017| 青草综合| 国产精品69人妻无码久久久| 九九精品无码专区免费| 久热最新在线杭州| 日本三级网页| 日韩精品1区2区中文字幕| 亚洲 欧美 日韩 国产一区二区| 欧美草草高清日韩视频| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 欧美91在线+|+欧美| 91 丝袜在线| 成人在线视频一区| 亚洲综合色在线| 丝袜天堂网| 亚洲不卡一| 97超碰欧美精品| 91成人无码| 91肉丝| www.yeyecao| 精品无码久久久久久国产浪潮| 秋霞久久亚洲精品成人| 丰满的三级少妇欧美久久久| 欧美拳交在线播放| 日本天天干天天搞一区| 欧美激情一| 久96热在线观看视频| 亚洲色天堂九9| 91 亚洲情侣偷拍 久久| 色97| 久久久111| 亚欧美色| 欧美色97| 日韩一级二级在线| 天美传媒精品久久视频| 日韩有码中文字幕女同性恋| 在线有码中文字幕| 天天肏夜夜肏| 精品人妻一区二区免费蜜桃| 国产性爱欧美性爱在线| 男人久久天堂| 久久精品国产亚洲AV无码做| 日日天天久久啊啊aaa| 999九九精品| 情色图区| 摸奶性爱视频网站在线免费播放| 青青国产精品在线| 亚洲91射| 97精品一区二区视频| 亚州免费啪啪视频| 999 久久久| 夜夜欢天天干| av在线一区二区三区| 欧美第一页性| 99热这里都是精品| 日韩乱伦影音先锋| 久久97资源 网| 97欧美资源| 综合伊人激情| 91大学精品激情戏| 中文字幕青青草| 人妻少妇被猛烈进入中| 加勒比无码一区二区三区| 91精品人妻啪啪间| 国产精品久久久久久久AV大片| 综合色色婷婷| 伦理第一页| 激情干在线| 日韩/97| 性猛交| 思思热免费视频观看| 天天色怡春院| 九九久久一区二区伦理| 啊啊啊不要啊啊受不了了视频在线| 中文字幕在线免费观看 | 熟女被操视频网址| 亚洲素人网| 五月丁香黄色网| 91啪啪视频| 天堂精品在线| 不卡六六在线91| 亚洲综合在线第一页| 美国久久一二三四| 国产精品不卡一区二区三区| 黄色无码高清黄色无码网站| 美女尤物福利视频| 久久久久久久人妻丝袜| 婷婷五月天成人网| 91天天综合在线观看| 妺妺跟我一起洗澡没忍住| 欧美色图 人妻| 欧美夜夜草视频| 精品十三区| 国产又黄又爽又刺激久久久久久| 成人综合网 欧美| 久久精品人人做人人看| 久久99精品国产| 国产一区二区a毛片| 好吊色一区| 人人操人人摸人人看人人干| 男女性扦B| 天天躁日日躁XXXXYY| 人妻少妇精品久久久久久| 久精品无码av一区二免费国产在线观看 | 欧美综合天天| 91色情黑丝搞鸡在线观看一区二区三区三州| 2017天天拍大香蕉| 欧洲乱码视频| 国产懂色精品国产av| 亚洲 欧美 第一页| 中文字幕在线观看第二页| 亚洲影院无码在线| 欧美一级二级三级| 青青11操操操操操操操操| yiqicaoav| 97手机日韩| 免费一级精品啪啪视频| 亚洲九区| 神马久久久久久久久久久久| 日本在线播放不卡一区| 少妇久久久久久久| 国产精品干干干| 免费视频97| 97干色天堂| 精品人妻一区二区视频| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | A片大香蕉在线| 精品国产99| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 性高潮久久久| 亚洲国产精品乱码在线观看| 亚洲精品日韩国产欧美| 17c嫩草51久久91嫩草| 2000亚洲男人天堂| 亚洲伊人久久精品狠狠在线| 大地资源在线观看中文第二页| 蜜臀99久久精品久久久久久| 国产精品乱码久久久久久久久久久久| 中文自拍欧美影视| 欧美色图片91| 日本幼女18+| 日韩无码AB| 91热爆在线| 综合亚洲欧美精品日韩?v| 69久久久久久久久久久久久| 91国产丝袜足交精品视频| 国产激情av女片自拍| 91香蕉国产尤物视频| 99精品在线| 熟妇人妻一区二区| 久久精彩视频| 欧美五十路熟| 国产超碰AV在线精品| 99热一区二区三区四区| 国产自偷| 色哟哟av| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 91丨九色丨43老版熟女| 天堂综合网| 国产欧美日产一区二区三区 - 国产欧美日 | 自拍二页| 久久熟妇五十路一区| 色五月激情综合网| 超碰97人妻免费在线| 久久精品黄色| 久久久无码视频| 伊色久人大在线| 1024亚洲中文字幕久在线看片你懂的 | 激情图片亚洲色图| 开心五月婷婷| 激情五月天综合网| 日本黄 R色 成 人网站| 97人人射| 亚洲nv男人的天堂网| 色色色综合网| 久久国产视频专区一二三| 中出91| 色婷婷久久| 碰碰在线视频| 日韩偷拍色图| 欧美在线色图| 东北老女人的激情视频| 中文字幕神马久久| 女生自91网站| 久久久精品一区二区| 日韩av三四区| 久久同城AV| 久久久精| 999色欧美中文字幕| 91N综合网在线| 天天干人妻| 国产精品3| 人妻天天爽夜夜爽2| 蜜桃精品一区二区三区久在线| 热热色AV| 九九热精品视频六| 天美精品原创av片国产| 免费一级a毛片久久久久久鸭绿欲| 香伊人在线| 国产精品一区av在线| www.伪伪| 五月丁香婷婷综合| 打av高清| 麻豆区久久久久亚| 亚洲国产综合视频| 操逼操操操91| 大香蕉伊利av| 日韩人人精品| 91色色网站| 一级黄色视频网| 九九综合久久| 麻豆福利视频导航| 国产一区二区在线看| 精品一区99999| 亚洲国产97| 人人看人人爰人人操| 天天精品| 97视频620| 欧美人妖内射| 啪啪啪精品| 五月丁香婷婷啪啪| 骚女高跟AV在线| 欧美成97爱| 草草影院最新网址| 日本天天人人狠狠在线日美女 | 欧美一级专区免费大片| 好属操| AV污污污污| 67914亚洲精品| 麻豆区久久久久亚| 国产三级资源在线观看| 在线只有精品| 91精品操美女| 男人天堂黄片| 色噜噜国产在线| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 99热欧美| 日本欧美亚洲高清在线看| 人妻啊啊人妻啊| 欧美日韩人妻少妇 一区二区三区| 综合亚洲欧美精品日韩?v| 成人性爱电影网| 欧美日韩国产电影| 免费看黄片现成| 天天插天天插| 亚洲综合伊人无码久久| 国产精品久久久久久高清无码免费看| 花野真衣| 91色婷婷综合久久中文字幕二区| 激情久久久| 极品一区二区三区免费| 亚洲精品国产专区在线观看| 久久一区二区蜜桃| 亚洲色图激情小说| 九九九国产| 91人妻Pr| 亚洲欧洲综合| 久热91| 亚洲伊人青青草| 亚洲精品三| 日韩三级性| 久久久久免费看少妇A片特黄| 色色操| 久久αⅴ| 激情自拍 校园春色| 久湿久久| 五月色综合| 91麻豆天美国产欧美高潮| 国人欧美精品一区二区| 天躁夜夜躁2021| 婷婷久草| 亚洲天天更新| 1204人成网站色www| 亚洲 日本 一 二 三| 99日视频在线免费| 爱射综合| 蜜臀久久99精品久久久久久酒店| 伊人97色天使| 中文字幕91页| 色偷偷综合91久久噜噜| 亚洲色图大香| 无码精品久久久久久亚洲| 91老司机在线视频免费观看| 国产一级特黄大片处女| www熟女乱伦com| 丁香五月影院| 凹凸视频在线一区二区| 亚洲天堂2020| 偷拍网站久久男女男| 丝袜亚洲综合| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 欧美精品成人一区二区在线观看| 青娱乐手机日韩在线视频| 人妻激情在线视频| 国产免费久久久久| 国产丝袜一区二区三区| 成人AV素股で擦久久| 欧美探花网| 国产成人啪一区二区| www.狠狠干.coom | 在线观看高清AV| 欧美最大综合网| 大奶啊啊好爽 | 超碰 97国产熟女| 亚洲色系另类精品国产| 婷婷精品国产欧美精品亚洲人人爽| 超碰人妻久久| 国产午夜视频| 国产乱码久久| 狠狠操狠狠插| 色爱国产| 夜夜一区二区| 自拍偷拍 日韩无码| 国产人妖视频一区在线观看| 五月婷婷基地| 伊人影院日本| 婷婷五月天丁香| 插入逼91| www亚洲欧美| 日韩综合97P| 色五月婷婷麻豆在| 极品尤物自安慰| 91高清无码下载| 色五月天AV| 国产日韩精品suv| 少妇高潮九九九九| 超碰地址久久| 天天欧美色| 亚洲第一男人天堂| 五月天伊人| 九九色综合| www网站黄| 国产极品精品美女视频| 日韩成人无码| 呦呦一区| 美女高潮国产高清| 成年在线视频日本亚洲在线视频区精品江靖宇公司| 亚洲人久久久网| 夜草欧美| 久久久无码国精品无码三区三区| 久久二| 日本午夜精品理论片A级APP发布| 久草国产在线视频| www.亚洲成人一区| 欧洲特黄毛片免费看欧洲毛片| 亚洲色图一区二区三区| 东京热,男人的天堂| 97操综合| 超碰98综合网| 二三四区精品| 97操在线| 国产九月婷婷| 人妻精品4K4K4K4K4| 粉嫩国产精品久久粉嫩| 欧美很很操视频| 亚洲一本大道中文字幕无码在线| 精品性爱一二三区| 欧美日韩性爱无码| 97天堂| 五月婷婷影院| 男人的天堂2010| 国产suv精品一区二区四区999| 97亚洲综合电影| 国产亚洲精品美女久久久m| 高凊专区人人操| 亚洲国产ⅴ高清在线观看| 日韩av不卡在线观看| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 欧美人妻色| 青青草色情网站视频| 久久久久久久久久黄色网| 精品无码久久久久| 性生活久久久久久久久久| 日韩精品怡红院| 天天操天天谢| 亚洲高清综合网| 麻豆国产97在线| 国产99精品一区二区三区免费| 岛国视频一二三区| 欧美精品日韩一区二区| 精品少妇一区二区三区免费观看| 久久久久久9999| julia ann久久| 日日躁夜夜躁狠狠躁超爽| 91被操| 特级毛片特黄久久免费看 | 日韩钢筋无码高清啾啾啾| 婷婷激情五月综合| 亚洲一区二区AV| 三男一女不戴套的A片| 日本高清_区二区三区 | 少妇高潮九九九九九九九| 青青草久草| 麻豆国产av网| 欧美色图99| 午夜男女爽爽爽影院视频| 免费看A片毛毛片在线播| 久操黄色视频| 怡红院亚洲怡春院av| 久久久蜜桃臀无码视频| 久久久免费一级黄片| 青青草中文-久久青草精品一区二区三| 91熟女视频网| 日本成a人v网站在线观看| 青青操少妇| 综合网色| 色色操| 香蕉免费一区二区三区不读| 97久久精品不卡| 色婷婷一区二区三区久久| 精品v日韩欧美国产| 亚洲熟妇乱女区二区三区| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 韩日精品福利视频一区不卡在线免| 人妻丝袜一区二区三区在线| 黄色AAAAAAAAAAA大片| 宗合情欲网| av2014 日韩在线中文字幕| 中文字幕美女91| 亚洲性综合9| 久操视频在线| 亚欧日韩成人| 中文字幕第23区| 国产午夜在线观看| 天天干天天爽| 校园春色 亚洲| 国产成人无码高清| 色偷综合| 国产精品麻豆视频网站| 国产精品乱码久久久久久久久久久久| 97视频在线| 婷婷久草一区二区三区| 亚州欧美在线| 六月丁香网| 国内一级精品| 99精品热| 国产精品白丝| 十八禁网站在线| 另类图片天天影视| 美腿色图| 精品久久久久久中文字幕视频免费| 欧美日本一区二区a人| 日韩欧美蜜桃精品久久中文字幕久久| 天天看天天在线精品| 91啪9色| 久久性爱视频99| 操我啊啊啊啊啊| 国产精品女aA片爽爽视频| 秋霞男人网| 八戒午夜福利理论片| 蜜臀精品1区2区| 操逼日批| 欧美人妻另类在线| 韩国成人精品久久久免费看| 精品一区二区2| 中文激情网| 亚洲色天堂九9| 91亚洲人电影| 国产精品黑人一区二区三区| 色哟哟国产精品免费网址| 日本高清免费一本视频在线观看| 欧美 传媒 麻豆 日韩 偷拍| 日韩免费大片一级播放| 精品国产乱码久久久久久久| 欧美亚州手机在线| 八戒午夜福利理论片| 最新9久久久9免费视频| 99热综合| 日韩精品9区| 欧美亚州手机在线| 亚洲人久久久网| 久久久久久人妻一区精品色欧美| 男人的天堂2019AV| 少妇高潮流水av免费| 五月天激情小说| 日韩 人妻 精品| 欧美高清色| 亚州精品丝袜-不卡成人免费| 青青伊人这里只有精品| 鸥美精品一区二区久久婷婷| 午夜一区| 国产无码精品久久久久久| 亚州中文字幕超碰97| 五月丁香激情综合网| 色哟哟综合| 亚洲情色 无码专区| 人人污日韩一区二区| 福利伊人玖玖国产| 69精品| 插入粉嫩少妇视频| 超碰资源亚洲97| 亚洲一级特黄大片在线播放91| 欧美色图 色综合图| 婷婷15月天青娱乐| 亚洲少妇色| 色综合色欲色综合色综合色综合| 亚洲精品久久久久毛片A片拉屎| 黄色十八禁| 97 超碰 人人做 人人爱| 去干网最新版| 中文字幕在线观看永久| 探花视频免费观看国产专区| 97爱爱官网| 超碰中文字幕人妻草一区| 亚洲色图久久成人| 精品久久久亚洲AV成人网站| 日韩免费高清大片在线| asc国产精品| 亚州色图狠狠干| 国产欧美第五页| 国产精品白领在线观看 | 日韩十八禁| 国产精品第一页国产大屁股视频免费区i | 日本三级日本三级三级人妇四虎| 亚洲AV无码国产精品久久久久 | 国产超碰在线一区| 蜜桃臀av在线观看| 色黄色美女大长腿午夜视频| 78m成人视线| 日本欧美m v精品网站加| 欧美日韩电影一区二区| 人妻天天操天天爽视频免费| 熟女日韩| 96AV精品| 亚洲少妇喷视频看| 欧美美女自慰一区二区三区| 日本久久网| 成人日韩欧美| 粉嫩国产精品久久粉嫩| 97人妻碰碰中文无码久热丝袜| 乱伦色图网址是多少| 欧美性爱精品七区| 超碰97人妻免费在线| 熟女高潮精品一区二区| 欧美黑人日韩少妇色情| 99re6在线视频精品免费完整版安卓版| 久久人妻丝袜一区二区三| 丰满人妻-区二区三区免费| 久热久| 色婷婷成人| 在线观看十八禁| 亚洲。日韩。欧美| 日本大片日本一区二区免费高清| 久操九九九九| 亚洲男人的天堂一区二区| 夜夜一区二区| 麻豆婷婷成人一二三| juliaann丝袜大战黑鬼| 久久精彩视频9| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 美美91成人国产精品欧美精品久久久久久久| 99自拍B亚洲 | 丰满人妻一区| 啊啊啊久久| 欧美一区二区三区不卡高清视频| 日韩欧美亚欧在线视频| 手机在线视频国内精品| 秋霞一级视频在线观看免费| 99爱爱| 和协无码影院| 久神马| 人妻熟女一区二区在线视频| 无码人妻一区二区三区色欲aⅴ| 美女熟妇色| 亚洲欧美日韩精品久久久一区二区 | 国产熟女精品一区二区| 18禁中文字幕| 日本综合久久| 欧美专利1区2区3区4区5区免费| 精国久久一区二区三区98| 毛片99-全集电影手机免费观看完整-B029AV | 97人肏| 99热这里只有精品1| 91色人妻| 天天射影院| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 伊人991| 久久香蕉国产线看观看亚洲女人| 久热一区二区| 亚洲导航深夜福利| 97久精品| 人妻 欧美亚洲| 欧美性xxxxx狂欢| 国产精品点击进入在线影院| 性爱综合网| 一区中文字幕二区日韩| 夜夜人妻爽| 欧美狠狠干| 天天色综亚洲91污| 男人的天堂.com| 久久精品电影在线| 国产毛片久久久久久久| 大香樵伊人网| 情色图区| 国模艳艳啪啪一区| 伊人97色天使| 久久人| 久久久久亚洲Aⅴ无码| 宅男91视频在线播放| 啊啊啊啊好疼| 国产尤物AV尤物在线观看不卡| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 91N综合网| 亚洲精品三区在线观看| 加勒比大香蕉视频在线| 干美女人妻| 影音先锋视频在线| 欧美天天谢综合网| 最新亚洲黄色免费电影| 大香蕉婷婷| 亚洲精品黑丝| 国产精品一区二区校花| 蜜臀AV一区二区三区激情综合| 伊人网高清| 激情色色| 欧亚韩国999| 国产一区二区在线电影| 欧亚揄拍偷拍精品视频| 午夜福利1区2区3区| 亚洲人在线| 国产高清成人免费视频| 爽爽淫人网| 欧美亚洲激情| 蜜桃视频精品一区二区| 蜜臀99久久国产| 91操碰| 怡春院久久| 天天天天天天天天天天干美女| 69丨亚洲丨精品丨入口免费播放| 国产SV一线| 亚洲欧美日韩中文播放| 久久久久久久久久久久久久久乱码 | 清纯唯美激情| 另类天堂| 色97干| 特级丰满少妇一级AAAA爱毛片| 激情小说亚洲图片| av天堂天堂av日韩| 99999这里都精品| 久久九九国产精品| 天天操天天看| a在线观看| 91性情| 婷婷日韩一区二区三区中文字幕在线| 亚洲高清视频在线免费观看| 91欧美长吊| wwwxxx日本爽| 999色欧美中文字幕| 国内外色色色色色成人视频| 人妻天堂三区| 美骚妇av高清在线| 国产精品极品美女视频| 本道在线| 加勒比在线视频| 国内毛片无遮挡国产| 加勒比伊人综合| 国产精品国产拍高清AV| 日韩97P| 亚洲人妖网| 丝袜美腿制服人妻二区中文字幕| 亚洲色五月| 操婷婷逼| 久久久一热在线播放| 色婷婷丁香五月| 曰韩少妇无码| 91 手机在线播放 绯色| 国产精品乱码久久久久久久| 日韩欧美字幕亚洲一区二区 | 欧美男女午夜啪啪| 国产精品日本无码A片| 天天干天天中出av| 国产AV高清AV无码| 中文字幕99999| 乱欲性色| 精品国产乱码久久久久久久久1| 久久精品国产精品一区| 校园春色宗合网| 天天摸,夜夜摸| 国产精品久久妻无码网站| 日韩 女同 综合| 泰国AV在线观看| 亚洲av影音先锋| 亚州男人天堂| 少妇激情AV| 999久久久九| 亚卅熟女乱色| 在线A日本| 97资源久久| 日本高清加勒比| 夜夜高潮夜夜爽高清视频一| A片三级无码| av资源在线观看少妇| 草草影院最新网址| 日韩一级二级三级| 天天干人妻| 亚洲另类色图片| 天天做天天爽| 欧美精品99久久久**| 亚洲āv网址在线观看| 后入精品| 亚洲涩涩| 久久综合精品一区二区三区| 五月天婷婷久久| 国产黄片在线免费观看| 啪啪啪东京| 精品人妻一区二区免费蜜桃视频| 国产精品3| 欧美精品另类人妖xxxx| 久久久亚洲精品中文字幕人妻| 免费观看的黄色的网站| 97在线欧| 综合天天。| 色婷婷久久综合超碰| 色av中文字| 日本三级黄页| 牛黄色久午久| 日韩精品一区二区日韩| 人妻偷拍一区二区三区| 97精品免费视频网站| 中文字幕第7页| 黄页网站成人免费| 欧美丝袜美女电影一二三四区| 亚洲国产剧情少妇激情| 亚洲欧洲网站免费观看| 日本在线激情一区二区三区 | 国产精品久久久 | 亚洲啪啪啪啪视香蕉| 天天插夜夜爽| 久久最新视频免费观看| 色哟哟-国产专区| 人人澡综合涩| 1区2区3区中文字幕日韩| 国产精品久久久蜜臀| 情色五月天久久久| 午夜天堂精品久久| 青青草在线视频欧美| 美女毛片999| 一区二区视频你懂的| 成人一区二区三区四区| 嗯嗯啊中文字幕| 一本正道久久熟女| 精品久久久av| 五月激情小说| 尤物av网站| 天天综合影院91| 欧美综合在线91| 久艹99| 亚欧操逼片在线观看 | 狠狠色噜噜狠狠狠狠狠色综合久久| 亚洲午夜福利在线影院| 欧美视频中文字幕区| 欧美黄色片AAAAA| 麻豆亚洲Av成人无码一区精品| 久久国产精品一级二级三级| 看黑人AV不卡| 97一区二区蜜臀| 一二三四视频在线社区中文字幕| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 91丝袜美女| 夜夜骑天天燥| 蜜乳av一区二区三区| 91美女精品| 极品出轨视频网站| AV麻豆免费一区| 久久毛卡| 九九久久精品| 亚洲视频一二区| 九99久久| 日韩综合色图| 中文一区在线视频| 伊人久久艹| 久久综合久久综合人久久夜精品| 日韩精品影视| 精品久久久久久久| 99这里只有精品国产| 日韩精品免费高清视频在线| 六六久久日韩不卡| 欧美少妇高潮久久91| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 国产精品大屁股999| 超碰美国| 亚洲天天做日日做天天谢日日| 91站街按摩店老熟女熟女| 久久久啊啊| 偷拍色图| AV麻豆免费一区| 探花激情视频| 亚洲综合影视| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 超碰地址久久| 中文字幕av亚洲精品| 亚洲精品久久久久久久蜜桃臀| 日韩成人色图| 男人天堂久久精品不卡| 亚洲熟女一区| 久久青青草在线视频| 国产精品久久久亚洲第一牛牛_在线观看 | 99啪啪| 国产玖玖| 欧插网站| 91色亚洲| 超碰成人最新最好看| 中文一区二区婷婷视频| 韩日欧亚a级| 日韩色| 日欧美色| 色踪合AV| 天堂无码精品国产久| 91蜜臀在线久久久久| 九九九偷拍| 中文字幕日韩专区精品系列| 日本三级中国三级99人妇网站| 内射卯月麻衣| 天天做天天爱夜夜爽毛片试看| 91 刺激在线| 亚洲另类色综合网站| 欧美性爱第一区| 亚洲永久永久永久永久一级一级一级精品 | 欧美日产国产在线成人第一区| 欧美 日韩 国产传媒| 亚洲精品91| 日本中文字幕在线电影| 久久久久久中文版| 欧美成熟性爱精品| 啪啪视频mP4| 999久久久九九九九| 亚洲色图久久成人| 日本大香蕉综合网| 久久久婷| 一区二区三| 小泽玛利亚一二三| 亚洲精品欧洲色| 日韩人妻一区二区精品| 国产后入式在线观看| 亚洲国产麻豆一区二区三区| 欧美久久久| 国产成人精品日本亚洲语言| 黑丝制服中文字幕| 成人综合久久精品色婷婷| 日韩欧视频| 九九九九九九九精品视频| 欧美人妻制服| 国产久久一区二区午夜| 夜夜爽夜夜爽| 97精品国产97久久久久久户外免费| 欧美少妇色图| 久久久不能久久久久| 91丝袜在线观看| 日韩伦理视频| 亚欧色图在线激情| 天天流夜夜操| 美女天天干| 久久精9| 操婢日韩| 亚洲有薄码区久久在线一区| 五月丁香影院| 色婷婷一区二区三区久久| 日本亚欧爱爱| 日日夜夜草草草| 操逼网免费无码视频| 嗯嗯啊啊啊好爽| 日日夜夜国产综合| 亚洲黄网在哪免费看| 亚洲蜜桃V妇女| 午夜男人av| 91青青在线| 黄色大片一区二区密桃丝袜| 四虎国产精品永久在线囯在线| 超碰地址97| 日韩性爱小视频在线观看| www.男人的天堂| 色色丁香| 变态乱伦伪娘灌肠一区二区| 欧美第二页午夜| 黑丝少妇在线观看| 免费看黄视频亚洲网站| 国产AV天美传媒一区二区三区 | 精品人妻一区二区免费看| 青草青青久久久久久国产| 国内精品久久人妻性色av| 国产尤物在线三区| 婷婷中文字幕| 天天色天天干天天爱| 久草精品在线| 91色噜噜狠狠| 日韩人妻无码专区| 国产白丝精品在线观看| 欧美精品不卡一二三四在线91| 中文字幕一区 二区三四五 区日 日骚| 国产黄色在线播放观看| 另类av综合久久| 91狠婷| 亚洲成?V人片在线观看福利| 天天干18禁| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 东北女人被操| 亚洲精品视频二区| 亚洲精品美女久久久久久久久| 国产一区自拍欧美日韩| 黄片www视频免费| 天天干人人乐| 久久风骚城市| 综合九九| 蜜桃久久久久久久久久久久 | 丁香五月色情| 中文字幕日韩人妻视频一区二区三区 | 91 亚洲 欧美 日韩 国产 综合| 国产精品美女视频诱惑| 久操免费视频| 午夜精品久久久99热蜜桃的功能特点| 亚洲天堂自拍| 麻豆久久久久久久久丝袜 | 亚洲人天堂| 欧姜老司机| 久久精品无码专区| www欧美91| 亚洲激情欧美色图 | 欧美亚洲丝袜美女电影| 亚洲一区二区三区久久 亚洲一区二区| 精品-91人妻子系列| 久久久麻豆精品| 午夜福利免费福利视频| 久草国产在线视频| 欧美一区二区三区另类精品| 天天躁日日躁成人字幕aⅴ| 在线毛片片免费观看| 久久精品国产精品一区| 久久只有精品| a亚洲欧美色欲| 玖玖爱在线视频免费观看| 亚洲 无码 偷拍| 少妇一级无码精品| 日韩成人精品| 国产精品亚洲天堂网址| 日本操大逼| 尤物一级在线免费观看| 伊人五月天| 婷婷爱五月| 91AV老熟女视频| 加勒比综合九九99视频在线播放| 成人在线永久| 五月婷婷青青草娱乐伊人|