日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

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

数据库

MySQL基础(学习笔记)

發布時間:2023/12/31 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL基础(学习笔记) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL學習筆記


前言

此筆記為我在觀看老杜的MySQL教程時所整理的筆記,原視頻鏈接:老杜數據庫,在原視頻評論區也有老師的資料和筆記。

基本概念

數據庫

Database, 簡稱DB, 指按照一定格式存儲數據的一些文件組合。

顧名思義:存儲數據的倉庫,實際就是一堆文件,這些文件中存儲了具有特定格式的數據。

數據庫管理系統

Database Management System, 簡稱DBMS,

數據庫管理系統是專門用來管理數據庫中的數據的,可以對數據庫中的數據進行增刪改查。

常見的DBMS:

MySQL , Oracle , Ms sqlserver , DB2 , sybase…

SQL:結構化查詢語言

Structured Query Language,

程序員通過學習并編寫SQL語句,由DBMS負責執行SQL語句,最終完成數據庫中數據的增刪改查(CRUD)操作。

SQL語句的分類

  • DQL

    數據查詢語言(帶有select關鍵字的)

    select…

  • DML

    數據操作語言(對表中數據進行增刪改查)

    • insert 增
    • delete 刪
    • update 改
  • DDL

    數據定義語言(主要操作的是表的結構,而不是數據)

    • create 新建,等同于增
    • drop 刪除
    • alter 修改
  • TCL

    事務控制語言

    • commit 事務提交
    • rollback 事務回滾
  • DCL

    數據控制語言

    • grant 授權
    • revoke 撤銷權限

三者的關系

DBMS ------執行-------> SQL ---------操作---------> DB

端口號

端口號(port)是任何一個軟件/應用都會有的,端口號是應用的唯一代表,端口號通常和IP地址在一塊,IP地址是用來定位計算機的,而port是用來定位計算機上某個服務/應用的。

在同一臺計算機上,端口號不能重復,具有唯一性。

表(table)

表是數據庫中的最基本單元,非常的直觀

每一個表都有行和列

  • 行(row):被稱為數據/記錄
  • 列(column): 被稱為字段,每一個字段都有字段名,數據類型,約束等屬性。

MySQL中常用的數據類型

  • varchar(最長255)

    可變長度字符串

    比較智能,節省空間

    會根據實際的數據長度動態分配空間。

    • 優點:節省空間
    • 缺點:需要動態分配空間,速度慢
  • char(最長255)

    定長字符串

    不管實際的數據長度是多少

    分配固定長度的空間去存儲數據

    使用不恰當的時候,可能導致空間的浪費。

    • 優點:不需要動態分配空間,速度快
    • 缺點:使用不當可能導致空間的浪費
  • int(最長11)

    數字中的整數型

  • bigint

    數字中的長整型

  • float

    單精度浮點型數據

  • double

    雙精度浮點型數據

  • date

    短日期類型

  • datetime

    長日期類型

  • clob(Character Large Object)

    字符大對象

    最多可以存儲4G的字符串

    超過255個字符串的都要采用CLOB字符大對象來存儲。

  • blob(Binary Large Object)

    二進制大對象

    專門用來存儲圖片,聲音,視頻等流媒體數據

    在BLOG類型的字段上插入數據的時候,例如插入一個圖片,視頻等,

    需要使用IO流。

注釋

兩個破折號加上一個空格可以注釋一條SQL語句

select ename from emp; --

基本操作

MySQL服務的啟動和關閉

以管理員權限啟動終端,使用net start MySQL啟動服務,使用net stop MySQL停止服務。

登錄MySQL數據庫

以管理員權限啟動終端,使用mysql -uroot -p密碼登錄數據庫,u指代user,p指代password,使用mysql -uroot -p命令可以以隱藏密碼的形式登錄。

退出MySQL數據庫

使用exit命令

常用命令

  • 查看mysql中有哪些數據庫:show databases;
  • 選擇使用某個數據庫:use 數據庫名稱;
  • 創建數據庫:creat database 創建數據庫名稱;
  • 查看數據庫下的表:show tables;
  • 導入.sql數據:source 文件路徑
  • 查看表中的數據:select * from 表名; 其中* 表示全部
  • 查看表的結構:desc 表名; 其中desc為describe的縮寫
  • 查看MySQL數據庫版本號:select version();
  • 查看當前使用的數據庫:select database();
  • 終止一條命令的輸入:\c

SQL語句

注意:所有的SQL語句都以;結尾,并且不區分大小寫。

DQL

簡單查詢

  • 查詢一個字段

    select 字段名 from 表名;

    其中select 和from 都是關鍵字,字段名和表名都是標識符。

  • 查詢多個字段

    select 字段名,字段名 from 表名;

    字段和字段之間用逗號,隔開。

  • 查詢所有字段

    select * from 表名;

    使用*可以查詢所有字段,但是開發中不建議使用,由于系統會將*先轉換成字段,效率較低,可讀性差。

  • 給查詢的列起別名

    • select 字段名 as 別名 from 表名;

      select 字段名 as 別名 , 字段名 as 別名 from 表名;

      使用as關鍵字起別名

      注意:只是將顯示的查詢結果列名顯示為別名,原表列名不變,select語句只負責查詢,不會進行修改操作

    • select 字段名 別名 from 表名;

      as關鍵字可以省略

    • select 字段名 as '別 名' from 表名;

      別名中如果有空格則可以使用單雙引號括起來。

    注意:在所有數據庫中,字符串統一使用單引號括起來,單引號是標準,雙引號在oracle數據庫中使用不了,所以建議所有字符串都使用單引號括起來。

  • 列參與數學計算

    Example: select ename,sal*12 from emp;

    字段可以使用數學表達式

    Example: select ename,sal*12 as '年薪' from emp;

  • 條件查詢

  • 什么是條件查詢?

    不是將表中的數據都查出來,是查詢出來符合條件的。

    語法格式:

    select 字段一,字段二,字段三... from 表名 where 條件;

  • 都有哪些條件?

    • = 等于

      Example: 查詢薪資等于800的員工姓名和編號

      select empno , ename from emp where sal = 800;

    • <> 或 != 不等于

      Example: 查詢薪資不等于800的員工姓名和編號

      select empno , ename from emp where sal != 800;

    • < 小于

    • <= 小于等于

    • > 大于

    • >= 大于等于

    • between ... and ... 兩個值之間,等同于 >= and <=

      使用between and 必須遵循左小右大格式且為閉區間。

    • is null 為空(is not null不為空)

    • and 并且

    • or 或者

      Example: 找出工資大于2500并且部門編號為10或20的員工,注意優先級問題

      and的優先級大于or

      select * from emp where sal > 2500 and (deptno = 10 or deptno = 20);

    • in 包含,相當于多個or(not in 不在這個范圍內)

      注意:not in在使用時要排除后面的NULL.

      Example: 查詢薪資是800和1500的員工

      select * from emp where sal in (800 , 1500);

      注意in不是一個區間,后面跟的是具體的值。

    • not 取非

    • like 模糊查詢,支持%或者_匹配

      % 匹配任意多個字符

      _ 匹配任意一個字符

      Example: 找出名字中含有o的

      select ename from emp where ename like '%o%';

      Example: 找出名字以t結尾的

      select ename from emp where ename like '%t';

      Example: 找出第二個字母為a的

      select ename from emp where ename like '_a%';

    • \ 轉義字符

    • exists存在

      select * from employee as e1 where exists (select * from employee as e2 where e1.name = e2.manager);

    • all

      select name from employee where salary >= all(select salary from employee);

    • any

      select name from employee where salary > any(select salary from employee);

  • 排序

  • 查詢所有員工薪資并排序(默認升序)。

    select ename , sal from emp order by sal;

  • 指定降序,指定升序。

    降序:select ename , sal from emp order by sal desc;

    升序:select ename , sal from emp order by sal asc;

  • 多個字段排序

    Example: 查詢員工名字和薪資,要求按照薪資排序,如果薪資一樣的話再按照名字升序排列。

    select ename , sal from emp order by sal asc , ename asc;

    tip:sal在前,起主導,只有sal相等的時候才會考慮啟用ename排序.

  • 了解:根據字段位置排序

    select ename , sal from emp order by 2;

    2表示第二列,第二列為sal。

  • 綜合案例

    Example: 找出工資在1250到3000之間的員工信息,要求按照薪資降序排列。

    select ename , sal from emp where sal between 1250 and 3000 order by sal desc;

    關鍵字順序不能改變!

  • 去重【distinct】

    把查詢結果去除重復記錄,原表數據不會刪改,需要使用關鍵字:distinct.

  • 一個字段去重
  • select distinct job from emp;

  • 多個字段去重

    注意:distinct只能出現在所有字段的最前方。

    select distinct job,deptno from emp;

    表示兩個字段聯合起來去重。

  • 統計數量

    select count(distinct job) from emp;

  • 全部讀取【all】

    all的用法與distinct相反,在查找時不使用distinct時默認使用all。

    數據處理函數(單行處理函數)

  • 數據處理函數又被稱為單行處理函數

    單行處理函數特點:一個輸入對應一個輸出

    和單行處理函數對應的是:多行處理函數

    多行處理函數特點:多個輸入對應一個輸出

  • 常見的單行處理函數

    • lower() 轉換小寫

      select lower(ename) as ename from emp;

    • upper() 轉換大寫

    • substr() 取子串(substr(被截取的字符串 , 起始下標 , 截取的長度))

      注意:起始下標從1開始!

    • concat() 字符串連接

    • length() 取長度

    • trim() 去空格

    • round(,) 四舍五入

      select round(123.5 , 0) from emp;

      0保留個位,1保留一位小數,-1保留十位,以此類推。

    • rand() 生成隨機數

      select round(rand()*100 , 0); 生成100以內隨機數。

    • ifnull(數據,被當做哪個值) 可以將null轉換成一個具體值

      ifnull是空處理函數,專門處理空的,

      注意:在所有數據庫中,只要有NULL參與的數學運算,最終結果就是NULL。

      Example: 計算年薪

      select ename , (sal + ifnull(comm , 0))*12 as yearsal from emp;

    • case .. when .. then .. when .. then .. else .. end

      Example: 當員工崗位為Manager時,工資上調10%,員工崗位為Salesman時,工資上調50%,其他正常

      selectename,job,sal as oldsal,(case job when 'MANAGER' then sal*1.1 when 'SALESMAN' then sal*1.5 else sal end) as newsal fromemp;
  • 分組函數(多行處理函數)

  • 多行處理函數的特點:輸入多行,最終輸出一行。

    共五個:

    • count() 計數

    • sum() 求和

    • avg() 平均值

    • max() 最大值 注:可以用limit或者not in取代

    • min() 最小值

      Tip:

      代碼示例: 語句1select * from student limit 9,4 語句2:slect * from student limit 4 offset 9 // 語句1和2均返回表student的第10、11、12、13行 //語句2中的4表示返回4行,9表示從表的第十行開始SELECT * FROM orange LIMIT 5; //檢索前5條記錄(1-5)# Write your MySQL query statement below 查找第二高的薪水,如果沒有的話返回null select ifnull((select distinct salary fromemployee order by salary desc limit 1 offset 1), null) as 'SecondHighestSalary' ;

    注意:分組函數在使用的時候必須先進行分組,然后才能用,如果沒有對數據進行分組,整張表默認為一組。

  • 分組函數自動忽略NULL,不需要提前對NULL進行處理。

    • count(具體字段) 表示統計該字段下所有不為NULL的元素的總數。
    • count(*) 統計表當中的總行數。因為每一行記錄不可能都為NULL,一行數據中有一列不為NULL,則這行數據就是有效的。
  • 分組函數不能夠直接使用在where子句中。

  • 所有分組函數可以組合起來一起用。

  • 分組查詢(重要)

  • 什么是分組查詢?

    在實際應用中,可能有這樣的需求,需要先進行分組,然后對每一組數據進行操作。

    select ... from ... group by ...;

  • 關鍵字執行順序

    select... from... where... group by... order by...;

    以上關鍵字的順序不能顛倒!

    執行順序如下(重要):

  • from
  • where
  • group by
  • select
  • order by
  • 分組函數不能直接用在where后面因為where的執行優先度高,where執行的時候還沒有分組,

    因為select在group by 后執行,可以先使用分組函數。

  • 找出每個崗位的工資和?

    實現思路:按照工作崗位分組,然后對工資求和。

    select job , sum(sal) from emp group by job;

    以上語句的執行順序:

    先從emp表中查詢數據,根據job字段進行分組,然后對每一組數據進行sum(sal)。

    重點結論:

    在一條select語句當中,如果有group by 語句的話,select 后面只能跟參加分組的字段,以及分組函數。

  • 使用having可以對分完組的數據進一步過濾

    having不能單獨使用,having不能代替where,having必須和group by 聯合使用。

    Example: 找出每個部門最高薪資,要求顯示最高薪資大于3000的

    select deptno , max(sal) from emp group by deptno having max(sal) > 3000;

    注意:當where和having都可以使用時優先使用where。

  • 單表查詢總結

    select... from... where... group by... having... order by...;

    執行順序:

  • from
  • where
  • group by
  • having
  • select
  • order by
  • 從某張表中查詢數據,

    先經過where條件篩選出有價值的數據,

    對這些數據進行分組,

    分組后使用having繼續篩選,

    select查詢出來,

    最后排序輸出。

    Example: 找出每個崗位的平均薪資,要求顯示平均薪資大于1500的,除MANAGER崗位外,按照平均薪資降序排列。

    selectjob , avg(sal) as avgsal from emp where job != 'manager' group by job having avg(sal) > 1500 order by avgsal desc;

    連接查詢

  • 什么是連接查詢?

    從一張表中單獨查詢,稱為單表查詢。emp表和dept表聯合起來查詢數據,從emp表中取員工名字,從dept表中取部門名字。

    這種跨表查詢,多張表聯合起來查詢數據,被稱為連接查詢。

  • 連接查詢的分類

    • 根據語法的年代分類:

      • SQL92:1992年的時候出現的語法
      • SQL99:1999年的時候出現的語法
    • 根據表連接方式分類:

      • 內連接:

        - 等值連接

        - 非等值連接

        - 自連接

      • 外連接

        - 左外連接(左連接)

        - 右外連接(右連接)

      • 全連接

  • 笛卡爾積現象

    select ename , dname from emp , dept;

    當兩張表進行連接查詢時,沒有任何條件限制的時候,最終查詢結果的條數,是兩張表條數的乘積,這種現象被稱為“笛卡爾積現象”。

  • 避免笛卡爾積現象

    連接時加條件,滿足條件的記錄被篩選出來,

    但是在查詢過程中的匹配次數并,沒有減少。

    select ename , dname from emp , dept where emp.deptno = dept.deptno;

    【重要】表起別名,會有效率提升

    selecte.ename , d.dname fromemp e , dept d wheree.deptno = d.deptno; // SQL92語法

    注意:通過笛卡爾積現象得出,表的連接次數越多效率越低,盡量避免標的連接次數。

  • 內連接之等值連接

    Example: 查詢每個員工所在的部門名稱,顯示員工名和部門名,emp e 和dept d 表進行連接,條件是:e.deptmo = d.deptno.

    • SQL92 語法

      selecte.ename , d.dname fromemp e , dept d wheree.deptno = d.deptno;

      【缺點】結構不清晰,表的連接條件,和后期的進一步篩選,都放到了where后面.

    • SQL99 語法

      selecte.ename , d.dname fromemp e inner join // inner可以省略(帶著inner可讀性更好)dept d on e.deptno = d.deptno; // 條件是等量關系,所以被稱為等值連接

      【優點】表連接條件是獨立的,連接之后如果需要進一步篩選,再往后繼續添加where.

  • 內連接之非等值連接

    Example: 找出每個員工的薪資等級,要求顯示員工名,薪資,薪資等級。

    selecte.ename , e.sal , s.grade fromemp e inner joinsalgrade s one.sal between s.losal and s.hisal;
  • 內連接之自連接

    Example: 查詢員工的上級領導,要求顯示員工名和對應的領導名。

    技巧:一張表看成兩張表

    selecta.ename as 員工名 , b.ename as 領導名 fromemp a inner joinemp b ona.mgr = b.empno;
  • 外連接(右外連接)

    select e.ename , d.dname from emp e right join dept d one.deptno = d.deptno;

    【right】代表將join關鍵字右邊的這張表看成主表,主要是為了將這張表的數據全部查詢出來,捎帶著關聯查詢左邊的表。

    在外連接當中,兩張表連接,產生了主次關系

  • 外連接(左外連接)

    select e.ename , d.dname from dept d left outer join emp e // outer可以省略與inner同理 one.deptno = d.deptno;

    右連接和左連接可以寫法互換。

  • 外連接(Full Outer Join)

    會顯示兩個表的全部內容

  • 多表連接

    語法:

    select... froma joinb ona和b的連接條件 joinc ona和c的連接條件 right joind ona和d的連接條件;

    一條SQL中內連接和外連接可以混合,都可以出現。

    Example: 找出每個員工的部門名稱 ,領導名以及工資等級,要求顯示員工名,領導名,部門名,薪資,薪資等級。

    selecte.ename , l.ename , d.dname , e.sal , s.grade fromemp e joindept d one.deptno = d.deptno joinsalgrade s one.sal between s.losal and s.hisal left joinemp l one.mgr = l.empno;
  • 子查詢

  • 什么是子查詢?

    select語句中嵌套select語句,被嵌套的select語句稱為子查詢。

  • 子查詢可以出現在哪里?

    select..(select) from..(select) where..(select);
  • where子句中的子查詢

    Example: 找出比最低工資高的員工姓名和工資。

    實現思路:

    • 第一步:查詢最低工資是多少

      select min(sal) from emp;

    • 第二步:找出大于800的

      select ename , sal from emp where sal > 800;

    • 第三步:合并

      select ename , sal from emp where sal > (select min(sal) from emp);

  • from字句中的子查詢

    注意:from后面的子查詢,可以將子查詢的查詢結果當做一張臨時表。

    Example: 找出每個崗位的平均工資的薪資等級。

    實現思路:

    • 第一步:找出每個崗位的平均工資(按照崗位分組求平均值)

      select job , avg(sal) from emp group by job;

    • 第二步:

      將第一步的查詢結果當成一張臨時表

    • 第三部:連接

      selectt.* , s.grade from(select job , avg(sal) as avgsal from emp group by job) t joinsalgrade s ont.avgsal between s.losal and s.hisal;
  • select后面出現的子查詢(了解即可)

    Example: 找出每個員工的部門名稱,要求顯示員工名,部門名。

    select e.ename , (select d.dname from dept d where e.deptno = d.deptno) as dname from emp e;

    注意:對于select 后面的子查詢來說,這個子查詢只能一次返回1條結果,多于一條,就報錯了。

  • union合并查詢結果集

    Example: 查詢工作崗位是MANAGER和SALSMAN員工。

    • select ename , job from emp where job = 'manager' or job = 'salesman';

    • select ename , job from emp where job in('manager' , 'salesman');

    • select ename , job from emp where job = 'manager' union select ename , job from emp where job = 'salesman';

      union的效率要高一些,對于表連接來說,每連接一次新表,則匹配的次數滿足笛卡爾積,但是union可以在減少匹配次數的情況下完成兩個結果集的拼接。

      注意:union在進行結果集合并的時候,要求兩個結果集的列數相同。

    limit(重要)

  • limit是將查詢結果集的一部分取出來,通常使用在分頁查詢當中。

    分頁的作用是提高用戶的體驗,因為一次全部都查出來,用戶體驗差,可以一頁一頁翻頁看。

  • limit的使用

    • 完整用法:limit startIndex , length

      startIndex是起始下標(從0開始),length是長度。

    • 缺省用法:limit 5這是取前五。

    Example: 按照薪資降序,取出排名在前五名的員工。

    selectename , sal fromemp order by sal desc limit 5; // 取前五

    注意:在MySQL中limit 在order by 之后執行!

  • 分頁

    每頁顯示pageSize條記錄

    第pageNo頁:limit (pageNo - 1) * pageSize , pageSize

  • DDL

    表的創建(create)

    注意:創建的數據庫、表、索引、列和別名用的是引用符是反勾號(`) ,用單引號會出現奇怪的語法問題,單引號主要用于字符串。

  • 建表的語法格式

    create table 表名(字段名1 數據類型,字段名2 數據類型,字段名3 數據類型 );
    • 表名:建議以 t_ 或者 tbl_開始,可讀性強。見名知意。
    • 字段名:見名知意。

    表名和字段名都屬于標識符。

  • MySQL中的數據類型(常用)

    • varchar(最長255)

      可變長度字符串

      比較智能,節省空間

      會根據實際的數據長度動態分配空間。

      • 優點:節省空間
      • 缺點:需要動態分配空間,速度慢
    • char(最長255)

      定長字符串

      不管實際的數據長度是多少

      分配固定長度的空間去存儲數據

      使用不恰當的時候,可能導致空間的浪費。

      • 優點:不需要動態分配空間,速度快
      • 缺點:使用不當可能導致空間的浪費
    • int(最長11)

      數字中的整數型

    • bigint

      數字中的長整型

    • float

      單精度浮點型數據

    • double

      雙精度浮點型數據

    • date

      短日期類型

    • datetime

      長日期類型

    • clob(Character Large Object)

      字符大對象

      最多可以存儲4G的字符串

      超過255個字符串的都要采用CLOB字符大對象來存儲。

    • blob(Binary Large Object)

      二進制大對象

      專門用來存儲圖片,聲音,視頻等流媒體數據

      在BLOG類型的字段上插入數據的時候,例如插入一個圖片,視頻等,

      需要使用IO流。

  • 創建一個學生表

    學號 , 姓名 , 年齡 , 性別 , 郵箱地址

    create table t_student(no int,name varchar(32),sex char(1),age int(3),email varchar(255) );
  • 表的復制

    create table emp2 as select * from emp;

    原理:

    將一個查詢結果當做一張表創建,

    這個可以快速完成表的復制,

    表創建的同時,數據也存在。

    刪除表(drop)

    drop table t_student; // 當這張表不存在時會報錯

    drop table if exists t_student; // 如果表存在的話刪除

    快速刪除(truncate)

    • delete語句的刪除數據原理:

      表中的數據刪除了,但數據在硬盤上的真實存儲空間不會被釋放。

      • 缺點:刪除效率低
      • 優點:支持回滾
    • truncate語句的刪除數據原理:

      刪除效率高,表被一次截斷,物理刪除

      • 缺點:不支持回滾
      • 優點:快速

      用法:

      truncate table 表名;

    alter

    • Add column:

      alter table 表名 add 列名 數據類型 [約束等];

    • Drop column:

      alter table 表名 drop column 列名;

    • Modify column name and definition:

      alter table 表名 change column 列名 新列名 數據類型 [約束等];

    • Modify column definition only:

      alter table 表名 modify column 列名 數據類型 [約束等];

    • Add constraints:

      alter table 表名 add constraint 約束名 約束(列名);

      Example:

      alter table emp add constraint empno_unique unique(empno);

      alter table staff add constraint fk_staff_staff foreign key(branchNo) references branch(branchNo);

    • Removing Constraints:

      alter table 表名 drop index 約束名 | drop foreign key 約束名 | drop primary key ;

      Example:

      alter table staff drop primary key;

      alter table branch drop index ck_branch;

    DML

    insert

  • 插入數據

    語法格式:

    insert into 表名(字段名1 , 字段名2 , 字段名3...) values(值1 , 值2 , 值3...);

    注意:字段名要和值一一對應(數量對應 , 數據類型對應)。

    Example:

    insert into t_student(no , name , sex , age , email) values(1 , 'zhangsan' , 'm' , 20 , 'zhangsan@email.com');

    注意:insert語句但凡是執行成功了,那么必然會多一條記錄,沒有給其他字段指定值的話,默認值是NULL。

    insert語句中的“字段名”可以省略,如果省略的話,等于都寫上了,所以值也要都寫上。

    insert into t_student values(1 , 'zhangsan' , 'm' , 20 , 'zhangsan@email.com');

  • 設置默認值

    create table t_student(no int,name varchar(32),sex char(1) default 'm', // 設置默認值age int(3),email varchar(255) );
  • insert插入日期

    • str_to_date: 將字符串varchar類型轉成date類型

    數據庫命名規范:所有的標識符全部都是小寫,單詞和單詞之間使用下劃線進行銜接。

    語法格式:

    str_to_date('字符串日期' , '日期格式')

    如果你提供的日期字符串是 %Y-%m-%d 格式,就不需要轉格式,系統會自動轉換。

    MySQL日期格式:

    • %Y 年
    • %m 月
    • %d 日
    • %h 時
    • %i 分
    • %s 秒

    • date_format: 將date類型轉換成具有一定格式的varchar字符串類型

    語法格式:

    date_format(日期類型數據 , '日期格式')

    這個函數通常使用在查詢日期方面,設置日期的展示格式,

    不設置展示格式則將使用MySQL默認日期格式。

    Example:

    select id,name,date_format(birth , '%Y/%m/%d') from t_user;

  • date 和 datetime 兩個類型的區別

    date是短日期,只包括年月日信息,

    datetime是長日期,包括年月日時分秒信息。

    MySQL長日期默認格式:%Y-%m-%d %h:%i:%s

    在MySQL當中獲取當前系統時間:now()函數,并且獲取的時間帶有時分秒信息。

  • insert插入多條記錄

    語法:

    insert into 表名(字段名1 , 字段名2...) values() , () , ()...;

  • 將查詢結果插入表

    insert into dept_bak select * from dept; // 不常見

  • update

    語法格式:

    update 表名 set 字段名1 = 值1 , 字段名2 = 值2 , 字段名3 = 值3 ... where 條件;

    注意:沒有限制條件會導致所有數據全部更新。

    Example:

    update t_user set name = 'jack' , birth = '2000-10-13' where id = 2;

    update emp set sal = sai * 12;

    delete

    語法格式:

    delete from 表名 where 條件;

    Example:

    delete from emp where empno = 1;

    注意:沒有限制條件,整張表數據會全部刪除。

    delete from t_user; // 刪除所有數據

    約束(constraint)

    基本概念

    什么是約束

    約束對應的英語單詞:constraint

    在創建表的時候,我們可以給表中的字段加上一些約束,來保證這個表中數據的完整性,有效性。

    約束的作用就是為了保證:表中的數據有效。

    約束包括什么

    • 非空約束:not null
    • 唯一性約束:unique
    • 主鍵約束:primary key (簡稱PK)
    • 外鍵約束:foreign key (簡稱FK)
    • 檢查約束:check (MySQL不支持 , oracle支持)
    create table t_people(id integer primary key,name varchar(255) not null,sex char not null check(sex in ('M' , 'F')),constraint id_positive check(id > 0) // id_positive 為自定義約束名 );

    非空約束(not null)

    只允許列級約束

    非空約束約束的字段不能為NULL。

    drop table if exists t_vip; create table t_vip(id int,name varchar(255) not null );

    插曲:

    xxxx.sql這種文件被稱為sql腳本文件,腳本文件中編寫了大量sql語句,我們執行腳本文件時,該文件中所有sql語句會全部執行。

    source 文件路徑

    唯一性約束(unique)

    支持列級約束和表級約束

    唯一性約束unique約束的字段不能重復,但是可以為NULL。

    create table t_vip(id int,name varchar(255) unique // 列級約束 );

    聯合唯一:

    Example: name 和 email 兩個字段聯合起來具有唯一性。

    creat table t_vip(id inr,name varchar(255),email varchar(255), // 注意逗號unique(name , email) // 表級約束 或者 constraint diy_constraint_name unique(name , email) );

    什么時候使用表級約束?

    需要給多個字段聯合起來添加某一個約束的時候,需要使用表級約束。

    聯合unique和not null:

    creat table t_vip(id int,name varchar(255) not null unique );

    注意:在MySQL中,如果一個字段同時被not null和unique約束的話,

    該字段自動變成主鍵字段(oracle中不同)。

    主鍵約束(primary key , PK)

    支持列級約束和表級約束

    相關術語

    主鍵約束:一種約束類型

    主鍵字段:該字段上添加了主鍵約束,這樣的字段叫做主鍵字段

    主鍵值:主鍵字段中每一個值叫做主鍵值

    主鍵概念及作用

    主鍵是每一行記錄的唯一標識,主鍵是每一行記錄的身份證號。

    注意:任何一張表都應該有主鍵,沒有主鍵,表無效。

    主鍵的特征:not null + unique(主鍵值不能是NULL,同時也不能重復!)

    添加主鍵約束

    • 列級約束
    create table t_vip(id int primary key,name varchar(255) );
    • 表級約束
    create table t_vip(id int,name varchar(255),primary key(id) );

    主鍵自動維護機制(auto_increment)

    create table t_vip(id int primary key auto_increment,name varchar(255) );insert into t_vip(name) values('zhangsan'); insert into t_vip(name) values('zhangsan'); insert into t_vip(name) values('zhangsan'); insert into t_vip(name) values('zhangsan'); insert into t_vip(name) values('zhangsan'); // 自動添加主鍵值id

    建議

    • 注意:在實際開發中不建議使用符合主鍵,建議使用單一主鍵。并且一張表中,主鍵只能有一個!!!

    • 主鍵建議使用:int , bigint , char等類型,不建議使用varchar 來做主鍵,主鍵值一般都是數字,一般都是定長的。

    • 在實際開發中一般使用自然主鍵,業務主鍵不建議使用。

    外鍵約束(foreign key , FK)

    Example: “ 請設計數據庫表,來描述“班級和學生”的信息。

    設計方案:設計兩張表,班級一張表,學生一張表,班級為父表,學生為子表,為學生表添加外鍵約束。

    注意:

    • t_class是父表
    • t_student是子表
    • 刪除表的順序:先子后父
    • 創建表的數據:先父后子
    • 刪除數據的順序:先子后父
    • 插入數據的順序:先父后子
    drop table if exists t_student; drop table if exists t_class;create table t_class(classno int primary key,classname varchar(255) ); create table t_student(no int primary key auto_increment,name varchar(255),cno int, // 添加外鍵約束,注意逗號,類型與引用的父表的字段相同foreign key(cno) references t_class(classno)// 也可以寫成:constraint diy_foreign_key_name foreign key(cno) references t_class(classno) );insert into t_class(classno , classname) values(100 , '班級A'); insert into t_class(classno , classname) values(101 , '班級B');insert into t_student(name , cno) values('zhangsan' , 100); // 由于使用了主鍵自動維護機制,不用手動填寫no insert into t_student(name , cno) values('lisi' , 101); // 由于使用外鍵約束,除了100和101外的班級編號都會報錯

    注意:

    • 子表中的外鍵引用的父表中的某個字段,被引用的這個字段必須是主鍵嗎?

      答:不一定是主鍵,但至少具有unique約束。

    • 外鍵可以為NULL嗎?

      答:外鍵值可以為NULL。

    主外鍵關聯刪除

    主外鍵關聯,當刪除的是父表數據,參照這些要刪除的數據,Oracle有三種處理方式:

  • 禁止刪除,也是Oracle默認方法。

  • 將參照要刪除數據的子表對應數據置空:ON DELETE SET NULL

  • 將參照要刪除數據的子表對應數據刪除:ON UPDATE CASCADE

  • 相應語句添加在外鍵約束后即可。

    存儲引擎(了解)

    概念

    存儲引擎是MySQL中特有的一個術語,

    實際上存儲引擎是一個表存儲/組織數據的方式,

    不同的數據引擎,表存儲數據的方式不同。

    給表添加/指定存儲引擎

    create table t_product(id int primary key,name varchar(255) ) engine = InnoDB default charset = utf8;
    • 查看MySQL支持的存儲引擎

      show engines \G

      MySQL支持九大存儲引擎,版本不同支持情況不同。

    • 顯示表的存儲引擎等信息:

      show create table 表名;

    • 添加/指定存儲引擎

      在建表的時候可以在最后小括號)的右邊使用:

      ENGINE來指定存儲引擎,

      CHARSET來指定這張表的字符編碼方式。

      MySQL的默認存儲引擎是:InnoDB,

      MySQL的默認字符編碼方式是:utf8。

    常用的存儲引擎

    MyISAM存儲引擎

    • 它管理的表具有以下特征:

      使用三個文件表示每個表

      • 格式文件- 存儲表結構的定義(mytable.frm)
      • 數據文件- 存儲表行的內容(mytable.MYD)
      • 索引文件- 存儲表上的索引(mytable.MYI)

      注意:對于一張表來說,只要是主鍵或者加有unique 約束的字段上會自動創建索引。

    • MyISAM的特點:

      可被轉換為壓縮,只讀表來節省空間。但是不支持事務機制,安全性低。

    InnoDB存儲引擎

    • 這是MySQL默認的存儲引擎,同時也是一個重量級的存儲引擎。

    • InnoDB支持事務,支持數據庫崩潰后自動恢復機制。

    • InnoDB的特點:

      支持事務,非常安全,但是效率不是很高,并且也不能壓縮,不能轉換為只讀,不能很好的節省存儲空間。

    • 它管理的表具有下列主要特征:

      • 每個 InnoDB 表在數據庫目錄中以.frm 格式文件表示
      • InnoDB 表空間 tablespace 被用于存儲表的內容(表空間是一個邏輯名稱。表空間存儲數據+索引)
      • 提供一組用來記錄事務性活動的日志文件
      • 用 COMMIT(提交)、SAVEPOINT 及ROLLBACK(回滾)支持事務處理
      • 提供全 ACID 兼容
      • 在 MySQL 服務器崩潰后提供自動恢復
      • 多版本(MVCC)和行級鎖定
      • 支持外鍵及引用的完整性,包括級聯刪除和更新

    MEMORY存儲引擎

    • 使用 MEMORY 存儲引擎的表,其數據存儲在內存中,且行的長度固定,這兩個特點使得 MEMORY 存儲引擎非常快。
    • MEMORY 存儲引擎管理的表具有下列特征:
      • 在數據庫目錄內,每個表均以.frm 格式的文件表示。
      • 表數據及索引被存儲在內存中。
      • 表級鎖機制。
      • 不能包含 TEXT 或 BLOB 字段。
    • MEMORY 存儲引擎以前被稱為HEAP 引擎。
    • MEMORY引擎優點:查詢效率是最高的。不需要和硬盤交互。
    • MEMORY引擎缺點:不安全,關機之后數據消失。因為數據和索引都是在內存當中。

    事務(transaction)

    概述

    什么是事務?

    一個事務就是一個完整的業務邏輯,是一個最小的工作單元,不可再分。

    本質:批量的DML語句同時成功或者同時失敗。

    Example: 假設轉賬,從A賬戶向B賬戶中轉賬10000.

    將A賬戶的錢減去10000(update語句),

    將B賬戶的錢加上10000(update語句),

    這就是一個完整的業務邏輯。

    以上的操作是一個最小的工作單元,要么同時成功,要么同時失敗,不可再分。

    這兩個update語句要求必須同時成功或者同時失敗,這樣才能保證錢是正確的。

    DML與事務

  • 只有DML語句才有事務這一概念。

    • insert
    • delete
    • update

    只有以上三個語句是對數據庫表中數據進行增刪改的,

    只要你的操作一旦涉及到數據的增,刪,改,那么就一定要考慮安全問題。

    數據安全在第一位!

  • 事務是如何做到多條DML語句同時成功和同時失敗的?

    InnoDB存儲引擎:提供一組用來記錄事務性活動的日志文件

    Example:

    事務開啟了: insert insert insert delete update update upadte 事務結束了。

    在事務的執行過程中,每一條DML的操作都會記錄到“事務性活動的日志文件”中。

    在事務的執行過程中,我們可以提交事務,也可以回滾事務。

    • 提交事務:

      清空事務性活動的日志文件,將數據全部徹底持久化到數據庫表中。

      提交事務標志著,事務的結束。并且是一種全部成功的結束。

    • 回滾事務:

      將之前所有的DML操作全部撤銷,并且清空事務性活動的日志文件。

      回滾事務標志著,事務的結束。并且是一種全部失敗的結束。

  • 提交事務與回滾事務

    提交事務:commit語句

    回滾事務:rollback語句**(回滾永遠都是只能回滾到上一次的提交點!)**

    • 在MySQL當中默認的事務行為是怎樣的?

      MySQL默認情況下是支持自動提交事務的(自動提交)。

    • 什么是自動提交?

      每執行一條DML語句,則提交一次!

      注:這種自動提交實際上是不符合我們的開發習慣,因為一個業務
      通常是需要多條DML語句共同執行才能完成的,為了保證數據
      的安全,必須要求同時成功之后再提交,所以不能執行一條
      就提交一條。

    • 如何關閉MySQL自動提交機制?

      先執行命令start transaction;

    Example: 事務演示(回滾事務)


    start transaction;insert into t_test values(1 , 'Jack' , 'm'); insert into t_test values(2 , 'Blue' , 'm'); insert into t_test values(3 , 'Anmory' , 'f');select * from t_test;rollback;select * from t_test;

    Example: 事務演示(提交事務)

    start transaction;insert into t_test values(1 , 'Jack' , 'm'); insert into t_test values(2 , 'Blue' , 'm'); insert into t_test values(3 , 'Anmory' , 'f');commit;select * from t_test;rollback;select * from t_test;

    事務的四個特性

    • Atomicity(原子性)

      說明事務是最小的工作單元,不可再分。

    • Consistency(一致性)

      所有事務要求,在同一個事務當中,所有操作必須同時成功,或者同時失敗,以保證數據的一致性。

    • Isolation(隔離性)

      A事務和B事務之間具有一定的隔離。

    • Durability(持久性)

      事務最終結束的一個保障。事務提交,就相當于將沒有保存到硬盤上的數據保存到硬盤上。

    事務隔離級別

    • 讀未提交:read uncommitted(最低隔離級別)沒有提交就讀到了

      事務A可以讀取到事務B未提交的數據。

      這種隔離級別存在的問題:臟讀現象(Dirty Read)

      這種隔離級別一般都是理論上的,大多數數據庫都是從讀已提交開始。

    • 讀已提交:read committed 提交之后才能讀到

      事務A只能讀取到事務B提交之后的數據。

      這種隔離級別解決了臟讀現象,但是存在不可重復讀取數據的問題。

      注:什么是不可重復讀取數據?

      ? 在事務開啟之后,第一次讀到的數據是3條,當前事務還沒有結束,

      ? 可能第二次再讀取的時候,讀到的數據是4條,

      ? 3不等于4稱為不可重復讀取。

      這種隔離級別是比較真實的數據,每一次讀到的數據是絕對的真實。

      oracle數據庫默認的隔離級別是:read committed

    • 可重復讀:repeatable read 提交之后也讀不到,永遠讀取的都是剛開啟事務時的數據

      事務A開啟之后,不管是多久,每一次在事務A中讀取到的數據都是一致的。

      即使事務B將數據已經修改,并且提交了,事務A讀取到的數據還是沒有發生改變,這就是可重復讀。

      可重復讀可能存在會出現幻影讀的現象,每一次讀取到的數據都是幻想,不夠真實。

      Example:

      早晨9點開始開啟了事務,只要事務不結束,到晚上9點,讀到的數據還是那樣!讀到的是假象。不夠絕對的真實。

      repeatable read為MySQL默認隔離級別

    • 序列化/串行化:serializable(最高隔離級別)

      這是最高隔離級別,效率最低。解決了所有的問題。

      這種隔離級別表示事務排隊,不能并發!

      synchronized,線程同步(事務同步)

      每一次讀取到的數據都是最真實的,并且效率是最低的。

    查看和設置隔離級別

    • 查看隔離級別

      SELECT @@tx_isolation;

    • 設置全局事務隔離級別

      set global transaction isolation level 隔離級別名稱;

    索引(index)

    什么是索引?

    索引是在數據庫表的字段上添加的,是為了提高查詢效率存在的一種機制。

    一張表的一個字段可以添加一個索引,當然,多個字段聯合起來也可以添加索引。

    索引相當于一本書的目錄,是為了縮小掃描范圍而存在的一種機制。

    MySQL在查詢方面的主要兩種方式:

    • 全表掃描
    • 根據索引檢索

    **MySQL中的索引主要依賴B+ 樹實現。**遵循左小右大原則存放,采用中序遍歷遍歷取數據。

    索引的實現原理

    注意:

    • 在任何數據庫當中主鍵上都會自動添加索引對象,另外在MySQL中,一個字段上如果有unique約束的話,也會自動創建索引對象。

    • 在任何數據庫當中,任何一張表的任何一條記錄在硬盤存儲上都有一個硬盤的物理存儲編號。

    • 在mysql當中,索引是一個單獨的對象,不同的存儲引擎以不同的形式存在,

      在MyISAM存儲引擎中,索引存儲在一個.MYI文件中

      在InnoDB存儲引擎中,索引存儲在一個邏輯名稱叫做tablespace的當中。

      在MEMORY存儲引擎當中,索引被存儲在內存當中。

      不管索引存儲在哪里,索引在mysql當中都是一個樹的形式存在(B+ 樹)。

    添加索引的條件

    • 條件1:數據量龐大(到底有多么龐大算龐大,這個需要測試,因為每一個硬件環境不同)
    • 條件2:該字段經常出現在where的后面,以條件的形式存在,也就是說這個字段總是被掃描
    • 條件3:該字段很少的DML(insert delete update)操作(因為DML之后,索引需要重新排序)

    建議不要隨意添加索引,因為索引也是需要維護的,太多的話反而會降低系統的性能。

    建議通過主鍵查詢,建議通過unique約束的字段進行查詢,效率是比較高的。

    索引的創建和刪除

    • 創建索引

      create index 索引名 on 表名(字段名);

      Example: 給emp表的ename字段添加索引,起名:emp_ename_index

      create index emp_ename_index on emp(ename);

    • 刪除索引

      drop index 索引名 on 表名;

      Example:

      drop index emp_ename_index on emp;

    查看一個SQL語句是否使用了索引進行檢索

    explain select * from emp where ename = 'king';

    索引失效

    • 第一種情況

      select * from emp where ename = '%T';

      ename 上即使添加了索引,也不會走索引,因為在模糊匹配當中以%開頭了,

      盡量避免模糊查詢時以%開始,這是一種優化策略/手段。

    • 第二種情況

      使用or的時候會失效,如果使用or那么要求or兩邊的條件字段都要有索引,才會走索引,

      如果其中一邊有一個字段沒有索引,那么另一個字段上的索引也會失效。所以這就是為什么不建議使用or的原因。

      建議使用union,union不會使索引失效

    • 第三種情況

      使用復合索引的時候,沒有使用左側的列查找,索引失效。

      • 什么是復合索引?

        兩個或者更多字段聯合起來添加一個索引,叫做復合索引。

        create index emp_job_sal_index on emp(job , sal);

      Example:

      explain select sal from emp where sal = 800; // 索引失效

    • 第四種情況

      在where中索引列參加了運算,索引失效。

      create index emp_sal_index on emp(sal);explain select * from emp where sal + 1 = 800; // 索引失效
    • 失效的第五種情況

      在where當中,索引列使用了函數

      explain select * from emp where lower(name) = 'smith'; // 索引失效

    索引的分類

    索引是各種數據庫進行優化的重要手段。

    優化的時候優先考慮的因素就是索引,

    索引的分類:

    • 單一索引:一個字段上添加索引
    • 復合索引:兩個字段或者更多字段上添加索引
    • 主鍵索引:主鍵上添加索引
    • 唯一性索引:具有unique約束的字段上添加索引

    注意:唯一性比較弱的字段上添加索引用處不大,越唯一效率越高。

    視圖(view)

    什么是視圖?

    view:站在不同角度去看待同一份數據。

    視圖的創建和刪除

    • 創建視圖對象

      create view dept2_view as select * from dept2; // dept2_view 為自定義視圖名,dept2為表名

    • 刪除視圖對象

      drop view dept2_view;

    注意:只有DQL語句才能以view的形式創建

    視圖的作用

    方便,簡化開發,利于維護

    我們可以面向視圖對象進行增刪改查,對視圖對象的增刪改查,會導致原表被操作。

    視圖的特點:通過對視圖的操作,會影響到原表數據。

    • 面向視圖查詢

      select * from dept2_view;

    • 面向視圖插入

      insert into dept2_view(deptno , dname , loc) values(60 , 'sales' , 'xian');

    • 面向視圖刪除

      delete from dept2_view;

    Example:

    // 創建視圖對象 create view emp_dept_view asselect e.ename , e.sal , d.dnamefromemp ejoindept done.deptno = d.deptno;// 面向視圖更新 update emp_dept_view set sal = 1000 where dname = 'accounting';// 原表數據被更新 select * from emp;

    假設有一條非常復雜的SQL語句,而這條SQL語句需要在不同的位置上反復使用。

    每一次使用這個sql語句的時候都需要重新編寫,很長,很麻煩,怎么辦?

    可以把這條復雜的SQL語句以視圖對象的形式新建。

    在需要編寫這條SQL語句的位置直接使用視圖對象,可以大大簡化開發。

    并且利于后期的維護,因為修改的時候也只需要修改一個位置就行,只需要修改視圖對象所映射的SQL語句。

    我們以后面向視圖開發的時候,使用視圖的時候可以像使用table一樣。

    可以對視圖進行增刪改查等操作。視圖不是在內存當中,視圖對象也是存儲在硬盤上的,不會消失。

    視圖對應的語句只能是DQL語句。但是視圖對象創建完成之后,可以對視圖進行增刪改查等操作。

    增刪改查,又叫做:CRUD

    • C:Create(增)
    • R:Retrive(查:檢索)
    • U:Update(改)
    • D:Delete(刪)

    DBA命令

    重點掌握:數據的導出和導入(數據的備份)

    數據導出

    • 導出數據庫

      注意:在windows的dos命令行窗口執行

      mysqldump test>D:\test.sql -uroot -p123456 // test為數據庫名稱,后面為文件導出路徑,最后為密碼

    • 導出指定的表

      mysqldump test emp>D:\emp.sql -uroot -p123456

    數據導入

    source D:\test.sql // 文件路徑

    數據庫設計三范式

    概述

    • 第一范式:要求任何一個表必須有主鍵,每一個字段原子性不可再分。
    • 第二范式:建立在第一范式的基礎之上,要求所有非主鍵字段完全依賴主鍵,不要產生部分依賴。
    • 第三范式:建立在第二范式基礎之上,要求所有非主鍵字段直接依賴主鍵,不要產生依賴傳遞。

    使用范式設計數據庫表,可以避免表中數據冗余,空間的浪費。

    第一范式

    最核心,最重要的范式,所有表的設計都需要滿足。

    必須有主鍵,并且每一個字段都是原子性不可再分。

    背口訣:

    一對一,外鍵唯一!!!

    第二范式

    建立在第一范式的基礎之上,要求所有非主鍵字段完全依賴主鍵,不要產生部分依賴。

    背口訣:

    多對多,三張表,關系表兩個外鍵!!!

    第三范式

    建立在第二范式基礎之上,要求所有非主鍵字段直接依賴主鍵,不要產生依賴傳遞。

    背口訣:

    一對多,兩張表,多的表加外鍵!!!

    補充說明

    數據庫設計三范式是理論上的。

    實踐和理論有的時候有偏差。

    最終的目的都是為了滿足客戶的需求,有的時候會拿冗余換執行速度。

    因為在SQL當中,表和表之間連接次數越多,效率越低(笛卡爾積)。

    有的時候可能會存在冗余,但是為了減少表的連接次數,這樣做也是合理的,并且對于開發人員來說,SQL語句的編寫難度也會降低。


    Author: Lorain.
    Completion time: 2021/9/9

    總結

    以上是生活随笔為你收集整理的MySQL基础(学习笔记)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    日韩精品免费一区二区在线观看 | 2024国产精品视频 | 99精品在线免费 | www.狠狠操.com | 国产精品高潮久久av | 丁香婷五月 | 日韩激情视频 | 99精品在线视频观看 | 天天综合网久久 | 婷婷国产在线 | 精品国产一区二区三区久久影院 | 欧美性爽爽 | 中日韩在线视频 | 在线不卡中文字幕播放 | 在线免费观看不卡av | 色999在线 | 国产操在线 | 人人澡超碰碰 | 久久久久久久久艹 | 天天se天天cao天天干 | 综合天天色 | 天天综合天天做天天综合 | 国产只有精品 | 亚洲一区二区高潮无套美女 | 国产视频1区2区3区 久久夜视频 | 99这里只有久久精品视频 | 91免费看片黄 | 国产精品一区二区久久精品爱涩 | 精品欧美小视频在线观看 | 在线黄色av | 久久免费视频在线观看 | 亚洲精品国产免费 | 欧美天堂久久 | 香蕉网站在线观看 | 91观看视频 | 一区二区三区三区在线 | 欧美激情另类文学 | 欧美精品一二三 | 国产精品一区二区av麻豆 | 久草在线视频免赞 | 中文 一区二区 | 欧美激情综合五月色丁香 | 在线观看国产福利片 | 亚洲精品在线观看的 | 九七人人干 | 四虎在线观看 | 久久在线播放 | 狠狠操电影网 | 人人插人人草 | 黄色毛片在线观看 | 久久免费看av | 国产区精品在线观看 | 欧美性超爽 | 色 免费观看 | 91网址在线观看 | 国产999精品久久久影片官网 | 国产精品久久综合 | 精品视频专区 | 少妇高潮流白浆在线观看 | 国产精品福利午夜在线观看 | 狠狠色丁香婷婷综合基地 | 91理论电影 | 久久黄色小说 | 国产精品免费麻豆入口 | 亚洲少妇激情 | 国产成人精品一区二区 | 精品一二三区 | 亚洲丝袜中文 | 又色又爽又激情的59视频 | 91视频在线网址 | 黄网站色 | 在线观看黄色免费视频 | 国产成人精品一区二 | 午夜精品一区二区三区在线观看 | 91成人精品国产刺激国语对白 | 色资源二区在线视频 | 91大神一区二区三区 | 国产免费区| 韩国精品在线观看 | 91亚洲在线观看 | 久久综合九色综合欧美就去吻 | 日韩精品久久久久 | 久久不卡日韩美女 | jizz999| 91热爆视频| 欧美性做爰猛烈叫床潮 | 国产精品1024 | 91精品欧美一区二区三区 | 91国内在线视频 | 午夜精品福利一区二区三区蜜桃 | 国产精品2020 | 草久在线视频 | 中文字幕在线播放av | 一区二区三区四区在线 | 国产精品欧美在线 | 久草在线手机视频 | 激情黄色一级片 | 91免费视频网站在线观看 | 亚洲精品三级 | 久久久久久久久久亚洲精品 | 91香蕉视频污在线 | 久久与婷婷| 黄色日本片 | 亚洲成人免费在线 | 九九视频热 | 奇米网8888 | 九色最新网址 | 久久综合九九 | 天堂av在线7 | 久青草影院 | 色视频网站在线 | 国产精品久久久久久久久久不蜜月 | 午夜精品电影 | 精品国产乱子伦一区二区 | 欧美日韩首页 | a级免费观看 | 天堂成人在线 | 国产一区二区网址 | 国产成人高清av | av在线播放快速免费阴 | 欧美aa一级 | 久草视频精品 | 欧美一级xxxx | 999亚洲国产996395| 激情视频网页 | 91视频91色| 超碰在线人人97 | 成年人黄色大片在线 | 免费h在线观看 | 亚洲男男gaygay无套 | 成人黄色片在线播放 | 亚洲精品玖玖玖av在线看 | 国产xxxx做受性欧美88 | 91精品看片 | 色橹橹欧美在线观看视频高清 | 亚洲国产中文字幕在线视频综合 | 最近最新最好看中文视频 | 午夜久久久影院 | 久久综合狠狠综合久久综合88 | 国产色网站 | 亚洲精品欧美成人 | 精品超碰 | 国产视频欧美视频 | 在线播放一区二区三区 | 91资源在线免费观看 | 手机成人在线 | www欧美xxxx| 毛片一级免费一级 | av福利在线播放 | 免费观看91| 中文字幕日韩有码 | 国产黄色片在线 | 日韩在线观看一区二区三区 | 国产精品高 | 亚洲天天在线日亚洲洲精 | 91麻豆精品国产91久久久久 | 久久人人爽人人爽人人片av免费 | 久久久精品国产免费观看同学 | 亚洲精品99久久久久久 | 国产欧美高清 | 国产成人精品999在线观看 | 在线免费观看羞羞视频 | 免费黄色激情视频 | 18女毛片 | 激情视频久久 | 日韩免费视频在线观看 | 日本中文字幕系列 | 五月婷婷毛片 | 久草在线视频在线 | 不卡电影一区二区三区 | 三级黄色免费片 | 久久成人国产精品 | 日韩av资源在线观看 | 久久躁日日躁aaaaxxxx | 在线视频 影院 | 狠狠操狠狠干天天操 | 国产精品扒开做爽爽的视频 | 日日夜夜精品视频天天综合网 | 夜添久久精品亚洲国产精品 | 久久一本综合 | 亚洲精品成人av在线 | 亚洲理论片在线观看 | av天天澡天天爽天天av | 成人精品福利 | 亚洲影院国产 | 成人综合免费 | 亚洲国产理论片 | 久久不射影院 | 丝袜美腿在线视频 | 久久视频免费在线观看 | 欧美精品亚洲精品日韩精品 | 在线观看中文字幕一区二区 | 国产精品久久99精品毛片三a | 又紧又大又爽精品一区二区 | 开心丁香婷婷深爱五月 | 久久99免费观看 | 成人91在线观看 | 日韩国产精品毛片 | 色婷婷av国产精品 | 不卡的av电影| 久久久久人人 | 中文字幕一区在线观看视频 | 亚洲精品国产视频 | 亚洲国产精品视频 | 中文字幕在线第一页 | 日本乱码在线 | 青青视频一区 | 亚洲天堂网视频在线观看 | 人人玩人人弄 | 亚洲精品天天 | 香蕉视频在线免费 | 午夜影院在线观看18 | 成人免费视频在线观看 | 黄色大片国产 | 免费美女久久99 | 91九色视频在线 | 国产精品99久久久久久大便 | 夜夜干天天操 | 一区二区电影网 | 亚洲黄色免费网站 | 在线免费视频你懂的 | 欧美日韩亚洲在线观看 | 国产成人亚洲精品自产在线 | 国产黄色美女 | 午夜久久福利影院 | 国产在线欧美在线 | 九九九九热精品免费视频点播观看 | 欧美日本在线视频 | 天天·日日日干 | 91成人精品一区在线播放69 | 亚洲精品www | 激情综合网五月激情 | 久久er99热精品一区二区三区 | 久久99国产精品免费网站 | www.亚洲黄色 | 国产成人99久久亚洲综合精品 | 美女性爽视频国产免费app | 亚洲va欧美va人人爽春色影视 | 日韩理论电影网 | 国产在线视频在线观看 | 色综合天天视频在线观看 | 91片黄在线观 | 久久精品99国产精品酒店日本 | jizz欧美性9 国产一区高清在线观看 | 久久精品久久久久久久 | 亚洲女同ⅹxx女同tv | 欧美精品乱码久久久久久 | 美女视频黄频大全免费 | 欧美一级片在线免费观看 | 激情黄色av | 青青河边草免费视频 | 黄色免费av | 91精品婷婷国产综合久久蝌蚪 | 黄色亚洲大片免费在线观看 | 香蕉在线观看视频 | 欧美亚洲国产一卡 | 日韩专区中文字幕 | 九九九九热精品免费视频点播观看 | 国产精品不卡在线观看 | 午夜电影一区 | 色婷婷精品 | 免费三级黄 | 人人澡人人爱 | 精品亚洲网 | 日韩成人免费在线 | 欧美伦理一区二区 | 美女视频黄频大全免费 | 天天综合五月天 | 美女视频黄是免费的 | 中文字幕之中文字幕 | 国产精品一区二区中文字幕 | 天天干天天做天天爱 | 久久国产精品99久久久久久丝袜 | 久久久精品综合 | 国产精品自产拍在线观看中文 | 91女子私密保健养生少妇 | 日韩av电影中文字幕在线观看 | 国产精品亚洲人在线观看 | 久久手机精品视频 | 天天爽综合网 | 中文字幕在线播放一区 | 日韩欧美一区二区在线播放 | 一级黄色电影网站 | 日日天天av | 久综合网 | 国产日韩在线播放 | 国产精品 日本 | 97视频精品| 青青久视频| 成人免费看黄 | 808电影| 国产一级特黄电影 | 久久成人综合 | 97香蕉超级碰碰久久免费软件 | 国产精品12 | 久久视频免费 | 中文字幕 国产视频 | 欧美日韩中文字幕在线视频 | 五月婷社区 | 九九九电影免费看 | 精品99久久久久久 | 国产一级视频在线观看 | 五月天久久久久久 | 激情综合网五月婷婷 | 亚洲男男gaygay无套同网址 | 狠狠五月天 | 免费看色视频 | 在线va视频 | 久久试看 | 99久久国产免费,99久久国产免费大片 | 永久免费的av电影 | 国产手机视频在线 | 中文超碰字幕 | 亚洲aⅴ乱码精品成人区 | 精品国产乱子伦一区二区 | 免费视频三区 | 最新日韩精品 | 成人免费网站视频 | 日韩欧美一区二区三区黑寡妇 | 久久夜色精品国产欧美一区麻豆 | 欧美成人精品欧美一级乱黄 | 亚洲最新av在线网址 | 欧美二区三区91 | 色之综合网 | 婷婷六月网 | 中文免费 | 在线观看av麻豆 | 色婷婷色 | 日本精品在线视频 | 欧美a视频| 亚洲国产av精品毛片鲁大师 | 99免费在线视频观看 | 小草av在线播放 | 99色婷婷 | 色爽网站 | 久久久精品国产免费观看一区二区 | 9999精品视频| 男女啪啪免费网站 | 天天射天天干天天插 | 69热国产视频 | 91麻豆精品国产91久久久久久久久 | 国产在线999 | 久久99久久精品 | 高清国产午夜精品久久久久久 | 最新国产视频 | 成人一区二区三区中文字幕 | 六月丁香色婷婷 | 91精品在线免费观看视频 | 中文国产字幕在线观看 | 国产美女黄网站免费 | 久久久这里有精品 | 久久综合导航 | 日韩免费观看一区二区三区 | 日韩中文字幕一区 | 香蕉影院在线 | 激情xxxx| 国产精品久久久久久久午夜片 | 成人全视频免费观看在线看 | 激情久久网 | 亚洲视频一区二区三区在线观看 | 人人超碰人人 | 国产精品国产三级国产aⅴ9色 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 在线观看国产一区二区 | 日韩激情第一页 | 国外成人在线视频网站 | 毛片视频网址 | a视频在线播放 | 日本夜夜草视频网站 | 五月婷网站 | 亚洲天堂精品 | 欧美另类交人妖 | 成人三级网站在线观看 | 五月综合色 | 日韩免费看片 | 国产视频在线看 | 中文字幕成人在线 | 国产在线观看网站 | 亚洲无在线 | 欧美aa一级片 | 精品999在线观看 | 国产精品一区二区三区在线播放 | 亚洲视频久久久 | 精品一区二区av | www.国产在线视频 | 国产人成一区二区三区影院 | 欧美激情va永久在线播放 | japanesexxx乱女另类 | 四虎永久免费在线观看 | 在线免费观看欧美日韩 | 国产成人久久精品亚洲 | 久久女同性恋中文字幕 | 黄色av免费电影 | 青草视频在线免费 | 91在线视频 | 91九色在线视频 | 国产精品h在线观看 | 亚洲动漫在线观看 | 伊人天天干 | 在线免费黄色av | 成人电影毛片 | 五月婷婷欧美视频 | 91xav| 国产精品白浆视频 | 天天天色综合 | 午夜精品久久久久久久99水蜜桃 | 天天玩夜夜操 | 91av网址 | 99热在线免费观看 | 精品一区二区在线免费观看 | 99国产精品免费网站 | 在线精品视频免费播放 | 菠萝菠萝蜜在线播放 | 国产剧情一区二区 | 久久精品2 | www.天天成人国产电影 | 久久国产网站 | 亚洲欧美日韩不卡 | 国产视频一区在线免费观看 | 国产精品欧美一区二区三区不卡 | 久久在线看 | 在线免费黄色av | www.久久久.com | 探花视频在线观看 | 亚洲精品一区二区在线观看 | 国产一级三级 | 深夜国产在线 | 超碰人在线 | 91麻豆免费看 | 米奇狠狠狠888 | 日本韩国精品一区二区在线观看 | 国产在线一区二区三区播放 | 在线视频第一页 | 国产精品一区二区久久精品爱涩 | 成人h电影 | 色在线中文字幕 | 一区二区三区日韩在线观看 | 日韩欧美91| 久久国产精品免费看 | 久久国产精品久久久久 | 香蕉视频国产在线观看 | 在线观看av麻豆 | av久久久 | 黄色免费在线看 | 2019中文最近的2019中文在线 | 国产精品久久久久久久久搜平片 | 国产精品剧情 | 久操视频在线免费看 | 国产亚洲在线视频 | 有没有在线观看av | 国产美女在线精品免费观看 | 欧美精品国产精品 | 中文在线字幕观看电影 | 一区二区三区动漫 | 国产高清免费视频 | 久久免视频 | 亚洲精品美女在线观看播放 | 伊人婷婷色 | 久久久久亚洲国产 | 精品亚洲成人 | 亚洲午夜久久久久久久久久久 | 日日夜夜天天久久 | 午夜国产福利视频 | 亚州人成在线播放 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 日韩精品观看 | 天天爱av导航 | 欧美一区二区三区在线 | 中文字幕av专区 | 四虎影视成人精品国库在线观看 | 久久久久婷| 91精品国产成人www | 五月丁香 | 亚洲久草在线视频 | 99这里有精品 | 国产精品久久久久久欧美 | 免费久久99精品国产 | 亚洲女在线 | 亚洲精品在线观看av | 波多野结衣在线中文字幕 | 国产精品国产三级在线专区 | 96国产精品视频 | 一级一片免费看 | 黄色免费观看网址 | 亚洲精品久久久蜜桃 | 天天干天天干天天操 | 国产精品久久久久久久久久东京 | 成人性生交大片免费观看网站 | 国产成人专区 | 99精品视频99 | 久久在视频 | 新av在线| 日韩一区二区三区免费视频 | 久久怡红院 | 激情综合久久 | 欧美视频国产视频 | 日韩理论| 国产视频精品免费播放 | 69av网| 婷婷激情五月 | 日本性xxxxx 亚洲精品午夜久久久 | 久久天堂影院 | 激情五月在线观看 | 国产精品系列在线观看 | 97免费视频在线 | 五月婷婷六月丁香 | 涩五月婷婷 | 99这里都是精品 | 精品视频久久 | 久操视频在线播放 | 天天色天天干天天色 | 欧美影片 | 亚洲精品97 | 国产成人三级在线 | av免费电影在线观看 | 狠狠操导航| 国产午夜精品视频 | 久久久久国产一区二区三区四区 | 日韩xxxbbb | 综合婷婷丁香 | 国产一级免费视频 | 国产网红在线观看 | 国产视频综合在线 | 99国产精品一区二区 | 美女视频久久 | 免费视频二区 | 日p视频在线观看 | 中国一级片在线观看 | 五月开心六月伊人色婷婷 | 韩国一区二区av | 久久五月精品 | 在线国产欧美 | 国产精品扒开做爽爽的视频 | 日韩欧美高清 | 国产精品女视频 | 九九热只有这里有精品 | 国产黄色片一级三级 | 国产一级视频在线免费观看 | 中文资源在线官网 | 91看片在线播放 | 亚洲日本一区二区在线 | 日韩欧美高清在线观看 | 日韩精品三区四区 | 久插视频 | 99久久精品国产免费看不卡 | 国产手机在线视频 | 人人舔人人爱 | 欧美黑人猛交 | 国产中文字幕三区 | 亚洲日本va在线观看 | 久久免费精品国产 | 色多多视频在线观看 | 免费观看一区二区三区视频 | 中文字幕色站 | 精品国精品自拍自在线 | 五月婷婷电影网 | 亚洲成av人片一区二区梦乃 | 国产精品原创av片国产免费 | 成人性生活大片 | 在线观看 亚洲 | 国产情侣一区 | 麻豆视频在线观看免费 | 久久人网 | 日本在线观看一区 | 黄色一级在线视频 | 成人h在线播放 | 日韩av图片| 丁香5月婷婷| 天天亚洲综合 | 伊人狠狠操 | 精品免费久久久久 | 日韩精品在线观看视频 | 最新婷婷色 | www黄色com | 久久欧美综合 | 五月天狠狠操 | 少妇av片| 日韩videos | 亚洲视屏一区 | 欧美精选一区二区三区 | 黄网站色| 色婷婷啪啪免费在线电影观看 | 久久国产女人 | 在线观看黄网站 | 天天操 夜夜操 | 69久久99精品久久久久婷婷 | 激情久久综合 | 国产又粗又猛又爽又黄的视频先 | 天天综合天天综合 | 国产精品区免费视频 | 日韩在线观看影院 | 日日夜夜天天 | 欧美二区三区91 | www.综合网.com| 国产视频网站在线观看 | 中文字幕 国产视频 | 丁香视频在线观看 | av免费成人| 国产亚洲精品久久久久久移动网络 | 国产精品99久久99久久久二8 | 午夜久久久久久久久久影院 | 97超碰.com | 欧美精品乱码久久久久久按摩 | 最近能播放的中文字幕 | 成人小视频在线观看免费 | 久久午夜电影 | 欧美尹人| 天天干天天操 | www最近高清中文国语在线观看 | 欧美国产日韩在线观看 | 久久男人中文字幕资源站 | 亚洲欧美日韩不卡 | 久久精品国产亚洲精品 | 综合国产视频 | 国产97碰免费视频 | 日韩在线高清视频 | 久久久久国产成人免费精品免费 | 久久艹在线观看 | 99国产精品一区 | 正在播放国产91 | 国产亚洲高清视频 | 国内精品久久久久久久影视简单 | www.91av在线 | 91视频国产高清 | 热久久影视| 免费看精品久久片 | 欧美在线aa| 欧美a级成人淫片免费看 | 日本福利视频在线 | 国产精品一区二区在线播放 | 国产精品福利在线观看 | www黄色| 五月激情天 | 激情五月五月婷婷 | 久久99精品国产麻豆宅宅 | 成人一级免费电影 | 久久综合久久久 | 日韩在线观看的 | 久草免费手机视频 | 亚洲精品一区二区久 | 免费看污网站 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 日本动漫做毛片一区二区 | 久久大片网站 | 久久av观看 | 九月婷婷综合网 | 天天爱天天操天天射 | 探花视频免费在线观看 | 91视频链接 | 国产精品1区2区3区在线观看 | 中文字幕免费 | 亚洲三级性片 | 亚洲人成免费 | 91理论片午午伦夜理片久久 | 91在线资源 | 97人人网 | 99欧美视频 | 91av在线视频播放 | 黄色aa久久| 麻豆一级视频 | 亚洲三级精品 | 久久精品直播 | 天天干,狠狠干 | 欧美天堂视频在线 | www.天天射 | 色婷婷在线观看视频 | 久久成人国产精品一区二区 | 欧美性免费 | 国产精品一级视频 | 亚洲午夜小视频 | 狠狠干夜夜操天天爽 | 91精品国产一区二区在线观看 | 久草在线视频中文 | www.狠狠操 | 手机av在线网站 | 深爱激情五月网 | a视频在线观看免费 | 婷婷综合在线 | 日韩精品无码一区二区三区 | 亚洲精品国 | 91成人精品在线 | 国产成人精品福利 | 一区二区欧美在线观看 | 中文亚洲欧美日韩 | 77国产精品| 国产精品1区2区3区在线观看 | 国产又黄又硬又爽 | 国产精品乱码久久久久久1区2区 | 久久蜜臀av | 日韩精品在线视频免费观看 | 天天天干| 国产成人l区 | 丝袜美腿亚洲综合 | 久久午夜精品影院一区 | 69久久久 | 日韩专区一区二区 | 日本性久久 | 欧美视频一区二 | 91精品国产综合久久婷婷香蕉 | 亚洲精品乱码久久久久久蜜桃动漫 | 国产成人一级 | 久久国产精品一区二区 | 天天插狠狠插 | 日韩一区二区免费视频 | 久久久久久免费毛片精品 | 久久av伊人 | 欧美一区二区三区在线视频观看 | 在线观看视频中文字幕 | 69国产盗摄一区二区三区五区 | 国产中文字幕在线视频 | 天天干,天天射,天天操,天天摸 | 性色大片在线观看 | 蜜桃av人人夜夜澡人人爽 | 欧美日韩国产精品一区二区亚洲 | 天天做日日做天天爽视频免费 | 91成人在线看 | 九九热视频在线 | av超碰在线 | 国产中出在线观看 | 国产丝袜 | 国产乱对白刺激视频不卡 | 欧美激情视频一区二区三区免费 | 国产精品亚洲片夜色在线 | 99精品网站 | 日本在线观看一区二区三区 | 蜜桃传媒一区二区 | 亚洲精品中文字幕视频 | 国产成人一区二区三区 | 一区二区欧美在线观看 | 欧洲精品亚洲精品 | 亚洲日本在线视频观看 | 婷婷六月色 | 精品视频免费在线 | 国产青草视频在线观看 | 色综合天天干 | 9ⅰ精品久久久久久久久中文字幕 | 91视频高清完整版 | 美女国产在线 | 免费看三级 | 伊人资源站 | 日韩精品久久久免费观看夜色 | 国产麻豆剧果冻传媒视频播放量 | 国产日韩视频在线观看 | 欧美-第1页-屁屁影院 | 国产xxxx | 精品久久久久免费极品大片 | 成年人黄色免费看 | 24小时日本在线www免费的 | 国产精品成人自拍 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 韩国三级在线一区 | 91成人区| 99精品观看 | 亚洲 精品在线视频 | www.精选视频.com | 久久久在线视频 | 丝袜美腿av | 天天操天天拍 | 91av免费看| 亚洲免费小视频 | 亚洲视频在线播放 | 99视频在线看 | 国产精品综合在线 | 精品久久久久久亚洲综合网 | 99视频在线免费播放 | 四虎在线视频免费观看 | 激情视频免费在线 | 日躁夜躁狠狠躁2001 | 亚洲国产午夜 | 国产一级二级三级视频 | 人人草天天草 | 国产999精品久久久久久绿帽 | 久久专区| 国产精品免费av | 亚洲精品视频免费观看 | 免费中文字幕在线观看 | 久久久免费播放 | 成人在线视 | 精品久久久久久久久久久久久久久久久久 | 综合色综合色 | 在线精品观看 | 免费观看的av网站 | 五月婷婷六月丁香激情 | 天天草综合网 | 亚洲国产精品va在线看黑人动漫 | 91高清免费在线观看 | 国产日韩欧美中文 | 91精品国产91久久久久福利 | 欧美a影视 | 成年人免费av | 国产精品h在线观看 | 久久久黄色免费网站 | 欧美热久久| 日本高清免费中文字幕 | 99久久这里有精品 | 少妇bbw搡bbbb搡bbb | 欧美久久成人 | 一区二区三区福利 | 精品免费久久久久久 | 福利区在线观看 | 精品国产一区二 | 绯色av一区 | 91精品免费在线 | 欧美色图30p| 中文字幕亚洲五码 | 亚洲综合视频在线播放 | 中文字幕在线观看的网站 | 天天躁日日躁狠狠躁av麻豆 | 婷婷五月情| 日韩精品一区二区三区电影 | 国产最新精品视频 | 国产无遮挡猛进猛出免费软件 | 91人人揉日日捏人人看 | av一区二区三区在线观看 | 国产黄色片免费看 | 亚洲黄色免费 | 五月天激情婷婷 | 精品久久国产 | 国产亚洲精品久久久久久久久久 | 婷婷精品国产欧美精品亚洲人人爽 | 久久人人干 | 国产黄色特级片 | 在线观看一区 | 在线看av网址 | 欧美xxxxx在线视频 | 久亚洲| 亚洲视频播放 | 麻豆免费观看视频 | 人人网人人爽 | 欧美日韩国产一区二区三区 | 伊人网综合在线观看 | 97影视| 亚洲欧美视频一区二区三区 | 久久精品国产久精国产 | 香蕉日日 | 6080yy午夜一二三区久久 | 麻豆久久| 婷婷久久国产 | 丁香婷婷亚洲 | 天天干,夜夜操 | 久久精品—区二区三区 | 亚洲一区二区视频在线 | 亚洲国产欧美在线看片xxoo | 欧美精品久久天天躁 | 日韩av电影网站在线观看 | 国产成人精品女人久久久 | 国产原厂视频在线观看 | 中文字幕日韩国产 | 成人app在线播放 | 手机在线永久免费观看av片 | 国产成人免费在线 | 中文字幕国产一区二区 | 1区2区3区在线观看 三级动图 | 美女黄频免费 | 黄色片视频免费 | 成全在线视频免费观看 | av天天在线观看 | 波多野结衣网址 | 亚洲成人免费观看 | 国产精品久久久久婷婷 | 丁香影院在线 | 久草在线手机视频 | 美女在线观看av | 久久精品精品电影网 | 久久精品香蕉视频 | 精品国产电影一区二区 | 亚洲九九 | 中文字幕大全 | av久久久 | 久久国产热视频 | 99精品黄色片免费大全 | 91av在线免费 | 国产成人精品综合久久久久99 | 午夜精品久久久久久久爽 | 色诱亚洲精品久久久久久 | 又色又爽又黄 | 国产精品va在线播放 | 黄色小说在线免费观看 | 免费观看一级 | 亚洲成人精品av | 日韩精品一区二区三区中文字幕 | 97看片| sesese图片 | 午夜国产福利在线观看 | 国产精品久久久久久婷婷天堂 | 丁香花在线观看视频在线 | 成人午夜免费剧场 | 涩五月婷婷 | 99视频在线精品免费观看2 | 黄色毛片大全 | 一区二区三区在线观看免费 | 久久的色 | 中文字幕一区二区三区久久 | www.亚洲| 日韩免费精品 | 亚洲.www | 99久久精品无免国产免费 | 毛片二区 | 天天爱天天射天天干天天 | 中文字幕区 | 91大神免费在线观看 | 国产视频一区在线播放 | 免费日韩视 | 婷婷综合伊人 | 成人黄色av免费在线观看 | 精品久久久久一区二区国产 | 性色xxxxhd| 久爱精品在线 | 国产一级视频免费看 | 精品特级毛片 | 午夜久久久久久久久久久 | 亚洲高清av在线 | 五月色丁香 | 国产亚洲成人精品 | 亚洲午夜av久久乱码 | 日韩高清精品免费观看 | 黄色片视频免费 | 国产精品欧美久久久久久 | 久草青青在线观看 | 人人草在线观看 | 国产福利一区二区在线 | 玖玖在线免费视频 | 国产成人av网址 | 久久精品美女视频 | 国产福利av | 国产成人精品一区二三区 | 最新日韩在线观看视频 | 久久国产精品影片 | 五月天婷婷视频 | 韩日成人av| 一级黄色av | 精品一区电影 | 在线观看的av | 高清免费在线视频 | 久久99精品久久久久久久久久久久 | 国产精品白丝av | 国产精品久久电影观看 | 中文字幕在线看人 | 亚洲国产日韩一区 | 亚洲高清视频在线观看 | 91尤物国产尤物福利在线播放 | 91视频免费 | 激情五月***国产精品 | 四虎成人av | 久久天天综合网 | 91av大全 | 婷婷亚洲综合五月天小说 | 日本在线中文在线 | 免费看的黄色 | 综合网伊人 | 亚洲午夜精品一区 | 狠狠躁日日躁狂躁夜夜躁 | 免费视频二区 | 丁香六月国产 | 日韩一区在线播放 | 五月婷婷激情综合 | 91桃色在线免费观看 | 国产一级黄色片免费看 | 欧美一级日韩免费不卡 | 国产高清在线精品 | 人人揉人人揉人人揉人人揉97 | 国产精品国内免费一区二区三区 | 高清av中文字幕 | av免费电影网站 | 99久久精品免费看国产一区二区三区 | 国产精品日韩高清 | 久久天天躁夜夜躁狠狠85麻豆 | 久久久国产精华液 | bbbb操bbbb| 97视频资源 | 欧美色婷婷| 97日日| 欧美日韩一区二区免费在线观看 | 在线不卡视频 | 黄色软件在线观看免费 | 夜夜操狠狠操 | 日韩另类在线 | 免费特级黄色片 | 91在线免费视频 | 奇米影视四色8888 | 精品视频不卡 | 久久99精品久久久久久三级 | 久久免费高清视频 | 99热最新地址 | 国产亚洲日 | 久久国产精品99久久人人澡 | 肉色欧美久久久久久久免费看 | 国产资源在线视频 | 欧洲亚洲精品 | 亚洲免费精彩视频 | 九九久久免费 | 日本在线观看中文字幕无线观看 | 国产精品免费一区二区 | 日韩精品久久久久久久电影竹菊 | 国产剧情在线一区 | 亚洲精品视频免费在线 | 亚洲国产免费看 | 精品免费久久久久 |