久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

大型数据库

發布時間:2025/3/15 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大型数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

over(order by salary) 按照salary排序進行累計,order by是個默認的開窗函數

over(partition by deptno)按照部門分區

?

?

如何使用Oracle Round 函數 (四舍五入)
描述 : 傳回一個數值,該數值是按照指定的小數位元數進行四舍五入運算的結果。
SELECT ROUND( number, [ decimal_places ] ) FROM DUAL
參數:
number : 欲處理之數值
decimal_places : 四舍五入 , 小數取幾位 ( 預設為 0 )
Sample :
select round(123.456, 0) from dual; 回傳 123
select round(123.456, 1) from dual; 回傳 123.5

?

ratio_to_report主要完成對百分比的計算,語法為
ratio_to_report(exp) over()
也就是根據over窗口函數的作用區間,求出作用區間中的單個值在整個區間的總值的比重
比如要求scott用戶下emp表中每個員工的工資占本部門的比重
select ename,sal,deptno,ratio_to_report(sal) over(partition by deptno) ratio from emp;

?

select deptno,

ename,

sal,

sum(sal) over (partition by deptno order by sal, ename) cum_sal,

round(100*ratio_to_report(sal) over (partition by deptno), 1) pct_dept,

round(100*ratio_to_report(sal) over (), 1) pct_over_all

from emp order by deptno, sal;

?

?

Oracle 的體系結構

?

Oracle的服務由數據庫和實例組成

?

實例就是一組操作系統進程(或者是一個多線程的進程)和一些內存,這些進程可以操作數據庫。數據庫只是一個文件集合(包括數據文件、控制文件、重做日志文件)。

實例可以在任何時間點裝載和打開一個數據庫。實際上,準確地講,實例在其整個生存期中最多能裝載和打開一個數據庫!

連接數據庫實例: 建立用戶連接和創建會話

?

?

?

物理存儲結構包括存儲在磁盤上的數據文件、控制文件、重做日志文件

?

內存結構:SGA和PGA

SGA:System Global Area是Oracle Instance的基本組成部分,在實例啟動時分配;系統全局域SGA主要由三部分構成:共享池、數據緩沖區、日志緩沖區等包括兩個可選的(大型池和java池)。

SGA_MAX_SIZE指的是可動態分配的最大值﹐而SGA_TARGET是當前已分配的最大SGA。

?

共享池:Shared Pool用于緩存最近被執行的SQL語句和最近被使用的數據定義,主要包括:Library cache(共享SQL區)和Data dictionary cache(數據字典緩沖區)。? 共享SQL區是存放用戶SQL命令的區域,數據字典緩沖區存放數據庫運行的動態信息。內存大小由參數SHARED_POOL_SIZE指定。Library cache(共享SQL區)存儲了最近使用的SQL和PL/SQL語句。數據字典緩沖區是最近在數據庫中使用的定義的集合。

緩沖區高速緩存:Database Buffer Cache用于緩存從數據文件中檢索出來的數據塊,可以大大提高查詢和更新數據的性能。塊的大小由參數DB_BLOCK_SIZE決定。

重做日志緩沖區:redo log buffer cache 記錄了在數據庫數據塊中做的所有改變。

大型池:Large Pool是SGA中一個可選的內存區域,它只用于shared server環境。

Java池:Java Pool為Java命令的語法分析提供服務。

?

PGA:Process Global Area是為每個連接到Oracle database的用戶進程保留的內存。

?

?

進程是操作系統中的一種機制,它可執行一系列的操作步。

Oracle進程中有三類:用戶進程,服務進程,后臺進程

用戶進程: 當用戶請求連接oracle服務時啟動。它必須首先建立一個連接,它不能和oracle 服務直接交互。

?

服務進程:可以直接和oracle 服務進行交互。

?

后臺進程:

DBWR??數據庫寫入程序

該進程執行將緩沖區寫入數據文件,是負責緩沖存儲區管理的一個OR

ACLE后臺進程。

?

?

?

?

LGWR?日志寫入程序?

該進程將日志緩沖區寫入磁盤上的一個日志文件,它是負責管理日志

緩沖區的一個ORACLE后臺進程。

在數據庫寫入程序之前

?

?

SMON?系統監控

該進程實例啟動時執行實例恢復,還負責清理不再使用的臨時段。

?

?

PMON??進程監控

該進程在用戶進程出現故障時執行進程恢復,負責清理內存儲區和釋

放該進程所使用的資源。

?

CKPT?檢查點?

該進程在檢查點出現時,對全部數據文件的標題進行修改,指示該檢

查點。

使用檢查點的原因:

檢查點確保在內存中頻繁改變的數據塊可以正常的寫入數據文件

可以快速的進行實例的恢復

?

ARCH?歸檔

該進程將已填滿的在線日志文件拷貝到指定的存儲設備。當日志是為

ARCHIVELOG使用方式、并可自動地歸檔時ARCH進程才存在。?

Oracle的邏輯結構表明了數據庫的物理結構是如何被使用的

數據庫->表空間->段->區->數據塊

?

表空間:

保留相關數據庫對象的組

Oracle數據庫中典型表空間包括

SYSTEM表空間

DATA表空間

USER表空間

TOOLS表空間

TEMP表空間

?

數據庫的控制空間分配

為數據庫用戶設置空間配額

備份或恢復數據

?

段:定義為分配給邏輯數據庫結構的擴展區集合

不同類型的段:

數據段

索引段

回滾段

臨時段

?

?

?

?

?

?

?

模式:所謂模式是指一系列邏輯數據結構或對象的集合。

模式與用戶相對應,一個模式只能被一個數據庫用戶所擁有,并且模式的名稱和用戶的名稱相同。

Oracle數據庫中并不是所有的對象都是模式對象。表,索引,約束,索引,視圖,序列,存儲過程,同義詞,用戶自定義數據結構,數據庫連接。而表空間,用戶,角色,目錄,概要文件及上下文等數據庫對象不屬于任何模式,稱為非模式對象。

?

?

Oracle語句的處理過程

解析->優化->行資源生成->執行

解析:對提交的語句進行語法和語義檢查

將已經提交的語句分解,判定屬于那種類型,并在其上執行各種檢驗操作

語法檢查:正確表述,符合SQL規則

語義檢查:正確應用SQL對象?授權?歧義?

檢查Shared Pool:已被其他Session處理過

?

優化:生成一個可在oracle中用來執行語句的最佳計劃

行資源生成:為回話取得最佳計劃和建立執行計劃

執行:完成實際執行查詢的行資源生成步驟的輸出

?

存儲在常規表中行采用沒有特定的次序存儲

Oracle將獲取的名字與ROWID進行關聯。ROWID是表中行的物理地址,可以告知對象的來源,所處的文件以及文件中特定數據塊。

?

?

?

Oracle常用的有兩種索引類型:B樹索引和位圖索引

B樹索引:B樹索引是最常用的索引,它的存儲結構類似于書的目錄索引結構,有分支節點和葉子節點,分支節點相當于書的大目錄,葉子節點相當于具體到頁的索引。B樹索引是oracle數據庫的默認索引類型。

只有幾個不同的值供選擇。例如,一個"類型"列中,只有四個不同的值(A,B,C,和D)。該索引是一個低效的選擇。如果你有一個Oracle數據庫,那么為這些選擇范圍小的的列建立位圖索引是更好的選擇。

?

?

?

數據庫啟動和關閉

為了滿足數據庫管理的需要,Oracle數據庫的啟動和關閉是分步驟進行的

STARTUP

ALTER DATABASE db01 MOUNT

ALTER DATABASE db01 READ ONLY

STARTUP RESTPICT
ALTER SYSTEM ENABLE RESTRICTED SESSION

?

?

?

?

?

?

?

?

?

當數據庫被創建的時候,oracle 服務在數據文件創建額外的對象結構

數據字典表

動態性能表

?

Oracle數據字典是由表和視圖組成,存儲有關數據庫結構信息的一些數據庫對象。

數據字典按照存在的形式分為數據字典表和數據字典視圖。

數據字典

基表是存儲有關數據庫的信息的底層表。基表是在任何 Oracle 數據庫中首先創建的對象。在使用 CREATE DATABASE 創建數據庫時,只要 Oracle 服務器運行 sql.bsq 腳本,就會自動創建這些對象。

數據字典視圖

數據字典視圖是基表的匯總,可以更有效地顯示基表信息。

?

?

?

數據字典內容包括:

1,數據庫中所有模式對象的信息,如表、視圖、簇、索引、集群、同義詞、序列、過程、方法、包、觸發器等。

2,分配多少空間,當前使用了多少空間等。

3,列的缺省值。

4,約束信息的完整性。

5,Oracle用戶的名字。

6,用戶及角色被授予的權限。

7,用戶訪問或使用的審計信息。

8,其它產生的數據庫信息。

?

?

數據字典有三個主要的用途

Oracle服務器使用它來發現關于使用者,模式對象,存儲結構的信息。

Oracle 服務器修改它當DDL語句執行時。

用戶和DBAs可以把它當作只讀表來查看數據庫的信息。

?

?

?

?

?

為了便于用戶對數據字典表的查詢, Oracle對這些數據字典都分別建立了用戶視圖,這樣即容易記住,還隱藏了數據字典表表之間的關系,Oracle針對這些對象的范圍,分別為:

DBA:所有方案中的視圖(可以看到所有數據字典里的信息)

ALL:用戶可以訪問的視圖(可以看到所有這個用戶可以看到的信息)

USER:用戶方案中的視圖(僅僅是這個用戶擁有的信息)

三者直接的關系:

?

?

動態性能視圖記錄當前數據庫的活動

只要數據庫正在操作視圖就會持續的更新

信息是從內存和控制文件中獲得的

DBAs使用動態視圖來監視和調整數據庫

SYS 用戶才能使用動態視圖

不允許有DML操作

?

在oracle數據庫中,用戶權限分為下列兩個類

系統權限

允許用戶在數據庫中執行特定的操作

對象權限

允許用戶讀取和操作特定的對象

?

總共有超過100個不同的系統權限

ANY關鍵字 可以擁有所有的權限

GRANT關鍵字 可以增加權限

REVOKE關鍵字 回收權限

?

Eg:GRANT CREATE SESSION TO emi;

????GRANT CREATE SESSION TO emi WITH ADMIN OPTION;

只用授權時帶有WITH ADMIN OPTION 子句時,用戶才可以將獲得的系統權限再授予其他用戶,即系統權限的傳遞性。

?

系統權限的回收

REVOKE CREATE TABLE FROM emi;

不管師是否有 WITH ADMIN OPTION,它都不會產生連級的影響

?

?

對象權限

回收對象權限使用WITH GRANT OPTION將會有連級的影響。

?

?

?

角色

角色的好處

更簡單的權限管理

動態的權限管理

選擇可供使用的權限

可以通過操作系統授權

提高性能

?

Eg:CREATE ROLE oe_clerk;

ALTER ROLE oe_clerk IDENTIFIED BY order;

????GRANT oe_clerk TO scott;

ALTER USER scott DEFAULT ROLE hr_clerk,oe_clerk

CREATE ROLE admin role IDENTIFIED USING hr.employee

????SET ROLE hr_clerk;

????SET ROLE oe_clerk IDENTIFIED BY order;

????REVOKE oe_clerk FROM scott;

????REVOKE hr_manager FROM PUBLIC;

????DROP ROLE hr_manager;

?

?

Oracle提供的語句

條件語句

CASE 表達式

?

CASE expr WHEN comparison_expr1 THEN return_expr1

[WHEN comparison_expr2 THEN return_expr2

WHEN comparison_exprn THEN return_exprn

ELSE else_expr]

END

?

DECODE 函數

decode(條件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

該函數的含義如下:
IF 條件=值1 THEN
    RETURN(翻譯值1)
ELSIF 條件=值2 THEN
    RETURN(翻譯值2)
    ......
ELSIF 條件=值n THEN
    RETURN(翻譯值n)
ELSE
    RETURN(缺省值)
END IF
decode(字段或字段的運算,值1,值2,值3)

?????? 這個函數運行的結果是,當字段或字段的運算的值等于值1時,該函數返回值2,否則返回值3
當然值1,值2,值3也可以是表達式,這個函數使得某些sql語句簡單了許多

使用方法:
1、比較大小
select decode(sign(變量1-變量2),-1,變量1,變量2) from dual; --取較小值
sign()函數根據某個值是0、正數還是負數,分別返回0、1、-1
例如:
變量1=10,變量2=20
則sign(變量1-變量2)返回-1,decode解碼結果為"變量1",達到了取較小值的目的。

?

?

?

?

Merge命令

通過這個merge你能夠在一個SQL語句中對一個表同時執行inserts和updates操作. 當然是update還是insert是依據于你的指定的條件判斷的,Merge into可以實現用B表來更新A表數據,如果A表中沒有,則把B表的數據插入A表. MERGE命令從一個或多個數據源中選擇行來updating或inserting到一個或多個表

merge into products p using newproducts np on (p.product_id = np.product_id)
when matched then
update set p.product_name = np.product_name
when not matched then
insert values(np.product_id, np.product_name, np.category)

?

TRUNC(number,num_digits)

Number 需要截尾取整的數字。

Num_digits 用于指定取整精度的數字。Num_digits 的默認值為 0。

?

?

Read Consistency(讀一致性)

?

?

?

?

?

?

?

?

?

?

集合類型 ?

?

使用條件:

?? a. 單行單列的數據,使用標量變量 。
?? b. 單行多列數據,使用記錄
?? c. 單列多行數據,使用集合

?????? *集合:類似于編程語言中數組也就是。pl/sql集合類型包括關聯數組Associative array(索引表 pl/sql table)、嵌套表(Nested Table)、變長數組(VARRAY)。

?

Nested table與VARRY既可以被用于PL/SQL,也可以被直接用于數據庫中,但是Associative array不行

Associative array是不能通過CREATE TYPE語句進行單獨創建,只能在PL/SQL塊(或Package)中進行定義并使用(即適用范圍是PL/SQL Block級別)

Nested table與VARRAY則可以使用CREATE TYPE進行創建(即適用范圍是Schema級別),它們還可以直接作為數據庫表中列的類型

?

數字有三種基本類型:

NUMBER可以描述整數或實數

PLS_INTEGER和BINARY_INTENER只能描述整數

NUMBER,是以十進制格式進行存儲的,但在計算中系統會自動轉換成為二進制進行運算。例如:NUMBER(5,2)可以用來存儲表示-999.99...999.99間的數值

BINARY_INTENER用來描述不存儲在數據庫中,但是需要用來計算的帶符號的整數值。它以2的補碼二進制形式表述。循環計數器經常使用這種類型。

PLS_INTEGER和BINARY_INTENER唯一區別:

在計算當中發生溢出時,BINARY_INTENER型的變量會被自動指派給一個NUMBER型而不會出錯,PLS_INTEGER型的變量將會發生錯誤

?

DECLARE
????TYPE ib_planguage IS TABLE OF VARCHAR2(10) INDEX BY PLS_INTEGER;
????lang ib_planguage;
????idx PLS_INTEGER;
BEGIN
????lang(1):='java';
????lang(9):='c#';
????lang(3):='c++';
????idx:=lang.FIRST;
????WHILE(idx IS NOT NULL) LOOP
????????DBMS_OUTPUT.PUT_LINE(lang(idx));
????????idx:=lang.NEXT(idx);
????END LOOP;
END;

?

與Associative array不同,Nested table變量需要顯式初始化。Nested table初始化之后還需要調用EXTEND過程,擴展集合的"容量"

DECLARE

????TYPE nt_planguage IS TABLE OF VARCHAR2(10);

????lang nt_planguage;
BEGIN
????lang:=nt_planguage('java','c#','c++');
????FOR i IN 1..lang.COUNT LOOP
????????DBMS_OUTPUT.PUT_LINE(lang(i));
????END LOOP;
END;

?

?

VARRAY可以在聲明時限制集合的長度。其索引總是連續的,而Nested table的索引在初始化賦值時是連續的,不過隨著集合元素被刪除,可能變得不連續

DECLARE

????TYPE va_planguage IS VARRAY(8) OF VARCHAR2(10);

????lang va_planguage;
BEGIN
????lang:=va_planguage('java','c#','c++');
????FOR i IN 1..lang.COUNT LOOP
????????DBMS_OUTPUT.PUT_LINE(lang(i));
????END LOOP;
END;

?

首選是Associative array,因為它不需要初始化或者EXTEND操作,并且是迄今為止最高效的集合類型。唯一不足的一點是它只能用于PL/SQL而不能直接用于數據庫。

如果你需要允許使用負數索引,應該選擇Associative array;

如果你需要限制集合元素的個數,應該選擇VARRAY

?

?

?

DUAL表

dual是一個虛擬表,用來構成select的語法規則

select user from dual;

select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual;--獲得當前系統時間

select SYS_CONTEXT('USERENV','TERMINAL') from dual;--獲得主機名

select SYS_CONTEXT('USERENV','language') from dual;--獲得當前 locale

select dbms_random.random from dual;--獲得一個隨機數

select your_sequence.nextval from dual;--獲得序列your_sequence的下一個值

select your_sequence.currval from dual;--獲得序列your_sequence的當前值

select 7*9 from dual; --用做計算器

?

?

ASCII 返回與指定的字符對應的十進制數

CHR 給出整數,返回對應的字符

CONCAT 連接兩個字符串

INITCAP 返回字符串并將字符串的第一個字母變為大寫

INSTR(C1,C2,I,J) 在一個字符串中搜索指定的字符,返回發現指定的字符的位置

LENGTH 返回字符串的長度

LOWER 返回字符串,并將所有的字符小寫

UPPER 返回字符串,并將所有的字符大寫

RPAD和LPAD 粘貼字符

ADD_MONTHS增加或減去月份

LAST_DAY 返回日期的最后一天

MONTHS_BETWEEN 給出date2-date1的月份

?

?

PL/SQL基礎

?

概述:

PL/SQL是Oracle對SQL的一種擴充,集成了程序化設計語言中的許多特性

PL/SQL的特點

過程化和模塊化

使用過程化語言的控制結構

錯誤處理

可移植性

集成

改善性能

支持所有的事物控制命令

支持所有SQL的DML命令

支持所有SQL的DDL命令

支持所有SQL的DCL命令

支持所有SQL的數據類型、函數、各種運算符

PL/SQL程序塊可以存儲在服務器中,被其他程序或SQL命令調用

對PL/SQL程序塊可以進行權限管理

?

?

PL/SQL中的Select語句

SELECT 列名,列名 . . . INTO 變量1,變量2 . . .

FROM 表 WHERE 條件 . . . ;

在使用SELECT …INTO…時,結果只能有一條,如果返回了多條數據或沒有數據,則將產生錯誤。(對于多條記錄的遍歷,可以使用游標)

?

PL/SQL程序結構

  • PL/SQL程序的單元由邏輯塊(BLOCK)組成
    • 塊可以順序出現,也可以相互嵌套
    • 每一個塊分成三部分

[DECLEAR]

????-- 說明部分(可選的)

BEGIN

????-- 語句執行部分(必需的)

[EXCEPTION]

????-- 出錯處理程序(可選的)

END ;

/

?

PL/SQL類型

無名塊:嵌入在應用內或交互式發出的無名塊

有名塊(應用的過程、函數):可以接受參數,并返回結果的有名塊,存儲在應用程序中。可以被反復調用。

存儲過程、函數:可以接受參數,并返回結果的有名塊,存儲在服務器端。可以被反復調用

包:有名的PL/SQL模塊,是相關的過程、函數、標識符的集合。存儲在服務器端。可以被反復調用。

數據庫出發器:與數據庫表相關的PL/SQL塊,存儲在服務器端。在客戶與服務器觸發事件發生時自動觸發。

應用觸發器:與一個應用事件相關的PL/SQL塊,存儲在服務器端。在應用程序的觸發事件時自動觸發。

?

?

變量定義

變量 [CONSTANT] 數據類型 [NOT NULL] [:= DEFAULT PL/SQL 表達式];

V_num????????number(2)????????:= 12 ;

沒有賦初值的變量,初值都是NULL

?

變量類型

%TYPE和%ROWTYPE 類型

%TYPE:表示已經定義的變量類型定義

%ROWTYPE:表示已經定義的表、視圖中的紀錄的類型或游標的結構類型

優點

不必了解數據庫中列的個數和數據類型

如果表結構改變,PL/SQL程序可以不變,減少程序的維護工作

V_EMPNO ????EMP.EMPNO%TYPE; /*EMP表名,EMPNO列名*/

V_REC????????EMP%ROWTYPE; /*EMP可以是表名或游標名*/

?

?

用戶定義的類型

create or replace type student_type as object(

????id????????number(5) ,

????firstname????varchar2(20) ,

????lastname????varchar2(20) ,

????major????????varchar2(30) ,

????current_credits????number(3));

????v_stu????????student_type ;

?

?

變量賦值

變量名:=常量 或 PL/SQL表達式

可在說明部分賦值,也可在執行部分賦值

DECLEAR

????num_var????number(5):=5; /*說明部分賦值*/

????v_emp????????emp%rowtype;

BEGIN

????v_emp.empno := 11011 ;???? /*執行部分賦值*/

????……

  select sal into num_var from emp where empno = 7788 ;

?

?

變量的作用范圍

變量如果不在子塊中重新定義,則在PL/SQL塊的所有子塊中有效

?

如果變量在子塊內重新定義,子塊內定義的變量優先,此變量的作用范圍僅在本子塊內有效。

?

如果主塊中的變量A和子塊變量A中同時定義時,在子塊中要用主塊的變量A時,必須在變量前加塊的標識符(如:塊的標識符.A)。

?

常用內置函數

函數 說明 轉換前的類型

TO_CHAR 轉換成VARCHAR類型 數字型、日期型

TO_DATE 轉換成DATE 字符型

TO_NUMBER 轉換成number類型 字符型

?

SELECT TO_CHAR (current_credits) INTO v_1 FROM student2 WHERE id = 1002

?

?

條件語句:

IF語句

DECLARE

????v_sal????emp.sal%type ;

BEGIN

????SELECT sal INTO v_sal FROM emp WHERE empno = 7788;

????IF v_sal < 500 THEN

????????UPDATE emp SET sal = sal * 1.5 WHERE empno = 7788;

????ELSIF v_sal < 1500 THEN

????????UPDATE emp SET sal = sal * 1.3 WHERE empno = 7788;

????ELSE

????????UPDATE emp SET sal = sal * 1.0 WHERE empno = 7788;

????END IF;

????COMMIT;

END;

/

<條件>是一個布爾型變量或表達式,取值只能是TRUE/FALSE/NULL

?

CASE語句:
CASE ????

????WHEN grade= 'A' THEN dbms_output.put_line('excellent');

????WHEN grade= 'B' THEN dbms_output.put_line('very good');

????WHEN grade= 'C' THEN dbms_output.put_line('good');

????WHEN grade= 'D' THEN dbms_output.put_line('fair');

????WHEN grade= 'F' THEN dbms_output.put_line('poor);

????ELSE dbms_output.put_line(' no such grade');

END CASE;

?

?

循環語句

Loop語句

DECLARE

????v_counter number :=1;

BEGIN

????LOOP

???? INSERT INTO temp_table VALUES(v_counter, 'loop index') ;

???? v_counter := v_counter + 1;

???? IF v_counter > 50 THEN

????????exit

???? END IF;

????END LOOP;

END;

/

?

?

WHILE語句

DECLARE

????v_counter number := 1 ;

BEGIN

????WHILE v_counter <= 50 LOOP

????????INSERT INTO temp_table VALUES(v_counter, 'loop_index');

????????v_counter := v_counter + 1 ;

????END LOOP;

END;

/

?

FOR語句

DECLARE

????????v_counter number :=1 ;

BEGIN

????FOR v_counter IN 1..50 LOOP

????????INSERT INTO temp_table VALUES(v_counter,'loop index');

????END LOOP ;

END;

/

FOR v_counter IN REVERSE 1..50 LOOP

其中:IN:表示索引變量的值小到大 IN REVERSE:表示索引變量的值從大到小

?

?

GOTO語句

DECLARE

????v_vonter number := 1;

BEGIN

????LOOP

????????INSERT INTO temp_table VALUES(v_counter, 'loop count');

????????v_counter := v_counter + 1 ;

????????IF v_counter > 50 THEN

????????????GOTO ENDOFLOOP ;

????????END IF ;

????END LOOP ;

????<<ENDOFLOOP>>

????????INSERT INTO temp_table(char_col) VALUES('done!') ;

END;

?

對于塊、循環或IF語句而言,想要從外層跳到內層是非法的

從一個IF子句調轉到IF的另一個子句中是非法的

出錯處理塊不能實行跳轉

?

?

?

異常處理

一個PL/SQL塊的出錯處理(EXCEPTION)部分包含程序處理多個錯誤的代碼。當一個錯誤發生時,程序控制離開PL/SQL塊的執行部分轉移到出錯處理部分。

. . .

BEGIN

. . .

EXCEPTION

????WHEN 錯誤1 [ OR 錯誤2 ] THEN 語句序列 1 ;

????WHEN 錯誤3 [ OR 錯誤4 ] THEN 語句序列 2 ;

????. . .

????WHEN OTHERS THEN 語句序列 3 ;

END ;

?

?

系統預定義錯誤 :在PL/SQL中經常出現的25個系統定義的錯誤,不必定義,允許服務器隱式地出發它們,只需要在出錯處理部分處理它們

用戶自定義錯誤:開發者認為是非正常的一個條件,必須在說明部分定義,在執行部分顯示觸發它們,在出錯處理部分處理它們。

?

異常代碼 異常名稱 說明

ORA-01403 NO_DATA_FOUND 查詢沒有返回數據

ORA-01422 TOO_MANY_ROWS SELECT….INTO 語句返回多行結果

DECLARE

????v_comm emp.comm%type ;

BEGIN

????SELECT????comm????INTO????v_comm

????FROM????emp????WHERE????empno = 7788 ;

EXCEPTION

????WHEN no_data_found THEN

????????????dbms_output.put_line( 'no data ! ' ) ;

????WHEN too_many_rows THEN

????????????dbms_output.put_line( 'too many row ! ' ) ;

????WHEN others THEN

????????????null ;

END ;

?

?

用戶自定義的錯誤有三個步驟:定義錯誤,觸發錯誤,處理錯誤

DECLARE

????e_toomanystudent???? exception;  /*定義錯誤*/

????v_currentstudent????????number(3);

????v_maxstudent????????number(3);

????v_errorcode????????number;

????v_errortext????????varchar2(200);

BEGIN????

SELECT current_student , max_students INTO

????v_currentstudent , v_maxstudent

FROM classe????WHERE department = 'HIS' and course = 101 ;

IF v_currentstudent > v_maxstudent THEN

????RAISE????e_toomanystudent ;     /*觸發錯誤*/

END IF ;

EXCEPTION

?

?

WHEN no_data_found or too_many_rows THEN

????dbms_output.putline('發生系統預定義錯誤') ;

WHEN e_toomanystudent THEN????????/*處理錯誤*/

????INSERT INTO log_table(info)

????VALUES('history 101 has' || v_currentstudent);

WHEN others THEN

????v_errorcode = sqlcode ;

????v_errortext = substr(sqlerrm,1,200)

????INSERT INTO log_table(code , message , info )

????VALUES(v_errorcode , v_errortext ,'Oracle error occured');

END ;

/

?

?

?

游標

游標是一個指向內存區域的指針,一個PL/SQL結構

游標有兩種類型:顯示游標和隱式游標

顯示游標:是由程序員定義和命名的,并且在塊的執行部分中通過特定語句操作的內存工作區。

隱式游標:是由PL/SQL為DML語句和SELECT語句隱式定義的工作區

?

?

顯示游標的處理步驟

?

游標是一個不含INTO子句的SELECT語句

SELECT語句允許帶WHERE,ORDER BY,GROUP BY等子句。

游標的定義

DECLARE

CURSOR emp_cursor IS

SELECT empno, ename

???? FROM emp;

CURSOR dept_cursor IS

SELECT *

FROM dept

WHERE deptno = 10;

BEGIN

...

?

打開游標

OPEN 游標名;

?

游標的處理

FETCH游標名INTO????[變量1, 變量2, ...]| 紀錄名];

FETCH emp_cursor INTO v_empno, v_ename;

?

DECLARE

???? CURSOR c_classes IS SELECT * FROM class;

v_classes c_classes%rowtype ;

BEGIN

???? . . .

OPEN c_classes;

FETCH c_classes INTO v_classes ;

. . .

END;

/

?

完成對行數據處理后,可以關閉游標,如果需要,還可以再次打開游標,關閉游標后,系統釋放與該游標關聯的資源,不能再對游標進行FETCH操作。

CLOSE????????c_classes;

?

顯示游標的一些屬性

%ISOPEN,%NOTFOUND,%FOUND,%ROWCOUNT

%ROWCOUNT Number 值是當前為止返回的記錄數,初值為0,每取一條記錄,該屬性值加1。

?

LOOP

FETCH emp_cursor INTO v_ename , v_sal;

EXIT WHEN emp_cursor%ROWCOUNT>5 or emp_cursor%NOTFOUND;

...

END LOOP;

?

?

DECLARE

v_deptno emp.deptno%type :=&p_deptno;

v_ename emp.ename%type;

v_sal emp.sal%type;

CURSOR emp_cursor IS SELECT ename ,sal FROM emp

????????????????????????????????WHERE deptno = v_deptno;

BEGIN

OPEN emp_cursor;

LOOP

FETCH emp_cursor INTO v_ename , v_sal;

EXIT WHEN emp_cursor%NOTFOUND;

INSERT INTO temp(ename, sal) VALUES(v_ename,v_sal);

END LOOP;

CLOSE emp_cursor;

COMMIT;

END;

/

?

?

?

游標的FOR循環

使用游標的FOR循環,可以簡化游標的操作步驟

游標的FOR循環隱式(自動)地完成三個步驟:打開游標;(FETCT)取數據;關閉游標

記錄名師系統隱式定義的游標名%ROWTYPE類型的記錄變量,不必事先定義

FOR 紀錄名 IN 游標名 LOOP

????????語句1;

????語句2;

????...

END LOOP;

?

DECLARE

v_deptno emp.deptno%type := &p_deptno;

CURSOR emp_cursor IS SELECT ename ,sal FROM emp

????????????????????????????????????WHERE deptno = v_deptno;

BEGIN

FOR emp_record IN emp_cursor LOOP

INSERT INTO temp(ename , sal)

VALUES(emp_record.ename , emp_record.sal);

END LOOP;

COMMIT; /*在本段程序中,沒有打開游標、取數據、關閉游標語句*/

END;

/

?

要操縱數據庫中數據,在定義游標的查詢語句時,必須加上FOR UPDATE OF從句,表示要對表加鎖。

表加鎖后,在UPDATE或DELETE語句中,加WHERE CURRENT OF子句,既可以對鎖定的數據進行修改

CURSOR 游標名IS

SELECT 列1,列2 … FORM 表 WHERE 條件

FOR UPDATE [OF column][NOWAIT];

?

帶WHERE CURRENT O 從句的UPDATE語句和DELETE語句

DELETE FROM 表 WHERE CURRENT OF 游標名;

UPDATE 表 SET 列1=值1,列2=值2... WHERE CURRENT OF 游標名;

?

Eg:查詢emp表某部門的雇員情況,如果雇員的工資小于800,則將其工資改為800

DECLARE

v_deptno emp.deptno%type :=&p_deptno;

v_empno emp.empno%type; 

v_job emp.job%type;

v_sal emp.sal%type;

CURSOR emp_cursor IS SELECT ename,job,sal FROM emp

????????????????WHERE deptno = v_deptno FOR UPDATE OF sal;

BEGIN

FOR emp_record IN emp_cursor LOOP

IF emp_record.sal < 800 THEN

UPDATE emp SET sal=800 WHERE CURRENT OF emp_cursor;

END IF;

dbms_output.put_line(emp_record.empno||emp_record.sal);

END LOOP;

COMMIT;

END;

?

?

Eg:為職工增加10%的工資,從最低工資開始長,增加后工資總額限制在50萬以內

DECLARE

emp_num number :=0; s_sal emp.sal%type; 

e_sal emp.sal%type; e_empno emp.empno%type;

CURSOR c1 IS SELECT empno,sal FROM emp ORDER BY sal

???????????????? FOR UPDATE OF sal;

BEGIN

OPEN c1;

SELECT sum(sal) INTO s_sal FROM emp;

WHILE s_sal < 500000

LOOP

FETCH c1 INTO e_empno,e_sal;

EXIT WHEN c1%NOTFOUND;

s_sal := s_sal + e_sal*0.1;

UPDATE emp SET sal=sal*1.1 WHERE CURRENT OF c1;

?

emp_num := emp_num + 1;

END LOOP;

CLOSE c1;

INSERT INTO msg VALUES(emp_num,s_sal);

COMMIT;

END;

?

?

帶參數的游標

此參數只能在游標的查詢語句中使用

只能向游標傳遞參數數值,不能通過參數帶出結果

可以有選擇地給參數提供一個默認值

CURSOR 游標名(參數1 數據類型[{:=|DEFAULT}值]

        [,參數2 數據類型[{:=|DEFAULT]值] ...]

IS SELECT 語句 ;

?

DECLARE

CURSOR emp_cursor

(p_deptno NUMBER, p_job VARCHAR2) IS

SELECT????empno, ename????FROM????emp

WHERE????deptno = p_deptno

AND ????job = p_job;

BEGIN

OPEN emp_cursor(10, 'CLERK');

...

?

Eg:首先查詢DEPT表取出所有的部門號,然后根據DEPT表中返回的每一個部門號,從emp表查詢該部門的雇員信息

DECLARE

CURSOR dept_cursor IS SELECT deptno FROM dept;

v_ename emp.ename%type;

v_sal emp.sal%type;

CURSOR emp_cursor(v_deptno number) IS

SELECT ename, sal FROM emp WHERE deptno = v_deptno;

BEGIN

FOR dept_record IN dept_cursor LOOP

EXIT WHEN dept_cursor%NOTFOUND ;

OPEN emp_cursor(dept_record.deptno);

LOOP

FETCH emp_cursor INTO v_ename,v_sal;

EXIT WHEN emp_cursor%NOTFOUND;

dbms_output.put_line(dept_record.deptno ||' '||

' '||v_sal);

END LOOP;

CLOSE emp_cursor;

END LOOP;

COMMIT;

END;

?

?

隱式游標

由系統定義,不需要用戶定義

用來處理INSERT,UPDATE,DELETE和單行的SELECT…INTO語句

游標名為SQL

游標的屬性存儲有關最近一次SQL命令的狀態信息

BEGIN

UPDATE emp SET sal=10000,deptno=30 WHERE empno=9998;

IF SQL%NOTFOUND THEN

INSERT INTO emp(empno,sal,deptno) VALUES(9998,10000,30);

END IF;

COMMIT;

END;

?

隱式游標的游標屬性%ISOPEN總是FALSE,因為當語句執行完后立即關閉隱式游標

SELEC….INTO語句只能執一行

?

存儲過程

CREATE [OR REPLACE] PROCEDURE 過程名

[(參數名 [ IN | OUT | IN OUT ] 數據類型,... )]

{IS | AS}

????????????[說明部分]

BEGIN

????????????語句序列

????[EXCEPTION 出錯處理]

END [過程名];

OR REPLACE 是一個可選的關鍵字,表示替代原有的過程

IS或AS后面是一個完整的PL/SQL塊的三部分(說明部分,執行部分,異常處理部分)

IN表示輸入變量,OUT表示輸出變量,IN OUT表示輸入輸出變量,缺省表示IN

CREATE OR REPLACE PROCEDURE modetest(

p_inpara IN????number,

p_outpare OUT number,

p_inoutpara IN OUT number)

IS

v_local number;

BEGIN

v_local????????:= p_inpara; /* IN類型參數不能出現在:=的左邊 */

p_outpara????:= 7; /* OUT類型參數不能出現在:=的右邊 */

v_local????????:= p_inoutpara;

p_inoutpara????:= 7;

END;????

?

?

CREATE PROCEDURE raise_salary(emp_id interger,v_increase integer)

IS                          /* 缺省IN */

BEGIN

UPDATE emp SET sal = sal + v_increase

WHERE empno = emp_id;

COMMIT;

END;

?

如果IN OUT參數的值在過程中沒有被更改,則它返回到調用環境時值不變

如果IN OUT 參數是字符型,不能指定長度。長度有調用環境決定

?

?

函數

參數都是IN類型,存儲函數必須返回并且只返回一個結果

函數體的可執行部分必須有RETURN語句(RETURN 表達式)

表達式的數值類型與RETURN子句定義要一致

CREATE OR REPLACE FUNCTION get_sal (p_emp_no IN empno%TYPE)

RETURN NUMBER

IS

???? v_emp_sal emp.sal%TYPE :=0;

BEGIN

???? SELECT sal INTO v_emp_sal FROM emp WHERE empno=p_emp_no;

RETURN(v_emp_sal);

EXCEPTION

WHEN no_data_found or too_many_rows THEN

dbms_output.put_line('System Error');

  WHEN others THEN

dbms_output.put_line(sqlerrm);

END get_sal;

/

?

?

CREATE OR REPLACE FUNCTION average_sal(v_n IN number(3))

RETURN NUMBER

IS

???? CURSOR c_emp IS SELECT empno ,sal FROM emp;

v_total_sal emp.sal%TYPE;

v_counter number;

v_emp_no emp.empno%TYPE;

BEGIN

FOR r_emp IN c_emp LOOP

EXIT WHEN c_emp%ROWCOUNT > v_n OR c_emp%NOTFOUND;

v_total_sal := v_total_sal + r_emp.sal;

v_counter := c_emp%ROWCOUNT;

v_emp_no := r_emp.empno;

dbms_output.putline('loop='||v_counter||

';empno='||v_emp_no);

END LOOP;

RETURN(v_total_sal/v_counter);

END average_sal;

/

?

過程和函數

參數類型不同:函數只有IN類型參數,而存儲有IN,OUT,IN OUT三個類型參數

返回值的方法不同:函數返回只有一個值,而存儲過程返回值由OUT參數帶出來

調用方法不同:

過程(實際參數1,實際參數2……);

變量名:=函數名(實際參數1,實際參數2….);

?

過程/函數中的異常處理

CREATE OR REPLACE PROCEDURE fire_emp(

p_emp_no IN emp.empno%TYPE)

IS

invalid_employee EXCEPTION;????????/*定義錯誤*/

BEGIN

DELETE FROM emp WHERE empno = p_emp_no ;

IF SQL%NOTFOUND THEN

RAISE invalid_employee; /*觸發錯誤*/

END IF;

EXCEPTION

WHEN invalid_employee THEN ROLLBACK;

????????INSERT INTO exception_table(line_nr,line)

????????VALUES(1,'employee does not exist.');

WHEN others THEN

dbms_output.putline(sqlerrm);

END fire_emp;

/

?

在SQL*Plus中使用過程/函數

在SQL*Plus中,用VARIABLE定義的變量在引用時,必須前面加冒號(:)。用ACCEPT接受的變量在引用時,前面加&符號。

?

SET SERVEROUTPUT ON

ACCEPT p_emp_no PROMPT 'please enter the employee number:'

VARIABLE v_emp_name varchar2(14);

VARIABLE v_emp_sal number;

VARIABLE v_emp_comm number;

EXECUTE query_emp(&p_emp_no,:v_emp_name,

:v_emp_sal,:v_emp_comm);

EXECUTE dbms_output.putline('Infomation for employee:'

|| to_char(&p_emp_no));

EXECUTE dbms_output.putline('The name is:'|| :v_emp_name);

EXECUTE dbms_output.putline('The salary is:'

|| to_char(:v_emp_sal));

EXECUTE dbms_output.putline(The commission is:'

|| to_char(:v_emp_comm));

?

?

?

包是一個可以將相關對象存儲在一起的PL/SQL結構

它包含了兩個分離的組成部分:包說明和包主體

包的組成

可以將相關的若干程序單元組織到一塊,用一個包名來標識這個集合

包中可以包含的程序單元

過程,函數,變量,游標,類型,常量,出錯情況

CREATE [OR REPLACE] PACKAGE 包名

{IS | AS}

公共變量的定義????????| 

公共類型的定義????????|

公共出錯處理的定義????|

公共游標的定義????????|

函數說明????????????|

過程說明      

END;

/

CREATE PACKAGE sal_package IS

PROCEDURE raise_sal(v_empno emp.empno%TYPE,

v_sal_increment emp.sal%TYPE);

PROCEDURE reduce_sal(v_empno emp.empno%TYPE,

v_sal_reduce emp.sal%TYPE);

v_raise_sal emp.sal%TYPE :=0;

v_reduce_sal emp.sal%TYPE :=0;

END;

/

?

CREATE [OR REPLACE] PACKAGE BODY 包名

{IS | AS}

私有變量的定義????????| 

私有類型的定義????????|

私有出錯處理的定義????|

私有游標的定義????????|

函數定義????????????|

過程定義      

END ;

/

CREATE PACKAGE BODY sal_package IS

PROCEDURE raise_sal(v_empno emp.empno%TYPE,

v_sal_increment emp.sal%TYPE)

IS

BEGIN

UPDATE emp SET sal = sal + v_sal_increment

WHERE empno = v_empno;

COMMIT WORK;

v_raise_sal := v_raise_sal + v_sal_increment;

END;

PROCEDURE reduce_sal(v_empno emp.empno%TYPE,

v_sal_reduce emp.sal%TYPE)

IS

BEGIN

UPDATE emp SET sal = sal – v_sal_reduce

WHERE empno = v_empno;

COMMIT WORK;

v_reduce_sal := v_reduce_sal + v_sal_reduce;

END;

END;

?

?

所有提供的Package由SYS所擁有,對于不是SYS的用戶,必須擁有EXCEUTE權限才能調用

所有Oracle提供的程序包都是以DBMS_或UTL_開頭

?

靜態SQL
靜態SQL指直接嵌入在PL/SQL塊中的SQL語句,靜態SQL用于完成特定或固定的任務。
select sal from emp where empno=4000;

?

動態SQL
動態SQL運行PL/SQL塊時動態輸入的SQL語句。如果在PL/SQL需要執行DDL語句,DCL語句,或則需要執行更加靈活的SQL語句(select中有不同where條件),需要用到用到動態SQL。
編寫動態SQL語句時,需要將SQL語句存放到字符串變量中,而且SQL語句可以包含占位符(以冒號開始)。
v_sql varchar2(100);
v_sql:='delete from emp where empno =:v_empno';

?

?

//刪除某個表
create or replace procedure pro_drop_table(v_table_name varchar2)
is
v_sql varchar2(100);
begin

v_sql := 'drop table ' || v_table_name;
execute immediate v_sql;

end;

?

BEGIN

FOR I IN 1 .. 100 LOOP

BEGIN

EXECUTE IMMEDIATE 'DROP TABLE T'||I;

EXCEPTION

WHEN OTHERS THEN NULL;

END;

EXECUTE IMMEDIATE 'CREATE TABLE T'||I||' ( DUMMY CHAR(1) )';

EXECUTE IMMEDIATE 'INSERT INTO T'||I||' VALUES ( ''X'' )';

END LOOP;

END;

/

?

將字符串每個逗號字符用方括號進行封裝

declare

t_vararray dbms_utility.lname_array;

vc_stringlist varchar2(4000);

n_idx binary_integer;

begin

--comma to table

vc_stringlist := 'dkf,dddl,fewe,klkj';

dbms_utility.comma_to_table(vc_stringlist, n_idx, t_vararray);

dbms_output.put_line('Total Num : '||to_char(n_idx));

?

for i in 1..n_idx loop

dbms_output.put_line(t_vararray(i));

t_vararray(i) := '['||t_vararray(i)||']';

end loop;

--table to comma

dbms_utility.table_to_comma(t_vararray, n_idx, vc_stringlist);

dbms_output.put_line('');

dbms_output.put_line(vc_stringlist);

?

end;

結果

Total Num : 4

dkf

dddl

fewe

klkj

[dkf],[dddl],[fewe],[klkj]

?

?

DECLARE

l_temp NUMBER;

BEGIN

l_temp := DBMS_UTILITY.get_time;

dbms_output.put_line('before=' || l_temp);

dbms_lock.sleep(5);

l_temp := DBMS_UTILITY.get_time;

dbms_output.put_line('after=' || l_temp);

END;

/

?

?

before=59955835

after=59956335

?

?

?

DECLARE

l_temp NUMBER;

BEGIN

l_temp := DBMS_UTILITY.get_cpu_time;

dbms_output.put_line('before=' || l_temp);

dbms_lock.sleep(5);

l_temp := DBMS_UTILITY.get_cpu_time;

dbms_output.put_line('after=' || l_temp);

END;

/

before=10

after=10

?

?

?

觸發器

觸發器由說明部分,語句執行部分和出錯處理部分三部分組成的PL/SQL有名塊(類似于存儲過程和函數)

觸發器不接受參數,不能再程序中調用

當觸發事件發生時隱式地(自動地)執行

觸發事件包括:在數據庫中執行如下操作

INSERT

UPDATE

DELETE

?

將超過某工種工資范圍的員工信息紀錄到aduit_message表中。sal_guide表紀錄了每一工種的工資范圍

CREATE OR REPLACE TRIGGER check_sal

BEFORE INSERT OR UPDATE OF sal,job ON emp FOR EACH ROW

WHEN (new.job <> 'PRESIDENT')

DECLAER

v_minsal sal_guide.minsal%TYPE;

v_maxsal sal_guide.maxsal%TYPE;

e_sal_out_of_range EXCEPTION;

BEGIN

SELECT minsal , maxsal INTO v_minsal , v_maxsal

FROM sal_guide WHERE job = :new.job;

IF (:new.sal < v_minsal) OR (:new.sal > v_maxsal) THEN

RAISE e_sal_out_of_range;

END IF;

EXCEPTION

WHEN e_sal_out_range THEN

INSERT INTO audit_message(line_nr,line)

VALUES(1,'salary'||to_char(:new.sal)||

'is out of range for employee'||to_char(:new.empno));

END ;

?

?

觸發器類型:語句級和行級

觸發事件:表的插入,更新,刪除

觸發時間:BEFORE和AFTER

?

觸發器分語句級和行級觸發器兩個級別

行級觸發器與語句級觸發器的區別主要在于觸發次數不同

如果DML語句只影響一行,則語句級和行級觸發器效果一樣

如果該DML語句影響多行,則行級觸發器觸發的次數比語句級觸發器觸發的次數多

?

語句之前觸發->行之前觸發->插入、更新、刪除一條記錄->行之后出發->語句之后觸發

?

在觸發器體內禁止使用COMMIT,ROLLBACK語句

?

事件指明觸發事件的數據操縱語句,有三種可能的值:INSERT,UPDATE,UPDATE OF 列名1,DELETE

該觸發器在一個數據操作語句發生時只觸發一次

CREATE [OR REPLACE] TRIGGER 觸發器名

{BEFORE | AFTER} 事件1 [OR 事件2 ...] ON 表名

PL/SQL 塊;

Eg:創建一個BEFORE型語句級觸發器。限制一周內向emp表插入數據的時間,如果是周六、周日,或晚上6點到第二天早上8點之間插入,則中斷操作,并提示用戶不允許在此時間向emp表插入

CREATE OR REPLACE TRIGGER secure_emp

BEFORE INSERT ON emp

BEGIN

IF (TO_CHAR(sysdate,'DY') IN( 'SAT','SUN')

OR (TO_CHAR(sysdate,'HH24') NOT BETWEEN '8' AND '18')

THEN RAISE_APPLICATION_ERROR(-20500,'you may only

insert emp during normal hours.');

END IF;

END; ????????

?

使用觸發謂詞(INSERTING,UPDATING,DELETING)

觸發器可以包含多個觸發事件,在觸發器中使用謂詞判斷是哪個觸發了觸發器

謂詞 行為和值

INSERTING????????????如果觸發事件是INSERTING,則謂詞的值為TRUE,否則為FALSE

?

?

CREATE OR REPLACE TRIGGER secure_emp

BEFORE DELETE OR INSERT OR UPDATE ON emp

BEGIN

IF (TO_CHAR(sysdate,'DY') IN( 'SAT','SUN') OR

(TO_CHAR(sysdate,'HH24') NOT BETWEEN '8' AND '18') THEN

IF DELETING THEN

????RAISE_APPLICATION_ERROR(-20502,'you may only

delete emp during normal hours.');

ELSIF INSERTING THEN

RAISE_APPLICATION_ERROR(-20500,'you may only

insert emp during normal hours.');

ELSE THEN

RAISE_APPLICATION_ERROR(-20504,'you may only

update emp during normal hours.');

END IF;

END IF;

END;????

?

?

通過在CREATE TRIGGER 語句中指定FOR EACH ROW 子句創建一個行觸發器

CREATE [OR REPLACE] TRIGGER 觸發器名

{BEFORE | AFTER} 事件1 [OR 事件2 ...] ON 表名

FOR EACH ROW [WHEN 限制條件]

PL/SQL 塊;

?

Eg:將每個用戶對數據庫emp表進行數據操縱(插入、更新、刪除)的次數紀錄到audit_table表中

CREATE OR REPLACE TRIGGER audit_emp

AFTER DELETE OR INSERT OR UPDATE ON emp FOR EACH ROW

BEGIN

IF DELETING THEN

UPDATE audit_table SET del = del + 1

WHERE user_name = user AND table_name = 'emp'

AND colun_name IS NULL;

ELSIF INSERTING THEN

UPDATE audit_table SET ins = ins + 1

WHERE user_name = user AND table_name = 'emp'

AND colun_name IS NULL;

ELSE THEN

UPDATE audit_table SET upd = upd + 1

WHERE user_name = user AND table_name = 'emp'

AND colun_name IS NULL;

END IF;

END; ????

?

?

使用行級觸發器的標識符(:OLD和:NEW)

在行級觸發器中,列名前加上:OLD標識符表示該列變化前的值,加上:NEW標識符表示變化后的值

在BEFORE型行級觸發器和AFTER型行級觸發器中使用這些標識符

在語句級觸發器中不要使用這些標識符

在觸發器體的SQL語句或PL/SQL語句中使用這些標識符時,前加冒號(:)

在行級觸發器的WHEN限制條件中使用這些標識符時,前面不要加冒號(:)

?

Eg:在行級觸發器中獲取某列的新值和舊值,為emp表中的所有數據保留一個歷史檔案

CREATE OR REPLACE TRIGGER audit_emp_values

AFTER DELETE OR INSERT OR UPDATE ON emp FOR EACH ROW

BEGIN

INSERT INTO audit_emp(user_name,timestamp,empno,

old_ename,new_ename,old_job,new_job,

old_sal,new_sal)

VALUES(USER,SYSDATE,:old.empno,:old.ename,

:new.ename,:old.job,:new.job,:old.sal,:newsal);

END;

?

?

Eg:在行級觸發器加WHEN限制條件。根據銷售員工資的改變自動計算銷售員的獎金

CREATE OR REPLACE TRIGGER derive_comm

BEFORE UPDATE OF sal ON emp FOR EACH ROW

WHEN (new.job = 'SALESMAN')

BEGIN

:new.comm := :old.comm * (:new.sal/:old.sal);

END;????????

?

?

CREATE TIGGER

CREATE OR REPLACE TRIGGER

DROP TRIGGER

?

SYSTEM觸發器

DDL觸發器

?

INSTEAD OF 觸發器

instead of trigger 是基于視圖建立的,不能建在表上,為什么要建在視圖上,一般的視圖如果其數據來源一個表并且包含該表的主鍵,就可以對視圖進行DML操作.另外一種情況是 從多個表查詢出來的.這樣我們就不能對視圖進行操作了,也就是只能查詢.instead of trigger可以解決建在多表上視圖的更新操作.

?

?

?

?

BULK DML

Oracle引入了兩個DML語句: BUKL COLLECT 和 FORALL

這兩個語句在PL/SQL內部進行以一種數據處理

BUKL COLLECT 提供對數據的高速檢索

FORALL 可大大改進INSERT,UPDATE和DELETE操作的性能

Oracle數據庫使用這些語句大大減少了PL/SQL與SQL語句執行引擎的環境切換次數,從而使其性能有了顯著提高

?

DECLARE
????TYPE books_aat IS TABLE OF book%ROWTYPE
????????INDEX BY PLS_INTEGER;
????my_books books_aat;
BEGIN
????SELECT * BULK COLLECT INTO my_books
????FROM book WHERE title LIKE '%PL/SQL%';
????...
END;

?

?

CREATE TYPE books_nt
IS TABLE OF book%ROWTYPE;

CREATE OR REPLACE PROCEDURE add_books ( books_in IN books_nt)
IS
BEGIN
????FORALL book_index
????????IN books_in.FIRST .. books_in.LAST
????INSERT INTO book VALUES books_in(book_index);
????...
END;

?

?

?

?

DECLARE

Type region_id_tbl IS TABLE of NUMBER INDEX BY BINARY_INTEGER;

Type region_name_tbl IS TABLE of VARCHAR2(20) INDEX BY BINARY_INTEGER;

region_ids region_id_tbl; region_names region_name_tbl; ret_code NUMBER;

ret_errmsg VARCHAR2(1000);

Procedure load_regions_bulk_bind (region_ids IN region_id_tbl, region_names IN region_name_tbl,

retcd OUT NUMBER, errmsg OUT VARCHAR2)

IS

BEGIN

-- clean up the region_tab table initially.

DELETE FROM region_tab;

FORALL i IN region_ids.FIRST..region_ids.LAST

INSERT INTO region_tab values (region_ids(i), region_names(i));

Retcd := 0;

EXCEPTION

WHEN OTHERS THEN

COMMIT;

Retcd := SQLCODE;

Errmsg := SQLERRM;

END;

BEGIN

FOR i IN 1..5 LOOP

Region_ids(i) := i; Region_names(i) := 'REGION'||i;

END LOOP;

Load_regions_bulk_bind(region_ids, region_names, ret_code, ret_errmsg);

EXCEPTION WHEN OTHERS THEN

RAISE_APPLICATION_ERROR(-20112, SQLERRM);

END;

?

?

?

什么時候使用FORALL

FORALL可以大量的提高從源表或者視圖到目標表的插入,更新,刪除,合并操作

?

如果FORALL的調用集合中缺失一個元素那么錯誤將會發生

如果一個行級別的發生那么整個進程將會停止

?

?

DECLARE

t_outtab_type IS TABLE OF input_table%ROWTYPE;

v_outtab t_outtab_type;

BEGIN

SELECT * BULK COLLECT INTO v_outtab

FROM input_table

WHERE key_col = '<val1>';

?

FOR i IN 1..v_outtab.COUNT LOOP

-- Process the rows one by one according to required logic.

END LOOP;

END;

/

?

DECLARE

t_outtab_type IS TABLE OF input_table%ROWTYPE;

v_outtab t_outtab_type;

CURSOR c_in IS SELECT * FROM input_table

WHERE key_col = '<val1>';

BEGIN

OPEN c_in;

FETCH c_in BULK COLLECT INTO v_outtab;

FOR i IN 1..v_outtab.COUNT LOOP

-- Process the rows one by one according to required logic.

END LOOP;

?

CLOSE c_in;

END;

/

?

DECLARE

t_outtab_type IS TABLE OF input_table%ROWTYPE;

v_outtab t_outtab_type;

CURSOR c_in IS SELECT * FROM input_table

WHERE key_col = '<val1>';

BEGIN

OPEN c_in;

FETCH c_in BULK COLLECT INTO v_outtab;

FOR i IN 1..v_outtab.COUNT LOOP

-- Process the rows one by one according to required logic.

END LOOP;

?

CLOSE c_in;

END;

/

?

?

用bulk query的主要有點,

減少運行的時間,更少的延時

如果取得的數據很大的話,那么回增加內存的消耗

?

可以通過特定的limite數量來控制取得的數量

DECLARE

t_outtab_type IS TABLE OF input_table%ROWTYPE;

v_outtab t_outtab_type;

CURSOR c_in IS SELECT * FROM input_table WHERE key_col = '<val1>';

BEGIN

OPEN c_in;

LOOP

FETCH c_in BULK COLLECT INTO v_outtab LIMIT 100;

FOR i IN 1..v_outtab.COUNT LOOP

-- Process the rows one by one according to required logic.

NULL;

END LOOP;

EXIT WHEN c_in%NOTFOUND;

END LOOP;

CLOSE c_in;

END;

/

?

自治事物

自治事物允許你在一個事務中創建一個事務,這個事務將會獨立于父事務進行提交,回滾等改變

允許你掛起現在正在執行的事務,開始一個新的事務,做一些工作,提交回滾,所有的這些事情不會影響當前正在執行事務的狀態

通過pragma autonomous_transaction將一個pl/sql程序結構設定為自治事務,pragma是編譯器指令,可以將procedure function package等頂級匿名塊定義成自治的程序結構。

?

create or replace trigger EMP_AUDIT

????before update on emp for each row

declare

????pragma autonomous_transaction;

????l_cnt number;

begin

????select count(*) into l_cnt from dual

????where EXISTS ( select null from emp where empno = :new.empno

????????start with mgr = ( select empno from emp where ename = USER )

????????connect by prior empno = mgr );

????if ( l_cnt = 0 ) then

????????insert into audit_tab ( msg )

????????values ( 'Attempt to update ' || :new.empno );

????????commit;

????????raise_application_error( -20001, 'Access Denied' );

????end if;

end;

/

?

?

?

?

?

綁定變量

下面的代碼每次都要硬編碼

create or replace procedure dsal(p_empno in number)
as
begin
????execute immediate
????????'update emp set sal = sal*2

????????where empno = '||p_empno;
????commit;
end;

?

通過如下改變就可以了

create or replace procedure dsal(p_empno in number)
as
begin
????execute immediate
????????'update emp set sal = sal*2

????????where empno = :x' using p_empno;
????commit;
end;

?

游標變量 : 聲明游標實際上是創建一個指針 , 指針具有數據類型 REF X.REF 是 REFERENCE ,X 是表示類對象 . 因此 , 游標變量具有數據類型 REF? CURSOR.

注 : 游標總是指向相同的查詢工作區 , 游標變量能夠指向不同的工作區 , 因此游標和游標變量不能互操作 .

DECLARE

TYPE empcurtyp IS REF CURSOR RETURN employees%ROWTYPE;

emp empcurtyp;

-- after result set is built, process all the rows inside a single procedure

-- rather than calling a procedure for each row

PROCEDURE process_emp_cv (emp_cv IN empcurtyp)

IS

person employees%ROWTYPE;

BEGIN

DBMS_OUTPUT.PUT_LINE('-----');

DBMS_OUTPUT.PUT_LINE('Here are the names from the result set:');

LOOP

FETCH emp_cv INTO person;

EXIT WHEN emp_cv%NOTFOUND;

DBMS_OUTPUT.PUT_LINE('Name = ' || person.first_name || ' ' || person.last_name);

END LOOP;

END;

BEGIN

-- First find 10 arbitrary employees.

OPEN emp FOR SELECT * FROM employees WHERE ROWNUM < 11;

process_emp_cv(emp);

CLOSE emp;

?

-- find employees matching a condition.

OPEN emp FOR SELECT * FROM employees WHERE last_name LIKE 'R%';

process_emp_cv(emp);

CLOSE emp;

END;

轉載于:https://www.cnblogs.com/kexinxin/p/10011934.html

總結

以上是生活随笔為你收集整理的大型数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

精品久久久中文字幕人妻 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 国产女主播喷水视频在线观看 | 一本色道久久综合亚洲精品不卡 | 国产口爆吞精在线视频 | 国产亚洲精品久久久久久 | 无遮挡国产高潮视频免费观看 | 女人和拘做爰正片视频 | 国产激情精品一区二区三区 | 高清不卡一区二区三区 | 国产精品久久久久久亚洲毛片 | 熟女体下毛毛黑森林 | 老熟妇乱子伦牲交视频 | 欧美日本免费一区二区三区 | 大色综合色综合网站 | 国产另类ts人妖一区二区 | 久久精品一区二区三区四区 | 国产美女极度色诱视频www | 国产亚av手机在线观看 | 久久精品中文闷骚内射 | 成人精品视频一区二区三区尤物 | 国产精品无码成人午夜电影 | 中文字幕亚洲情99在线 | 国产成人一区二区三区别 | 人妻中文无码久热丝袜 | 精品一二三区久久aaa片 | 久久综合激激的五月天 | 波多野结衣aⅴ在线 | 一本久道久久综合婷婷五月 | 国产偷国产偷精品高清尤物 | 两性色午夜视频免费播放 | 久久午夜无码鲁丝片 | 午夜嘿嘿嘿影院 | 丰满少妇人妻久久久久久 | 日韩人妻无码一区二区三区久久99 | 色婷婷香蕉在线一区二区 | 一本无码人妻在中文字幕免费 | 色狠狠av一区二区三区 | 国产成人无码专区 | 国产午夜视频在线观看 | 国产区女主播在线观看 | 免费播放一区二区三区 | 久久久婷婷五月亚洲97号色 | 天天躁日日躁狠狠躁免费麻豆 | 无套内谢的新婚少妇国语播放 | 一本久道久久综合狠狠爱 | 欧美人与物videos另类 | 久久成人a毛片免费观看网站 | 亚洲欧美日韩国产精品一区二区 | 国产极品美女高潮无套在线观看 | 少妇久久久久久人妻无码 | 亚洲中文字幕乱码av波多ji | 麻豆果冻传媒2021精品传媒一区下载 | 国产无套内射久久久国产 | 无码人妻丰满熟妇区五十路百度 | 久久久久久久人妻无码中文字幕爆 | 亚洲国产精华液网站w | 国产成人精品一区二区在线小狼 | 偷窥日本少妇撒尿chinese | 国産精品久久久久久久 | 国产激情精品一区二区三区 | 国产精品无码一区二区三区不卡 | 日本丰满护士爆乳xxxx | 亚洲国产av精品一区二区蜜芽 | 初尝人妻少妇中文字幕 | 亚洲自偷自偷在线制服 | 97资源共享在线视频 | 无码av免费一区二区三区试看 | 国产偷国产偷精品高清尤物 | 国产成人精品视频ⅴa片软件竹菊 | 中文字幕无码av波多野吉衣 | 青青青爽视频在线观看 | 国产亚洲视频中文字幕97精品 | 欧美熟妇另类久久久久久多毛 | 97夜夜澡人人双人人人喊 | 亚洲人成影院在线观看 | 国产精品永久免费视频 | 日产精品高潮呻吟av久久 | 真人与拘做受免费视频 | 国产亚洲精品久久久久久大师 | 国产亚洲美女精品久久久2020 | 我要看www免费看插插视频 | 亚洲日韩中文字幕在线播放 | 亚洲精品综合五月久久小说 | 无码av岛国片在线播放 | 欧美xxxxx精品 | 欧洲美熟女乱又伦 | 亚洲熟女一区二区三区 | 国产偷自视频区视频 | 一本色道久久综合狠狠躁 | 久久人妻内射无码一区三区 | 久久精品中文字幕大胸 | 国产精品美女久久久网av | 精品久久久久香蕉网 | 国产片av国语在线观看 | 日本欧美一区二区三区乱码 | 国内少妇偷人精品视频免费 | 国产高潮视频在线观看 | 性色欲情网站iwww九文堂 | 波多野42部无码喷潮在线 | 荡女精品导航 | 国产内射老熟女aaaa | 精品夜夜澡人妻无码av蜜桃 | 亚洲va中文字幕无码久久不卡 | 97色伦图片97综合影院 | 亚洲高清偷拍一区二区三区 | 精品少妇爆乳无码av无码专区 | 欧美日韩视频无码一区二区三 | 国产人妻精品午夜福利免费 | 日本熟妇乱子伦xxxx | 亚洲日韩中文字幕在线播放 | 成熟女人特级毛片www免费 | 国产熟女一区二区三区四区五区 | 国产精品久久久久无码av色戒 | 131美女爱做视频 | 亚洲成av人片在线观看无码不卡 | 少妇无码一区二区二三区 | 76少妇精品导航 | 国产精品嫩草久久久久 | 亚洲一区二区三区偷拍女厕 | 亚洲中文字幕在线无码一区二区 | 欧美 日韩 亚洲 在线 | 欧美人与牲动交xxxx | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 国产麻豆精品精东影业av网站 | 乱中年女人伦av三区 | 国产亚洲人成在线播放 | 一本精品99久久精品77 | 丰满妇女强制高潮18xxxx | 国产色精品久久人妻 | 99久久精品日本一区二区免费 | 亚洲综合无码一区二区三区 | 国产性生大片免费观看性 | 免费观看激色视频网站 | 2020久久香蕉国产线看观看 | 国产卡一卡二卡三 | 蜜桃视频插满18在线观看 | 激情国产av做激情国产爱 | 丰满少妇人妻久久久久久 | 亚洲男女内射在线播放 | а√天堂www在线天堂小说 | 夜夜影院未满十八勿进 | 亚洲大尺度无码无码专区 | 欧美人与善在线com | 人妻熟女一区 | 精品国产一区二区三区四区 | 国产精品美女久久久久av爽李琼 | 国产热a欧美热a在线视频 | 亚洲精品一区二区三区在线 | 国产激情艳情在线看视频 | 在线 国产 欧美 亚洲 天堂 | 亚洲中文字幕成人无码 | 日韩av激情在线观看 | 久久人人爽人人爽人人片ⅴ | 亚洲日本va午夜在线电影 | 国内精品久久久久久中文字幕 | 国产激情艳情在线看视频 | 人妻少妇精品无码专区二区 | 国产精品无码永久免费888 | 国产两女互慰高潮视频在线观看 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 亚洲啪av永久无码精品放毛片 | 久久久久av无码免费网 | 欧美日韩一区二区三区自拍 | 性做久久久久久久久 | 亚洲日韩精品欧美一区二区 | 国产乱子伦视频在线播放 | 99精品无人区乱码1区2区3区 | 好男人社区资源 | 欧美zoozzooz性欧美 | 性色av无码免费一区二区三区 | 日本精品人妻无码77777 天堂一区人妻无码 | 亚洲成av人综合在线观看 | a国产一区二区免费入口 | 无码吃奶揉捏奶头高潮视频 | 无码毛片视频一区二区本码 | 少妇性l交大片 | 狠狠综合久久久久综合网 | 欧美精品无码一区二区三区 | 日产精品高潮呻吟av久久 | 中文精品久久久久人妻不卡 | 亚洲欧美中文字幕5发布 | 亚洲欧美日韩成人高清在线一区 | 老头边吃奶边弄进去呻吟 | 东京热无码av男人的天堂 | 亚洲欧美精品aaaaaa片 | 午夜理论片yy44880影院 | 精品人人妻人人澡人人爽人人 | 国产性生大片免费观看性 | 国产真人无遮挡作爱免费视频 | 中文字幕无码免费久久9一区9 | 97夜夜澡人人爽人人喊中国片 | 亚洲爆乳精品无码一区二区三区 | 性史性农村dvd毛片 | 久久综合给久久狠狠97色 | 两性色午夜视频免费播放 | 久久亚洲国产成人精品性色 | 国产偷国产偷精品高清尤物 | 国产在线一区二区三区四区五区 | 国产黄在线观看免费观看不卡 | 国产 精品 自在自线 | 久久精品中文字幕大胸 | 激情人妻另类人妻伦 | 成人亚洲精品久久久久软件 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 精品乱子伦一区二区三区 | 欧美 丝袜 自拍 制服 另类 | 内射白嫩少妇超碰 | 精品一区二区三区波多野结衣 | 一本久久伊人热热精品中文字幕 | 人人妻人人澡人人爽人人精品 | 亚洲人亚洲人成电影网站色 | 乱人伦中文视频在线观看 | 无码人妻黑人中文字幕 | 精品久久久无码中文字幕 | 久久久久人妻一区精品色欧美 | 丝袜 中出 制服 人妻 美腿 | 亚洲最大成人网站 | 四虎永久在线精品免费网址 | 黑人大群体交免费视频 | 亚洲精品一区二区三区婷婷月 | 亚洲无人区午夜福利码高清完整版 | 精品无码成人片一区二区98 | 久久亚洲中文字幕精品一区 | 亚洲天堂2017无码 | 欧美真人作爱免费视频 | 亚洲日本在线电影 | 欧美性猛交内射兽交老熟妇 | 日本一区二区三区免费播放 | 国产精品怡红院永久免费 | 欧洲熟妇色 欧美 | 蜜桃无码一区二区三区 | 又大又硬又黄的免费视频 | 红桃av一区二区三区在线无码av | 精品国产福利一区二区 | 中文字幕日韩精品一区二区三区 | 欧美 亚洲 国产 另类 | 99久久久无码国产精品免费 | 日韩精品a片一区二区三区妖精 | 国产精品无码一区二区桃花视频 | 久久精品人人做人人综合 | 国产人妻久久精品二区三区老狼 | 国产suv精品一区二区五 | 日本爽爽爽爽爽爽在线观看免 | 乱人伦人妻中文字幕无码久久网 | 午夜精品久久久内射近拍高清 | 亚洲熟妇自偷自拍另类 | 波多野结衣一区二区三区av免费 | 国产亚洲欧美日韩亚洲中文色 | 中文无码成人免费视频在线观看 | 成人精品一区二区三区中文字幕 | 无码人妻精品一区二区三区不卡 | 日欧一片内射va在线影院 | 成人一区二区免费视频 | 亚洲狠狠色丁香婷婷综合 | 色一情一乱一伦一区二区三欧美 | 久久久中文久久久无码 | 性色欲情网站iwww九文堂 | 少妇人妻大乳在线视频 | 亚洲国产精品久久人人爱 | 久久精品国产一区二区三区 | 日日碰狠狠躁久久躁蜜桃 | av无码电影一区二区三区 | 欧美高清在线精品一区 | 红桃av一区二区三区在线无码av | 国产精品久久久久久久影院 | 激情综合激情五月俺也去 | 漂亮人妻洗澡被公强 日日躁 | 一本加勒比波多野结衣 | 好屌草这里只有精品 | 国产乱人伦av在线无码 | 亚洲国产精品毛片av不卡在线 | 婷婷丁香五月天综合东京热 | 1000部啪啪未满十八勿入下载 | 亚洲a无码综合a国产av中文 | 久久无码人妻影院 | 欧美三级不卡在线观看 | 未满小14洗澡无码视频网站 | 国精产品一区二区三区 | 天堂久久天堂av色综合 | 福利一区二区三区视频在线观看 | 久精品国产欧美亚洲色aⅴ大片 | 丰满人妻精品国产99aⅴ | 亚洲色在线无码国产精品不卡 | 国产精品无码mv在线观看 | 无码人妻出轨黑人中文字幕 | 国産精品久久久久久久 | 国精品人妻无码一区二区三区蜜柚 | 欧美精品国产综合久久 | 久久精品视频在线看15 | 特黄特色大片免费播放器图片 | 国产精品二区一区二区aⅴ污介绍 | 女人高潮内射99精品 | 夜精品a片一区二区三区无码白浆 | 亚洲成在人网站无码天堂 | 国产精品美女久久久网av | 午夜精品一区二区三区的区别 | 国产亚洲欧美在线专区 | 久久人人爽人人人人片 | 国产成人精品久久亚洲高清不卡 | 国内精品人妻无码久久久影院 | 澳门永久av免费网站 | 亚洲精品综合五月久久小说 | 99久久人妻精品免费二区 | 帮老师解开蕾丝奶罩吸乳网站 | 国产成人综合在线女婷五月99播放 | 色爱情人网站 | 亚洲精品久久久久avwww潮水 | 久久国产精品萌白酱免费 | 中文字幕av无码一区二区三区电影 | 欧美三级不卡在线观看 | 亚洲精品午夜无码电影网 | 中文字幕无码av波多野吉衣 | 国产精品久免费的黄网站 | 国产猛烈高潮尖叫视频免费 | 97久久国产亚洲精品超碰热 | 给我免费的视频在线观看 | www国产亚洲精品久久网站 | 欧美日韩人成综合在线播放 | 日日躁夜夜躁狠狠躁 | 成人欧美一区二区三区黑人免费 | 97精品国产97久久久久久免费 | 亚洲男女内射在线播放 | 久久99精品国产麻豆蜜芽 | 久久精品中文字幕一区 | 人妻少妇精品无码专区二区 | 无码av免费一区二区三区试看 | 九月婷婷人人澡人人添人人爽 | 男女猛烈xx00免费视频试看 | 中文字幕乱码人妻无码久久 | 国产精品毛片一区二区 | 精品久久综合1区2区3区激情 | 色五月丁香五月综合五月 | 精品午夜福利在线观看 | 久久综合久久自在自线精品自 | 曰本女人与公拘交酡免费视频 | 日韩精品成人一区二区三区 | 天堂а√在线中文在线 | 国精品人妻无码一区二区三区蜜柚 | 国产在线精品一区二区高清不卡 | 最新版天堂资源中文官网 | 天下第一社区视频www日本 | 亚洲第一网站男人都懂 | 国产精品国产自线拍免费软件 | 福利一区二区三区视频在线观看 | 狠狠躁日日躁夜夜躁2020 | 精品亚洲韩国一区二区三区 | 日韩精品久久久肉伦网站 | 女人高潮内射99精品 | 国产色精品久久人妻 | 中国女人内谢69xxxxxa片 | 国产精品多人p群无码 | 精品日本一区二区三区在线观看 | 亚洲中文字幕久久无码 | 永久免费精品精品永久-夜色 | 少妇被黑人到高潮喷出白浆 | 少妇无套内谢久久久久 | 久久99精品久久久久久 | 亚洲欧美日韩综合久久久 | 少妇无码吹潮 | 国产亚洲日韩欧美另类第八页 | 红桃av一区二区三区在线无码av | 乌克兰少妇性做爰 | 在线成人www免费观看视频 | 黑森林福利视频导航 | 2020久久超碰国产精品最新 | 中国女人内谢69xxxxxa片 | 亚洲精品综合五月久久小说 | 国产热a欧美热a在线视频 | 波多野结衣av在线观看 | 西西人体www44rt大胆高清 | 狂野欧美性猛交免费视频 | 久久国产精品二国产精品 | 国产午夜福利亚洲第一 | 天堂无码人妻精品一区二区三区 | 一本色道婷婷久久欧美 | 亚洲乱码日产精品bd | 中文字幕人妻丝袜二区 | 成人精品视频一区二区三区尤物 | 天堂а√在线中文在线 | 国产精品美女久久久网av | 欧美自拍另类欧美综合图片区 | 小sao货水好多真紧h无码视频 | 人人妻人人澡人人爽人人精品浪潮 | 四虎国产精品免费久久 | 丰满人妻翻云覆雨呻吟视频 | 日本一卡二卡不卡视频查询 | 国产精品.xx视频.xxtv | 国产真人无遮挡作爱免费视频 | 无遮无挡爽爽免费视频 | 亚洲成av人片天堂网无码】 | 99久久婷婷国产综合精品青草免费 | 成 人影片 免费观看 | 在线精品国产一区二区三区 | 最新国产麻豆aⅴ精品无码 | 亚洲s色大片在线观看 | 人妻人人添人妻人人爱 | 美女极度色诱视频国产 | 亚洲综合久久一区二区 | 麻豆国产丝袜白领秘书在线观看 | 亚洲精品成人福利网站 | 亚洲 另类 在线 欧美 制服 | 亚洲啪av永久无码精品放毛片 | 天堂а√在线中文在线 | 好男人www社区 | 色欲久久久天天天综合网精品 | 成在人线av无码免费 | 香蕉久久久久久av成人 | 欧美性生交xxxxx久久久 | 国产高清av在线播放 | 亚洲精品久久久久久一区二区 | 欧美兽交xxxx×视频 | 波多野结衣一区二区三区av免费 | 18无码粉嫩小泬无套在线观看 | 成人综合网亚洲伊人 | 久久亚洲中文字幕精品一区 | 欧美性生交xxxxx久久久 | 精品无码一区二区三区的天堂 | 国产片av国语在线观看 | 精品无人国产偷自产在线 | 欧美日韩一区二区三区自拍 | 天堂а√在线地址中文在线 | 日韩视频 中文字幕 视频一区 | 三级4级全黄60分钟 | 55夜色66夜色国产精品视频 | 真人与拘做受免费视频 | 妺妺窝人体色www在线小说 | 5858s亚洲色大成网站www | 无码精品人妻一区二区三区av | 亚洲熟妇色xxxxx亚洲 | 最新国产乱人伦偷精品免费网站 | 中文精品无码中文字幕无码专区 | 又湿又紧又大又爽a视频国产 | 久久精品人人做人人综合 | 亚洲综合久久一区二区 | 久久国产精品_国产精品 | 国产精品亚洲专区无码不卡 | 欧美人与物videos另类 | 内射后入在线观看一区 | 男女爱爱好爽视频免费看 | 国产精品毛片一区二区 | 免费无码肉片在线观看 | 久久精品人妻少妇一区二区三区 | 性做久久久久久久久 | 18禁止看的免费污网站 | 欧美自拍另类欧美综合图片区 | 欧洲熟妇精品视频 | 国产午夜精品一区二区三区嫩草 | 亚洲精品中文字幕 | 在线 国产 欧美 亚洲 天堂 | 国内精品久久毛片一区二区 | 亚洲春色在线视频 | 成 人影片 免费观看 | 久久精品99久久香蕉国产色戒 | 狠狠噜狠狠狠狠丁香五月 | 国产美女精品一区二区三区 | 夫妻免费无码v看片 | 国产在线精品一区二区三区直播 | 成人免费视频在线观看 | 国产精品怡红院永久免费 | 青青草原综合久久大伊人精品 | 欧美大屁股xxxxhd黑色 | 成人免费无码大片a毛片 | 日韩精品a片一区二区三区妖精 | 国产精品18久久久久久麻辣 | www国产精品内射老师 | 精品无码一区二区三区的天堂 | 亚洲伊人久久精品影院 | 日韩精品a片一区二区三区妖精 | 国产精品亚洲lv粉色 | 东京热一精品无码av | 熟妇人妻无乱码中文字幕 | 亚洲欧洲中文日韩av乱码 | 水蜜桃亚洲一二三四在线 | 思思久久99热只有频精品66 | 久久久久免费精品国产 | 99久久99久久免费精品蜜桃 | 人人妻人人澡人人爽人人精品 | 久久精品一区二区三区四区 | 亚洲七七久久桃花影院 | 少妇被粗大的猛进出69影院 | 亚洲爆乳精品无码一区二区三区 | 青青草原综合久久大伊人精品 | 久久综合激激的五月天 | 中文字幕人妻无码一区二区三区 | av香港经典三级级 在线 | 人妻少妇被猛烈进入中文字幕 | 国产精品va在线播放 | 玩弄少妇高潮ⅹxxxyw | 亚洲乱亚洲乱妇50p | 丰满少妇高潮惨叫视频 | 国产在线aaa片一区二区99 | 久久精品国产一区二区三区肥胖 | 在线播放亚洲第一字幕 | 国精产品一品二品国精品69xx | 亚洲欧美综合区丁香五月小说 | 鲁一鲁av2019在线 | 日日摸天天摸爽爽狠狠97 | 欧美日韩久久久精品a片 | 377p欧洲日本亚洲大胆 | 99久久精品日本一区二区免费 | 国产成人无码区免费内射一片色欲 | 图片小说视频一区二区 | 日产国产精品亚洲系列 | 国产精品久久久久久久影院 | 亚洲国产精华液网站w | 2020久久超碰国产精品最新 | 青青草原综合久久大伊人精品 | 国产香蕉尹人视频在线 | 国产人妻精品一区二区三区 | 丰满岳乱妇在线观看中字无码 | 欧美国产日韩亚洲中文 | 熟妇人妻无乱码中文字幕 | 性做久久久久久久免费看 | 精品少妇爆乳无码av无码专区 | 国产精品第一区揄拍无码 | 99久久久国产精品无码免费 | 亚洲小说图区综合在线 | 精品无码国产自产拍在线观看蜜 | 一区二区传媒有限公司 | 精品国产一区av天美传媒 | 97夜夜澡人人爽人人喊中国片 | 欧洲熟妇色 欧美 | 人妻少妇精品视频专区 | 午夜福利一区二区三区在线观看 | 暴力强奷在线播放无码 | 色婷婷av一区二区三区之红樱桃 | 国产口爆吞精在线视频 | 中文精品久久久久人妻不卡 | 久久人人97超碰a片精品 | 亚洲精品久久久久avwww潮水 | 狠狠亚洲超碰狼人久久 | 帮老师解开蕾丝奶罩吸乳网站 | 无码午夜成人1000部免费视频 | 欧美精品无码一区二区三区 | 日韩精品a片一区二区三区妖精 | 老熟女重囗味hdxx69 | 人人妻人人澡人人爽人人精品 | 国产人妻精品一区二区三区不卡 | 大地资源网第二页免费观看 | 亚洲精品久久久久久久久久久 | 国产一区二区三区影院 | 欧美精品一区二区精品久久 | 久久久精品欧美一区二区免费 | 成人一在线视频日韩国产 | 日本一本二本三区免费 | 一本加勒比波多野结衣 | 亚洲综合伊人久久大杳蕉 | 鲁鲁鲁爽爽爽在线视频观看 | 一二三四社区在线中文视频 | 国产精品久久国产三级国 | 国产成人无码av一区二区 | 国产av一区二区精品久久凹凸 | 免费看少妇作爱视频 | 丰满肥臀大屁股熟妇激情视频 | 日本一区二区三区免费高清 | 黄网在线观看免费网站 | 无码人妻精品一区二区三区下载 | 人人妻人人澡人人爽人人精品 | 纯爱无遮挡h肉动漫在线播放 | 国产激情艳情在线看视频 | a在线观看免费网站大全 | 久久人人爽人人爽人人片av高清 | 久久97精品久久久久久久不卡 | 日韩亚洲欧美中文高清在线 | 国产精品鲁鲁鲁 | 色婷婷综合激情综在线播放 | 亚洲综合伊人久久大杳蕉 | 理论片87福利理论电影 | 女人被爽到呻吟gif动态图视看 | 兔费看少妇性l交大片免费 | 亚洲欧美国产精品专区久久 | 九月婷婷人人澡人人添人人爽 | 国产成人无码av片在线观看不卡 | 国语自产偷拍精品视频偷 | 亚洲欧美日韩国产精品一区二区 | 一本无码人妻在中文字幕免费 | 欧美成人午夜精品久久久 | 国产9 9在线 | 中文 | 18无码粉嫩小泬无套在线观看 | 日本熟妇乱子伦xxxx | 麻花豆传媒剧国产免费mv在线 | 天堂а√在线中文在线 | 国产97在线 | 亚洲 | 成人无码精品1区2区3区免费看 | 377p欧洲日本亚洲大胆 | 99久久久无码国产aaa精品 | 成熟女人特级毛片www免费 | 亚洲成色在线综合网站 | 精品无码一区二区三区的天堂 | 国产乡下妇女做爰 | 帮老师解开蕾丝奶罩吸乳网站 | 狂野欧美性猛xxxx乱大交 | 精品久久久久久人妻无码中文字幕 | 丰满岳乱妇在线观看中字无码 | 亚洲一区二区三区播放 | av无码电影一区二区三区 | 国产成人无码a区在线观看视频app | 丰满人妻被黑人猛烈进入 | 天堂亚洲免费视频 | 精品国产青草久久久久福利 | 国产人成高清在线视频99最全资源 | 激情内射亚州一区二区三区爱妻 | 亚洲综合精品香蕉久久网 | 国产午夜亚洲精品不卡下载 | 亚洲日韩av一区二区三区中文 | 少妇无码av无码专区在线观看 | 亚洲中文字幕va福利 | 色情久久久av熟女人妻网站 | 欧美人与善在线com | 77777熟女视频在线观看 а天堂中文在线官网 | 粉嫩少妇内射浓精videos | 97精品国产97久久久久久免费 | 精品熟女少妇av免费观看 | 熟妇激情内射com | 亚洲小说春色综合另类 | 娇妻被黑人粗大高潮白浆 | 天天爽夜夜爽夜夜爽 | 伊人久久大香线蕉亚洲 | 老熟妇乱子伦牲交视频 | 亚洲精品欧美二区三区中文字幕 | 综合人妻久久一区二区精品 | 中文字幕乱码人妻无码久久 | 日韩av无码一区二区三区不卡 | 偷窥日本少妇撒尿chinese | 兔费看少妇性l交大片免费 | 精品少妇爆乳无码av无码专区 | 色一情一乱一伦一视频免费看 | 亚洲大尺度无码无码专区 | 午夜丰满少妇性开放视频 | 暴力强奷在线播放无码 | 欧美 日韩 亚洲 在线 | 成人三级无码视频在线观看 | 波多野结衣av一区二区全免费观看 | 国产午夜手机精彩视频 | 在线а√天堂中文官网 | 又粗又大又硬毛片免费看 | 色婷婷综合激情综在线播放 | 亚洲午夜福利在线观看 | 亚洲一区二区三区无码久久 | √天堂中文官网8在线 | 樱花草在线社区www | 午夜精品久久久内射近拍高清 | 亚洲一区二区三区国产精华液 | 丰满少妇人妻久久久久久 | 人妻少妇精品无码专区二区 | 国产精品久久久久久久9999 | 中文字幕无码免费久久9一区9 | 久久这里只有精品视频9 | 丁香花在线影院观看在线播放 | 欧美日本日韩 | 日日橹狠狠爱欧美视频 | 久久久成人毛片无码 | 亚洲国产欧美日韩精品一区二区三区 | 国产在线精品一区二区高清不卡 | 亚洲精品成人福利网站 | 天堂在线观看www | 午夜精品久久久内射近拍高清 | 草草网站影院白丝内射 | 成年美女黄网站色大免费全看 | 少妇邻居内射在线 | 特大黑人娇小亚洲女 | 一本大道久久东京热无码av | 兔费看少妇性l交大片免费 | 国产超级va在线观看视频 | 国产口爆吞精在线视频 | 大乳丰满人妻中文字幕日本 | 久久久久av无码免费网 | 亚洲精品鲁一鲁一区二区三区 | 欧美日韩色另类综合 | 成在人线av无码免费 | 亚洲成av人在线观看网址 | 无人区乱码一区二区三区 | 久久久久久九九精品久 | 久久97精品久久久久久久不卡 | 成人三级无码视频在线观看 | 熟女少妇在线视频播放 | 亚洲第一无码av无码专区 | 亚洲色大成网站www国产 | 无码精品人妻一区二区三区av | 亚洲va中文字幕无码久久不卡 | 国产黄在线观看免费观看不卡 | 波多野42部无码喷潮在线 | 国产精品亚洲综合色区韩国 | 国产莉萝无码av在线播放 | 香港三级日本三级妇三级 | 女人被男人躁得好爽免费视频 | 国产情侣作爱视频免费观看 | 粉嫩少妇内射浓精videos | 最新国产麻豆aⅴ精品无码 | 中文无码伦av中文字幕 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 日本高清一区免费中文视频 | 成人精品天堂一区二区三区 | 在线视频网站www色 | 亚洲日韩精品欧美一区二区 | 国产精品人人爽人人做我的可爱 | 国产成人无码a区在线观看视频app | 无码吃奶揉捏奶头高潮视频 | 国产又爽又猛又粗的视频a片 | 亚洲欧洲日本综合aⅴ在线 | 东京热无码av男人的天堂 | 人妻尝试又大又粗久久 | 老熟妇仑乱视频一区二区 | 免费无码肉片在线观看 | 国内精品九九久久久精品 | 国精产品一区二区三区 | 亚洲一区二区三区在线观看网站 | 丝袜人妻一区二区三区 | 国产亚洲人成a在线v网站 | 99精品无人区乱码1区2区3区 | 亚洲欧美综合区丁香五月小说 | 亚洲爆乳大丰满无码专区 | 日韩人妻系列无码专区 | 精品无码一区二区三区爱欲 | 国产成人精品久久亚洲高清不卡 | 国产 精品 自在自线 | 久久综合网欧美色妞网 | 人人妻人人澡人人爽精品欧美 | 亚洲色偷偷男人的天堂 | 久久亚洲精品中文字幕无男同 | 久久久久久久人妻无码中文字幕爆 | 国产乱人偷精品人妻a片 | 少妇邻居内射在线 | 久久国产自偷自偷免费一区调 | 性欧美疯狂xxxxbbbb | 六月丁香婷婷色狠狠久久 | 欧美兽交xxxx×视频 | 国产成人精品一区二区在线小狼 | 久久久国产精品无码免费专区 | 全球成人中文在线 | 欧美日韩久久久精品a片 | 亚洲精品久久久久久久久久久 | 精品人人妻人人澡人人爽人人 | 国产成人无码午夜视频在线观看 | 无码吃奶揉捏奶头高潮视频 | 18精品久久久无码午夜福利 | 麻豆国产人妻欲求不满谁演的 | 在线播放亚洲第一字幕 | 久久国语露脸国产精品电影 | 午夜福利不卡在线视频 | 久精品国产欧美亚洲色aⅴ大片 | 亚洲国产av精品一区二区蜜芽 | 纯爱无遮挡h肉动漫在线播放 | 99麻豆久久久国产精品免费 | 国产又粗又硬又大爽黄老大爷视 | 成人无码精品一区二区三区 | а√资源新版在线天堂 | 粗大的内捧猛烈进出视频 | 国产偷自视频区视频 | 国产人妖乱国产精品人妖 | 少妇无套内谢久久久久 | 免费无码的av片在线观看 | 97久久精品无码一区二区 | 美女扒开屁股让男人桶 | 成人aaa片一区国产精品 | 天天拍夜夜添久久精品 | 免费国产黄网站在线观看 | 久久精品中文字幕大胸 | 熟妇人妻无码xxx视频 | 黄网在线观看免费网站 | 国产网红无码精品视频 | 伊人久久大香线焦av综合影院 | 无码人妻久久一区二区三区不卡 | 国产精品欧美成人 | 欧美日韩人成综合在线播放 | 中文字幕日韩精品一区二区三区 | 东京热男人av天堂 | 国产suv精品一区二区五 | 激情内射亚州一区二区三区爱妻 | 性欧美牲交在线视频 | 一本久久伊人热热精品中文字幕 | 国产亚洲tv在线观看 | 四虎国产精品一区二区 | 美女张开腿让人桶 | 又大又硬又黄的免费视频 | 在线亚洲高清揄拍自拍一品区 | 帮老师解开蕾丝奶罩吸乳网站 | 国产精品嫩草久久久久 | 俺去俺来也在线www色官网 | 无码人妻黑人中文字幕 | 无码av最新清无码专区吞精 | 国产综合久久久久鬼色 | 四十如虎的丰满熟妇啪啪 | 亚洲精品无码国产 | aⅴ亚洲 日韩 色 图网站 播放 | 国产亚av手机在线观看 | 天堂无码人妻精品一区二区三区 | 亚洲成a人片在线观看无码3d | 精品一区二区不卡无码av | 久久精品人人做人人综合 | 国产成人亚洲综合无码 | 日本乱偷人妻中文字幕 | 国产三级精品三级男人的天堂 | 久久久久国色av免费观看性色 | 特大黑人娇小亚洲女 | 午夜时刻免费入口 | aⅴ在线视频男人的天堂 | yw尤物av无码国产在线观看 | 最新国产麻豆aⅴ精品无码 | 人人澡人人妻人人爽人人蜜桃 | 国产av一区二区三区最新精品 | 欧美成人高清在线播放 | 久久99精品久久久久久动态图 | 国产性生大片免费观看性 | 玩弄中年熟妇正在播放 | 精品久久久久久人妻无码中文字幕 | 久久天天躁夜夜躁狠狠 | 麻花豆传媒剧国产免费mv在线 | 色综合久久久久综合一本到桃花网 | 精品一区二区不卡无码av | 四虎永久在线精品免费网址 | 国产无遮挡吃胸膜奶免费看 | 亚洲欧美日韩国产精品一区二区 | 无遮无挡爽爽免费视频 | 国产精品久久久久无码av色戒 | 亚洲欧洲日本综合aⅴ在线 | 啦啦啦www在线观看免费视频 | 精品国产乱码久久久久乱码 | 女人高潮内射99精品 | 日本爽爽爽爽爽爽在线观看免 | 亚洲中文字幕在线无码一区二区 | 欧洲欧美人成视频在线 | 一二三四在线观看免费视频 | 人人妻人人澡人人爽欧美一区九九 | 国产农村妇女高潮大叫 | 亚洲精品久久久久久久久久久 | 亚洲午夜久久久影院 | 成熟妇人a片免费看网站 | 日韩av无码一区二区三区不卡 | 精品成在人线av无码免费看 | 久久久久久a亚洲欧洲av冫 | 久久久久99精品成人片 | 亚洲一区av无码专区在线观看 | 少妇性荡欲午夜性开放视频剧场 | 国产精品久久久久9999小说 | 成熟女人特级毛片www免费 | 亚无码乱人伦一区二区 | 7777奇米四色成人眼影 | 性啪啪chinese东北女人 | 亚洲天堂2017无码中文 | 色欲久久久天天天综合网精品 | 亚洲精品国产精品乱码不卡 | 亚洲 另类 在线 欧美 制服 | 久久久久人妻一区精品色欧美 | 国产亚洲日韩欧美另类第八页 | 99国产精品白浆在线观看免费 | 国内老熟妇对白xxxxhd | 欧美亚洲国产一区二区三区 | 无码中文字幕色专区 | 日本一区二区三区免费高清 | 亚洲 激情 小说 另类 欧美 | 日韩欧美中文字幕在线三区 | 中文字幕av日韩精品一区二区 | 亚洲va中文字幕无码久久不卡 | 国产人妻精品一区二区三区 | 妺妺窝人体色www在线小说 | 国产乱码精品一品二品 | 亚洲无人区一区二区三区 | 日本一卡2卡3卡四卡精品网站 | 九九综合va免费看 | 久久久婷婷五月亚洲97号色 | 人妻夜夜爽天天爽三区 | 无码国产乱人伦偷精品视频 | 少妇无套内谢久久久久 | 小泽玛莉亚一区二区视频在线 | 99riav国产精品视频 | 久久无码中文字幕免费影院蜜桃 | 国产精品久久精品三级 | 国产真实乱对白精彩久久 | 欧美性生交活xxxxxdddd | 精品无码一区二区三区爱欲 | 天海翼激烈高潮到腰振不止 | 色噜噜亚洲男人的天堂 | 成人毛片一区二区 | 亚洲国产精品毛片av不卡在线 | 久久久久久久女国产乱让韩 | 亚洲综合在线一区二区三区 | 中文字幕乱码人妻二区三区 | 国产无遮挡吃胸膜奶免费看 | 成在人线av无码免观看麻豆 | 久久久婷婷五月亚洲97号色 | 奇米影视7777久久精品人人爽 | 国产女主播喷水视频在线观看 | 无套内射视频囯产 | 国产一区二区三区四区五区加勒比 | 少妇厨房愉情理9仑片视频 | 人妻天天爽夜夜爽一区二区 | 纯爱无遮挡h肉动漫在线播放 | 久久97精品久久久久久久不卡 | 日本成熟视频免费视频 | 精品国产一区二区三区四区在线看 | 中文字幕无码免费久久9一区9 | 亚洲国产欧美日韩精品一区二区三区 | 中文精品久久久久人妻不卡 | 色窝窝无码一区二区三区色欲 | 国产精品亚洲а∨无码播放麻豆 | 97色伦图片97综合影院 | 97夜夜澡人人爽人人喊中国片 | 国产做国产爱免费视频 | 国产区女主播在线观看 | 真人与拘做受免费视频一 | 国内精品人妻无码久久久影院 | 熟女俱乐部五十路六十路av | www国产亚洲精品久久久日本 | 亚洲色成人中文字幕网站 | 在线a亚洲视频播放在线观看 | 正在播放东北夫妻内射 | 久久久www成人免费毛片 | 中文字幕av无码一区二区三区电影 | 久久午夜无码鲁丝片午夜精品 | 熟女少妇在线视频播放 | 成人亚洲精品久久久久软件 | 在线观看欧美一区二区三区 | 色婷婷久久一区二区三区麻豆 | 丝袜 中出 制服 人妻 美腿 | 国产偷自视频区视频 | 少妇无码av无码专区在线观看 | 国产亚洲精品久久久久久久 | 亚洲小说图区综合在线 | 久久精品国产99精品亚洲 | 免费无码午夜福利片69 | 亚洲一区二区观看播放 | 免费无码一区二区三区蜜桃大 | 熟妇人妻激情偷爽文 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 麻豆国产丝袜白领秘书在线观看 | 97精品国产97久久久久久免费 | 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲中文字幕av在天堂 | 久久99热只有频精品8 | 精品久久综合1区2区3区激情 | 久久久婷婷五月亚洲97号色 | 精品欧美一区二区三区久久久 | 日韩精品一区二区av在线 | 性啪啪chinese东北女人 | 成人aaa片一区国产精品 | 国产亚洲人成a在线v网站 | 亚洲男女内射在线播放 | 亚洲熟妇色xxxxx欧美老妇 | 亚洲乱亚洲乱妇50p | 久久久中文久久久无码 | 国产性生大片免费观看性 | 性色欲情网站iwww九文堂 | 99视频精品全部免费免费观看 | 免费观看黄网站 | 免费无码午夜福利片69 | 国产精品美女久久久网av | 中文字幕乱码人妻无码久久 | 亚洲国产精华液网站w | 国产疯狂伦交大片 | 奇米影视7777久久精品人人爽 | 亚洲日韩乱码中文无码蜜桃臀网站 | 99久久久国产精品无码免费 | 亚洲 高清 成人 动漫 | 特级做a爰片毛片免费69 | 亚洲中文字幕无码中文字在线 | 99久久精品日本一区二区免费 | 美女极度色诱视频国产 | 一本加勒比波多野结衣 | 又色又爽又黄的美女裸体网站 | 无码av免费一区二区三区试看 | 亚洲人交乣女bbw | 日本乱人伦片中文三区 | 欧美 丝袜 自拍 制服 另类 | 99re在线播放 | 国内综合精品午夜久久资源 | 小鲜肉自慰网站xnxx | 中文字幕av伊人av无码av | 欧洲vodafone精品性 | 免费男性肉肉影院 | 精品偷拍一区二区三区在线看 | 四虎国产精品免费久久 | 永久黄网站色视频免费直播 | 性欧美大战久久久久久久 | 大肉大捧一进一出好爽视频 | 7777奇米四色成人眼影 | 麻豆人妻少妇精品无码专区 | 老熟女乱子伦 | 国产精品久久久久9999小说 | 国产av无码专区亚洲a∨毛片 | 澳门永久av免费网站 | 四十如虎的丰满熟妇啪啪 | 黑人粗大猛烈进出高潮视频 | 亚洲国产精华液网站w | 澳门永久av免费网站 | 伊人色综合久久天天小片 | 日本一区二区三区免费播放 | 精品国偷自产在线 | 欧美人与善在线com | 国产精品亚洲专区无码不卡 | 国产精品香蕉在线观看 | 内射巨臀欧美在线视频 | 欧美性猛交xxxx富婆 | 国产人妖乱国产精品人妖 | 97久久国产亚洲精品超碰热 | 2020久久香蕉国产线看观看 | 国产 精品 自在自线 | 天天做天天爱天天爽综合网 | 国产精品爱久久久久久久 | 精品无人国产偷自产在线 | 男人扒开女人内裤强吻桶进去 | 国产av一区二区三区最新精品 | 天天综合网天天综合色 | 最近中文2019字幕第二页 | 网友自拍区视频精品 | 婷婷六月久久综合丁香 | 啦啦啦www在线观看免费视频 | 学生妹亚洲一区二区 | 久久久精品欧美一区二区免费 | 性生交大片免费看l | 成人综合网亚洲伊人 | 亚洲国产精品毛片av不卡在线 | 97久久国产亚洲精品超碰热 | 内射欧美老妇wbb | 欧美性生交xxxxx久久久 | 久久99国产综合精品 | 特大黑人娇小亚洲女 | 国产精品a成v人在线播放 | 无码精品人妻一区二区三区av | 久久亚洲中文字幕无码 | 亚洲成a人一区二区三区 | 国产精品毛片一区二区 | 奇米影视7777久久精品 | 国产性生交xxxxx无码 | 亚洲精品久久久久久久久久久 | 伊人久久大香线焦av综合影院 | 狠狠综合久久久久综合网 | 精品无码一区二区三区的天堂 | 少妇人妻av毛片在线看 | 国产情侣作爱视频免费观看 | 人妻无码久久精品人妻 | 久久无码人妻影院 | 国产精品国产三级国产专播 | 色综合久久中文娱乐网 | 欧美日韩视频无码一区二区三 | 日本大香伊一区二区三区 | 无码av岛国片在线播放 | 亚洲欧洲中文日韩av乱码 | 国产色在线 | 国产 | 成人免费视频在线观看 | 亚洲欧美中文字幕5发布 | 日韩精品一区二区av在线 | 1000部啪啪未满十八勿入下载 | 秋霞成人午夜鲁丝一区二区三区 | 又粗又大又硬又长又爽 | 国内少妇偷人精品视频 | 欧美三级不卡在线观看 | 内射后入在线观看一区 | 夜夜高潮次次欢爽av女 | 国产精品丝袜黑色高跟鞋 | 日日碰狠狠躁久久躁蜜桃 | 国産精品久久久久久久 | 国产精品亚洲综合色区韩国 | 久热国产vs视频在线观看 | 国产香蕉尹人综合在线观看 | 无码精品人妻一区二区三区av | 国产精品美女久久久网av | 曰韩少妇内射免费播放 | 色一情一乱一伦一区二区三欧美 | а√天堂www在线天堂小说 | 青草青草久热国产精品 | 国产无遮挡吃胸膜奶免费看 | 国产精品自产拍在线观看 | 亚洲va欧美va天堂v国产综合 | 四虎影视成人永久免费观看视频 | 四虎影视成人永久免费观看视频 | 欧美真人作爱免费视频 | 青青久在线视频免费观看 | 国产做国产爱免费视频 | 国产午夜精品一区二区三区嫩草 | 成熟女人特级毛片www免费 | 国产免费久久久久久无码 | 无码人中文字幕 | 国产熟女一区二区三区四区五区 | 精品一区二区三区无码免费视频 | 一本久久a久久精品亚洲 | 67194成是人免费无码 | 久久国语露脸国产精品电影 | 免费国产黄网站在线观看 | 无套内谢的新婚少妇国语播放 | 97se亚洲精品一区 | 亚洲国产高清在线观看视频 | 无码人中文字幕 | 亚洲午夜无码久久 | 内射后入在线观看一区 | 国产午夜无码视频在线观看 | 风流少妇按摩来高潮 | 性生交大片免费看女人按摩摩 | 国产国产精品人在线视 | 高清不卡一区二区三区 | 国产9 9在线 | 中文 | 精品久久久无码人妻字幂 | 午夜成人1000部免费视频 | 久久精品人人做人人综合 | 清纯唯美经典一区二区 | 亚洲国产精品美女久久久久 | 99在线 | 亚洲 | 色一情一乱一伦 | 无码人妻久久一区二区三区不卡 | www一区二区www免费 | 国产9 9在线 | 中文 | 中文久久乱码一区二区 | 欧美高清在线精品一区 | 麻豆国产人妻欲求不满谁演的 | 国产乱人无码伦av在线a | 久久亚洲国产成人精品性色 | 无码精品人妻一区二区三区av | 亚洲狠狠色丁香婷婷综合 | 人人妻人人澡人人爽精品欧美 | 天堂а√在线中文在线 | 荫蒂被男人添的好舒服爽免费视频 | 日韩欧美中文字幕公布 | 18黄暴禁片在线观看 | 精品国产麻豆免费人成网站 | 国内精品人妻无码久久久影院 | 强奷人妻日本中文字幕 | 精品乱码久久久久久久 | 国产凸凹视频一区二区 | 老太婆性杂交欧美肥老太 | 国产福利视频一区二区 | 精品久久久久久亚洲精品 | 草草网站影院白丝内射 | 免费观看又污又黄的网站 | 欧美乱妇无乱码大黄a片 | 在线a亚洲视频播放在线观看 | 国产精品.xx视频.xxtv | 女人被男人躁得好爽免费视频 | 久久久精品成人免费观看 | 久久国产36精品色熟妇 | 无人区乱码一区二区三区 | 国产午夜无码视频在线观看 | 亚洲爆乳大丰满无码专区 | 亚洲中文无码av永久不收费 | 婷婷丁香五月天综合东京热 | 国产精品无码成人午夜电影 | 98国产精品综合一区二区三区 | 国产亚洲精品久久久久久久 | 性欧美大战久久久久久久 | 玩弄人妻少妇500系列视频 | 国产人妻久久精品二区三区老狼 | 水蜜桃亚洲一二三四在线 | 国产精品对白交换视频 | 亚洲天堂2017无码 | 99久久精品午夜一区二区 | 国产精品丝袜黑色高跟鞋 | 真人与拘做受免费视频 | 久久天天躁夜夜躁狠狠 | 青青久在线视频免费观看 | 中国大陆精品视频xxxx | 一本大道久久东京热无码av | 国产国语老龄妇女a片 | 中文字幕av无码一区二区三区电影 | 全球成人中文在线 | 少妇性l交大片 | 东京热无码av男人的天堂 | 婷婷丁香五月天综合东京热 | 日韩人妻无码一区二区三区久久99 | 国产真实伦对白全集 | 亚洲中文字幕久久无码 | 日本一卡2卡3卡四卡精品网站 | 内射欧美老妇wbb | 国产精品久久久久久亚洲毛片 | 波多野结衣一区二区三区av免费 | 国产人妻久久精品二区三区老狼 | 小鲜肉自慰网站xnxx | 中文无码精品a∨在线观看不卡 | 免费观看激色视频网站 | 精品无码一区二区三区的天堂 | 少妇人妻偷人精品无码视频 | 高潮毛片无遮挡高清免费 | 狂野欧美性猛交免费视频 | 日韩亚洲欧美中文高清在线 | 大肉大捧一进一出视频出来呀 | 国产 浪潮av性色四虎 | 扒开双腿疯狂进出爽爽爽视频 | 国产精品久久久久久亚洲影视内衣 | 国产亚洲精品久久久久久久 | 久久精品女人的天堂av | 国产卡一卡二卡三 | 1000部啪啪未满十八勿入下载 | 国内揄拍国内精品少妇国语 | 国产综合久久久久鬼色 | 国产在线无码精品电影网 | 东京热无码av男人的天堂 | 国产综合色产在线精品 | 国内揄拍国内精品人妻 | 精品国精品国产自在久国产87 | 在线观看国产午夜福利片 | 国产午夜亚洲精品不卡下载 | 日韩亚洲欧美精品综合 | 欧美性生交活xxxxxdddd | 免费网站看v片在线18禁无码 | 日本成熟视频免费视频 | 日韩欧美中文字幕公布 | 精品国产乱码久久久久乱码 | 久久综合久久自在自线精品自 | 成人精品视频一区二区 | 午夜精品一区二区三区的区别 | av无码久久久久不卡免费网站 | 老子影院午夜精品无码 | 久久99精品久久久久久动态图 | 99麻豆久久久国产精品免费 | 国产一区二区不卡老阿姨 | 风流少妇按摩来高潮 | 98国产精品综合一区二区三区 | 国产人妖乱国产精品人妖 | 久青草影院在线观看国产 | 欧美日本精品一区二区三区 | 领导边摸边吃奶边做爽在线观看 | 自拍偷自拍亚洲精品10p | 日本精品少妇一区二区三区 | 3d动漫精品啪啪一区二区中 | aⅴ在线视频男人的天堂 | 亚洲码国产精品高潮在线 | 老司机亚洲精品影院 | 亚洲中文字幕成人无码 | 国产女主播喷水视频在线观看 | 国产偷抇久久精品a片69 | 国产偷自视频区视频 | 精品国产aⅴ无码一区二区 | 欧美丰满熟妇xxxx性ppx人交 | 亚洲精品午夜国产va久久成人 | yw尤物av无码国产在线观看 | 亚洲精品一区二区三区四区五区 | 日日躁夜夜躁狠狠躁 | 任你躁国产自任一区二区三区 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产精品无码一区二区三区不卡 | 麻豆国产丝袜白领秘书在线观看 | 国产福利视频一区二区 | 国产乱人伦偷精品视频 | 成人欧美一区二区三区黑人 | 亚洲国产精品久久久久久 | 成人片黄网站色大片免费观看 | 亚洲色欲色欲天天天www | 国产精品无码mv在线观看 | 捆绑白丝粉色jk震动捧喷白浆 | 国色天香社区在线视频 | 无遮挡啪啪摇乳动态图 | 国产精品丝袜黑色高跟鞋 | 亚洲熟熟妇xxxx | 女人高潮内射99精品 | 日本大乳高潮视频在线观看 | 国产又粗又硬又大爽黄老大爷视 | 国产乱子伦视频在线播放 | 99久久久无码国产精品免费 | 色偷偷人人澡人人爽人人模 | 日韩欧美成人免费观看 | 亚洲中文字幕无码中文字在线 | 99精品无人区乱码1区2区3区 | 久久亚洲国产成人精品性色 | 久久久久人妻一区精品色欧美 | 九九热爱视频精品 | 18无码粉嫩小泬无套在线观看 | 国产极品美女高潮无套在线观看 | 丰满人妻被黑人猛烈进入 | 丁香啪啪综合成人亚洲 | 老熟妇仑乱视频一区二区 | 少妇无码一区二区二三区 | 日韩av无码一区二区三区不卡 | 18精品久久久无码午夜福利 | 精品无人国产偷自产在线 | 成在人线av无码免观看麻豆 | 亚洲中文字幕无码中文字在线 | 蜜桃无码一区二区三区 | 精品国产av色一区二区深夜久久 | 任你躁在线精品免费 | 国产一区二区三区日韩精品 | 对白脏话肉麻粗话av | 在线成人www免费观看视频 | 大肉大捧一进一出好爽视频 | 亚洲狠狠婷婷综合久久 | 久久久精品人妻久久影视 | 国产婷婷色一区二区三区在线 | 亚洲精品成a人在线观看 | 久久久久久九九精品久 | 自拍偷自拍亚洲精品10p | 熟女体下毛毛黑森林 | 国产精品久久久久7777 | 欧洲欧美人成视频在线 | 亚洲精品鲁一鲁一区二区三区 | 国产猛烈高潮尖叫视频免费 | 午夜男女很黄的视频 | 十八禁视频网站在线观看 | 精品一区二区三区无码免费视频 | 亚洲男人av天堂午夜在 | 十八禁真人啪啪免费网站 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 99er热精品视频 | 国产精品久久久久久无码 | 免费无码肉片在线观看 | 午夜丰满少妇性开放视频 | 乱码午夜-极国产极内射 | 国产 精品 自在自线 | 一本久道久久综合狠狠爱 | 亚洲男人av香蕉爽爽爽爽 | 久久久久99精品成人片 | 四十如虎的丰满熟妇啪啪 | 欧美高清在线精品一区 | 好男人社区资源 | 国产精品igao视频网 | 午夜福利一区二区三区在线观看 | 18无码粉嫩小泬无套在线观看 | 国产精品久久久久无码av色戒 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 欧美精品在线观看 | 中文字幕乱码亚洲无线三区 | 伊人久久大香线蕉av一区二区 | 久久精品国产日本波多野结衣 | 国产精品国产三级国产专播 | 偷窥日本少妇撒尿chinese | 亚洲天堂2017无码 | 色欲av亚洲一区无码少妇 | 在教室伦流澡到高潮hnp视频 | 免费国产黄网站在线观看 | 中文字幕av日韩精品一区二区 | 强辱丰满人妻hd中文字幕 | 麻豆国产人妻欲求不满谁演的 | 精品少妇爆乳无码av无码专区 | 久久精品99久久香蕉国产色戒 | 国产精品多人p群无码 | 欧美变态另类xxxx | 无码av免费一区二区三区试看 | 欧美日韩在线亚洲综合国产人 | 国产偷国产偷精品高清尤物 | 在线观看免费人成视频 | 国产精品嫩草久久久久 | 人人妻在人人 | 最近中文2019字幕第二页 | 国产亚洲美女精品久久久2020 | 国产人妖乱国产精品人妖 | 一个人免费观看的www视频 | 亚洲精品一区二区三区婷婷月 | 高中生自慰www网站 | 久久亚洲中文字幕无码 | 男女猛烈xx00免费视频试看 | 亚洲日本一区二区三区在线 | 国产精品对白交换视频 | 妺妺窝人体色www婷婷 | 天海翼激烈高潮到腰振不止 | 中文字幕乱码亚洲无线三区 | 少妇高潮一区二区三区99 | 国产香蕉尹人综合在线观看 | 亚洲国产日韩a在线播放 | 日韩在线不卡免费视频一区 | 九月婷婷人人澡人人添人人爽 | 精品欧洲av无码一区二区三区 | 少女韩国电视剧在线观看完整 | 偷窥村妇洗澡毛毛多 | 中文字幕亚洲情99在线 | 国产av一区二区精品久久凹凸 | 天天躁日日躁狠狠躁免费麻豆 | 国产精品亚洲专区无码不卡 | 一本久道久久综合婷婷五月 | 大胆欧美熟妇xx | 亚洲 高清 成人 动漫 | 天天躁夜夜躁狠狠是什么心态 | 免费男性肉肉影院 | 成人免费视频视频在线观看 免费 | 激情亚洲一区国产精品 | 少妇性荡欲午夜性开放视频剧场 | 国产精品久久久久久亚洲毛片 | 97资源共享在线视频 | 午夜成人1000部免费视频 | 亚洲爆乳精品无码一区二区三区 | 在线a亚洲视频播放在线观看 | 女人被爽到呻吟gif动态图视看 | 在线天堂新版最新版在线8 | 领导边摸边吃奶边做爽在线观看 | 成人欧美一区二区三区 | 日日麻批免费40分钟无码 | 性色欲网站人妻丰满中文久久不卡 | 欧美熟妇另类久久久久久多毛 | 中文字幕精品av一区二区五区 | 中文字幕av伊人av无码av | 国内老熟妇对白xxxxhd | 国产又粗又硬又大爽黄老大爷视 | 少妇久久久久久人妻无码 | а√天堂www在线天堂小说 | 激情内射日本一区二区三区 | 色综合久久88色综合天天 | 日本又色又爽又黄的a片18禁 | 人人爽人人爽人人片av亚洲 | av人摸人人人澡人人超碰下载 | 亚洲欧美综合区丁香五月小说 | 国产特级毛片aaaaaaa高清 | 少妇无套内谢久久久久 | 女人高潮内射99精品 | 福利一区二区三区视频在线观看 | 一区二区三区高清视频一 | 色综合久久久无码网中文 | 久久国内精品自在自线 | 精品国产av色一区二区深夜久久 | 中文字幕无码视频专区 | 永久黄网站色视频免费直播 | 美女黄网站人色视频免费国产 | 丰满岳乱妇在线观看中字无码 | 久久久久se色偷偷亚洲精品av | 成人免费视频一区二区 | 久久精品人人做人人综合试看 | 55夜色66夜色国产精品视频 | 欧洲极品少妇 | 天天拍夜夜添久久精品大 | 无人区乱码一区二区三区 | 欧美亚洲日韩国产人成在线播放 | 国产精品igao视频网 | 日本乱人伦片中文三区 | 国产av剧情md精品麻豆 | 亚洲а∨天堂久久精品2021 | 国产特级毛片aaaaaaa高清 | 人人妻人人澡人人爽人人精品 | 无遮挡啪啪摇乳动态图 | 欧美精品在线观看 | 国产人妻精品一区二区三区不卡 | 日产精品高潮呻吟av久久 | 亚洲成色在线综合网站 | 日韩精品乱码av一区二区 | 亚洲国产精品成人久久蜜臀 | 人妻少妇精品久久 | 亚洲乱码国产乱码精品精 | 欧美精品国产综合久久 | 亚洲精品欧美二区三区中文字幕 | 国产亚洲欧美日韩亚洲中文色 | 精品少妇爆乳无码av无码专区 | 久久精品人人做人人综合试看 | 亚洲一区二区观看播放 | 18黄暴禁片在线观看 | 亚洲精品国偷拍自产在线观看蜜桃 | 日日橹狠狠爱欧美视频 | 久久精品国产日本波多野结衣 | 久久国产精品萌白酱免费 | 久久久久久久女国产乱让韩 | 成人三级无码视频在线观看 | 奇米影视7777久久精品人人爽 | 亚洲欧洲中文日韩av乱码 | 中文字幕av无码一区二区三区电影 | 日本一区二区三区免费高清 | 国产综合久久久久鬼色 | 亚洲色在线无码国产精品不卡 | 永久免费观看国产裸体美女 | 欧美日韩视频无码一区二区三 | 久久亚洲日韩精品一区二区三区 | 人人澡人人妻人人爽人人蜜桃 | 青春草在线视频免费观看 | 荡女精品导航 | 国产精品亚洲lv粉色 | 欧美日韩视频无码一区二区三 | 欧美 日韩 亚洲 在线 | 国产激情无码一区二区 | 国产人妻精品一区二区三区 | 久久久久成人精品免费播放动漫 | 夜夜高潮次次欢爽av女 | 国产内射老熟女aaaa | 久久综合色之久久综合 | 又大又黄又粗又爽的免费视频 | 国产一精品一av一免费 | 天天做天天爱天天爽综合网 | 精品国产乱码久久久久乱码 | 领导边摸边吃奶边做爽在线观看 | 精品人妻中文字幕有码在线 | 久久99精品久久久久婷婷 | 99在线 | 亚洲 | 大屁股大乳丰满人妻 | 亚洲成a人片在线观看无码3d | 中文字幕久久久久人妻 | 成人性做爰aaa片免费看不忠 | 色一情一乱一伦一视频免费看 | 国产精品第一国产精品 | 东京热男人av天堂 | 少妇人妻av毛片在线看 | 国产成人精品视频ⅴa片软件竹菊 | 亚洲精品久久久久久一区二区 | 久久久国产精品无码免费专区 | 国产手机在线αⅴ片无码观看 | 精品国产aⅴ无码一区二区 | v一区无码内射国产 | 18黄暴禁片在线观看 | 领导边摸边吃奶边做爽在线观看 | 日本乱偷人妻中文字幕 | 大色综合色综合网站 | 精品人妻中文字幕有码在线 | 97夜夜澡人人双人人人喊 | 国产真人无遮挡作爱免费视频 | 欧美一区二区三区视频在线观看 | 乱人伦人妻中文字幕无码久久网 | 亚洲 日韩 欧美 成人 在线观看 | 亚洲 a v无 码免 费 成 人 a v | 性开放的女人aaa片 | 欧美日韩亚洲国产精品 | 综合激情五月综合激情五月激情1 | 国产午夜亚洲精品不卡 | 亚洲人成影院在线无码按摩店 | 爆乳一区二区三区无码 | 免费国产成人高清在线观看网站 | 日韩无套无码精品 | 丰满少妇熟乱xxxxx视频 | 久久人妻内射无码一区三区 | 国产福利视频一区二区 | 人妻少妇精品视频专区 | 国产绳艺sm调教室论坛 | 国精产品一品二品国精品69xx | 国产精品久久久久久久影院 | 国产色精品久久人妻 | 久久午夜夜伦鲁鲁片无码免费 | 内射欧美老妇wbb | 国产三级久久久精品麻豆三级 | 国产情侣作爱视频免费观看 | 男女猛烈xx00免费视频试看 | 亚洲综合久久一区二区 | 亚洲成a人片在线观看日本 | 久久综合给久久狠狠97色 | 久久久久99精品成人片 | 欧美freesex黑人又粗又大 | 亚洲伊人久久精品影院 | 国产9 9在线 | 中文 | 欧美人与物videos另类 | 性色欲网站人妻丰满中文久久不卡 | 国产农村妇女高潮大叫 | 免费无码一区二区三区蜜桃大 | 成人免费视频在线观看 | 蜜桃视频韩日免费播放 | 久久99久久99精品中文字幕 | 午夜男女很黄的视频 | 国产 精品 自在自线 | 特大黑人娇小亚洲女 | 97久久国产亚洲精品超碰热 | 午夜福利一区二区三区在线观看 | 国产国产精品人在线视 | 欧美丰满熟妇xxxx | 国产乱人伦av在线无码 | 青草视频在线播放 | 少妇性俱乐部纵欲狂欢电影 | 1000部夫妻午夜免费 | 2020久久香蕉国产线看观看 | 亚洲综合色区中文字幕 | 人妻少妇精品视频专区 | 风流少妇按摩来高潮 | 亚洲精品欧美二区三区中文字幕 | 精品国产国产综合精品 | 中文字幕日韩精品一区二区三区 | 免费视频欧美无人区码 | 男女下面进入的视频免费午夜 | 熟女体下毛毛黑森林 | 日韩视频 中文字幕 视频一区 | 国产精品手机免费 | 精品久久久中文字幕人妻 | 美女极度色诱视频国产 | 亚洲欧美日韩成人高清在线一区 | 色综合久久久久综合一本到桃花网 | 亚洲国产一区二区三区在线观看 | 久久久精品国产sm最大网站 | 少妇无码av无码专区在线观看 | 午夜精品一区二区三区在线观看 | 日日天日日夜日日摸 | 无码吃奶揉捏奶头高潮视频 | 国产av久久久久精东av | 天堂а√在线地址中文在线 | 欧洲vodafone精品性 | 300部国产真实乱 | 亚洲国产精品一区二区美利坚 | 麻豆精产国品 | 黄网在线观看免费网站 | 亚洲欧美精品aaaaaa片 | 国产莉萝无码av在线播放 | 中文字幕无码免费久久9一区9 | 国产真实伦对白全集 | 日韩av无码一区二区三区不卡 | 未满小14洗澡无码视频网站 | 久久人人爽人人爽人人片ⅴ | 强辱丰满人妻hd中文字幕 | 亚洲色欲久久久综合网东京热 | 色欲久久久天天天综合网精品 | 夜夜夜高潮夜夜爽夜夜爰爰 | 欧美黑人巨大xxxxx | 97夜夜澡人人爽人人喊中国片 | 亚洲欧美日韩国产精品一区二区 | 香蕉久久久久久av成人 | 久久综合久久自在自线精品自 | 欧美日韩在线亚洲综合国产人 | 无码免费一区二区三区 | 2019午夜福利不卡片在线 | 国产精品自产拍在线观看 | 88国产精品欧美一区二区三区 | 国产凸凹视频一区二区 | 国精品人妻无码一区二区三区蜜柚 | 极品嫩模高潮叫床 | 亚洲天堂2017无码 | 久久久精品欧美一区二区免费 | 亚洲 高清 成人 动漫 | 成熟女人特级毛片www免费 | 久久亚洲精品成人无码 | 日本免费一区二区三区最新 | 麻豆国产人妻欲求不满谁演的 | 国产又粗又硬又大爽黄老大爷视 | 成年美女黄网站色大免费视频 | 超碰97人人做人人爱少妇 | 激情爆乳一区二区三区 | 97人妻精品一区二区三区 | 亚洲自偷自拍另类第1页 | 成人欧美一区二区三区黑人免费 | 久久这里只有精品视频9 | 女人被男人爽到呻吟的视频 | 成年美女黄网站色大免费全看 | 亚洲成av人片在线观看无码不卡 | 成人免费视频视频在线观看 免费 | 欧美日韩人成综合在线播放 | 国产一区二区三区日韩精品 | 在线 国产 欧美 亚洲 天堂 | 亚洲日韩精品欧美一区二区 | 欧美成人免费全部网站 | 老子影院午夜伦不卡 | 久久精品国产一区二区三区肥胖 | 国产精品无码永久免费888 | 中文字幕av无码一区二区三区电影 | 午夜精品久久久久久久久 | 131美女爱做视频 | 国产精品久久久久久久9999 | 在线播放亚洲第一字幕 | 综合网日日天干夜夜久久 | 中文无码成人免费视频在线观看 | ass日本丰满熟妇pics | 人人妻人人藻人人爽欧美一区 | 亚洲狠狠色丁香婷婷综合 | 巨爆乳无码视频在线观看 | 无码人妻久久一区二区三区不卡 | 欧美老人巨大xxxx做受 | 亚洲国产欧美日韩精品一区二区三区 | 久久精品女人的天堂av | 国产在线aaa片一区二区99 | 97精品国产97久久久久久免费 | 人妻人人添人妻人人爱 | 色五月丁香五月综合五月 | 日韩精品乱码av一区二区 | 无人区乱码一区二区三区 | 99久久精品午夜一区二区 | 久久aⅴ免费观看 | 丰腴饱满的极品熟妇 | 国产激情精品一区二区三区 | 一二三四社区在线中文视频 | 精品无码国产自产拍在线观看蜜 | 国产午夜福利100集发布 | 少妇无码av无码专区在线观看 | 国产成人无码av一区二区 | aⅴ亚洲 日韩 色 图网站 播放 | 在线看片无码永久免费视频 | 国产精品爱久久久久久久 | 人妻aⅴ无码一区二区三区 | 中文字幕人妻无码一夲道 | 大肉大捧一进一出视频出来呀 | 国产成人无码午夜视频在线观看 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 日本熟妇大屁股人妻 | 伊人久久婷婷五月综合97色 | 中文精品无码中文字幕无码专区 | 国产真实乱对白精彩久久 | 亚洲の无码国产の无码步美 | 人人爽人人澡人人人妻 | 日本精品久久久久中文字幕 | 水蜜桃亚洲一二三四在线 | 久久人妻内射无码一区三区 | 青青青手机频在线观看 | 亚洲中文字幕va福利 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 毛片内射-百度 | 人妻少妇精品无码专区二区 | 日日天日日夜日日摸 | 性做久久久久久久久 | 亚洲成a人片在线观看无码 | av香港经典三级级 在线 | 国产精品无码久久av | 无码帝国www无码专区色综合 | 国产精品亚洲五月天高清 | 欧美精品无码一区二区三区 | 131美女爱做视频 |