一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

SQL語句大全:基礎(chǔ)查詢、關(guān)聯(lián)查詢

 L羅樂 2018-10-12

1. SQL(基礎(chǔ)查詢)

1.1. 基本查詢語句

1.1.1. FROM子句

SQL查詢語句的語法如下:

copytextpop-up
  1. SELECT <*, column [alias],> FROM table;

SELECT <*, column [alias], …> FROM table;

其中:SELECT用于指定要查詢的列,F(xiàn)ROM指定要從哪個表中查詢。如果要查詢所有列,可以在SELECT后面使用*號,如果只查詢特定的列,可以直接在SELECT后面指定列名,列名之間用逗號隔開。例句如下,查詢dept表中的所有記錄:

copytextpop-up
  1. SELECT * FROM dept;

SELECT * FROM dept;


1.1.2. 使用別名

在SQL語句中可以通過使用列的別名改變標(biāo)題的顯示樣式,或者表示計算結(jié)果的含義,使用語法是列的別名跟在列名后,中間可以加或不加一個“AS”關(guān)鍵字。例如:

copytextpop-up
  1. SELECT empno AS id ,ename 'Name', sal * 12 'Annual Salary'  FROM emp;

SELECT empno AS id ,ename 'Name', sal * 12 'Annual Salary' FROM emp;

別名可以直接寫,不必用雙引號引起來。但是如果希望別名中區(qū)分大小寫字符,或者別名中包含字符或空格,則必須用雙引號引起來。


1.1.3. WHERE子句

在SELECT語句中,可以在WHERE子句中使用比較操作符限制查詢結(jié)果,是可選的。

當(dāng)查詢條件中和數(shù)字比較,可以使用單引號引起,也可以不用,當(dāng)和字符及日期類型的數(shù)據(jù)比較,則必須用單引號引起。例如查詢部門10下的員工信息:

copytextpop-up
  1. SELECT * FROM empWHERE deptno = 10;

SELECT * FROM empWHERE deptno = 10;

查詢職員表中職位是’SALESMAN’的職員:

copytextpop-up
  1. SELECT ename, sal, job FROM emp WHERE job = 'SALESMAN';

SELECT ename, sal, job FROM emp WHERE job = 'SALESMAN';

圖-1 用where子句定義查詢條件


1.1.4. SELECT子句

如果只查詢表的部分列,需要在SELECT后指定列名,例如:

copytextpop-up
  1. SELECT empno, ename, sal, job FROM emp;

SELECT empno, ename, sal, job FROM emp;

圖-2查詢指定的列


1.2. 查詢條件

1.2.1. 使用>, <, >=, <=, !=, <>, =

在WHERE子句中的查詢條件,可以使用比較運算符來做查詢。比如:查詢職員表中薪水低于2000元的職員信息:

copytextpop-up
  1. SELECT ename, sal FROM emp WHERE sal< 2000;

SELECT ename, sal FROM emp WHERE sal< 2000;

查詢職員表中不屬于部門10的員工信息(!=等價于<>):

copytextpop-up
  1. SELECT ename, sal, job FROM emp WHERE deptno != 10;

SELECT ename, sal, job FROM emp WHERE deptno != 10;

查詢職員表中在2002年1月1號以后入職的職員信息,比較日期類型數(shù)據(jù):

copytextpop-up
  1. SELECT ename, sal, hiredate FROM emp

  2. WHERE hiredate>to_date('2002-1-1','YYYY-MM-DD');

SELECT ename, sal, hiredate FROM emp WHERE hiredate>to_date('2002-1-1','YYYY-MM-DD');


1.2.2. 使用AND,OR關(guān)鍵字

在SQL操作中,如果希望返回的結(jié)果必須滿足多個條件,應(yīng)該使用AND邏輯操作符連接這些條件,如果希望返回的結(jié)果滿足多個條件之一即可,應(yīng)該使用OR邏輯操作符連接這些條件。例如:查詢薪水大于1000并且職位是’CLERK’的職員信息:

copytextpop-up
  1. SELECT ename, sal, job FROM emp

  2. WHERE sal> 1000 AND job = 'CLERK';

SELECT ename, sal, job FROM emp WHERE sal> 1000 AND job = 'CLERK';

查詢薪水大于1000或者職位是’CLERK’的職員信息:

copytextpop-up
  1. SELECT ename, sal, job FROM emp

  2. WHERE sal> 1000 OR job = 'CLERK';

SELECT ename, sal, job FROM emp WHERE sal> 1000 OR job = 'CLERK';


1.2.3. 使用LIKE條件(模糊查詢)

當(dāng)用戶在執(zhí)行查詢時,不能完全確定某些信息的查詢條件,或者只知道信息的一部分,可以借助LIKE來實現(xiàn)模糊查詢。LIKE需要借助兩個通配符:

  • %:表示0到多個字符

  • _:標(biāo)識單個字符

這兩個通配符可以配合使用,構(gòu)造靈活的匹配條件。例如查詢職員姓名中第二個字符是‘A’的員工信息:

copytextpop-up
  1. SELECT ename, job FROM emp WHERE ename LIKE '_A%';

SELECT ename, job FROM emp WHERE ename LIKE '_A%';

圖-3 模糊查詢的結(jié)果


1.2.4. 使用IN和NOT IN

在WHERE子句中可以用比較操作符IN(list)來取出符合列表范圍中的數(shù)據(jù)。其中的參數(shù)list表示值列表,當(dāng)列或表達式匹配于列表中的任何一個值時,條件為TRUE,該條記錄則被顯示出來。

IN頁可以理解為一個范圍比較操作符,只不過這個范圍是一個指定的值列表,NOT IN(list) 取出不符合此列表中的數(shù)據(jù)記錄。例如查詢職位是MANAGER或者CLERK的員工:

copytextpop-up
  1. SELECT ename, job FROM emp WHERE job IN ('MANAGER', 'CLERK');

SELECT ename, job FROM emp WHERE job IN ('MANAGER', 'CLERK');

查詢不是部門10或20的員工:

copytextpop-up
  1. SELECT ename, job FROM emp WHERE deptno NOT IN (10, 20);

SELECT ename, job FROM emp WHERE deptno NOT IN (10, 20);


1.2.5. BETWEEN…AND…

BETWEEN…AND…操作符用來查詢符合某個值域范圍條件的數(shù)據(jù),最常見的是使用在數(shù)字類型的數(shù)據(jù)范圍上,但對字符類型和日期類型數(shù)據(jù)也同樣適用。例如查詢薪水在1500-3000之間的職員信息:

copytextpop-up
  1. SELECT ename, sal FROM emp

  2. WHERE sal BETWEEN 1500 AND 3000;

SELECT ename, sal FROM emp WHERE sal BETWEEN 1500 AND 3000;


1.2.6. 使用IS NULL和IS NOT NULL

空值NULL是一個特殊的值,比較的時候不能使用”=”號,必須使用IS NULL,否則不能得到正確的結(jié)果。例如查詢哪些職員的獎金數(shù)據(jù)為NULL:

copytextpop-up
  1. SELECT ename, sal, comm FROM emp

  2. WHERE comm IS NULL;

SELECT ename, sal, comm FROM emp WHERE comm IS NULL;


1.2.7. 使用ANY和ALL條件

在比較運算符中,可以出現(xiàn)ALL和ANY,表示“全部”和“任一”,但是ALL和ANY不能單獨使用,需要配合單行比較操作符>、>=、<、<=一起使用。其中:

  • > ANY : 大于最小

  • < ANY:小于最大

  • > ALL:大于最大

  • < ALL:小于最小

例如,查詢薪水比職位是“SALESMAN”的人高的員工信息,比任意一個SALESMAN高都行:

copytextpop-up
  1. SELECT empno, ename, job, sal, deptno

  2. FROM emp

  3. WHERE sal> ANY (

  4. SELECT sal FROM emp WHERE job = 'SALESMAN');

SELECT empno, ename, job, sal, deptno FROM emp WHERE sal> ANY ( SELECT sal FROM emp WHERE job = 'SALESMAN');


1.2.8. 查詢條件中使用表達式和函數(shù)

當(dāng)查詢需要對選出的字段進行進一步計算,可以在數(shù)字列上使用算術(shù)表達式( 、-、*、/)。表達式符合四則運算的默認優(yōu)先級,如果要改變優(yōu)先級可以使用括號。

算術(shù)運算主要是針對數(shù)字類型的數(shù)據(jù),對日期類型的數(shù)據(jù)可以做加減操作,表示在一個日期值上加或減一個天數(shù)。

查詢條件中使用字符串函數(shù)UPPER,將條件中的字符串變大寫后再參與比較:

copytextpop-up
  1. SELECT ename, sal, job FROMempWHERE ename = UPPER('rose');

SELECT ename, sal, job FROMempWHERE ename = UPPER('rose');

查詢條件中使用算數(shù)表達式,查詢年薪大于10w元的員工記錄:

copytextpop-up
  1. SELECT ename, sal, job FROM empWHERE sal * 12 >100000;

SELECT ename, sal, job FROM empWHERE sal * 12 >100000;


1.2.9. 使用DISTINCT過濾重復(fù)

數(shù)據(jù)表中有可能存儲相同數(shù)據(jù)的行,當(dāng)執(zhí)行查詢操作時,默認情況會顯示所有行,不管查詢結(jié)果是否有重復(fù)的數(shù)據(jù)。當(dāng)重復(fù)數(shù)據(jù)沒有實際意義,經(jīng)常會需要去掉重復(fù)值,使用DISTINCT實現(xiàn)。例如查詢員工的部門編碼,包含所有重復(fù)值:

copytextpop-up
  1. SELECT deptno FROM emp;

SELECT deptno FROM emp;

查詢員工的部門編碼,去掉重復(fù)值:

copytextpop-up
  1. SELECT DISTINCT deptno FROM emp;

SELECT DISTINCT deptno FROM emp;

DISTINCT后面的列可以組合查詢,下例查詢每個部門的職位,去掉重復(fù)值。注意是deptno和job聯(lián)合起來不重復(fù):

copytextpop-up
  1. SELECT DISTINCT deptno, job FROM emp;

SELECT DISTINCT deptno, job FROM emp;

圖-4用distinct去掉重復(fù)的列


1.3. 排序

1.3.1. 使用ORDER BY字句

對查詢出的數(shù)據(jù)按一定規(guī)則進行排序操作,使用ORDER BY子句。語法如下:

copytextpop-up
  1. SELECT <*, column [alias],>

  2. FROM table

  3. [WHERE condition(s)]

  4. [ORDER BY column [ASC | DESC]] ;

SELECT <*, column [alias], …> FROM table [WHERE condition(s)] [ORDER BY column [ASC | DESC]] ;

注意,ORDER BY必須出現(xiàn)在SELECT中的最后一個子句。下例對職員表按薪水排序:

copytextpop-up
  1. SELECT ename, sal

  2. FROM emp

  3. ORDER BY sal;

SELECT ename, sal FROM emp ORDER BY sal;

圖-5用ORDER BY將查詢結(jié)果排序


1.3.2. ASC和DESC

排序時默認按升序排列,即由小及大,ASC用來指定升序排序,DESC用來指定降序排序。

因為NULL值視作最大,則升序排列時,排在最后,降序排列時,排在最前。如果不寫ASC或DESC,默認是ASC,升序排列。例如,按員工的經(jīng)理升序排序:

copytextpop-up
  1. SELECT empno, ename, mgr FROM emp

  2. WHERE deptno = 10 ORDER BY mgr;

SELECT empno, ename, mgr FROM emp WHERE deptno = 10 ORDER BY mgr;

降序排列,必須指明,按員工的薪水倒序排序:

copytextpop-up
  1. SELECT ename, sal FROM emp

  2. ORDER BY sal DESC;

SELECT ename, sal FROM emp ORDER BY sal DESC;


1.3.3. 多個列排序

當(dāng)以多列作為排序標(biāo)準(zhǔn)時,首先按照第一列進行排序,如果第一列數(shù)據(jù)相同,再以第二列排序,以此類推。多列排序時,不管正序還是倒序,每個列需要單獨設(shè)置排序方式。

下例對職員表中的職員排序,先按照部門編碼正序排列,再按照薪水降序排列:

copytextpop-up
  1. SELECT ename, deptno, sal FROM emp

  2. ORDER BY deptno ASC, sal DESC;

SELECT ename, deptno, sal FROM emp ORDER BY deptno ASC, sal DESC;


1.4. 聚合函數(shù)

1.4.1. 什么是聚合函數(shù)

查詢時需要做一些數(shù)據(jù)統(tǒng)計,比如:查詢職員表中各部門職員的平均薪水,各部門的員工人數(shù)。當(dāng)需要統(tǒng)計的數(shù)據(jù)并不能在職員表里直觀列出,而是需要根據(jù)現(xiàn)有的數(shù)據(jù)計算得到結(jié)果,這種功能可以使用聚合函數(shù)來實現(xiàn),即:將表的全部數(shù)據(jù)劃分為幾組數(shù)據(jù),每組數(shù)據(jù)統(tǒng)計出一個結(jié)果。

因為是多行數(shù)據(jù)參與運算返回一行結(jié)果,也稱作分組函數(shù)、多行函數(shù)、集合函數(shù)。用到的關(guān)鍵字:

  • GOURP BY 按什么分組

  • HAVING 進一步限制分組結(jié)果 


1.4.2. MAX和MIN

用來取得列或表達式的最大、最小值,可以用來統(tǒng)計任何數(shù)據(jù)類型,包括數(shù)字、字符和日期。例如獲取機構(gòu)下的最高薪水和最低薪水,參數(shù)是數(shù)字:

copytextpop-up
  1. SELECT MAX(sal) max_sal, MIN(sal) min_sal

  2. FROM emp;

SELECT MAX(sal) max_sal, MIN(sal) min_sal FROM emp;

計算最早和最晚的入職時間,參數(shù)是日期:

copytextpop-up
  1. SELECT MAX(hiredate) max_hire, MIN(hiredate) min_hire

  2. FROM emp;

SELECT MAX(hiredate) max_hire, MIN(hiredate) min_hire FROM emp;


1.4.3. AVG和SUM

AVG和SUM函數(shù)用來統(tǒng)計列或表達式的平均值和和值,這兩個函數(shù)只能操作數(shù)字類型,并忽略NULL值。例如獲得機構(gòu)下全部職員的平均薪水和薪水總和:

copytextpop-up
  1. SELECT AVG(sal) avg_sal, SUM(sal)  sum_sal  FROM emp;

SELECT AVG(sal) avg_sal, SUM(sal) sum_sal FROM emp;


1.4.4. COUNT

COUNT函數(shù)用來計算表中的記錄條數(shù),同樣忽略NULL值。例如獲取職員表中一共有多少名職員記錄:

copytextpop-up
  1. SELECT COUNT(*) total_num  FROM emp;

SELECT COUNT(*) total_num FROM emp;

獲得職員表中有多少人是有職位的(忽略沒有職位的員工記錄)

copytextpop-up
  1. SELECT COUNT(job) total_job  FROM emp;

SELECT COUNT(job) total_job FROM emp;


1.4.5. 聚合函數(shù)對空值的處理

聚合函數(shù)忽略NULL值。即當(dāng)emp表中的某列有NULL值,比如某新入職員工沒有薪水,比較兩條語句的結(jié)果:

copytextpop-up
  1. SELECT AVG(sal)  avg_sal FROM emp;

  2. SELECT AVG(NVL(sal,0)) avg_sal FROM emp;

SELECT AVG(sal) avg_sal FROM emp; SELECT AVG(NVL(sal,0)) avg_sal FROM emp;


1.5. 分組

1.5.1. GROUP BY子句

上面的例子都是以整個表作為一組。如果希望得到每個部門的平均薪水,而不是整個機構(gòu)的平均薪水,需要把整個數(shù)據(jù)表按部門劃分成一個個小組,每個小組中包含一行或多行數(shù)據(jù),在每個小組中再使用分組函數(shù)進行計算,每組返回一個結(jié)果。語法如下:

copytextpop-up
  1. SELECT <*, column [alias],>

  2. FROM table [WHERE condition(s)]

  3. [GROUP BY group_by_expression]

  4. [HAVING group_condition]

  5. [ORDER BY column [ASC | DESC]] ;

SELECT <*, column [alias], …> FROM table [WHERE condition(s)] [GROUP BY group_by_expression] [HAVING group_condition] [ORDER BY column [ASC | DESC]] ;

其中劃分的小組有多少,最終的結(jié)果集行數(shù)就有多少。


1.5.2. 分組查詢

圖-6分組查詢


1.5.3. HAVING字句

HAVING子句用來對分組后的結(jié)果進一步限制,比如按部門分組后,得到每個部門的最高薪水,可以繼續(xù)限制輸出結(jié)果。必須跟在GROUP BY后面,不能單獨存在。例如查詢每個部門的最高薪水,只有最高薪水大于4000的記錄才被輸出顯示:

copytextpop-up
  1. SELECT deptno, MAX(sal) max_sal FROM emp

  2. GROUP BY deptno HAVING MAX(sal) >4000;

SELECT deptno, MAX(sal) max_sal FROM emp GROUP BY deptno HAVING MAX(sal) >4000;


1.6. 查詢語句的執(zhí)行順序

當(dāng)一條查詢語句中包含所有的子句,執(zhí)行順序依下列子句次序:

  1. FROM 子句:執(zhí)行順序為從后往前、從右到左。數(shù)據(jù)量較少的表盡量放在后面。

  2. WHERE子句:執(zhí)行順序為自下而上、從右到左。將能過濾掉最大數(shù)量記錄的條件寫在WHERE 子句的最右。

  3. GROUP BY:執(zhí)行順序從左往右分組,最好在GROUP BY前使用WHERE將不需要的記錄在GROUP BY之前過濾掉。

  4. HAVING 子句:消耗資源。盡量避免使用,HAVING 會在檢索出所有記錄之后才對結(jié)果集進行過濾,需要排序等操作。

  5. SELECT子句:少用*號,盡量取字段名稱。ORACLE 在解析的過程中, 通過查詢數(shù)據(jù)字典將*號依次轉(zhuǎn)換成所有的列名, 消耗時間。

  6. ORDER BY子句:執(zhí)行順序為從左到右排序,消耗資源。 


2. SQL(關(guān)聯(lián)查詢)

2.1. 關(guān)聯(lián)基礎(chǔ)

2.1.1. 關(guān)聯(lián)的概念

實際應(yīng)用中所需要的數(shù)據(jù),經(jīng)常會需要查詢兩個或兩個以上的表。這種查詢兩個或兩個以上數(shù)據(jù)表或視圖的查詢叫做連接查詢,連接查詢通常建立在存在相互關(guān)系的父子表之間。語法如下:

copytextpop-up
  1. SELECT table1.column, table2.column

  2. FROM table1, table2

  3. WHERE table1.column1 = table2.column2;

SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column1 = table2.column2;

或者:

copytextpop-up
  1. SELECT table1.column, table2.column

  2. FROM table1JOIN table2

  3. ON(table1.column1 = table2.column2);

SELECT table1.column, table2.column FROM table1JOIN table2 ON(table1.column1 = table2.column2);


2.1.2. 笛卡爾積

笛卡爾積指做關(guān)聯(lián)操作的每個表的每一行都和其它表的每一行做組合,假設(shè)兩個表的記錄條數(shù)分別是X和Y,笛卡爾積將返回X * Y條記錄。當(dāng)兩個表關(guān)聯(lián)查詢時,不寫連接條件,得到的結(jié)果即是笛卡爾積。例如:

copytextpop-up
  1. SELECT COUNT(*) FROM emp; --14條記錄

  2. SELECT COUNT(*) FROM dept; --4條記錄

  3. SELECT emp.ename, dept.dnameFROM emp, dept;--56條記錄

SELECT COUNT(*) FROM emp; --14條記錄 SELECT COUNT(*) FROM dept; --4條記錄 SELECT emp.ename, dept.dnameFROM emp, dept;--56條記錄


2.1.3. 等值連接

等值連接是連接查詢中最常見的一種,通常是在有主外鍵關(guān)聯(lián)關(guān)系的表間建立,并將連接條件設(shè)定為有關(guān)系的列,使用等號”=”連接相關(guān)的表。例如查詢職員的姓名、職位以及所在部門的名字和所在城市,使用兩個相關(guān)的列做等值操作:

copytextpop-up
  1. SELECT e.ename, e.job, d.dname, d.loc

  2. FROM emp e, dept d

  3. WHERE e.deptno = d.deptno;

SELECT e.ename, e.job, d.dname, d.loc FROM emp e, dept d WHERE e.deptno = d.deptno;

2.2. 關(guān)聯(lián)查詢

2.2.1. 內(nèi)連接

內(nèi)連接返回兩個關(guān)聯(lián)表中所有滿足連接條件的記錄。例如查詢員工的名字和所在部門的名字:

copytextpop-up
  1. SELECT e.ename, d.dname

  2. FROM emp e, dept d

  3. WHERE e.deptno = d.deptno

SELECT e.ename, d.dname FROM emp e, dept d WHERE e.deptno = d.deptno

上面的語法也可以寫為:

copytextpop-up
  1. SELECT e.ename, d.dname

  2. FROM emp e JOIN dept d

  3. ON(e.deptno = d.deptno);

SELECT e.ename, d.dname FROM emp e JOIN dept d ON(e.deptno = d.deptno);


2.2.2. 外連接

內(nèi)連接返回兩個表中所有滿足連接條件的數(shù)據(jù)記錄,在有些情況下,需要返回那些不滿足連接條件的記錄,需要使用外連接,即不僅返回滿足連接條件的記錄,還將返回不滿足連接條件的記錄。比如把沒有職員的部門和沒有部門的職員查出來。外連接的語法如下:

copytextpop-up
  1. SELECT table1.column, table2.column

  2. FROM table1 [LEFT | RIGHT | FULL] JOIN table2

  3. ON table1.column1 = table2.column2;

SELECT table1.column, table2.column FROM table1 [LEFT | RIGHT | FULL] JOIN table2 ON table1.column1 = table2.column2;

了解驅(qū)動表的概念。

圖-7左外連接

圖-8右外連接

外連接查詢的例子,Emp表做驅(qū)動表:

copytextpop-up
  1. SELECT e.ename, d.dname

  2. FROM emp e LEFT OUTER JOIN dept d

  3. ON e.deptno = d.deptno;

SELECT e.ename, d.dname FROM emp e LEFT OUTER JOIN dept d ON e.deptno = d.deptno;

Dept表做驅(qū)動表:

copytextpop-up
  1. SELECT e.ename, d.dname

  2. FROM emp e RIGHT OUTER JOIN dept d

  3. ON e.deptno = d.deptno;

SELECT e.ename, d.dname FROM emp e RIGHT OUTER JOIN dept d ON e.deptno = d.deptno;


2.2.3. 全連接

全外連接是指除了返回兩個表中滿足連接條件的記錄,還會返回不滿足連接條件的所有其它行。即是左外連接和右外連接查詢結(jié)果的總和。例如:

copytextpop-up
  1. SELECT e.ename, d.dname

  2. FROM emp e FULL OUTER JOIN dept d

  3. ON e.deptno = d.deptno;

SELECT e.ename, d.dname FROM emp e FULL OUTER JOIN dept d ON e.deptno = d.deptno;

圖-9 全外連接


2.2.4. 自連接

自連接是一種特殊的連接查詢,數(shù)據(jù)的來源是一個表,即關(guān)聯(lián)關(guān)系來自于單表中的多個列。表中的列參照同一個表中的其它列的情況稱作自參照表。

自連接是通過將表用別名虛擬成兩個表的方式實現(xiàn),可以是等值或不等值連接。例如查出每個職員的經(jīng)理名字,以及他們的職員編碼:

copytextpop-up
  1. SELECT worker.empnow_empno, worker.enamew_ename, manager.empnom_empno, manager.enamem_ename

  2. FROM emp worker join emp manager

  3. ON worker.mgr = manager.empno;

SELECT worker.empnow_empno, worker.enamew_ename, manager.empnom_empno, manager.enamem_ename FROM emp worker join emp manager ON worker.mgr = manager.empno;

END

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    东北女人的逼操的舒服吗| 欧美熟妇一区二区在线| 激情综合五月开心久久| 欧美又大又黄刺激视频| 暴力三级a特黄在线观看| 亚洲中文字幕综合网在线 | 日本福利写真在线观看| 免费观看成人免费视频| 午夜日韩在线观看视频| 中文字幕中文字幕一区二区| 麻豆tv传媒在线观看| 国产真人无遮挡免费视频一区| 亚洲日本加勒比在线播放| 亚洲香艳网久久五月婷婷| 国产精品久久男人的天堂| 亚洲美女国产精品久久| 日本欧美三级中文字幕| 亚洲欧美日韩中文字幕二欧美| 熟女免费视频一区二区| 国产精品欧美在线观看| 搡老妇女老熟女一区二区| 99精品国产一区二区青青 | 亚洲中文字幕在线综合视频| 亚洲日本中文字幕视频在线观看| 99久久国产亚洲综合精品| 日韩一级免费中文字幕视频| 亚洲黑人精品一区二区欧美| 中文字幕区自拍偷拍区| 日本丰满大奶熟女一区二区| 国产精品夜色一区二区三区不卡| 国产老女人性生活视频| 可以在线看的欧美黄片| 久久少妇诱惑免费视频| 日本人妻丰满熟妇久久| 亚洲妇女作爱一区二区三区| 日本精品免费在线观看| 美国女大兵激情豪放视频播放 | 出差被公高潮久久中文字幕| 黄片三级免费在线观看| 欧美丝袜诱惑一区二区| 亚洲人午夜精品射精日韩|