精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何寫好 5000 行的 SQL 代碼

運(yùn)維 數(shù)據(jù)庫運(yùn)維
經(jīng)歷了大大小小的 MIS 系統(tǒng),小到幾人用的協(xié)作系統(tǒng),幾十人用的 OA 系統(tǒng),到上千人用的 MES/ERP 系統(tǒng),再到百萬人用的電商系統(tǒng),存儲過程的影子在半個(gè)世紀(jì)(20世紀(jì)70年代末開始)以來從未淡出它的戰(zhàn)場。

本文轉(zhuǎn)載自微信公眾號「有關(guān)SQL」,作者 Lenis。轉(zhuǎn)載本文請聯(lián)系有關(guān)SQL公眾號。

上千行的 SQL 代碼常見,且永不過時(shí)!

經(jīng)歷了大大小小的 MIS 系統(tǒng),小到幾人用的協(xié)作系統(tǒng),幾十人用的 OA 系統(tǒng),到上千人用的 MES/ERP 系統(tǒng),再到百萬人用的電商系統(tǒng),存儲過程的影子在半個(gè)世紀(jì)(20世紀(jì)70年代末開始)以來從未淡出它的戰(zhàn)場。我們幾個(gè) SQL 老玩家經(jīng)常自吹, SQL 是半衰期最長的編程語言。玩會它不用擔(dān)心失業(yè)。

我之前寫過如何去閱讀和拆解一個(gè)上千行的 SQL 存儲過程,詳情可見以下兩篇文章:

  • 如何提高閱讀 SQL 源代碼的快感
  • 如何寫好上千行的 SQL 存儲過程(附代碼規(guī)范)

這兩文中提到了四大步驟:理解代碼,分拆代碼,改寫代碼和保存代碼。拆過無數(shù)的代碼,從上千行縮減到 2 成,也組裝過無數(shù)的代碼,從上百行塞成了上千行,業(yè)務(wù)所需。見過最長的 SQL 代碼超 5000 行,已簡無所簡,那就實(shí)事求是了。人有分分合合,有生命力的代碼也一樣。

但裝和拆并不是一個(gè)逆反的過程!

就像我們能讀懂村上春樹的小說《且聽風(fēng)吟》、《刺殺騎士團(tuán)長》一樣,但我們無法寫出來或者說無法寫的那么好。當(dāng)然那畢竟是村上賴以為生的技能,老人家寫了30多年的小說,我們可能一部都沒完整的寫完過,沒法兒比。既然如此,在我們賴以為生的SQL陣營,這門吃飯的技能一定是要好好磨練的。

下面的領(lǐng)悟來自我實(shí)戰(zhàn)中真實(shí)的想法,趟過無數(shù)次的坑,用教訓(xùn)總結(jié)出來的幾條自認(rèn)為極有用的經(jīng)驗(yàn)。

  • 理解業(yè)務(wù)
  • 快速實(shí)現(xiàn)
  • 重構(gòu)與測試
  • 版本控制
  • 復(fù)盤記錄

1.理解業(yè)務(wù)

你肯定不會去寫沒有業(yè)務(wù)邏輯的代碼。充分理解業(yè)務(wù)邏輯對你有兩個(gè)好處:一是寫出可執(zhí)行的并且可擴(kuò)展的代碼;二是主動了解業(yè)務(wù)將有利于職業(yè)生涯升級。

第一個(gè)好處不言而喻,寫代碼寫出頸椎病的程序員,肯定意識到代碼的擴(kuò)展性,可以節(jié)省去醫(yī)院的時(shí)間,可以霸屏更多次王者。

舉例說說什么是代碼的擴(kuò)展性?

比如產(chǎn)品的價(jià)格。電商時(shí)代,產(chǎn)品的價(jià)格擁有明顯的擴(kuò)展屬性。也就是說,今天是這個(gè)價(jià),明天又是另一個(gè)價(jià)。電商時(shí)代給雙11,雙12附上了商業(yè)促銷標(biāo)簽,對產(chǎn)品價(jià)格提出了高要求。此時(shí),你去設(shè)定一個(gè)商品價(jià)格,你會怎么設(shè)計(jì)?是在原來的價(jià)格基礎(chǔ)上直接更新,還是另起一列,承載新價(jià)格?這類價(jià)格設(shè)計(jì),會直接影響對電商促銷活動的成果分析。

如果我們直接更新價(jià)格,就會失去與歷史銷售對比的便捷,如果不隨單記錄單價(jià),更是丟失了與歷史的對比。從設(shè)計(jì)角度,這很失敗,失去了靈活性,擴(kuò)展性。這樣的設(shè)計(jì),每次更換價(jià)格,都需要大量更新產(chǎn)品價(jià)格表和銷售歷史表,對已有的商業(yè)活動造成干擾。更好的辦法是,增加價(jià)格的有效使用日期。比如在這段時(shí)間內(nèi)這個(gè)價(jià)格生效,在促銷階段又是另一個(gè)價(jià)格。并采用視圖(view)的方式去提供產(chǎn)品數(shù)據(jù),而不是直接從原表直接讀取數(shù)據(jù),失去中間業(yè)務(wù)的緩沖。

對這類業(yè)務(wù)的理解,kimball 最有說服力,他的《Dimensional modeling》(《維度建模》)總結(jié)了幾十個(gè)行業(yè)的通用設(shè)計(jì)模型,堪稱數(shù)據(jù)模型界的設(shè)計(jì)模式。

第二個(gè)好處可不是人人都能意識到了。雖然 SQL 是擁有最長職業(yè)生涯的編程語言,比如與其一起出現(xiàn)的 VFP 大概 90 后聞所未聞,但顯然沒人一輩子愿意鼓搗 CRUD 。玩吃雞的同學(xué)把你的 iPhone 13 放下,家里有礦沒說你。理解業(yè)務(wù)使你成為整個(gè)應(yīng)用生態(tài)中不可缺少的一環(huán)。信息化的目的不是寫代碼,最終落腳點(diǎn)還是利潤。我覺得二爺(邱岳)肯定能贊同我這話。

話說到這份上,大家可以明白,我們寫SQL就是在通曉一個(gè)行業(yè)的數(shù)據(jù)流,資金流,做好大盤的監(jiān)控。那么還有誰比我們更了解一個(gè)企業(yè)的真實(shí)經(jīng)營情況呢,沒有,完全沒有。前提是,你要做對,要通曉。當(dāng)你還只是把自己定位成一個(gè)碼工,那真是大材小用。追逐SQL的技巧可以,但最終還是商業(yè)會支持你走的更遠(yuǎn)。你永遠(yuǎn)不可能20歲,30歲,總有一天你會被希望擁有開拓事業(yè)的本領(lǐng),擁有可以指導(dǎo)后生的經(jīng)驗(yàn)。到那時(shí),技術(shù)經(jīng)驗(yàn)就很泛泛了。甚至有可能技能上完全不如年輕人。唯一能給你樹立權(quán)威的,還在于你在其他方向上能夠走的多遠(yuǎn)。

2.快速實(shí)現(xiàn)

很多朋友(包括我)有時(shí)候碰到需求,苦思冥想,要的是一口氣把 SQL 從頭到尾完整的,暢快淋漓的寫出來。“Wow” 和漂亮的回車,就是憋著這口氣的期待。

但現(xiàn)實(shí)無數(shù)次打了我的臉!

越是有這種想法,越是憋得時(shí)間很長才寫那么一點(diǎn)。總覺得這里不好,那里不行,這里的變量名稱寫得不夠爽朗,那邊的 Pivot 寫得不夠優(yōu)化。結(jié)果往往是一個(gè)上午就在那里糾結(jié),什么都沒完成。

你是不是也有類似的經(jīng)歷?不孤獨(dú)

村上春樹、海明威、博爾赫斯,從來寫小說都是第一遍爽快的寫下去了,一旦寫得卡殼了怎么辦,束之高閣,明兒繼續(xù)。我這里想說的策略,大家都可以猜得到了。先把業(yè)務(wù)實(shí)現(xiàn)了再說,命名規(guī)則,變量申明,事務(wù)控制以及性能優(yōu)化,統(tǒng)統(tǒng)先放起來。寫好 CRUD 交上第一稿,存檔,Over!

作家們要是等靈感來了再動筆寫,我們哪能看到那么多有趣的故事。同樣,我們寫代碼哪能等到全盤都考慮好了再動手呢。想到一個(gè)數(shù)據(jù)流,用到哪些表,直接就可以寫了。等著等著就慌了,寫著寫著思路就來了。

比如實(shí)現(xiàn)下面的CRUD,你會花多少時(shí)間?

如果一開始,盯著這圖你開始考慮日志怎么記,檢查用戶是否單點(diǎn)登錄,用戶是否用促銷券,訂單怎么撤回,要不要控制并發(fā),那么無疑是給自己加了很多戲,很多無形的壓力使得你自己無法動手做,越想越宏大,越覺得自己做不來。在你迷茫同時(shí),如果有個(gè)會議,有個(gè)熱鬧的新聞,一開小差,再想回到你的宏偉藍(lán)圖上來,就難了。

怎么辦?抓大放小

此時(shí),你要做的第一件事,就是快速去實(shí)現(xiàn)這么幾個(gè)關(guān)鍵點(diǎn)的CRUD代碼。比如購物車的增刪改查,用戶登錄,填寫訂單信息,還有結(jié)單。等到這一系列操作都完成,你對整個(gè)業(yè)務(wù)流,數(shù)據(jù)流都熟悉了,第二遍再去增加附加的功能。

3.重構(gòu)與測試

終于,在第一版本時(shí),你增加好了附加功能。實(shí)現(xiàn)了絕大多數(shù)的業(yè)務(wù)功能。

那這個(gè)時(shí)候,是不是可以交稿,checkin你的代碼了呢?并不是!

如果此時(shí)你就認(rèn)為高枕無憂,那會死的很慘。你會成為別人口中的“豬一樣的隊(duì)友,坑貨……”

《巴黎評論》中,村上春樹提到他的小說經(jīng)常修改 4 - 5 遍才交稿,而且編輯還需要修改。我們一遍過的 SQL 就免檢了?這個(gè)時(shí)候才考驗(yàn)?zāi)?SQL 真實(shí)功底和編碼素質(zhì)。

再檢查命名規(guī)則,變量申明,事務(wù)控制以及性能優(yōu)化。你會發(fā)現(xiàn)還有很多事情要做。

比如原本有很多次的嵌套

我知道很多朋友會這么寫 :

  1. SELECT * FROM  ( SELECT *  FROM (SELECT * FROM BASE ) T1 )T2 

如果繼續(xù)放任你的項(xiàng)目里存在這樣的代碼,那項(xiàng)目很快就失控了。

至少,第一遍走讀代碼,我們需要完成格式上的美化:

  1. SELECT * FROM  
  2.     ( SELECT *  
  3.       FROM ( 
  4.         SELECT * FROM BASE 
  5.       ) T1 
  6.      )T2 

這樣即使代碼不夠優(yōu)雅,別人在閱讀這塊代碼時(shí),也不至于罵娘。

第二遍動手重構(gòu)的時(shí)候,可以考慮減少嵌套,或加上 CTE 封裝嵌套:

  1. WITH BASE_TABLE AS ( SELECT * FROM BASE ) 
  2.  
  3. SELECT * FROM BASE_TABLE 

再比如,unpivot 之后的聚合:

一開始我們能把 unpivot 寫出來就很好了,然后嵌套一層做聚合,如下:

  1. SELECT Convert(Date,OrderDate) as OrderDate 
  2.     , Sum(Amount) AS Amount  
  3. FROM ( 
  4.     SELECT  
  5.         OrderDate, 
  6.         Unp.Amount AS Amount 
  7.     FROM FctOrderAmounts 
  8.     UNPIVOT( Amount for Type in(Shipment,UnitCost) ) Unp  
  9. ) RSL  
  10. GROUP BY Convert(Date,OrderDate) 

這么一看特別清晰,但是信息量大,結(jié)構(gòu)復(fù)雜,加上中間可能有其他字段或者Join,變得復(fù)雜,那我們至少還需再一次簡化:

  1. SELECT  
  2.     OrderDate, 
  3.     Sum(Unp.Amount) AS Amount 
  4. FROM FctOrderAmounts 
  5. UNPIVOT( Amount for Type in(Shipment,UnitCost) ) Unp  
  6. Group by Unp.Amount 

再好比,有很多的關(guān)鍵步驟,其實(shí)我們可以拆分開來,直到一個(gè)存儲過程完成一個(gè)功能,這樣既完成代碼簡化,還可以提供復(fù)用的接口,還可以使得組里的小伙伴協(xié)同作戰(zhàn)。一舉三得,這樣的事情才值得花時(shí)間。

最后,將所有的測試分支跑完測試,提交!

4.版本控制

如果你的團(tuán)隊(duì)沒有 git, SVN, TFS 這些 Source Code Version Control, 趕緊上一個(gè)。沒有自動化部署工具,自己想辦法整一個(gè)。都 2021 年了,別偷懶吧。

為什么一定要版本控制呢?這,應(yīng)該在剛?cè)腴T編程的時(shí)候就知道。

好比你覺得越發(fā)討厭現(xiàn)在的自己,或是太胖,或是太文弱,或是太沒文化,好想要一臺時(shí)光穿梭機(jī),回到15,16歲,重新再來。你會告訴自己多吃蔬菜和水果,堅(jiān)持每天鍛煉,堅(jiān)持每天看書寫字讀報(bào)。

雖然我們不能實(shí)現(xiàn)穿越,但代碼可以。使用上述提到的軟件,就可以幫助我們回退到想要重新開始的那個(gè)版本,修正代碼。

5.復(fù)盤記錄

做好上面4步,對公司項(xiàng)目是有個(gè)交代了。但做這一步,才是對自己有交代。

就好比剛才重構(gòu)的時(shí)候,提到 CTE, UNPIVOT , 代碼簡化的策略,可能因?yàn)橐粫r(shí)靈感或責(zé)任心爆棚,反正你當(dāng)時(shí)想到了,但你不及時(shí)記錄下來,可能很久過后就忘記你曾做過這么神奇的操作。

所以,等你費(fèi)盡心思寫完很長的代碼,一定要通過復(fù)盤記錄下來,放到你的 blog, github, 等你以后碰到類似情況,卻想不出來如何解,你可以隨時(shí)拿出來用上。

我復(fù)盤過很多這樣的代碼例子,關(guān)注微信公眾號【有關(guān)SQL】,回復(fù)【5000】,就可以看到這些真實(shí)的源代碼。

寫好SQL代碼,素質(zhì)當(dāng)然遠(yuǎn)不止這些!

分享一個(gè)最近做的腦圖,掌握了這些才可以說 SQL 編碼入門了

摸著你的良心,看看這個(gè)圖,有則改良,無則加勉

上面都是個(gè)人實(shí)戰(zhàn)所學(xué),所悟。鑒于本人技術(shù)水平和經(jīng)驗(yàn),還有表達(dá)能力有限,難免有些地方寫得晦澀,有些地方深入不夠,希望大家能夠給予反饋,感謝!

 

責(zé)任編輯:武曉燕 來源: 有關(guān)SQL
相關(guān)推薦

2019-03-04 15:53:02

SQL存儲系統(tǒng)

2021-10-18 11:05:51

SQL源代碼AddUpdate

2022-03-14 22:22:56

工程設(shè)計(jì)論代碼

2021-11-04 09:55:59

代碼編程語言

2019-10-08 09:29:41

架構(gòu)代碼業(yè)務(wù)邏輯

2020-09-30 08:08:15

單元測試應(yīng)用

2019-06-10 19:00:23

Cmain函數(shù)編程語言

2022-03-09 15:48:13

Java代碼

2020-07-31 08:12:49

代碼機(jī)器設(shè)備

2021-03-08 15:04:48

編程Python代碼

2022-10-24 08:10:21

SQL代碼業(yè)務(wù)

2014-09-10 14:29:04

技術(shù)簡歷實(shí)例模板

2019-03-04 14:52:42

數(shù)據(jù)分析簡歷工作經(jīng)歷

2020-07-15 08:17:16

代碼

2017-03-15 13:41:16

數(shù)據(jù)庫SQL調(diào)試

2020-05-11 15:23:58

CQRS代碼命令

2021-09-01 08:55:20

JavaScript代碼開發(fā)

2013-06-07 14:00:23

代碼維護(hù)

2021-11-30 10:20:24

JavaScript代碼前端

2023-04-12 08:45:21

ChatGPTPrompt技巧
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

成人高清一区| 国产对白叫床清晰在线播放| 欧美久久久久| 亚洲精品国产精品自产a区红杏吧| 国模吧无码一区二区三区| 黄色小视频在线免费观看| 狠狠色丁香婷婷综合| 午夜精品福利视频| 亚洲天堂精品一区| 国产一区二区三区不卡av| 欧美性猛片xxxx免费看久爱| 热久久最新地址| 国产午夜视频在线观看| 国产高清视频一区| 国产精品成人观看视频国产奇米| 男人的天堂久久久| 一级毛片视频在线| 国产凹凸在线观看一区二区| 日韩av观看网址| 深夜福利影院在线观看| 视频国产一区| 亚洲精品成人网| 亚洲视频在线不卡| 欧美www.| 狠狠久久亚洲欧美专区| 乱熟女高潮一区二区在线| 成人影院免费观看| 91在线观看污| 国产精品亚洲一区| 国产成人精品无码高潮| 秋霞成人午夜伦在线观看| 97视频人免费观看| 激情五月婷婷小说| 羞羞色午夜精品一区二区三区| 亚洲精品在线看| 一级欧美一级日韩片| 青草伊人久久| 91精品国产综合久久福利软件| 天天爽人人爽夜夜爽| 国产伦精品一区二区三区视频金莲| 亚洲综合免费观看高清完整版| 日韩免费av一区二区三区| 日韩一区二区三区在线观看视频| 国产一区二区三区免费观看| 国产精品一区二区电影| www.五月婷婷.com| 亚洲欧美日韩精品一区二区| 亚洲欧洲日产国产网站| xfplay5566色资源网站| 美国十次综合久久| 91麻豆精品国产91久久久更新时间 | 中文字幕一区二区在线视频| 日本伊人色综合网| 国产精品成人播放| 中文字幕一区二区三区四区视频| 免费在线观看不卡| 国产精品久久久久久久av电影| 亚洲高清在线看| 日韩精品免费专区| 国产精品www色诱视频| www.亚洲激情| 免费成人在线观看| 成人国产在线视频| 国产精品久久久久久久久久久久久久久久久久 | 久久久久亚洲蜜桃| 日本在线观看一区二区三区| 九色视频网站在线观看| 欧美激情在线免费观看| 亚洲一区二区精品在线| av观看在线| 午夜精品在线看| 国产主播在线看| 欧美专区福利免费| 欧美群妇大交群中文字幕| 中文字幕一区二区在线观看视频| 日韩欧美中文在线观看| 精品国产91洋老外米糕| 性欧美丰满熟妇xxxx性仙踪林| 米奇777超碰欧美日韩亚洲| 国产亚洲视频中文字幕视频| 亚洲一区电影在线观看| 综合激情一区| 78色国产精品| 亚洲天堂中文字幕在线| 欧美成人亚洲| 98视频在线噜噜噜国产| 亚洲永久精品一区| 国产资源在线一区| 国产亚洲一区在线播放| 国产香蕉视频在线看| 亚洲三级在线看| 欧美大片在线播放| 国产精品伊人| 亚洲第一中文字幕| 亚洲激情图片网| 亚洲精品免费观看| 欧美精品免费在线观看| 久草国产精品视频| 美女在线一区二区| 精品综合久久久| 日本中文在线| 日韩欧美国产骚| 亚洲精品在线视频播放| 欧美影院天天5g天天爽| 久久天天躁狠狠躁夜夜爽蜜月| 国产乡下妇女做爰毛片| 久久精品免费看| 久久99国产精品99久久| 国产黄网站在线观看| 黑人巨大精品欧美一区二区三区 | 成人网在线免费视频| 日韩精品最新在线观看| 97蜜桃久久| 3d动漫精品啪啪一区二区竹菊| 欧美激情aaa| 激情av一区| 91亚洲永久免费精品| 国产在线一在线二| 亚洲成人综合视频| 久久久久久久久久毛片| 大片网站久久| 亲爱的老师9免费观看全集电视剧| 成人激情四射网| 国产精品成人一区二区艾草 | 国产成a人亚洲精| 亚洲精品中字| 天天综合网站| 日韩精品在线视频观看| 香蕉视频一区二区| 国产老肥熟一区二区三区| 亚洲人成人77777线观看| 亚洲福利影院| 亚洲精品国精品久久99热| 久久久久亚洲av片无码下载蜜桃| 久久er99热精品一区二区| 欧美日韩一区二区三| 国产激情在线播放| 精品不卡在线视频| 久草网视频在线观看| 国产精品一区在线| 国产福利片一区二区| 精品久久在线| 久久精品视频免费播放| 91亚洲视频在线观看| 中文字幕在线观看一区| www.国产福利| 一区二区国产在线| 91视频最新| 国内高清免费在线视频| 欧美成人免费网站| 久久精品国产亚洲AV无码麻豆| 粉嫩aⅴ一区二区三区四区五区 | 成人18视频免费69| 蜜桃视频在线一区| 国产又爽又黄ai换脸| 免费观看性欧美大片无片| 欧美精品在线网站| 亚洲第一页视频| 亚洲www啪成人一区二区麻豆| 无码人妻精品一区二区三| 亚洲伦理精品| 欧洲久久久久久| 日韩色性视频| 欧美精品videofree1080p| 日韩一级片免费| 色婷婷综合激情| 国产视频精品免费| 国产精品一区二区不卡| 欧洲精品一区二区三区久久| 日韩在线黄色| 国产精品高清在线观看| 精品51国产黑色丝袜高跟鞋| 日韩精品一区二区三区在线播放| 日本少妇在线观看| 久久新电视剧免费观看| 最新中文字幕2018| 欧美另类视频| 久久精品日产第一区二区三区精品版| 亚州一区二区三区| 久久婷婷国产麻豆91天堂| 欧美自拍偷拍一区二区| 日韩欧美在线字幕| 久久爱一区二区| 成人午夜碰碰视频| 日韩精品一区二区三区不卡 | 一级日韩一级欧美| 亚洲综合图片区| 亚洲v国产v欧美v久久久久久| 久久精品国产99国产| 日本丰满少妇xxxx| 欧美日韩一二| 国产精品永久入口久久久| 我爱我色成人网| 久精品免费视频| 丁香婷婷在线| 欧美变态口味重另类| 免费看毛片网站| 一区二区在线观看免费| 欧美黄色激情视频| 成人天堂资源www在线| 成人亚洲精品777777大片| 狠狠色狠狠色综合日日tαg| 亚洲图片都市激情| 久草精品视频| 91在线观看免费| 国产一区二区三区影视| 性欧美xxxx交| 在线xxxx| 日韩在线观看免费高清完整版| 少妇性bbb搡bbb爽爽爽欧美| 欧美一区二区久久| 一区二区视频网| 欧美性猛交xxxx富婆| 国产午夜福利精品| 亚洲色欲色欲www在线观看| 性欧美精品中出| 菠萝蜜视频在线观看一区| 日本黄色www| 老鸭窝一区二区久久精品| 男人揉女人奶房视频60分 | 欧美黄网免费在线观看| 亚洲天天影视| 亚洲丝袜在线视频| 神马午夜电影一区二区三区在线观看| 91精品啪在线观看国产60岁| 国产女优在线播放| 91国偷自产一区二区开放时间 | 成年人二级毛片| 国产日韩视频一区二区三区| 亚洲av成人片色在线观看高潮| 国产美女一区二区三区| 少妇激情一区二区三区| 老鸭窝91久久精品色噜噜导演| 麻豆tv在线播放| 伊人成人在线视频| 欧美日韩dvd| 欧美日一区二区三区在线观看国产免| 国产又爽又黄ai换脸| 97国产精品| 影音先锋欧美资源| 成人在线免费观看视频| 神马影院我不卡| 欧美午夜精品一区二区三区电影| 欧美久久久久久一卡四| 羞羞色国产精品网站| 久久久久久久免费| 亚洲男人都懂第一日本| 久久精品国产综合精品| 国产精品美女久久久久久不卡 | 喷水视频在线观看| 不卡的av在线播放| 中文字幕5566| 久久久久国产精品人| 久操视频在线观看免费| 中文字幕在线观看一区| 婷婷在线精品视频| 亚洲二区在线观看| 五月激情六月丁香| 欧洲另类一二三四区| 亚洲综合五月天婷婷丁香| 制服.丝袜.亚洲.另类.中文| 国产强伦人妻毛片| 亚洲第一精品福利| 外国精品视频在线观看| 日韩福利视频在线观看| 二区三区在线播放| 久久视频国产精品免费视频在线| 污视频在线免费观看网站| 欧美激情中文网| 欧美黑人粗大| 成人黄色中文字幕| 成人在线视频你懂的| 欧美另类一区| 久久久久久久久久久9不雅视频| 欧美乱做爰xxxⅹ久久久| 99精品视频免费观看视频| 精品日韩久久久| 国产高清精品网站| 蜜桃传媒一区二区亚洲av| 国产精品亲子乱子伦xxxx裸| 国产精品白嫩白嫩大学美女| 欧美日韩在线免费| 在线免费观看日韩视频| 精品国产免费视频| 国产免费av高清在线| 九九久久综合网站| 天天综合网站| 成人毛片网站| 成人在线免费观看91| 全黄性性激高免费视频| 日韩1区2区3区| 99精品一区二区三区无码吞精| 国产欧美在线观看一区| 免费在线观看黄视频| 欧美在线一区二区| www.蜜桃av.com| 国产一级揄自揄精品视频| 怡红院在线观看| 国产精品入口尤物| 狠狠久久伊人| 一区二区日本| 久久精品亚洲一区二区| 91福利视频免费观看| 国产亚洲成aⅴ人片在线观看| 国产女片a归国片aa| 欧美少妇一区二区| 亚洲人成色777777老人头| 欧美精品在线播放| 超碰这里只有精品| 久久国产精品免费一区| 欧美精品网站| 色噜噜狠狠永久免费| 94色蜜桃网一区二区三区| 黄视频网站免费看| 欧美日韩一区在线| 日韩精品系列| 性欧美视频videos6一9| 美女国产精品久久久| 亚洲欧美一区二区原创| 久热精品在线| 亚洲午夜久久久久久久久红桃| 亚洲午夜精品17c| 国产色视频在线| 日韩小视频在线观看| 成人涩涩视频| 日韩在线观看电影完整版高清免费| 亚洲欧美久久久| 中文字字幕码一二三区| 婷婷开心久久网| 三级视频在线看| 性色av一区二区三区免费| silk一区二区三区精品视频| 好吊色视频988gao在线观看| 国产中文字幕一区| 午夜激情视频在线播放| 欧美亚一区二区| yiren22综合网成人| 国产精品久久网| re久久精品视频| 污版视频在线观看| 国产欧美日韩久久| 中国精品一区二区| 中文字幕亚洲一区二区三区| 亚洲电影有码| 亚洲国产一区二区精品视频| 美女视频网站久久| 中文字幕观看av| 91精品一区二区三区久久久久久 | 高清av在线| 国产精品极品在线| 波多野结衣在线观看一区二区三区 | 国产激情在线播放| 久久一区二区三区av| 久久久亚洲人| 毛片aaaaaa| 欧美一区二区不卡视频| 最近中文字幕免费mv2018在线 | 免费国产精品视频| 97在线视频国产| 视频国产一区| 久久久久久久高清| 亚洲第一综合色| 久久精品a一级国产免视看成人| 国产精品1区2区在线观看 | 日韩中文字幕免费看| 精品视频在线观看网站| 免费超爽大片黄| 久久夜色精品一区| 亚洲香蕉在线视频| 成人444kkkk在线观看| 高清日韩中文字幕| 日本黄色三级大片| 国产精品国产三级国产有无不卡| 国产xxxx在线观看| 77777少妇光屁股久久一区| 日韩1区2区| 国产人成视频在线观看| 欧美性猛交xxxx黑人交| 91网址在线观看| 女人一区二区三区| 久久99精品久久久| 日本亚洲欧美在线| 伊人精品在线观看| 97久久综合区小说区图片区| 91看片就是不一样| 一区二区三区精品视频在线| 蜜芽tv福利在线视频| 91丝袜美腿美女视频网站| 国产欧美午夜| 三级在线观看免费大全| 亚洲精品成人久久| 精品午夜视频| www日韩视频| 亚洲资源中文字幕| 日本三级视频在线观看| 国产一区二区三区四区五区在线| 毛片av一区二区三区| 国产精品久久久久久久妇| 日日狠狠久久偷偷四色综合免费 | 国产寡妇亲子伦一区二区|