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

分布式DBA:SQL存儲過程知識總結

數據庫 分布式
本文將幫助您總體復習存儲過程,特別是 SQL 存儲過程。此外,還向您演示如何編寫 SQL 存儲過程以及如何從 DB2 命令行處理器(CLP)和嵌入的 SQL 應用程序調用 SQL 存儲過程。

DB2 存儲過程:基礎知識

您在客戶端工作站上對遠程服務器和位于該服務器上的數據庫進行分類的任何時候,都存在一個簡單的 DB2 客戶端/服務器環境。在這種環境中,每次對遠程服務器上的數據庫執行 SQL 語句時,語句本身通過網絡從客戶端發送到服務器上的數據庫。然后數據庫處理語句,結果通過網絡發送回客戶端。這意味著,對于每條被執行的 SQL 語句,兩條消息都必須經過網絡。因此,執行大量 SQL 操作的應用程序將產生大量網絡通信。

存儲過程是編寫并直接存儲在數據庫中的命名 SQL 語句組(在一些情況中,包括操作系統調用)。存儲過程提供下列優勢:

減少網絡通信量。對于編碼在存儲過程中的 SQL 語句,消息不通過網絡發送。如果存儲過程設計正確,那么只有客戶端應用程序需要的數據才通過網絡發送。

提高服務器密集型工作的性能。因為較少數據通過網絡發送,并且因為處理在服務器上完成,所以復雜查詢和其它服務器密集型的工作可以更快地執行。

業務邏輯的分離和重用。當業務規則被合并到存儲過程中時,可以僅僅根據需求調用存儲過程來多次重用邏輯。此外,保證相同的業務規則邏輯在所有使用它的應用程序中一致實施。如果業務規則改變,那么只需要改變存儲過程中的邏輯;不需要更改調用存儲過程的應用程序。

訪問服務器功能。因為存儲過程在服務器工作站上直接運行,所以它們可以利用任何額外的內存、更快的處理器或數據庫服務器可能具備的其它資源。另外,存儲過程可以執行許多 DB2 的管理命令,這些命令只能在服務器上運行。最后,因為存儲過程不僅僅限于執行數據庫的活動,所以它們的優點是可以利用已經安裝在服務器上的任何附加軟件。

但是,有兩個需要注意的地方。第一,所有輸入數據都必須在調用時從應用程序傳遞到存儲過程。第二,存儲過程生成的結果數據集只有在存儲過程完成執行后才返回給應用程序。換句話說,在存儲過程運行期間,應用程序和存儲過程之間不能發生任何交互。

創建 SQL 存儲過程

對于 Linux、Unix 和 Windows 平臺上的 DB2,可以使用三種不同類型的存儲過程:SQL 的、外部的和來源(sourced)的存儲過程。正如名稱所示,SQL 存儲過程完全由 SQL 語句和 SQL PL 對象組成。相反,外部存儲過程使用 C、C++、Java 或 COBOL 等高級編程語言構成。來源存儲過程是基于其它 SQL 或外部存儲過程的存儲過程。

存儲過程通過執行 CREATE PROCEDURE SQL 語句創建。這個語句存在三種形式(每種類型的存儲過程有一種);用來創建 SQL 存儲過程的形式的基本語法如下: CREATE PROCEDURE [ProcedureName] ( [ParamType] [ParamName] [DataType] ,...)

CREATE PROCEDURE [ProcedureName] ( [ParamType] [ParamName] [DataType] ,...) 
<SPECIFIC [SpecificName]> 
<DYNAMIC RESULT SETS 0 | DYNAMIC RESULT SETS [NumResultSets]> 
<CONTAINS SQL | READS SQL DATA | MODIFIES SQL DATA> 
<DETERMINISTIC | NOT DETERMINISTIC> 
<CALLED ON NULL INPUT> 
<LANGUAGE SQL> 
[ProcedureBody]

其中:

ProcedureName 標識指定給存儲過程的名稱。

ParamType 指示 ParamName 標識的參數是輸入參數(IN)、輸出參數(OUT)或兩者(INOUT)都是。

ParamName 標識指定給存儲過程參數的名稱。

DataType 標識存儲過程期望為 ParamName 標識的參數接收和/或發送的數據類型。

SpecificName 標識指定給存儲過程的專用名。當一個專用名被指定給存儲過程時,可以通過在特殊形式的 DROP SQL 語句(DROP SPECIFIC PROCEDURE [SpecificName])中引用專用名來刪除存儲過程。但是,如果沒有指定任何專用名,那么必須同時提供存儲過程名稱和存儲過程簽名(也就是每個存儲過程參數使用的數據類型的列表)來作為 DROP 語句的輸入。專用名不能用來調用存儲過程。

NumResultSets 指示存儲過程返回結果數據集并標識返回多少數據集。

ProcedureBody 標識調用存儲過程時要執行的單個 SQL 語句或者一個或多個復合 SQL 語句。

注意:方括號([])中顯示的參數或選項必填寫;尖括號(<>)中顯示的參數/選項不是必填的。可以在 DB2 9 SQL Reference - 卷 2(參見參考資料,第 51 頁)中找到 CREATE PROCEDURE 語句的完整語法。 子句用來標識編碼在存儲過程體中的 SQL 語句的類型。可用的值如下:

CONTAINS SQL。存儲過程體包含既不讀取數據也不修改數據的可執行 SQL 語句。

READS SQL DATA。存儲過程體包含讀取數據但不修改數據的可執行 SQL 語句。

MODIFIES SQL DATA。存儲過程體包含既讀取數據也修改數據的可執行 SQL 語句。

子句用來標識當傳遞相同(DETERMINISTIC)或不同(NOT DETERMINISTIC)的參數值時存儲過程是否始終返回相同的結果。例如,對傳遞給它的任何值增加 15% 的存儲過程將被視為 DETERMINISTIC,而使用 TIMESTAMP_ISO() 函數生成唯一 ID 的存儲過程將被視為 NOT DETERMINISTIC。

最后, 子句指示存儲過程即使在為一個或多個輸入參數提供空值進行調用時仍然被調用。

清單 1 顯示一個由簡單的 SQL 存儲過程構成的 CREATE PROCEDURE 語句,設計用來將溫度從華氏溫度轉換成攝氏溫度。

清單 1. 創建簡單的 SQL 存儲過程

 CREATE PROCEDURE conv_temp.f_to_c(IN temp_f REAL, OUT temp_c REAL) 
  DYNAMIC RESULT SETS 0 
  CONTAINS SQL 
  DETERMINISTIC 
  LANGUAGE SQL 
  BEGIN 
  DECLARE temp_value REAL; 
  SET temp_value = (temp_f - 32); 
  SET temp_c = (5 * temp_value) / 9; 
  END

#p#

SQL 存儲過程格式

與單個 SQL 語句不同,大部分情況中,SQL 存儲過程體由一個或多個復合 SQL 語句組成。復合 SQL 語句只是由關鍵字 BEGIN 和 END 封裝的兩個或多個 SQL 語句或 SQL PL 對象,并且以分號結尾。一條 ATOMIC 復合 SQL 語句可以認為是單個的整體嗎?如果在其中產生任何未處理的錯誤條件,所有執行到該點的語句都被認為已經失敗,并且回滾對數據庫所做的任何更改。

當復合語句用來創建 SQL 存儲過程體時,它可以包含幾個邏輯部分。為了正確地開發一個 SQL 存儲過程,使用的每個部分都必須以非常特定的順序實現。每個邏輯部分必須依據的實現順序如下所示: <標簽:> BEGIN

變量聲明

條件聲明

游標聲明

條件處理程序聲明

賦值,流程控制,SQL語句和其它復合語句

END <標簽>

正如這個格式結構所示,可選的變量、條件和條件處理程序聲明必須在存儲過程邏輯(使用 SQL PL 流程控制語句實現)和 SQL 語句之前。游標可以在任何地方聲明,但是最好在任何條件處理程序聲明之前定義。

SQL 存儲過程可以由遵循此格式的一個或多個復合語句(或塊)組成,這些塊可以嵌套或依次執行。為了清晰地顯示流程控制,每個塊都可以加上標簽,從而可以包含許多 SQL 語句。這使進行控制轉移語句引用時更加容易實現精確性。

清單 2 顯示一個其存儲過程體由幾個嵌套復合 SQL 語句組成的 SQL 存儲過程,它們遵循剛才所述的格式。可以在 DB2 9 SQL Reference(卷 2)中的標題 “復合 SQL(存儲過程)” 下找到關于這種格式的更多信息,以及如何對每個部分進行編碼的詳細信息和例子。

清單 2. 飽含多個子句的存儲過程

CREATE PROCEDURE hr.adjust_salary 
  (IN empid INTEGER, IN rating INTEGER, OUT msg VARCHAR(128)) 
  DYNAMIC RESULT SETS 1 
  MODIFIES SQL DATA 
  DETERMINISTIC 
  LANGUAGE SQL 
  main: BEGIN 
  DECLARE SQLSTATE CHAR(5) DEFAULT '00000'; 
  DECLARE SQLCODE INTEGER DEFAULT 0; 
  DECLARE not_found CONDITION FOR SQLSTATE '02000'; 
  DECLARE c1 CURSOR WITH RETURN FOR SELECT * FROM hr.employees; 
  error_handler: BEGIN 
  DECLARE EXIT HANDLER FOR not_found 
  SIGNAL SQLSTATE '20000' SET MESSAGE_TEXT = 'Employee ID not found'; 
  work: BEGIN ATOMIC 
  IF (rating = 1) THEN 
  UPDATE hr.employees SET salary = salary * 1.10 
  WHERE emp_id = empid; 
  ELSEIF (rating = 2) THEN 
  UPDATE hr.employees SET salary = salary * 1.05 
  WHERE emp_id = empid; 
  ELSEIF (rating = 3) THEN 
  UPDATE hr.employees SET salary = salary * 1.03 
  WHERE emp_id = empid; 
  ELSE 
  UPDATE hr.employees SET put_on_plan = 'Y' 
  WHERE emp_id = empid; 
  END IF; 
  SET msg = 'Updated record for employee with ID = ' || CHAR(empid); 
  END work; 
  END error_handler; 
  OPEN c1; 
  END main

調用 SQL 存儲過程

創建 SQL 存儲過程之后,就可以從另一個 SQL 存儲過程或從一個客戶端應用程序交互式地調用它(使用命令行編輯器或 CLP 等工具)。通過執行 CALL 語句調用 SQL 存儲過程;這個語句的基本語法如下: CALL [ProcedureName] ( <[ParameterValue] | [OutputValue] | NULL> ,...)

其中:

ProcedureName 標識指定給要調用的存儲過程的名稱。記住,調用存儲過程時必須使用存儲過程名,而不是專用名。

ParameterValue 標識要傳遞給所調用的存儲過程的一個或多個參數值。

OutputValue 標識一個或多個接收由所調用存儲過程返回的值的參數標記或主機變量。

您可以從 CLP 調用清單 1 中所示的 SQL 存儲過程(通過連接到合適的數據庫和執行類似以下的 CALL 語句): CALL conv_temp.f_to_c(98.6, ?)

當這個語句被執行時,值 98.6 通過名稱為 TEMP_F 的輸入參數傳遞給存儲過程,問號(?)被用作一個占位符,用于將通過名稱為 TEMP_C 的輸出參數所返回的值。

可以從嵌入的 SQL 應用程序使用如下的 CALL 語句來調用相同的存儲過程: EXEC SQL CALL conv_temp.f_to_c(98.6, :TempC)

在這種情況,TempC 是主機變量的名稱,該變量使用與 REAL DB2 數據類型兼容的特定于編程語言的數據類型來聲明。

效率和性能

SQL 存儲過程提供有效的方法將業務規則邏輯從應用程序移動到數據庫。通常,這種移動帶來極大的性能提升,因為在服務器上完成處理,并且必須通過網絡傳輸的消息更少。使用 SQL 存儲過程保證在訪問數據庫的所有應用程序中一致地實施業務規則。并且因為 SQL 存儲過程中的邏輯可以單獨修改,所以當業務規則改變時不必重新編寫應用程序。

不管是設計新的數據庫應用程序還是只想簡化日常操作,都可以尋找機會使用 SQL 存儲過程。如果您發現 SQL 存儲過程的開發和部署在您的工作中很有用,那么您可能想成為一名 IBM 認證的 DB2 9.5 SQL 存儲過程開發人員。

【編輯推薦】

  1. 深入MySQL數據庫的索引
  2. 了解MySQl數據庫目錄
  3. Oracle中SQL語句的幾種用法
責任編輯:楊鵬飛 來源: blog
相關推薦

2017-10-27 08:40:44

分布式存儲剪枝系統

2025-01-26 11:54:39

分布式存儲系統

2021-09-29 09:07:37

分布式架構系統

2024-08-12 16:20:27

2015-05-12 13:03:54

開源分布式存儲HDFS

2022-03-29 23:17:52

PostgreSQL集群Citus

2018-02-22 08:42:04

分布式存儲安全

2018-03-12 08:33:34

Hadoop存儲

2018-04-03 09:07:07

2009-09-18 15:10:13

分布式事務LINQ TO SQL

2011-07-26 09:57:02

分布式網絡管理帶外網絡

2017-10-17 08:33:31

存儲系統分布式

2017-01-10 16:18:26

分布式存儲建設

2018-10-09 10:45:40

2018-01-02 20:00:28

數據庫MySQL分布式存儲

2017-04-14 09:48:25

分布式存儲系統

2011-03-28 10:46:36

sql server存儲分頁

2010-09-10 08:54:02

2017-05-08 11:53:21

2022-03-11 10:03:40

分布式鎖并發
點贊
收藏

51CTO技術棧公眾號

一区二区欧美视频| 久久99蜜桃精品| 亚洲欧美国产日韩天堂区| 欧美黄色一级片视频| av二区在线| 精品一区二区免费| 久久久久久国产免费| 国产精品1000部啪视频| 日韩福利影视| 亚洲成人激情综合网| 日本公妇乱淫免费视频一区三区| 久久这里只有精品9| 中文字幕亚洲综合久久五月天色无吗'' | 久久99国产精品尤物| 欧美精品手机在线| 中文字幕成人动漫| 99ri日韩精品视频| 欧美伊人久久久久久久久影院| 中国一级黄色录像| 天堂а√在线8种子蜜桃视频| 青青草国产精品97视觉盛宴| 久久久久久国产精品美女| 1024在线看片| 天天躁日日躁狠狠躁欧美| 欧美一级二级三级乱码| 女人另类性混交zo| av漫画网站在线观看| 国产精品毛片大码女人| 欧美动漫一区二区| 男人的天堂a在线| 久久av资源站| 国产精品久久久久久亚洲影视| 午夜69成人做爰视频| 精品国产视频| 亚洲男人第一av网站| wwwxx日本| 麻豆一区在线| 欧美日韩激情一区二区| 日韩精品一区二区三区不卡| 极品在线视频| 亚洲第一久久影院| 欧美性猛交内射兽交老熟妇| 麻豆影院在线| 国产精品国产自产拍在线| 欧美日韩一区二区视频在线观看| 黄色一级大片在线免费看国产一| 国产在线精品一区二区不卡了| 国产精品电影观看| 亚洲av无码精品一区二区| 国产一区二区三区久久| 午夜欧美大片免费观看| 久一视频在线观看| 激情综合网址| 亚洲2020天天堂在线观看| 国产在线观看99| 亚洲大胆av| 性欧美激情精品| 人人干人人干人人干| 一区二区91| 欧美一级成年大片在线观看| 久久久国产精品成人免费| 99综合在线| 日本午夜在线亚洲.国产| 日本视频免费观看| 蜜臀国产一区二区三区在线播放| 国产精品免费在线免费| 夜夜爽8888| 国产在线视视频有精品| 91gao视频| 黄色片一区二区三区| 成人高清视频在线| 六十路精品视频| 国产一区二区三区福利| 中文字幕欧美激情| 少妇熟女一区二区| 男女免费观看在线爽爽爽视频| 亚洲国产wwwccc36天堂| 久久久久久久久久久福利| 欧美一区久久久| 欧美日韩在线三级| 91丨porny丨九色| 国内毛片久久| 一区二区三区视频观看| 三级黄色片在线观看| 午夜久久影院| 热草久综合在线| 96日本xxxxxⅹxxx17| 丁香婷婷综合激情五月色| 欧美1o一11sex性hdhd| 欧美69xxxx| 亚洲欧美福利一区二区| 波多野结衣之无限发射| 国产一区精品福利| 亚洲国产精品视频在线观看| 欧美 日韩 成人| 欧美私人啪啪vps| 欧美一区二区三区四区在线| 国产精品视频一二区| 99re在线精品| 国产免费一区二区三区四在线播放 | 成年永久一区二区三区免费视频| 欧美mv和日韩mv国产网站| 色婷婷在线影院| 中文字幕一区二区三区乱码图片| 777777777亚洲妇女| 一级黄色免费看| av在线不卡电影| 99亚洲精品视频| 在线成人视屏| 日韩av最新在线观看| 久久久精品少妇| 久久精品主播| 国产精选一区二区| 成人日日夜夜| 欧美午夜影院一区| 久久偷拍免费视频| 国产精品扒开腿做爽爽爽软件| 国产精品久久久久久久午夜 | 成人黄色视屏网站| 亚洲精品国产欧美| 日韩成人毛片视频| 蜜桃av一区二区三区电影| 黄色一区三区| 色a资源在线| 欧美精品免费视频| 少妇无套高潮一二三区| 国产精品日韩| 国产原创精品| 欧美大胆的人体xxxx| 欧美精品视频www在线观看| 女人十八毛片嫩草av| 亚洲色诱最新| 国产麻豆乱码精品一区二区三区| 黄色动漫在线观看| 欧美剧情电影在线观看完整版免费励志电影 | 高清不卡一二三区| 中文字幕の友人北条麻妃| 久久久久久一区二区三区四区别墅| 精品伊人久久97| 国产福利拍拍拍| 9i在线看片成人免费| 久久这里只有精品8| 日本亚州欧洲精品不卡| 欧美大成色www永久网站婷| 夜夜爽8888| 日韩一区欧美一区| 久久久久xxxx| 亚洲一区色图| av日韩中文字幕| 调教一区二区| 精品裸体舞一区二区三区| 国产一级aa大片毛片| 99久久亚洲一区二区三区青草| 国产成人永久免费视频| 成人性生交大片免费看96| 久久久久免费精品国产| 丁香六月色婷婷| 亚洲v日本v欧美v久久精品| 国产a级黄色片| 国产精品视频久久一区| 麻豆精品传媒视频| 99re久久| 久久久国产一区| www.黄色av| 天天av天天翘天天综合网色鬼国产 | 亚洲欧美成人网| 精品乱码一区内射人妻无码| 亚洲国产成人自拍| 一区二区三区人妻| 欧美片第1页综合| 精品一区二区三区免费毛片| 在线天堂资源www在线污| 亚洲天堂日韩电影| 国产伦精品一区二区三区四区| 亚洲精品乱码久久久久| 亚洲天堂av网站| 热久久免费视频| 亚洲黄色网址在线观看| 大伊香蕉精品在线品播放| 欧洲成人免费aa| 欧美成人视屏| 亚洲国产高潮在线观看| 日韩中文字幕高清| 亚洲色图.com| 无码人妻精品一区二区三区温州| 三级亚洲高清视频| 日韩不卡一二区| 自拍欧美一区| 91在线视频九色| 日本三级一区| 北条麻妃99精品青青久久| 人妻少妇精品无码专区| 欧美影院精品一区| 久久久无码一区二区三区| 国产婷婷一区二区| 国偷自产av一区二区三区麻豆| 亚洲永久免费精品| 日韩精品福利片午夜免费观看| 日韩高清在线免费观看| 国产欧美久久一区二区| 成人在线黄色电影| www.亚洲人.com| 色天堂在线视频| 日韩一区二区免费在线观看| 亚洲GV成人无码久久精品| 亚洲精品乱码久久久久久| 国产美女免费网站| 成人爱爱电影网址| 久久久久久综合网| 奇米777欧美一区二区| 国产a级片网站| 亚洲电影影音先锋| 日韩一二三区不卡在线视频| heyzo欧美激情| 91久久久久久久久久| 性感美女一区二区在线观看| 欧美激情视频网| 免费大片在线观看www| 亚洲欧美综合精品久久成人| 亚洲伦理在线观看| 91精品午夜视频| 波多野结衣一本一道| 天天亚洲美女在线视频| 免费无码毛片一区二区app| 国产精品蜜臀av| 久久美女免费视频| 久久久国际精品| 性色av蜜臀av色欲av| 大白屁股一区二区视频| 国产不卡的av| 国产在线不卡一区| 日本黄色的视频| 理论片日本一区| 久久久精品麻豆| 日韩福利视频导航| 日日摸天天爽天天爽视频| 国产日韩欧美三级| 免费观看国产精品视频| 伊人成年综合电影网| 国产精品视频网站在线观看| 欧美激情 亚洲a∨综合| 日本黄网站色大片免费观看| 91久久国产| 手机在线视频你懂的| 2023国产精品久久久精品双| 夜夜爽www精品| 99久久99久久精品国产片桃花| 亚洲欧美久久久久一区二区三区| 欧洲grand老妇人| 日韩中文字幕一区二区| 欧美日韩在线观看视频小说| 日韩精品不卡| 欧美中文一区二区| 亚洲天堂电影网| 91精品一区国产高清在线gif| 正义之心1992免费观看全集完整版| 成人情趣视频网站| 国产成年人在线观看| 一区二区三区在线观看免费| 国产高清不卡无码视频| 韩日精品在线| 九九九九免费视频| 日日骚欧美日韩| 日本高清久久久| 国产精品一区三区| 中国xxxx性xxxx产国| 久久久亚洲高清| 岛国片在线免费观看| 亚洲精品五月天| 日韩av男人天堂| 色综合天天综合| 亚洲一区中文字幕永久在线| 日韩一二三四区| 无码精品人妻一区二区| 国产亚洲免费的视频看| 老司机在线视频二区| 欧美激情久久久| 免费成人动漫| 91精品视频专区| 国产欧美啪啪| 亚洲精品国产精品久久| 欧美福利电影在线观看| 欧美性久久久久| 精品一区二区三区在线观看| 国产精品熟妇一区二区三区四区| 26uuu亚洲综合色| 极品色av影院| 欧美色另类天堂2015| 91成人一区二区三区| 亚洲精品一区二区三区福利| 邻家有女韩剧在线观看国语| 久久精品国产精品亚洲| 蜜桃麻豆av在线| 91精品视频免费观看| 日韩精品丝袜美腿| 综合久久国产| 免费中文字幕日韩欧美| 91丨porny丨九色| 国产欧美一区二区精品婷婷 | 二区三区在线播放| 欧美日韩第一页| 成人黄色视屏网站| 国产在线视频欧美一区二区三区| 欧美mv日韩| 成年人视频观看| 国产成人综合网站| 免费观看特级毛片| 欧美特级www| 成人免费观看在线视频| 日韩视频免费在线| 日韩免费福利视频| 国产欧美日韩亚洲| 欧美黄免费看| 亚洲免费黄色录像| 久久久亚洲高清| 亚洲欧美在线视频免费| 欧美一级在线视频| 日韩伦理在线观看| 国产成人极品视频| 天海翼精品一区二区三区| 亚洲中文字幕无码一区二区三区| 日本欧洲一区二区| 一区二区黄色片| 精品人伦一区二区三区蜜桃网站| 国产叼嘿视频在线观看| 日韩视频在线观看免费| 精品3atv在线视频| 奇米888一区二区三区| 中文欧美日韩| 亚洲精品乱码久久久久久蜜桃图片| 亚洲图片激情小说| 国产又大又长又粗| 色阁综合伊人av| 激情欧美一区二区三区黑长吊| 欧美二区三区| 久久字幕精品一区| 亚洲AV无码片久久精品| 欧美日韩另类在线| 日韩偷拍自拍| 欧美一区亚洲一区| 亚洲丝袜啪啪| 激情网站五月天| 国产日韩高清在线| 亚洲精品无码久久久久| 国产亚洲欧洲黄色| 91福利精品在线观看| 日韩一区免费观看| 蜜桃传媒麻豆第一区在线观看| 91视频免费看片| 欧美久久久久久久久久| 国产一二区在线| 91成人伦理在线电影| 亚洲视频福利| 日本黄色免费观看| 色婷婷综合中文久久一本| 国产在线一二三| 国产日韩精品综合网站| 91精品国产麻豆国产在线观看| www.51色.com| 亚洲最新视频在线播放| 日日躁夜夜躁白天躁晚上躁91| 97精品免费视频| 久久爱www成人| 天美星空大象mv在线观看视频| 国产精品美女久久久久高潮| 国产深喉视频一区二区| 欧美激情亚洲一区| 亚洲精品动态| 97超碰成人在线| 一区二区三区四区不卡视频| 欧美 日韩 中文字幕| 欧美在线视频观看免费网站| 激情综合网站| 91欧美一区二区三区| 亚洲国产精品天堂| 高清毛片在线看| 亚洲自拍欧美另类| 亚洲综合激情| 久久国产高清视频| 亚洲第一免费播放区| 日本电影欧美片| 亚洲小视频在线播放| 99久久婷婷国产综合精品电影| 中国一区二区视频| 欧美二区在线播放| 国产精品亚洲片在线播放| 国产传媒免费观看| 激情懂色av一区av二区av| 91亚洲精选| 黑人巨大精品欧美一区二区小视频| 日一区二区三区| 国产真实夫妇交换视频| 夜夜嗨av一区二区三区免费区| 久久伦理中文字幕| 亚洲熟妇av一区二区三区| 亚洲男人电影天堂| 国产最新视频在线观看| 9a蜜桃久久久久久免费| 日本不卡一区二区| 懂色av.com|