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

歡迎訪問 生活随笔!

生活随笔

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

数据库

MySQL(笔记)

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

數據庫總覽

有時候查的數據錯亂,可以重啟MySQL

關系型數據庫 ( SQL )

  • MySQL , Oracle , SQL Server , SQLite , DB2 , …
  • 關系型數據庫通過外鍵關聯來建立表與表之間的關系

非關系型數據庫 ( NOSQL )not only

  • Redis , MongoDB , …
  • 非關系型數據庫通常指數據以對象的形式存儲在數據庫中,而對象之間的關系通過每個對象自身的屬性來決定

DBMS

數據庫管理系統 ( DataBase Management System )

數據庫管理軟件 , 科學組織和存儲數據 , 高效地獲取和維護數據

MySQL應該算是一個數據庫管理系統.

特點 :

  • 免費 , 開源數據庫
  • 小巧 , 功能齊全
  • 使用便捷
  • 可運行于Windows或Linux操作系統
  • 可適用于中小型甚至大型網站應用

官網 : https://www.mysql.com/

安裝步驟

1、下載后得到zip壓縮包.

2、解壓到自己想要安裝到的目錄,本人解壓到的是D:\Environment\mysql-5.7.19

3、添加環境變量:我的電腦->屬性->高級->環境變量

選擇PATH,在其后面添加: 你的mysql 安裝文件下面的bin文件夾

4、編輯 my.ini 文件 ,注意替換路徑位置

[mysqld] basedir=D:\Program Files\mysql-5.7\ datadir=D:\Program Files\mysql-5.7\data\ port=3306 skip-grant-tables

5、啟動管理員模式下的CMD,并將路徑切換至mysql下的bin目錄(cd /d D:\Environment\mysql-5.7.19\bin),然后輸入mysqld –install (安裝mysql)

6、再輸入 mysqld --initialize-insecure --user=mysql 初始化數據文件

7、然后再次啟動mysql 然后用命令 mysql –u root –p 進入mysql管理界面(密碼可為空)p后面不加空格

8、進入界面后更改root密碼(sql語句后面有空格)

update mysql.user set authentication_string=password('123456') where user='root'and Host = 'localhost';

9、刷新權限

flush privileges;

10、修改 my.ini文件刪除最后一句skip-grant-tables

11、重啟mysql即可正常使用

net stop mysql net start mysql

12、連接上測試出現以下結果就安裝好了

如果您以前裝過,現在需要重裝,一定要將環境清理干凈 .

這里給大家推薦一個工具 : SQLyog .

即便有了可視化工具,可是基本的DOS命名大家還是要記住!

SQLyog

可手動操作,管理MySQL數據庫的軟件工具

特點 : 簡潔 , 易用 , 圖形化

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-gNNjCVDJ-1609080184712)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201226134545862.png)]

連接數據庫(命令行)

打開MySQL命令窗口

  • 在DOS命令行窗口進入 安裝目錄\mysql\bin
  • 可設置環境變量,設置了環境變量,可以在任意目錄打開!

連接數據庫語句 : mysql -h 服務器主機地址 -u 用戶名 -p 用戶密碼

注意 : -p后面不能加空格,否則會被當做密碼的內容,導致登錄失敗 !

幾個基本的數據庫操作命令 :

Ctrl加C強行終止

– 表示注釋或#

/**/多行注釋

update user set password=password('123456')where user='root'; 修改密碼 flush privileges; 刷新數據庫 show databases; 顯示所有數據庫 use dbname;打開某個數據庫 show tables; 顯示數據庫mysql中所有的表 describe user; 顯示表mysql數據庫中user表的列信息 create database name; 創建數據庫 use databasename; 選擇數據庫exit; 退出Mysql ? 命令關鍵詞 : 尋求幫助 -- 表示注釋

結構化查詢語句分類

數據庫操作

mysql不區分大小寫

命令行操作數據庫

創建數據庫 : create database [if not exists] 數據庫名;

刪除數據庫 : drop database [if exists] 數據庫名;

查看數據庫 : show databases;

使用數據庫 : use 數據庫名; 說明 : 反引號用于區別MySQL保留字與普通字符而引入的 (鍵盤esc下面的鍵).

對比工具操作數據庫

學習方法:

  • 對照SQLyog工具自動生成的語句學習
  • 固定語法中的單詞需要記憶

創建數據表

屬于DDL的一種,語法 :

create table [if not exists] `表名`('字段名1' 列類型 [屬性][索引][注釋],'字段名2' 列類型 [屬性][索引][注釋],#...'字段名n' 列類型 [屬性][索引][注釋] )[表類型][表字符集][注釋];

說明 : 反引號用于區別MySQL保留字與普通字符而引入的 (鍵盤esc下面的鍵).

數據值和列類型

列類型 : 規定數據庫中該列存放的數據類型

數值類型

字符串類型

日期和時間型數值類型

NULL值

  • 理解為 “沒有值” 或 “未知值”
  • 不要用NULL進行算術運算 , 結果仍為NULL

數據字段屬性

UnSigned

  • 無符號的
  • 聲明該數據列不允許負數 .

ZEROFILL

  • 0填充的
  • 不足位數的用0來填充 , 如int(3),5則為005

Auto_InCrement

  • 自動增長的 , 每添加一條數據 , 自動在上一個記錄數上加 1(默認)

  • 通常用于設置主鍵 , 且為整數類型

  • 可定義起始值和步長

    • 當前表設置步長(AUTO_INCREMENT=100) : 只影響當前表
    • SET @@auto_increment_increment=5 ; 影響所有使用自增的表(全局)

NULL 和 NOT NULL

  • 默認為NULL , 即沒有插入該列的數值
  • 如果設置為NOT NULL , 則該列必須有值

DEFAULT

  • 默認的
  • 用于設置默認值
  • 例如,性別字段,默認為"男" , 否則為 “女” ; 若無指定該列的值 , 則默認值為"男"的值
-- 目標 : 創建一個school數據庫 -- 創建學生表(列,字段) -- 學號int 登錄密碼varchar(20) 姓名,性別varchar(2),出生日期(datatime),家庭住址,email -- 創建表之前 , 一定要先選擇數據庫 --字符串使用 單引號括起來! --所有的語句后面加 , (英文的),最后一個不加 --primary key主鍵,一般一個表只有一個唯一的主鍵! CREATE TABLE IF NOT EXISTS `student` ( `id` int(4) NOT NULL AUTO_INCREMENT COMMENT '學號', `name` varchar(30) NOT NULL DEFAULT '匿名' COMMENT '姓名', `pwd` varchar(20) NOT NULL DEFAULT '123456' COMMENT '密碼', `sex` varchar(2) NOT NULL DEFAULT '男' COMMENT '性別', `birthday` datetime DEFAULT NULL COMMENT '生日', `address` varchar(100) DEFAULT NULL COMMENT '地址', `email` varchar(50) DEFAULT NULL COMMENT '郵箱', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8

逆向操作

-- 查看數據庫的定義 SHOW CREATE DATABASE school; -- 查看數據表的定義 SHOW CREATE TABLE student; -- 顯示表結構 DESC student; -- 設置嚴格檢查模式(不能容錯了)SET sql_mode='STRICT_TRANS_TABLES';

數據表的類型

設置數據表的類型

CREATE TABLE 表名(-- 省略一些代碼-- Mysql注釋-- 1. # 單行注釋-- 2. /*...*/ 多行注釋 )ENGINE = MyISAM (or InnoDB)-- 查看mysql所支持的引擎類型 (表類型) SHOW ENGINES;

MySQL的數據表的類型 : MyISAM , InnoDB , HEAP , BOB , CSV等…

常見的 MyISAM 與 InnoDB 類型:

經驗 ( 適用場合 ) :

  • 適用 MyISAM : 節約空間及相應速度
  • 適用 InnoDB : 安全性 , 事務處理及多用戶操作數據表

數據表的存儲位置

  • innoDB數據表以文件方式存放在磁盤中

包括表文件 , 數據文件 , 以及數據庫的選項文件

位置 : Mysql安裝目錄\data\下存放數據表 . 目錄名對應數據庫名 , 該目錄下文件名對應數據表 .

  • MYISAM
    * . frm – 表結構定義文件

    . MYD – 數據文件 ( data )

    . MYI – 索引文件 ( index )

    InnoDB類型數據表只有一個 *.frm文件 , 以及上一級目錄的ibdata1文件

    MyISAM類型數據表對應三個文件 :

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Ef9jNeI1-1609080184719)(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==)]

設置數據表字符集

我們可為數據庫,數據表,數據列設定不同的字符集,設定方法 :

  • 創建時通過命令來設置 , 如 : CREATE TABLE 表名()CHARSET = utf8;
  • 如無設定 , 則根據MySQL數據庫配置文件 my.ini 中的參數設定

修改數據庫

修改表 ( ALTER TABLE )

修改表名 :ALTER TABLE 舊表名 RENAME AS 新表名

添加字段 : ALTER TABLE 表名 ADD字段名 列屬性[屬性]

修改字段 :

  • ALTER TABLE 表名 MODIFY 字段名 列類型[屬性]–無法重命名
  • ALTER TABLE 表名 CHANGE 舊字段名 新字段名 列屬性[屬性]

刪除字段 : ALTER TABLE 表名 DROP 字段名

刪除數據表

語法:DROP TABLE [IF EXISTS] 表名

  • IF EXISTS為可選 , 判斷是否存在該數據表
  • 如刪除不存在的數據表會拋出錯誤

其他

1. 可用反引號(`)為標識符(庫名、表名、字段名、索引、別名)包裹,以避免與關鍵字重名!中文也可以作為標識符!2. 每個庫目錄存在一個保存當前數據庫的選項文件db.opt。3. 注釋:單行注釋 # 注釋內容多行注釋 /* 注釋內容 */單行注釋 -- 注釋內容 (標準SQL注釋風格,要求雙破折號后加一空格符(空格、TAB、換行等))4. 模式通配符:_ 任意單個字符% 任意多個字符,甚至包括零字符單引號需要進行轉義 \'5. CMD命令行內的語句結束符可以為 ";", "\G", "\g",僅影響顯示結果。其他地方還是用分號結束。delimiter 可修改當前對話的語句結束符。6. SQL對大小寫不敏感 (關鍵字)7. 清除已有語句:\c

數據管理

外鍵(了解即可)

外鍵概念

如果公共關鍵字在一個關系中是主關鍵字,那么這個公共關鍵字被稱為另一個關系的外鍵。由此可見,外鍵表示了兩個關系之間的相關聯系。以另一個關系的外鍵作主關鍵字的表被稱為主表,具有此外鍵的表被稱為主表的從表。

在實際操作中,將一個表的值放入第二個表來表示關聯,所使用的值是第一個表的主鍵值(在必要時可包括復合主鍵值)。此時,第二個表中保存這些值的屬性稱為外鍵(foreign key)。

外鍵作用

保持數據一致性完整性,主要目的是控制存儲在外鍵表中的數據,約束。使兩張表形成關聯,外鍵只能引用外表中的列的值或使用空值。

創建外鍵

建表時指定外鍵約束

-- 創建外鍵的方式一 : 創建子表同時創建外鍵-- 年級表 (id\年級名稱) CREATE TABLE `grade` ( `gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年級ID', `gradename` VARCHAR(50) NOT NULL COMMENT '年級名稱', PRIMARY KEY (`gradeid`) ) ENGINE=INNODB DEFAULT CHARSET=utf8-- 學生信息表 (學號,姓名,性別,年級,手機,地址,出生日期,郵箱,身份證號) CREATE TABLE `student` ( `studentno` INT(4) NOT NULL COMMENT '學號', `studentname` VARCHAR(20) NOT NULL DEFAULT '匿名' COMMENT '姓名', `sex` TINYINT(1) DEFAULT '1' COMMENT '性別', `gradeid` INT(10) DEFAULT NULL COMMENT '年級', `phoneNum` VARCHAR(50) NOT NULL COMMENT '手機', `address` VARCHAR(255) DEFAULT NULL COMMENT '地址', `borndate` DATETIME DEFAULT NULL COMMENT '生日', `email` VARCHAR(50) DEFAULT NULL COMMENT '郵箱', `idCard` VARCHAR(18) DEFAULT NULL COMMENT '身份證號', PRIMARY KEY (`studentno`),KEY `FK_gradeid` (`gradeid`), CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (`gradeid`)) ENGINE=INNODB DEFAULT CHARSET=utf8

建表后修改

-- 創建外鍵方式二 : 創建子表完畢后,修改子表添加外鍵 ALTER TABLE `student` ADD CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (`gradeid`);

刪除外鍵

操作:刪除 grade 表,發現報錯

注意 : 刪除具有主外鍵關系的表時 , 要先刪主表 , 后刪從表

-- 刪除外鍵 ALTER TABLE student DROP FOREIGN KEY FK_gradeid; -- 發現執行完上面的,索引還在,所以還要刪除索引 -- 注:這個索引是建立外鍵的時候默認生成的 ALTER TABLE student DROP INDEX FK_gradeid;

以上操作都是物理外鍵,數據庫級別的外鍵,我們不建議使用!(避免數據庫過多造成的困擾)

最佳實踐

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-rDss0UoF-1609080184722)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201226163359859.png)]

DML語言(INSERT ,UPDATE,DELETE)

數據庫意義 : 數據存儲、數據管理

管理數據庫數據方法:

  • 通過SQLyog等管理工具管理數據庫數據
  • 通過DML語句管理數據庫數據

DML語言 :數據操作語言

  • 用于操作數據庫對象中所包含的數據

  • 包括 :

    • INSERT (添加數據語句)
    • UPDATE (更新數據語句)
    • DELETE (刪除數據語句)

添加數據

INSERT命令

語法:

INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES('值1','值2','值3')

注意 :

  • 字段或值之間用英文逗號隔開 .
  • ’ 字段1,字段2…’ 該部分可省略 , 但添加的值務必與表結構,數據列,順序相對應,且數量一致 .
  • 可同時插入多條數據 , values 后用英文逗號隔開 .
-- 使用語句如何增加語句? -- 語法 : INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES('值1','值2','值3') INSERT INTO grade(gradename) VALUES ('大一');-- 主鍵自增,那能否省略呢? INSERT INTO grade VALUES ('大二');-- 查詢:INSERT INTO grade VALUE ('大二')錯誤代碼:1136 Column count doesn`t match value count at row 1-- 結論:'字段1,字段2...'該部分可省略 , 但添加的值務必與表結構,數據列,順序相對應,且數量一致.-- 一次插入多條數據 INSERT INTO grade(gradename) VALUES ('大三'),('大四');

修改數據

update命令

語法:

UPDATE 表名 SET column_name=value [,column_name2=value2,...] [WHERE condition];

注意 :

  • column_name 為要更改的數據列
  • value 為修改后的數據 , 可以為變量 , 具體指 , 表達式或者嵌套的SELECT結果
  • condition 為篩選條件 , 如不指定則修改該表的所有列數據

where條件子句

可以簡單的理解為 : 有條件地從表中篩選數據

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-c5KRMooV-1609080184723)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201226165540032.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-2Hy3bLwA-1609080184724)(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==)]測試:

-- 修改年級信息 UPDATE grade SET gradename = '高中' WHERE gradeid = 1;

刪除數據

DELETE命令

語法:

DELETE FROM 表名 [WHERE condition];

注意:condition為篩選條件 , 如不指定則刪除該表的所有列數據

-- 刪除最后一個數據 DELETE FROM grade WHERE gradeid = 5

TRUNCATE vs DELETE命令

作用:用于完全清空表數據 , 但表結構 , 索引 , 約束等不變 ;

語法:

TRUNCATE [TABLE] table_name;-- 清空年級表 TRUNCATE grade

注意:區別于DELETE命令

  • 相同 : 都能刪除數據 , 不刪除表結構 , 但TRUNCATE速度更快

  • 不同 :

    • 使用TRUNCATE TABLE 重新設置AUTO_INCREMENT計數器
    • 使用TRUNCATE TABLE不會對事務有影響 (事務后面會說)

測試:

-- 創建一個測試表 CREATE TABLE `test` ( `id` INT(4) NOT NULL AUTO_INCREMENT, `coll` VARCHAR(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8-- 插入幾個測試數據 INSERT INTO test(coll) VALUES('row1'),('row2'),('row3');-- 刪除表數據(不帶where條件的delete) DELETE FROM test; -- 結論:如不指定Where則刪除該表的所有列數據,自增當前值依然從原來基礎上進行,會記錄日志.-- 刪除表數據(truncate) TRUNCATE TABLE test; -- 結論:truncate刪除數據,自增當前值會恢復到初始值重新開始;不會記錄日志.

同樣使用DELETE清空不同引擎的數據庫表數據.重啟數據庫服務后

  • InnoDB : 自增列從初始值重新開始 (因為是存儲在內存中,斷電即失)

  • MyISAM : 自增列依然從上一個自增數據基礎上開始 (存在文件中,不會丟失)

DQL語言(SELECT)

DQL( Data Query Language 數據查詢語言 )

  • 查詢數據庫數據 , 如SELECT語句
  • 簡單的單表查詢或多表的復雜查詢和嵌套查詢
  • 是數據庫語言中最核心,最重要的語句
  • 使用頻率最高的語句

SELECT語法

SELECT [ALL | DISTINCT] {* | table.* | [table.field1[as alias1][,table.field2[as alias2]][,...]]} FROM table_name [as table_alias][left | right | inner join table_name2] -- 聯合查詢[WHERE ...] -- 指定結果需滿足的條件[GROUP BY ...] -- 指定結果按照哪幾個字段來分組[HAVING] -- 過濾分組的記錄必須滿足的次要條件[ORDER BY ...] -- 指定查詢記錄按一個或多個條件排序[LIMIT {[offset,]row_count | row_countOFFSET offset}];-- 指定查詢的記錄從哪條至哪條

注意 : [ ] 括號代表可選的 , { }括號代表必選得

指定查詢字段

-- 查詢表中所有的數據列結果 , 采用 **" \* "** 符號; 但是效率低,不推薦 .-- 查詢所有學生信息 SELECT * FROM student;-- 查詢指定列(學號 , 姓名) SELECT studentno,studentname FROM student;

AS 子句作為別名

作用:

  • 可給數據列取一個新 別名
  • 可給表取一個新別名
  • 可把經計算或總結的結果用另一個新名稱來代替
-- 這里是為列取別名(當然as關鍵詞可以省略) SELECT studentno AS 學號,studentname AS 姓名 FROM student;-- 使用as也可以為表取別名 SELECT studentno AS 學號,studentname AS 姓名 FROM student AS s;-- 使用as,為查詢結果取一個新名字 -- CONCAT()函數拼接字符串 SELECT CONCAT('姓名:',studentname) AS 新姓名 FROM student;

DISTINCT關鍵字的使用

作用 : 去掉SELECT查詢返回的記錄結果中重復的記錄 ( 返回所有列的值都相同 ) , 只返回一條

-- # 查看哪些同學參加了考試(學號) 去除重復項 SELECT * FROM result; -- 查看考試成績 SELECT studentno FROM result; -- 查看哪些同學參加了考試 SELECT DISTINCT studentno FROM result; -- 了解:DISTINCT 去除重復項 , (默認是ALL)

使用表達式的列

數據庫中的表達式 : 一般由文本值 , 列值 , NULL , 函數和操作符等組成

應用場景 :

  • SELECT語句返回結果列中使用

  • SELECT語句中的ORDER BY , HAVING等子句中使用

  • DML語句中的 where 條件語句中使用表達式

    -- selcet查詢中可以使用表達式 SELECT @@auto_increment_increment; -- 查詢自增步長 SELECT VERSION(); -- 查詢版本號 SELECT 100*3-1 AS 計算結果; -- 表達式-- 學員考試成績集體提分一分查看 SELECT studentno,StudentResult+1 AS '提分后' FROM result;
  • 避免SQL返回結果中包含 ’ . ’ , ’ * ’ 和括號等干擾開發語言程序.

where條件語句

作用:用于檢索數據表中 符合條件 的記錄

搜索條件可由一個或多個邏輯表達式組成 , 結果一般為真或假.

邏輯操作符

測試

-- 滿足條件的查詢(where) SELECT Studentno,StudentResult FROM result;-- 查詢考試成績在95-100之間的 SELECT Studentno,StudentResult FROM result WHERE StudentResult>=95 AND StudentResult<=100;-- AND也可以寫成 && SELECT Studentno,StudentResult FROM result WHERE StudentResult>=95 && StudentResult<=100;-- 模糊查詢(對應的詞:精確查詢) SELECT Studentno,StudentResult FROM result WHERE StudentResult BETWEEN 95 AND 100;-- 除了1000號同學,要其他同學的成績 SELECT studentno,studentresult FROM result WHERE studentno!=1000;-- 使用NOT SELECT studentno,studentresult FROM result WHERE NOT studentno=1000;

模糊查詢 :比較操作符

注意:

  • 數值數據類型的記錄之間才能進行算術運算 ;
  • 相同數據類型的數據之間才能進行比較 ;

測試:

-- 模糊查詢 between and \ like \ in \ null-- ============================================= -- LIKE -- ============================================= -- 查詢姓劉的同學的學號及姓名 -- like結合使用的通配符 : % (代表0到任意個字符) _ (一個字符) SELECT studentno,studentname FROM student WHERE studentname LIKE '劉%';-- 查詢姓劉的同學,后面只有一個字的 SELECT studentno,studentname FROM student WHERE studentname LIKE '劉_';-- 查詢姓劉的同學,后面只有兩個字的 SELECT studentno,studentname FROM student WHERE studentname LIKE '劉__';-- 查詢姓名中含有 嘉 字的 SELECT studentno,studentname FROM student WHERE studentname LIKE '%嘉%';-- 查詢姓名中含有特殊字符的需要使用轉義符號 '\' -- 自定義轉義符關鍵字: ESCAPE ':'-- ============================================= -- IN具體的值 -- ============================================= -- 查詢學號為1000,1001,1002的學生姓名 SELECT studentno,studentname FROM student WHERE studentno IN (1000,1001,1002);-- 查詢地址在北京,南京,河南洛陽的學生 SELECT studentno,studentname,address FROM student WHERE address IN ('北京','南京','河南洛陽');-- ============================================= -- NULL 空 -- ============================================= -- 查詢出生日期沒有填寫的同學 -- 不能直接寫=NULL , 這是代表錯誤的 , 用 is null SELECT studentname FROM student WHERE BornDate IS NULL;-- 查詢出生日期填寫的同學 SELECT studentname FROM student WHERE BornDate IS NOT NULL;-- 查詢沒有寫家庭住址的同學(空字符串不等于null) SELECT studentname FROM student WHERE Address='' OR Address IS NULL;

聯表查詢

JOIN 對比

七種Join:

測試

/* 連接查詢如需要多張數據表的數據進行查詢,則可通過連接運算符實現多個查詢 內連接 inner join查詢兩個表中的結果集中的交集 外連接 outer join左外連接 left join(以左表作為基準,右邊表來一一匹配,匹配不上的,返回左表的記錄,右表以NULL填充)右外連接 right join(以右表作為基準,左邊表來一一匹配,匹配不上的,返回右表的記錄,左表以NULL填充)等值連接和非等值連接自連接 */-- 查詢參加了考試的同學信息(學號,學生姓名,科目編號,分數) SELECT * FROM student; SELECT * FROM result;/*思路: (1):分析需求,確定查詢的列來源于兩個類,student result,連接查詢 (2):確定使用哪種連接查詢?(內連接) */ SELECT s.studentno,studentname,subjectno,StudentResult FROM student s INNER JOIN result r ON r.studentno = s.studentno-- 右連接(也可實現) SELECT s.studentno,studentname,subjectno,StudentResult FROM student s RIGHT JOIN result r ON r.studentno = s.studentno-- 等值連接 SELECT s.studentno,studentname,subjectno,StudentResult FROM student s , result r WHERE r.studentno = s.studentno-- 左連接 (查詢了所有同學,不考試的也會查出來) SELECT s.studentno,studentname,subjectno,StudentResult FROM student s LEFT JOIN result r ON r.studentno = s.studentno-- 查一下缺考的同學(左連接應用場景) SELECT s.studentno,studentname,subjectno,StudentResult FROM student s LEFT JOIN result r ON r.studentno = s.studentno WHERE StudentResult IS NULL-- 思考題:查詢參加了考試的同學信息(學號,學生姓名,科目名,分數) SELECT s.studentno,studentname,subjectname,StudentResult FROM student INNER JOIN result r ON r.studentno = s.studentno INNER JOIN `subject` sub ON sub.subjectno = r.subjectno

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Vn4wqiog-1609080184730)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201226192816849.png)]

自連接

/* 自連接數據表與自身進行連接需求:從一個包含欄目ID , 欄目名稱和父欄目ID的表中查詢父欄目名稱和其他子欄目名稱 */-- 創建一個表 CREATE TABLE `category` ( `categoryid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主題id', `pid` INT(10) NOT NULL COMMENT '父id', `categoryName` VARCHAR(50) NOT NULL COMMENT '主題名字', PRIMARY KEY (`categoryid`) ) ENGINE=INNODB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8-- 插入數據 INSERT INTO `category` (`categoryid`, `pid`, `categoryName`) VALUES('2','1','信息技術'), ('3','1','軟件開發'), ('4','3','數據庫'), ('5','1','美術設計'), ('6','3','web開發'), ('7','5','ps技術'), ('8','2','辦公信息');-- 編寫SQL語句,將欄目的父子關系呈現出來 (父欄目名稱,子欄目名稱) -- 核心思想:把一張表看成兩張一模一樣的表,然后將這兩張表連接查詢(自連接) SELECT a.categoryName AS '父欄目',b.categoryName AS '子欄目' FROM category AS a,category AS b WHERE a.`categoryid`=b.`pid`-- 思考題:查詢參加了考試的同學信息(學號,學生姓名,科目名,分數) SELECT s.studentno,studentname,subjectname,StudentResult FROM student s INNER JOIN result r ON r.studentno = s.studentno INNER JOIN `subject` sub ON sub.subjectno = r.subjectno-- 查詢學員及所屬的年級(學號,學生姓名,年級名) SELECT studentno AS 學號,studentname AS 學生姓名,gradename AS 年級名稱 FROM student s INNER JOIN grade g ON s.`GradeId` = g.`GradeID`-- 查詢科目及所屬的年級(科目名稱,年級名稱) SELECT subjectname AS 科目名稱,gradename AS 年級名稱 FROM SUBJECT sub INNER JOIN grade g ON sub.gradeid = g.gradeid-- 查詢 數據庫結構-1 的所有考試結果(學號 學生姓名 科目名稱 成績) SELECT s.studentno,studentname,subjectname,StudentResult FROM student s INNER JOIN result r ON r.studentno = s.studentno INNER JOIN `subject` sub ON r.subjectno = sub.subjectno WHERE subjectname='數據庫結構-1'

排序和分頁

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-MgkcX53v-1609080184731)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201226200208117.png)]

測試

/*============== 排序 ================ 語法 : ORDER BYORDER BY 語句用于根據指定的列對結果集進行排序。ORDER BY 語句默認按照ASC升序對記錄進行排序。如果您希望按照降序對記錄進行排序,可以使用 DESC 關鍵字。*/-- 查詢 數據庫結構-1 的所有考試結果(學號 學生姓名 科目名稱 成績) -- 按成績降序排序 SELECT s.studentno,studentname,subjectname,StudentResult FROM student s INNER JOIN result r ON r.studentno = s.studentno INNER JOIN `subject` sub ON r.subjectno = sub.subjectno WHERE subjectname='數據庫結構-1' ORDER BY StudentResult DESC/*============== 分頁 ================ 語法 : SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset 好處 : (用戶體驗,網絡傳輸,查詢壓力)推導:第一頁 : limit 0,5第二頁 : limit 5,5第三頁 : limit 10,5......第N頁 : limit (pageNo-1)*pageSzie,pageSzie[pageNo:頁碼,pageSize:單頁面顯示條數]*/-- 每頁顯示5條數據 SELECT s.studentno,studentname,subjectname,StudentResult FROM student s INNER JOIN result r ON r.studentno = s.studentno INNER JOIN `subject` sub ON r.subjectno = sub.subjectno WHERE subjectname='數據庫結構-1' ORDER BY StudentResult DESC , studentno LIMIT 0,5-- 查詢 JAVA第一學年 課程成績前10名并且分數大于80的學生信息(學號,姓名,課程名,分數) SELECT s.studentno,studentname,subjectname,StudentResult FROM student s INNER JOIN result r ON r.studentno = s.studentno INNER JOIN `subject` sub ON r.subjectno = sub.subjectno WHERE subjectname='JAVA第一學年' ORDER BY StudentResult DESC LIMIT 0,10

子查詢

/*============== 子查詢 ================ 什么是子查詢?在查詢語句中的WHERE條件子句中,又嵌套了另一個查詢語句嵌套查詢可由多個子查詢組成,求解的方式是由里及外;子查詢返回的結果一般都是集合,故而建議使用IN關鍵字; */-- 查詢 數據庫結構-1 的所有考試結果(學號,科目編號,成績),并且成績降序排列 -- 方法一:使用連接查詢 SELECT studentno,r.subjectno,StudentResult FROM result r INNER JOIN `subject` sub ON r.`SubjectNo`=sub.`SubjectNo` WHERE subjectname = '數據庫結構-1' ORDER BY studentresult DESC;-- 方法二:使用子查詢(執行順序:由里及外) SELECT studentno,subjectno,StudentResult FROM result WHERE subjectno=(SELECT subjectno FROM `subject`WHERE subjectname = '數據庫結構-1' ) ORDER BY studentresult DESC;-- 查詢課程為 高等數學-2 且分數不小于80分的學生的學號和姓名 -- 方法一:使用連接查詢 SELECT s.studentno,studentname FROM student s INNER JOIN result r ON s.`StudentNo` = r.`StudentNo` INNER JOIN `subject` sub ON sub.`SubjectNo` = r.`SubjectNo` WHERE subjectname = '高等數學-2' AND StudentResult>=80-- 方法二:使用連接查詢+子查詢 -- 分數不小于80分的學生的學號和姓名 SELECT r.studentno,studentname FROM student s INNER JOIN result r ON s.`StudentNo`=r.`StudentNo` WHERE StudentResult>=80-- 在上面SQL基礎上,添加需求:課程為 高等數學-2 SELECT r.studentno,studentname FROM student s INNER JOIN result r ON s.`StudentNo`=r.`StudentNo` WHERE StudentResult>=80 AND subjectno=(SELECT subjectno FROM `subject`WHERE subjectname = '高等數學-2' )-- 方法三:使用子查詢 -- 分步寫簡單sql語句,然后將其嵌套起來 SELECT studentno,studentname FROM student WHERE studentno IN(SELECT studentno FROM result WHERE StudentResult>=80 AND subjectno=(SELECT subjectno FROM `subject` WHERE subjectname = '高等數學-2') )

常用函數

數據函數

SELECT ABS(-8); /*絕對值*/SELECT CEILING(9.4); /*向上取整*/SELECT FLOOR(9.4); /*向下取整*/SELECT RAND(); /*隨機數,返回一個0-1之間的隨機數*/SELECT SIGN(0); /*符號函數: 負數返回-1,正數返回1,0返回0*/

字符串函數

SELECT CHAR_LENGTH('狂神說堅持就能成功'); /*返回字符串包含的字符數*/SELECT CONCAT('我','愛','程序'); /*合并字符串,參數可以有多個*/SELECT INSERT('我愛編程helloworld',1,2,'超級熱愛'); /*替換字符串,從某個位置開始替換某個長度*/SELECT LOWER('KuangShen'); /*小寫*/SELECT UPPER('KuangShen'); /*大寫*/SELECT LEFT('hello,world',5); /*從左邊截取*/SELECT RIGHT('hello,world',5); /*從右邊截取*/SELECT REPLACE('狂神說堅持就能成功','堅持','努力'); /*替換字符串*/SELECT SUBSTR('狂神說堅持就能成功',4,6); /*截取字符串,開始和長度*/SELECT REVERSE('狂神說堅持就能成功'); /*反轉-- 查詢姓周的同學,改成鄒SELECT REPLACE(studentname,'周','鄒') AS 新名字FROM student WHERE studentname LIKE '周%';

日期和時間函數

SELECT CURRENT_DATE(); /*獲取當前日期*/SELECT CURDATE(); /*獲取當前日期*/SELECT NOW(); /*獲取當前日期和時間*/SELECT LOCALTIME(); /*獲取當前日期和時間*/SELECT SYSDATE(); /*獲取當前日期和時間*/-- 獲取年月日,時分秒SELECT YEAR(NOW());SELECT MONTH(NOW());SELECT DAY(NOW());SELECT HOUR(NOW());SELECT MINUTE(NOW());SELECT SECOND(NOW());

系統信息函數

SELECT VERSION(); /*版本*/SELECT USER(); /*用戶*/

聚合函數

函數名稱描述
COUNT()返回滿足Select條件的記錄總和數,如 select count(*) 【不建議使用 *,效率低】
SUM()返回數字字段或表達式列作統計,返回一列的總和。
AVG()通常為數值字段或表達列作統計,返回一列的平均值
MAX()可以為數值字段,字符字段或表達式列作統計,返回最大的值。
MIN()可以為數值字段,字符字段或表達式列作統計,返回最小的值。
-- 聚合函數/*COUNT:非空的*/SELECT COUNT(studentname) FROM student;SELECT COUNT(*) FROM student;SELECT COUNT(1) FROM student; /*推薦*/-- 從含義上講,count(1) 與 count(*) 都表示對全部數據行的查詢。-- count(字段) 會統計該字段在表中出現的次數,忽略字段為null 的情況。即不統計字段為null 的記錄。-- count(*) 包括了所有的列,相當于行數,在統計結果的時候,包含字段為null 的記錄;-- count(1) 用1代表代碼行,在統計結果的時候,包含字段為null 的記錄 。/*很多人認為count(1)執行的效率會比count(*)高,原因是count(*)會存在全表掃描,而count(1)可以針對一個字段進行查詢。其實不然,count(1)和count(*)都會對全表進行掃描,統計所有記錄的條數,包括那些為null的記錄,因此,它們的效率可以說是相差無幾。而count(字段)則與前兩者不同,它會統計該字段不為null的記錄條數。下面它們之間的一些對比:1)在表沒有主鍵時,count(1)比count(*)快2)有主鍵時,主鍵作為計算條件,count(主鍵)效率最高;3)若表格只有一個字段,則count(*)效率較高。*/SELECT SUM(StudentResult) AS 總和 FROM result;SELECT AVG(StudentResult) AS 平均分 FROM result;SELECT MAX(StudentResult) AS 最高分 FROM result;SELECT MIN(StudentResult) AS 最低分 FROM result;

分組和過濾having

-- 查詢不同課程的平均分,最高分,最低分-- 前提:根據不同的課程進行分組SELECT subjectname,AVG(studentresult) AS 平均分,MAX(StudentResult) AS 最高分,MIN(StudentResult) AS 最低分FROM result AS rINNER JOIN `subject` AS sON r.subjectno = s.subjectnoGROUP BY r.subjectnoHAVING 平均分>80;/*where寫在group by前面.要是放在分組后面的篩選要使用HAVING..因為having是從前面篩選的字段再篩選,而where是從數據表中的>字段直接進行的篩選的*/

MD5 加密

一、MD5簡介

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于確保信息傳輸完整一致。是計算機廣泛使用的雜湊算法之一(又譯摘要算法、哈希算法),主流編程語言普遍已有MD5實現。將數據(如漢字)運算為另一固定長度值,是雜湊算法的基礎原理,MD5的前身有MD2、MD3和MD4。

二、實現數據加密

新建一個表 testmd5

CREATE TABLE `testmd5` (`id` INT(4) NOT NULL,`name` VARCHAR(20) NOT NULL,`pwd` VARCHAR(50) NOT NULL,PRIMARY KEY (`id`)) ENGINE=INNODB DEFAULT CHARSET=utf8

插入一些數據

INSERT INTO testmd5 VALUES(1,'kuangshen','123456'),(2,'qinjiang','456789')

如果我們要對pwd這一列數據進行加密,語法是:

update testmd5 set pwd = md5(pwd);

如果單獨對某個用戶(如kuangshen)的密碼加密:

INSERT INTO testmd5 VALUES(3,'kuangshen2','123456')update testmd5 set pwd = md5(pwd) where name = 'kuangshen2';

插入新的數據自動加密

INSERT INTO testmd5 VALUES(4,'kuangshen3',md5('123456'));

查詢登錄用戶信息(md5對比使用,查看用戶輸入加密后的密碼進行比對)

SELECT * FROM testmd5 WHERE `name`='kuangshen' AND pwd=MD5('123456');

select小結

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-dYMO05l1-1609080184732)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201226234109501.png)]

-- ================ 內置函數 ================-- 數值函數abs(x) -- 絕對值 abs(-10.9) = 10format(x, d) -- 格式化千分位數值 format(1234567.456, 2) = 1,234,567.46ceil(x) -- 向上取整 ceil(10.1) = 11floor(x) -- 向下取整 floor (10.1) = 10round(x) -- 四舍五入去整mod(m, n) -- m%n m mod n 求余 10%3=1pi() -- 獲得圓周率pow(m, n) -- m^nsqrt(x) -- 算術平方根rand() -- 隨機數truncate(x, d) -- 截取d位小數-- 時間日期函數now(), current_timestamp(); -- 當前日期時間current_date(); -- 當前日期current_time(); -- 當前時間date('yyyy-mm-dd hh:ii:ss'); -- 獲取日期部分time('yyyy-mm-dd hh:ii:ss'); -- 獲取時間部分date_format('yyyy-mm-dd hh:ii:ss', '%d %y %a %d %m %b %j'); -- 格式化時間unix_timestamp(); -- 獲得unix時間戳from_unixtime(); -- 從時間戳獲得時間-- 字符串函數length(string) -- string長度,字節char_length(string) -- string的字符個數substring(str, position [,length]) -- 從str的position開始,取length個字符replace(str ,search_str ,replace_str) -- 在str中用replace_str替換search_strinstr(string ,substring) -- 返回substring首次在string中出現的位置concat(string [,...]) -- 連接字串charset(str) -- 返回字串字符集lcase(string) -- 轉換成小寫left(string, length) -- 從string2中的左邊起取length個字符load_file(file_name) -- 從文件讀取內容locate(substring, string [,start_position]) -- 同instr,但可指定開始位置lpad(string, length, pad) -- 重復用pad加在string開頭,直到字串長度為lengthltrim(string) -- 去除前端空格repeat(string, count) -- 重復count次rpad(string, length, pad) --在str后用pad補充,直到長度為lengthrtrim(string) -- 去除后端空格strcmp(string1 ,string2) -- 逐字符比較兩字串大小-- 聚合函數count()sum();max();min();avg();group_concat()-- 其他常用函數md5();default();

事務

什么是事務

  • 事務就是將一組SQL語句放在同一批次內去執行
  • 如果一個SQL語句出錯,則該批次內的所有SQL都將被取消執行
  • MySQL事務處理只支持InnoDB和BDB數據表類型

事務的ACID原則 百度 ACID

原子性(Atomic)

  • 整個事務中的所有操作,要么全部完成,要么全部不完成,不可能停滯在中間某個環節。事務在執行過程中發生錯誤,會被回滾(ROLLBACK)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。

一致性(Consist)

  • 一個事務可以封裝狀態改變(除非它是一個只讀的)。事務必須始終保持系統處于一致的狀態,不管在任何給定的時間并發事務有多少。也就是說:如果事務是并發多個,系統也必須如同串行事務一樣操作。其主要特征是保護性和不變性(Preserving an Invariant),以轉賬案例為例,假設有五個賬戶,每個賬戶余額是100元,那么五個賬戶總額是500元,如果在這個5個賬戶之間同時發生多個轉賬,無論并發多少個,比如在A與B賬戶之間轉賬5元,在C與D賬戶之間轉賬10元,在B與E之間轉賬15元,五個賬戶總額也應該還是500元,這就是保護性和不變性。

隔離性(Isolated)

  • 隔離狀態執行事務,使它們好像是系統在給定時間內執行的唯一操作。如果有兩個事務,運行在相同的時間內,執行相同的功能,事務的隔離性將確保每一事務在系統中認為只有該事務在使用系統。這種屬性有時稱為串行化,為了防止事務操作間的混淆,必須串行化或序列化請求,使得在同一時間僅有一個請求用于同一數據。

持久性(Durable)

  • 在事務完成以后,該事務對數據庫所作的更改便持久的保存在數據庫之中,并不會被回滾。

隔離所導致的問題

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-oXQXOaWK-1609080184733)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227000409012.png)]

基本語法

-- 使用set語句來改變自動提交模式 SET autocommit = 0; /*關閉*/ SET autocommit = 1; /*開啟*/-- 注意: --- 1.MySQL中默認是自動提交 --- 2.使用事務時應先關閉自動提交-- 開始一個事務,標記事務的起始點 START TRANSACTION -- 提交一個事務給數據庫 COMMIT-- 將事務回滾,數據回到本次事務的初始狀態 ROLLBACK-- 還原MySQL數據庫的自動提交 SET autocommit =1;-- 保存點 SAVEPOINT 保存點名稱 -- 設置一個事務保存點 ROLLBACK TO SAVEPOINT 保存點名稱 -- 回滾到保存點 RELEASE SAVEPOINT 保存點名稱 -- 刪除保存點

測試

/* 課堂測試題目A在線買一款價格為500元商品,網上銀行轉賬. A的銀行卡余額為2000,然后給商家B支付500. 商家B一開始的銀行卡余額為10000創建數據庫shop和創建表account并插入2條數據 */CREATE DATABASE `shop`CHARACTER SET utf8 COLLATE utf8_general_ci; USE `shop`;CREATE TABLE `account` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(32) NOT NULL, `cash` DECIMAL(9,2) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8INSERT INTO account (`name`,`cash`) VALUES('A',2000.00),('B',10000.00)-- 轉賬實現 SET autocommit = 0; -- 關閉自動提交 START TRANSACTION; -- 開始一個事務,標記事務的起始點 UPDATE account SET cash=cash-500 WHERE `name`='A'; UPDATE account SET cash=cash+500 WHERE `name`='B'; COMMIT; -- 提交事務 # rollback; SET autocommit = 1; -- 恢復自動提交

索引

索引的作用

  • 提高查詢速度
  • 確保數據的唯一性
  • 可以加速表和表之間的連接 , 實現表與表之間的參照完整性
  • 使用分組和排序子句進行數據檢索時 , 可以顯著減少分組和排序的時間
  • 全文檢索字段進行搜索優化.

分類

  • 主鍵索引 (Primary Key)
  • 唯一索引 (Unique) 避免重復的列
  • 常規索引 (Index)
  • 全文索引 (FullText)

主鍵索引

主鍵 : 某一個屬性組能唯一標識一條記錄

特點 :

  • 最常見的索引類型
  • 確保數據記錄的唯一性
  • 確定特定數據記錄在數據庫中的位置

唯一索引

作用 : 避免同一個表中某數據列中的值重復

與主鍵索引的區別

  • 主鍵索引只能有一個
  • 唯一索引可能有多個
CREATE TABLE `Grade`(`GradeID` INT(11) AUTO_INCREMENT PRIMARYKEY,`GradeName` VARCHAR(32) NOT NULL UNIQUE-- 或 UNIQUE KEY `GradeID` (`GradeID`) )

常規索引

作用 : 快速定位特定數據

注意 :

  • index 和 key 關鍵字都可以設置常規索引
  • 應加在查詢找條件的字段
  • 不宜添加太多常規索引,影響數據的插入,刪除和修改操作
CREATE TABLE `result`(-- 省略一些代碼INDEX/KEY `ind` (`studentNo`,`subjectNo`) -- 創建表時添加 ) -- 創建后添加 ALTER TABLE `result` ADD INDEX `ind`(`studentNo`,`subjectNo`);

全文索引

百度搜索:全文索引

作用 : 快速定位特定數據

注意 :

  • 只能用于MyISAM類型的數據表
  • 只能用于CHAR , VARCHAR , TEXT數據列類型
  • 適合大型數據集
/* #方法一:創建表時CREATE TABLE 表名 (字段名1 數據類型 [完整性約束條件…],字段名2 數據類型 [完整性約束條件…],[UNIQUE | FULLTEXT | SPATIAL ] INDEX | KEY[索引名] (字段名[(長度)] [ASC |DESC]));#方法二:CREATE在已存在的表上創建索引CREATE [UNIQUE | FULLTEXT | SPATIAL ] INDEX 索引名ON 表名 (字段名[(長度)] [ASC |DESC]) ;#方法三:ALTER TABLE在已存在的表上創建索引ALTER TABLE 表名 ADD [UNIQUE | FULLTEXT | SPATIAL ] INDEX索引名 (字段名[(長度)] [ASC |DESC]) ;#刪除索引:DROP INDEX 索引名 ON 表名字; #刪除主鍵索引: ALTER TABLE 表名 DROP PRIMARY KEY;#顯示索引信息: SHOW INDEX FROM student; *//*增加全文索引*/ ALTER TABLE `school`.`student` ADD FULLTEXT INDEX `studentname` (`StudentName`);/*EXPLAIN : 分析SQL語句執行性能*/ EXPLAIN SELECT * FROM student WHERE studentno='1000';/*使用全文索引*/ -- 全文搜索通過 MATCH() 函數完成。 -- 搜索字符串作為 against() 的參數被給定。搜索以忽略字母大小寫的方式執行。對于表中的每個記錄行,MATCH() 返回一個相關性值。即,在搜索字符串與記錄行在 MATCH() 列表中指定的列的文本之間的相似性尺度。 EXPLAIN SELECT *FROM student WHERE MATCH(studentname) AGAINST('love');/* 開始之前,先說一下全文索引的版本、存儲引擎、數據類型的支持情況MySQL 5.6 以前的版本,只有 MyISAM 存儲引擎支持全文索引; MySQL 5.6 及以后的版本,MyISAM 和 InnoDB 存儲引擎均支持全文索引; 只有字段的數據類型為 char、varchar、text 及其系列才可以建全文索引。 測試或使用全文索引時,要先看一下自己的 MySQL 版本、存儲引擎和數據類型是否支持全文索引。 */

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-rHXHiDGT-1609080184734)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227095624686.png)]

拓展:測試索引

timestamp

建表app_user:

CREATE TABLE `app_user` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT '' COMMENT '用戶昵稱', `email` varchar(50) NOT NULL COMMENT '用戶郵箱', `phone` varchar(20) DEFAULT '' COMMENT '手機號', `gender` tinyint(4) unsigned DEFAULT '0' COMMENT '性別(0:男;1:女)', `password` varchar(100) NOT NULL COMMENT '密碼', `age` tinyint(4) DEFAULT '0' COMMENT '年齡', `create_time` datetime DEFAULT CURRENT_TIMESTAMP, `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='app用戶表'

批量插入數據:100w

DROP FUNCTION IF EXISTS mock_data; DELIMITER $$ --寫函數之前必寫 CREATE FUNCTION mock_data() RETURNS INT BEGIN DECLARE num INT DEFAULT 1000000; DECLARE i INT DEFAULT 0; WHILE i < num DOINSERT INTO app_user(`name`, `email`, `phone`, `gender`, `password`, `age`)VALUES(CONCAT('用戶', i), '24736743@qq.com', CONCAT('18', FLOOR(RAND()*(999999999-100000000)+100000000)),FLOOR(RAND()*2),UUID(), FLOOR(RAND()*100));SET i = i + 1; END WHILE; RETURN i; END; SELECT mock_data();

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-pD2M2xM4-1609080184735)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227101332579.png)]

索引效率測試

EXPLAIN

無索引

SELECT * FROM app_user WHERE name = '用戶9999'; -- 查看耗時 SELECT * FROM app_user WHERE name = '用戶9999'; SELECT * FROM app_user WHERE name = '用戶9999';mysql> EXPLAIN SELECT * FROM app_user WHERE name = '用戶9999'\G *************************** 1. row ***************************id: 1 select_type: SIMPLEtable: app_userpartitions: NULLtype: ALL possible_keys: NULLkey: NULLkey_len: NULLref: NULLrows: 992759filtered: 10.00Extra: Using where 1 row in set, 1 warning (0.00 sec)

創建索引

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-HTsGtbB1-1609080184735)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227102419495.png)]

CREATE INDEX id_app_user_name ON app_user(name);

測試普通索引

mysql> EXPLAIN SELECT * FROM app_user WHERE name = '用戶9999'\G *************************** 1. row ***************************id: 1 select_type: SIMPLEtable: app_userpartitions: NULLtype: ref possible_keys: idx_app_user_namekey: idx_app_user_namekey_len: 203ref: constrows: 1filtered: 100.00Extra: NULL 1 row in set, 1 warning (0.00 sec)mysql> SELECT * FROM app_user WHERE name = '用戶9999'; 1 row in set (0.00 sec)mysql> SELECT * FROM app_user WHERE name = '用戶9999'; 1 row in set (0.00 sec)mysql> SELECT * FROM app_user WHERE name = '用戶9999'; 1 row in set (0.00 sec)

索引準則

  • 索引不是越多越好
  • 不要對經常變動的數據加索引
  • 小數據量的表建議不要加索引
  • 索引一般應加在查找條件的字段

索引的數據結構

-- 我們可以在創建上述索引的時候,為其指定索引類型,分兩類 hash類型的索引:查詢單條快,范圍查詢慢 btree類型的索引:b+樹,層數越多,數據量指數級增長(我們就用它,因為innodb默認支持它)-- 不同的存儲引擎支持的索引類型也不一樣 InnoDB 支持事務,支持行級別鎖定,支持 B-tree、Full-text 等索引,不支持 Hash 索引; MyISAM 不支持事務,支持表級別鎖定,支持 B-tree、Full-text 等索引,不支持 Hash 索引; Memory 不支持事務,支持表級別鎖定,支持 B-tree、Hash 等索引,不支持 Full-text 索引; NDB 支持事務,支持行級別鎖定,支持 Hash 索引,不支持 B-tree、Full-text 等索引; Archive 不支持事務,支持表級別鎖定,不支持 B-tree、Hash、Full-text 等索引;

用戶管理

使用SQLyog 創建用戶,并授予權限演示

基本命令

/* 用戶和權限管理 */ ------------------ 用戶信息表:mysql.user-- 刷新權限 FLUSH PRIVILEGES-- 增加用戶 CREATE USER kuangshen IDENTIFIED BY '123456' CREATE USER 用戶名 IDENTIFIED BY [PASSWORD] 密碼(字符串)- 必須擁有mysql數據庫的全局CREATE USER權限,或擁有INSERT權限。- 只能創建用戶,不能賦予權限。- 用戶名,注意引號:如 'user_name'@'192.168.1.1'- 密碼也需引號,純數字密碼也要加引號- 要在純文本中指定密碼,需忽略PASSWORD關鍵詞。要把密碼指定為由PASSWORD()函數返回的混編值,需包含關鍵字PASSWORD-- 重命名用戶 RENAME USER kuangshen TO kuangshen2 RENAME USER old_user TO new_user-- 設置密碼 SET PASSWORD = PASSWORD('密碼') -- 為當前用戶設置密碼 SET PASSWORD FOR 用戶名 = PASSWORD('密碼') -- 為指定用戶設置密碼-- 刪除用戶 DROP USER kuangshen2 DROP USER 用戶名-- 分配權限/添加用戶 GRANT 權限列表 ON 表名 TO 用戶名 [IDENTIFIED BY [PASSWORD] 'password']- all privileges 表示所有權限- *.* 表示所有庫的所有表- 庫名.表名 表示某庫下面的某表-- 查看權限 SHOW GRANTS FOR root@localhost; SHOW GRANTS FOR 用戶名-- 查看當前用戶權限SHOW GRANTS;SHOW GRANTS FOR CURRENT_USER;SHOW GRANTS FOR CURRENT_USER();-- 撤消權限 REVOKE 權限列表 ON 表名 FROM 用戶名 REVOKE ALL PRIVILEGES, GRANT OPTION FROM 用戶名 -- 撤銷所有權限

權限解釋

-- 權限列表 ALL [PRIVILEGES] -- 設置除GRANT OPTION之外的所有簡單權限 ALTER -- 允許使用ALTER TABLE ALTER ROUTINE -- 更改或取消已存儲的子程序 CREATE -- 允許使用CREATE TABLE CREATE ROUTINE -- 創建已存儲的子程序 CREATE TEMPORARY TABLES -- 允許使用CREATE TEMPORARY TABLE CREATE USER -- 允許使用CREATE USER, DROP USER, RENAME USER和REVOKE ALL PRIVILEGES。 CREATE VIEW -- 允許使用CREATE VIEW DELETE -- 允許使用DELETE DROP -- 允許使用DROP TABLE EXECUTE -- 允許用戶運行已存儲的子程序 FILE -- 允許使用SELECT...INTO OUTFILE和LOAD DATA INFILE INDEX -- 允許使用CREATE INDEX和DROP INDEX INSERT -- 允許使用INSERT LOCK TABLES -- 允許對您擁有SELECT權限的表使用LOCK TABLES PROCESS -- 允許使用SHOW FULL PROCESSLIST REFERENCES -- 未被實施 RELOAD -- 允許使用FLUSH REPLICATION CLIENT -- 允許用戶詢問從屬服務器或主服務器的地址 REPLICATION SLAVE -- 用于復制型從屬服務器(從主服務器中讀取二進制日志事件) SELECT -- 允許使用SELECT SHOW DATABASES -- 顯示所有數據庫 SHOW VIEW -- 允許使用SHOW CREATE VIEW SHUTDOWN -- 允許使用mysqladmin shutdown SUPER -- 允許使用CHANGE MASTER, KILL, PURGE MASTER LOGS和SET GLOBAL語句,mysqladmin debug命令;允許您連接(一次),即使已達到max_connections。 UPDATE -- 允許使用UPDATE USAGE -- “無權限”的同義詞 GRANT OPTION -- 允許授予權限/* 表維護 */-- 分析和存儲表的關鍵字分布 ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE 表名 ... -- 檢查一個或多個表是否有錯誤 CHECK TABLE tbl_name [, tbl_name] ... [option] ... option = {QUICK | FAST | MEDIUM | EXTENDED | CHANGED} -- 整理數據文件的碎片 OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...

MySQL備份

數據庫備份必要性

  • 保證重要數據不丟失
  • 數據轉移

MySQL數據庫備份方法

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-MAXtnHca-1609080184737)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227105652639.png)]

  • mysqldump備份工具
  • 數據庫管理工具,如SQLyog
  • 直接拷貝數據庫文件和相關配置文件

mysqldump客戶端

作用 :

  • 轉儲數據庫
  • 搜集數據庫進行備份
  • 將數據轉移到另一個SQL服務器,不一定是MySQL服務器

-- 導出 1. 導出一張表 -- mysqldump -uroot -p123456 school student >D:/a.sqlmysqldump -u用戶名 -p密碼 庫名 表名 > 文件名(D:/a.sql) 2. 導出多張表 -- mysqldump -uroot -p123456 school student result >D:/a.sqlmysqldump -u用戶名 -p密碼 庫名 表123 > 文件名(D:/a.sql) 3. 導出所有表 -- mysqldump -uroot -p123456 school >D:/a.sqlmysqldump -u用戶名 -p密碼 庫名 > 文件名(D:/a.sql) 4. 導出一個庫 -- mysqldump -uroot -p123456 -B school >D:/a.sqlmysqldump -u用戶名 -p密碼 -B 庫名 > 文件名(D:/a.sql)可以-w攜帶備份條件-- 導入 1. 在登錄mysql的情況下: -- source D:/a.sqlsource 備份文件 2. 在不登錄的情況下mysql -u用戶名 -p密碼 庫名 < 備份文件

規范化數據庫設計

當數據庫比較復雜時我們需要設計數據庫

糟糕的數據庫設計 :

  • 數據冗余,存儲空間浪費
  • 數據更新和插入的異常
  • 程序性能差

良好的數據庫設計 :

  • 節省數據的存儲空間
  • 能夠保證數據的完整性
  • 方便進行數據庫應用系統的開發

軟件項目開發周期中數據庫設計 :

  • 需求分析階段: 分析客戶的業務和數據處理需求
  • 概要設計階段:設計數據庫的E-R模型圖 , 確認需求信息的正確和完整.

設計數據庫步驟

  • 收集信息

    • 與該系統有關人員進行交流 , 座談 , 充分了解用戶需求 , 理解數據庫需要完成的任務.
  • 標識實體[Entity]

    • 標識數據庫要管理的關鍵對象或實體,實體一般是名詞
  • 標識每個實體需要存儲的詳細信息[Attribute]

  • 標識實體之間的關系[Relationship]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-dUs2t4SR-1609080184739)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227113137529.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-s4ALaL5C-1609080184740)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227112023260.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-MT7U9Gbh-1609080184741)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227112054458.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-MFviU8L4-1609080184742)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227112213735.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-YjHsw0Ck-1609080184743)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227112317320.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-QhTvaZUM-1609080184744)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227112518225.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ycNhE0BM-1609080184745)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227112817019.png)]

三大范式

問題 : 為什么需要數據規范化?

不合規范的表設計會導致的問題:

  • 信息重復

  • 更新異常

  • 插入異常

    • 無法正確表示信息
  • 刪除異常

    • 丟失有效信息

三大范式

第一范式 (1st NF)

第一范式的目標是確保每列的原子性,如果每列都是不可再分的最小數據單元,則滿足第一范式

第二范式(2nd NF)

第二范式(2NF)是在第一范式(1NF)的基礎上建立起來的,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。

第二范式要求每個表只描述一件事情

第三范式(3rd NF)

如果一個關系滿足第二范式,并且除了主鍵以外的其他列都不傳遞依賴于主鍵列,則滿足第三范式.

第三范式需要確保數據表中的每一列數據都和主鍵直接相關,而不能間接相關。

規范化和性能的關系

為滿足某種商業目標 , 數據庫性能比規范化數據庫更重要

在數據規范化的同時 , 要綜合考慮數據庫的性能

通過在給定的表中添加額外的字段,以大量減少需要從中搜索信息所需的時間

通過在給定的表中插入計算列,以方便查詢

JDBC(重點)

數據庫驅動

驅動:聲卡,顯卡,數據庫

我們的程序會通過數據庫驅動,和數據庫打交道!

JDBC(對數據庫的統一操作)

SUN 公司為了簡化開發人員的(對數據庫的統一)操作,提供了一個(Java操作數據庫的)規范,JDBC

這些規范的實現由具體的廠商去做

對于開發人員來說,我們只需要掌握JDBC的接口操作即可

java.sql

javax.sql

還需要導入數據庫驅動包mysql-connector-java-5.1.47.jar

第一個JDBC程序

創建測試數據庫

CREATE DATABASE jdbcStudy CHARACTER SET utf8 COLLATE utf8_general_ci; USE jdbcStudy; CREATE TABLE `users`( id INT PRIMARY KEY, NAME VARCHAR(40), PASSWORD VARCHAR(40), email VARCHAR(60), birthday DATE ); INSERT INTO `users`(id,NAME,PASSWORD,email,birthday) VALUES(1,'zhansan','123456','zs@sina.com','1980-12-04'), (2,'lisi','123456','lisi@sina.com','1981-12-04'), (3,'wangwu','123456','wangwu@sina.com','1979-12-04')

1.創建一個普通項目

2.導入數據庫驅動[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ZPhB8UaJ-1609080184746)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227144426267.png)]

能展開才說明能用

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Mp2slIbj-1609080184747)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227144512651.png)]

3.編寫測試代碼

package com.kuang.lesson01; //我的第一個JDBC程序 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class JdbcFirstDemo {public static void main(String[] args) throws Exception {//1. 加載驅動Class.forName("com.mysql.jdbc.Driver");//固定寫法//2. 用戶信息和url//useUnicode=true&characterEncoding=utf8&&useSSL=trueString url ="jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&&useSSL=false";String name = "root";String password = "123456";//3. 連接成功,返回數據庫對象 connection代表數據庫Connection connection= DriverManager.getConnection(url,name,password);//4. 執行SQL的對象 statement 執行SQL的對象Statement statement = connection.createStatement();//5. 執行SQL的對象 去執行SQL 可能存在結果,查看返回結果String sql="SELECT * FROM users";ResultSet resultSet = statement.executeQuery(sql);//返回的結果集,結果集中封裝了我們全部查詢的結果while(resultSet.next()){System.out.println("id+"+resultSet.getObject("id"));System.out.println("name+"+resultSet.getObject("NAME"));System.out.println("password+"+resultSet.getObject("PASSWORD"));System.out.println("email+"+resultSet.getObject("email"));System.out.println("birthday+"+resultSet.getObject("birthday"));}//6. 釋放連接resultSet.close();statement.close();connection.close();} }

步驟總結:
1.加載驅動

2.連接數據庫 DriverManager

3.獲取執行SQL的對象 Statement

4.獲得返回的結果集

5.釋放連接

DriverManager

//DriverManager.registerDriver(new com.mysql.jdbc.Driver()); Class.forName("com.mysql.jdbc.Driver");//固定寫法Connection connection= DriverManager.getConnection(url,name,password); //connection代表數據庫 //數據庫設置自動提交 //事務提交 //事務回滾 connection.rollback(); connection.commit(); connection.setAutoCommit();

URL

String url ="jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&&useSSL=false"; //mysql 默認3306 //協議://主機地址:端口號/數據庫名?參數1&參數2&參數3 //Oracle 1521 //jdbc:oralce:thin:@localhost:1521:sid

statement 執行SQL的對象 pPrepareStatement 執行SQL的對象

String sql="SELECT * FROM users";//編寫Sql statement.executeQuery(); statement.execute();//執行所有,但是效率低 statement.executeUpdate();//更新,插入,刪除,返回一個受影響的行數

ResultSet 查詢的結果集,封裝了所以的查詢結果

獲得指定的數據類型

ResultSet resultSet = statement.executeQuery(sql);//返回的結果集,結果集中封裝了我們全部查詢的結果resultSet.getObject();//在不知道列類型下使用resultSet.getString();//如果知道則指定使用resultSet.getInt();

遍歷,指針

resultSet.next(); //移動到下一個resultSet.afterLast();//移動到最后resultSet.beforeFirst();//移動到最前面resultSet.previous();//移動到前一行resultSet.absolute(row);//移動到指定行

釋放內存

6. 釋放連接resultSet.close();statement.close();connection.close();//耗資源

statement對象

Jdbc中的statement對象用于向數據庫發送SQL語句,想完成對數據庫的增刪改查,只需要通過這個對象向數據庫發送增刪改查語句即可。

Statement對象的executeUpdate方法,用于向數據庫發送增、刪、改的sq|語句, executeUpdate執行完后, 將會返回一個整數(即增刪改語句導致了數據庫幾行數據發生了變化)。

Statement.executeQuery方法用于向數據庫發生查詢語句,executeQuery方法返回代表查詢結果的ResultSet對象。

CRUD操作-create

使用executeUpdate(String sql)方法完成數據添加操作,示例操作:

Statement statement = connection.createStatement();String sql = "insert into user(...) values(...)";int num = statement.executeUpdate(sql);if(num>0){System.out.println("插入成功");}

CRUD操作-delete

使用executeUpdate(String sql)方法完成數據刪除操作,示例操作:

Statement statement = connection.createStatement();String sql = "delete from user where id =1";int num = statement.executeUpdate(sql);if(num>0){System.out.println("刪除成功");}

CURD操作-update

使用executeUpdate(String sql)方法完成數據修改操作,示例操作:

Statement statement = connection.createStatement();String sql = "update user set name ='' where name = ''";int num = statement.executeUpdate(sql);if(num>0){System.out.println("修改成功");}

CURD操作-read

使用executeUpdate(String sql)方法完成數據查詢操作,示例操作:

Statement statement = connection.createStatement();String sql = "select * from user where id =1";ResultSet rs= statement.executeQuery(sql);if(rs.next()){System.out.println("");}

代碼實現

1.提取工具類

package com.kuang.lesson02.utils; import java.io.IOException; import java.io.InputStream; import java.sql.*; import java.util.Properties; public class jdbcUtils {private static String driver = null;private static String url = null;private static String username = null;private static String password = null;static {try{InputStream in = jdbcUtils.class.getClassLoader().getResourceAsStream("db.properties");Properties properties = new Properties();properties.load(in);driver=properties.getProperty("driver");url=properties.getProperty("url");username=properties.getProperty("username");password=properties.getProperty("password");//1.驅動只用加載一次Class.forName(driver);} catch (Exception e) {e.printStackTrace();}}//2.獲取連接public static Connection getConnection() throws Exception{return DriverManager.getConnection(url, username, password);}//3.釋放資源public static void release(Connection conn, Statement st, ResultSet rs) throws SQLException {if(rs!=null){rs.close();}if (st!=null){st.close();}if(conn!=null){conn.close();}} }

必須方法src目錄下

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-bFy3JqKZ-1609080184748)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227153302725.png)]

2.編寫增刪改的方法,exectueUpdate

package com.kuang.lesson02; import com.kuang.lesson02.utils.jdbcUtils;import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement;public class Test01 {public static void main(String[] args) throws SQLException {Connection conn=null;Statement st = null;ResultSet rs =null;try {conn = jdbcUtils.getConnection();//獲取連接st = conn.createStatement();//獲取SQL執行對象String sql = "INSERT INTO users(id,`NAME`,`PASSWORD`,`email`,`birthday`)" +"VALUES(77,'sanjin','123456','233223@qq.com','2020-01-01')";int i = st.executeUpdate(sql);if(i>0){System.out.println("插入成功");}} catch (Exception e) {e.printStackTrace();}finally {jdbcUtils.release(conn,st,rs);}} }

工具類

package com.kuang.lesson02.utils; import java.io.InputStream; import java.sql.*; import java.util.Properties; public class jdbcUtils {private static String driver = null;private static String url = null;private static String username = null;private static String password = null;static {try{InputStream in = jdbcUtils.class.getClassLoader().getResourceAsStream("db.properties");Properties properties = new Properties();properties.load(in);driver=properties.getProperty("driver");url=properties.getProperty("url");username=properties.getProperty("username");password=properties.getProperty("password");//1.驅動只用加載一次Class.forName(driver);} catch (Exception e) {e.printStackTrace();}}//2.獲取連接public static Connection getConnection() throws Exception{return DriverManager.getConnection(url, username, password);}//3.釋放資源public static void release(Connection conn, Statement st, ResultSet rs) throws SQLException {if(rs!=null){rs.close();}if (st!=null){st.close();}if(conn!=null){conn.close();}} }

配置文件(注意沒最后的分號)

driver=com.mysql.jdbc.Driver url =jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=true username = root password = 123456

SQL注入問題

sql存在漏洞,會被攻擊導致數據泄露 SQL會被拼接 or

package com.kuang.lesson02; import com.kuang.lesson02.utils.jdbcUtils; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class SQL注入 {public static void main(String[] args) throws SQLException {//SQL注入login("sanjin","123456"); // login("' or '1=1","123456");}public static void login(String name,String password) throws SQLException {Connection conn =null;Statement st = null;ResultSet rs =null;try {conn = jdbcUtils.getConnection();//獲取連接st = conn.createStatement();//獲取SQL執行對象String sql = "select * from users where `NAME`='"+ name +"' AND `PASSWORD`='"+ password +"'" ;rs=st.executeQuery(sql);//查詢完畢返回結果集while (rs.next()){System.out.println(rs.getString("NAME"));}jdbcUtils.release(conn,st,rs);} catch (Exception e) {e.printStackTrace();}finally {jdbcUtils.release(conn,st,rs);}} }

PreparedStatement對象

PreparedStatement 可以防止SQL注入 ,效率更高。

  • 新增
  • 刪除
  • 更新
  • 查詢
  • [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-EKd8ML8C-1609080184750)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227170521886.png)]

    package com.kuang.lesson03; import com.kuang.lesson02.utils.jdbcUtils;import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class Test01 {public static void main(String[] args) throws SQLException {Connection connection= null;PreparedStatement pstm=null;try {connection = jdbcUtils.getConnection();//區別//使用問好占位符代替參數String sql = "insert into users(id,`NAME`) values(?,?)";pstm = connection.prepareStatement(sql);//預編譯sql,先寫sql然后不執行//手動賦值pstm.setInt(1,6);pstm.setString(2,"SANJIN");//執行int i = pstm.executeUpdate();if (i>0){System.out.println("插入成功");}} catch (Exception e) {e.printStackTrace();}finally {jdbcUtils.release(connection,pstm,null);}} }

    防止SQL注入本質,傳遞字符 帶有“ ”,轉義字符會被轉義

    使用IDEA連接數據庫(lib目錄下有mysql-connect-java…jar)

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-HwgIvCMB-1609080184750)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227185251423.png)]

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-WalrH5lR-1609080184751)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227185501047.png)]

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-xl7gs151-1609080184752)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227185915654.png)]

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-mPXDyp17-1609080184752)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227190700551.png)]

    先執行一條SQL語句,雙擊數據庫才會出現

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-MGhm34W3-1609080184753)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227190930417.png)]

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-JMVCeygR-1609080184755)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227191201321.png)]

    連接成功后,可以選擇數據庫


    雙擊數據庫

    更新數據


    編寫sql代碼的地方

    JDBC事務

    要么都成功,要么都失敗

    ACID原則

    原子性:要么全部完成,要么都不完成

    一致性:結果總數不變

    隔離性:多個進程互不干擾

    持久性:一旦提交不可逆,持久化到數據庫了

    隔離性的問題:

    臟讀: 一個事務讀取了另一個沒有提交的事務

    不可重復讀:在同一個事務內,重復讀取表中的數據,表發生了改變

    虛讀(幻讀):在一個事務內,讀取到了別人插入的數據,導致前后讀出來的結果不一致

    代碼實現

  • 開啟事務conn.setAutoCommit(false);

  • 一組業務執行完畢,提交事務

  • 可以在catch語句中顯示的定義回滾,但是默認失敗會回滾

    package com.kuang.lesson04; import com.kuang.lesson02.utils.jdbcUtils; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class TestTransaction1 {public static void main(String[] args) {Connection conn =null;PreparedStatement ps = null;ResultSet rs = null;try {conn = jdbcUtils.getConnection();//關閉數據庫的自動提交功能, 開啟事conn.setAutoCommit(false);//自動開啟事務String sql = "update account set money = money-500 where id = 1";ps =conn.prepareStatement(sql);ps.executeUpdate();String sql2 = "update account set money = money-500 where id = 2";ps=conn.prepareStatement(sql2);ps.executeUpdate();//業務完畢,提交事務conn.commit();System.out.println("操作成功");} catch (Exception e) {try {//如果失敗,則默認回滾conn.rollback();//如果失敗,回滾} catch (SQLException throwables) {throwables.printStackTrace();}e.printStackTrace();}finally {try {jdbcUtils.release(conn,ps,rs);} catch (SQLException throwables) {throwables.printStackTrace();}}} }
  • 數據庫連接池

    數據庫連接–執行完畢–釋放

    連接–釋放 十分浪費資源

    池化技術: 準備一些預先的資源,過來就連接預先準備好的

    常用連接數 100

    最少連接數:100

    最大連接數 : 120 業務最高承載上限

    排隊等待,

    等待超時:100ms

    編寫連接池,實現一個接口 DateSource

    開源數據源實現(拿來即用)

    DBCP

    C3P0

    Druid: 阿里巴巴

    使用了這些數據庫連接池之后,我們在項目開發中就不需要編寫連接數據庫的代碼了

    DBCP

    需要用到 的jar包

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Jo3dBGrm-1609080184759)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227193656670.png)]

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-HQqGaL0h-1609080184760)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227193822869.png)]

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-XvkXwIf3-1609080184760)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227200134783.png)]

    #連接設置 driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=true username=root password=123456#<!-- 初始化連接 --> initialSize=10#最大連接數量 maxActive=50#<!-- 最大空閑連接 --> maxIdle=20#<!-- 最小空閑連接 --> minIdle=5#<!-- 超時等待時間以毫秒為單位 6000毫秒/1000等于60--> maxWait=60000 #JDBC驅動建立連接時附帶的連接屬性屬性的格式必須為這樣:【屬性名=property;】 #注意:"user""password" 兩個屬性會被明確地傳遞,因此這里不需要包含他們。 connectionProperties=useUnicode=true;characterEncoding=UTF8#指定由連接池所創建的連接的自動提交(auto-commit)狀態。 defaultAutoCommit=true#driver default 指定由連接池所創建的連接的只讀(read-only)狀態。 #如果沒有設置該值,則“setReadOnly”方法將不被調用。(某些驅動并不支持只讀模式,如:Informix) defaultReadOnly=#driver default 指定由連接池所創建的連接的事務級別(TransactionIsolation)。 #可用值為下列之一:(詳情可見javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE defaultTransactionIsolation=READ_UNCOMMITTED

    C3P0

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-WdJF5yxR-1609080184761)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227222517411.png)]

    c3p0數據庫的配置文件: <?xml version="1.0" encoding="UTF-8"?> <c3p0-config><!-- c3p0的缺省(默認)配置 如果在代碼中"ComboPooledDataSource ds=new ComboPooledDataSource();"這樣寫就表示使用的是c3p0的缺省(默認)--> <default-config><property name="driverClass">com.mysql.cj.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://localhost:3306/jdbcstudy?userUnicode=true&characterEncoding=utf8&uesSSL=true&serverTimezone=UTC</property><property name="user">root</property><property name="password">123456</property><property name="acquiredIncrement">5</property><property name="initialPoolSize">10</property><property name="minPoolSize">5</property><property name="maxPoolSize">20</property> </default-config></c3p0-config>

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-R1GQBUeV-1609080184762)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227223309752.png)]

    package com.kuang.lesson05.utils;import org.apache.commons.dbcp.BasicDataSourceFactory;import javax.sql.DataSource; import java.io.InputStream; import java.sql.*; import java.util.Properties; public class JdbcUtilss_C3P0 {private static DataSource dataSource=null;static {try{//創建數據源 工廠模式dataSource = new ComboPoolDataSource("MySQL");} catch (Exception e) {e.printStackTrace();}}//2.獲取連接public static Connection getConnection() throws Exception{return dataSource.getConnection();}//3.釋放資源public static void release(Connection conn, Statement st, ResultSet rs) throws SQLException {if(rs!=null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (st!=null){try {st.close();} catch (SQLException e) {e.printStackTrace();}}if(conn!=null){try {conn.close();} catch (SQLException e) {e.printStackTrace();}}} }

    結論

    無論使用什么數據源,本質是不變的,DateSource接口不會變,方法就不會變

    總結

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

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

    成人性做爰aaa片免费看 | 丰满人妻被黑人猛烈进入 | 久久亚洲日韩精品一区二区三区 | 国产在线无码精品电影网 | 学生妹亚洲一区二区 | 精品国产一区二区三区av 性色 | 女高中生第一次破苞av | 中文字幕无码免费久久9一区9 | 无码吃奶揉捏奶头高潮视频 | 亚洲国产精品久久人人爱 | 红桃av一区二区三区在线无码av | 亚洲精品鲁一鲁一区二区三区 | 男女下面进入的视频免费午夜 | 久久久久se色偷偷亚洲精品av | 国产成人精品无码播放 | 夜先锋av资源网站 | 欧美黑人性暴力猛交喷水 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 久久人妻内射无码一区三区 | 亚洲自偷自偷在线制服 | 亚洲精品一区二区三区婷婷月 | 无码帝国www无码专区色综合 | √8天堂资源地址中文在线 | 又湿又紧又大又爽a视频国产 | 十八禁视频网站在线观看 | 在线精品国产一区二区三区 | 国产精品久久久久久亚洲影视内衣 | 俺去俺来也在线www色官网 | 狠狠色丁香久久婷婷综合五月 | 人妻体内射精一区二区三四 | 欧美丰满少妇xxxx性 | 中文字幕无码免费久久9一区9 | 国产亚洲精品精品国产亚洲综合 | 国产av人人夜夜澡人人爽麻豆 | 狠狠噜狠狠狠狠丁香五月 | 无遮无挡爽爽免费视频 | 蜜桃av抽搐高潮一区二区 | 在线精品亚洲一区二区 | 无码吃奶揉捏奶头高潮视频 | 狂野欧美激情性xxxx | 国产精品丝袜黑色高跟鞋 | 少妇久久久久久人妻无码 | 中文字幕人妻无码一夲道 | 无码精品人妻一区二区三区av | 国产口爆吞精在线视频 | a国产一区二区免费入口 | 一本久道高清无码视频 | 婷婷色婷婷开心五月四房播播 | 激情五月综合色婷婷一区二区 | 女人被男人爽到呻吟的视频 | 荫蒂被男人添的好舒服爽免费视频 | 国产亚洲人成在线播放 | 伊人久久婷婷五月综合97色 | 国产精品久久久久久亚洲毛片 | 无码人中文字幕 | 精品少妇爆乳无码av无码专区 | 亚洲精品一区三区三区在线观看 | 亚洲精品中文字幕久久久久 | 婷婷综合久久中文字幕蜜桃三电影 | 欧美丰满老熟妇xxxxx性 | 精品国产av色一区二区深夜久久 | 国产在线精品一区二区三区直播 | 草草网站影院白丝内射 | 一本精品99久久精品77 | 色婷婷欧美在线播放内射 | 亚洲精品成a人在线观看 | 天堂亚洲2017在线观看 | 天天躁日日躁狠狠躁免费麻豆 | 欧美丰满熟妇xxxx | 久青草影院在线观看国产 | 免费观看激色视频网站 | 亚洲国产综合无码一区 | 久久97精品久久久久久久不卡 | 国产成人午夜福利在线播放 | 国产欧美亚洲精品a | 欧美熟妇另类久久久久久多毛 | 成人片黄网站色大片免费观看 | 国产精品无码成人午夜电影 | 日本成熟视频免费视频 | 东京热一精品无码av | 色爱情人网站 | 蜜桃无码一区二区三区 | 日韩在线不卡免费视频一区 | 18精品久久久无码午夜福利 | 无码中文字幕色专区 | 日韩人妻少妇一区二区三区 | 未满小14洗澡无码视频网站 | 亚洲理论电影在线观看 | www国产精品内射老师 | 亚洲人亚洲人成电影网站色 | 黑人巨大精品欧美黑寡妇 | 欧美激情综合亚洲一二区 | 少妇人妻偷人精品无码视频 | 色 综合 欧美 亚洲 国产 | 99精品国产综合久久久久五月天 | 亚洲人交乣女bbw | 国产乱人偷精品人妻a片 | 男女爱爱好爽视频免费看 | 亚洲精品一区二区三区婷婷月 | 国产偷国产偷精品高清尤物 | 一区二区三区乱码在线 | 欧洲 | 久青草影院在线观看国产 | 在线а√天堂中文官网 | 亚洲精品国产第一综合99久久 | 精品偷拍一区二区三区在线看 | 亚洲精品国产精品乱码视色 | 国产成人久久精品流白浆 | 国产成人无码区免费内射一片色欲 | 国产成人人人97超碰超爽8 | 国产亚洲欧美在线专区 | 色婷婷综合中文久久一本 | 国产av久久久久精东av | 人人妻人人澡人人爽人人精品浪潮 | 2019午夜福利不卡片在线 | 亚洲成a人片在线观看无码 | 东京热一精品无码av | 久久国产精品精品国产色婷婷 | 国产精品美女久久久网av | 国产精品二区一区二区aⅴ污介绍 | 少妇久久久久久人妻无码 | 99riav国产精品视频 | 天干天干啦夜天干天2017 | 麻豆蜜桃av蜜臀av色欲av | 免费无码av一区二区 | av小次郎收藏 | 国产亚洲精品久久久ai换 | 国产精品沙发午睡系列 | 亚洲中文字幕无码中文字在线 | 内射后入在线观看一区 | 蜜桃无码一区二区三区 | 国产无遮挡吃胸膜奶免费看 | 中文字幕av日韩精品一区二区 | 国产97色在线 | 免 | 午夜丰满少妇性开放视频 | 国产精品人妻一区二区三区四 | 99久久亚洲精品无码毛片 | 国产精品高潮呻吟av久久4虎 | 少妇无码av无码专区在线观看 | 欧美丰满熟妇xxxx性ppx人交 | 天天摸天天碰天天添 | 亚洲精品欧美二区三区中文字幕 | 国产在线无码精品电影网 | 97夜夜澡人人爽人人喊中国片 | 内射爽无广熟女亚洲 | 少妇久久久久久人妻无码 | 又大又黄又粗又爽的免费视频 | 天堂久久天堂av色综合 | 久久伊人色av天堂九九小黄鸭 | a片在线免费观看 | 国产人妻人伦精品1国产丝袜 | 精品无人区无码乱码毛片国产 | 无码人妻久久一区二区三区不卡 | 欧美国产日韩亚洲中文 | 成 人 网 站国产免费观看 | 亚洲中文无码av永久不收费 | 特黄特色大片免费播放器图片 | 亚洲熟妇色xxxxx欧美老妇y | 狠狠噜狠狠狠狠丁香五月 | 日本大乳高潮视频在线观看 | 亚洲国产欧美国产综合一区 | 亚洲熟女一区二区三区 | 久久久亚洲欧洲日产国码αv | 无码中文字幕色专区 | 成人精品一区二区三区中文字幕 | 午夜精品久久久久久久 | 无码人妻av免费一区二区三区 | 女人被爽到呻吟gif动态图视看 | 3d动漫精品啪啪一区二区中 | 成人欧美一区二区三区黑人免费 | 精品一区二区三区波多野结衣 | 荡女精品导航 | 亚洲人成影院在线观看 | 暴力强奷在线播放无码 | 成人av无码一区二区三区 | 亚洲 欧美 激情 小说 另类 | 亚洲自偷自偷在线制服 | 亚洲综合另类小说色区 | 理论片87福利理论电影 | 麻豆蜜桃av蜜臀av色欲av | 中文毛片无遮挡高清免费 | 成 人影片 免费观看 | 76少妇精品导航 | 最近免费中文字幕中文高清百度 | 曰韩少妇内射免费播放 | 2020久久香蕉国产线看观看 | 久久人人爽人人人人片 | 成人精品一区二区三区中文字幕 | 天天躁日日躁狠狠躁免费麻豆 | 久久精品国产一区二区三区肥胖 | 国产无套粉嫩白浆在线 | 亚洲欧美国产精品专区久久 | 久久精品丝袜高跟鞋 | 日本一卡二卡不卡视频查询 | 国产69精品久久久久app下载 | 亚洲国产欧美日韩精品一区二区三区 | 久久午夜无码鲁丝片 | 欧美肥老太牲交大战 | 国产午夜视频在线观看 | 亚洲伊人久久精品影院 | 国产亚洲精品久久久闺蜜 | 国産精品久久久久久久 | 欧美变态另类xxxx | 未满成年国产在线观看 | 久久天天躁狠狠躁夜夜免费观看 | 国产人成高清在线视频99最全资源 | 无码吃奶揉捏奶头高潮视频 | 成人无码精品1区2区3区免费看 | 欧美国产日产一区二区 | 国模大胆一区二区三区 | 午夜精品久久久内射近拍高清 | 一本色道久久综合亚洲精品不卡 | 国产国语老龄妇女a片 | 美女黄网站人色视频免费国产 | 国产精品久久久av久久久 | 久久人人97超碰a片精品 | 亚洲va欧美va天堂v国产综合 | 亚洲精品中文字幕久久久久 | 中文字幕无线码免费人妻 | 丝袜人妻一区二区三区 | 精品无码国产自产拍在线观看蜜 | 无码人妻精品一区二区三区下载 | 无码人妻出轨黑人中文字幕 | 水蜜桃av无码 | 麻豆人妻少妇精品无码专区 | 国产精品美女久久久网av | 亚洲综合无码一区二区三区 | 色婷婷久久一区二区三区麻豆 | 国产精品爱久久久久久久 | 国内老熟妇对白xxxxhd | 国产熟女一区二区三区四区五区 | 国产人妻精品一区二区三区 | 免费无码一区二区三区蜜桃大 | 亚洲欧美日韩综合久久久 | 国产精品人妻一区二区三区四 | 亚洲成在人网站无码天堂 | 亚洲精品无码人妻无码 | 色情久久久av熟女人妻网站 | 国产成人无码av一区二区 | 亚洲色偷偷偷综合网 | 粗大的内捧猛烈进出视频 | 午夜无码区在线观看 | 少妇被粗大的猛进出69影院 | 300部国产真实乱 | 亚洲狠狠婷婷综合久久 | 欧美日韩综合一区二区三区 | 无套内谢的新婚少妇国语播放 | 狂野欧美激情性xxxx | 成人无码影片精品久久久 | 成人影院yy111111在线观看 | 无码精品人妻一区二区三区av | 人人澡人人妻人人爽人人蜜桃 | 精品偷拍一区二区三区在线看 | 国产精品久久久久久亚洲影视内衣 | 国产精品对白交换视频 | 一本久久a久久精品vr综合 | 亚洲狠狠婷婷综合久久 | 精品午夜福利在线观看 | 无人区乱码一区二区三区 | 无码人妻精品一区二区三区不卡 | 色综合久久久无码网中文 | 国产精品无码永久免费888 | 午夜丰满少妇性开放视频 | 久久久精品成人免费观看 | 久久久精品456亚洲影院 | 99精品国产综合久久久久五月天 | 国产亚洲精品久久久久久大师 | 欧美激情综合亚洲一二区 | 老司机亚洲精品影院 | 中文字幕色婷婷在线视频 | 国产国产精品人在线视 | 久久久久国色av免费观看性色 | 99久久久无码国产精品免费 | 国产精品成人av在线观看 | 三级4级全黄60分钟 | 亚洲中文字幕乱码av波多ji | 久久国产精品偷任你爽任你 | 少妇人妻偷人精品无码视频 | 人妻天天爽夜夜爽一区二区 | 亚洲色无码一区二区三区 | 熟女俱乐部五十路六十路av | 久久国产精品二国产精品 | 久久久久久久久888 | 国产无套粉嫩白浆在线 | 国产精品亚洲а∨无码播放麻豆 | 成年美女黄网站色大免费全看 | 妺妺窝人体色www在线小说 | 丰满妇女强制高潮18xxxx | 精品国产青草久久久久福利 | 久久久精品人妻久久影视 | 久久久成人毛片无码 | 亚洲国产精品美女久久久久 | 一本一道久久综合久久 | 国产内射爽爽大片视频社区在线 | 亚洲日本一区二区三区在线 | 一本无码人妻在中文字幕免费 | 欧美人与禽猛交狂配 | 日韩精品无码一本二本三本色 | 少妇厨房愉情理9仑片视频 | 国产特级毛片aaaaaaa高清 | 牛和人交xxxx欧美 | 久久天天躁夜夜躁狠狠 | 日韩人妻少妇一区二区三区 | 强开小婷嫩苞又嫩又紧视频 | 国产麻豆精品精东影业av网站 | 久久久国产一区二区三区 | 女人被男人躁得好爽免费视频 | 人妻无码久久精品人妻 | 秋霞成人午夜鲁丝一区二区三区 | 国产亚洲日韩欧美另类第八页 | 中文久久乱码一区二区 | 性生交片免费无码看人 | 男女爱爱好爽视频免费看 | yw尤物av无码国产在线观看 | 高潮毛片无遮挡高清免费视频 | 图片区 小说区 区 亚洲五月 | 国产午夜手机精彩视频 | 少妇被黑人到高潮喷出白浆 | 国产av剧情md精品麻豆 | 国产成人综合在线女婷五月99播放 | 波多野结衣av在线观看 | 国产精品无码一区二区桃花视频 | 一个人看的www免费视频在线观看 | 日本熟妇大屁股人妻 | 欧美日韩人成综合在线播放 | 亚洲爆乳精品无码一区二区三区 | 国产亚洲欧美在线专区 | 夜夜影院未满十八勿进 | 亚洲va中文字幕无码久久不卡 | 亚洲一区二区三区在线观看网站 | 久久亚洲精品成人无码 | 国产精品美女久久久网av | 国产三级久久久精品麻豆三级 | 中文字幕乱码人妻二区三区 | 1000部啪啪未满十八勿入下载 | 国产亚洲tv在线观看 | 亚洲中文无码av永久不收费 | 亚洲一区二区三区含羞草 | 日日摸天天摸爽爽狠狠97 | 2020最新国产自产精品 | 强开小婷嫩苞又嫩又紧视频 | 99久久婷婷国产综合精品青草免费 | 日本精品少妇一区二区三区 | 97无码免费人妻超级碰碰夜夜 | 水蜜桃色314在线观看 | 欧美xxxx黑人又粗又长 | 久久人人爽人人爽人人片av高清 | 亲嘴扒胸摸屁股激烈网站 | 国产色xx群视频射精 | 欧美怡红院免费全部视频 | 天天摸天天碰天天添 | 久久99精品久久久久久 | 久久久婷婷五月亚洲97号色 | 中文字幕乱妇无码av在线 | 久久综合狠狠综合久久综合88 | 久久伊人色av天堂九九小黄鸭 | 又色又爽又黄的美女裸体网站 | 久久人人爽人人爽人人片av高清 | av无码电影一区二区三区 | 亚洲一区二区三区偷拍女厕 | 国产精品久久久久无码av色戒 | 婷婷五月综合缴情在线视频 | 亚洲国产精品无码一区二区三区 | 成年美女黄网站色大免费全看 | 久久亚洲日韩精品一区二区三区 | 曰韩无码二三区中文字幕 | 国产在热线精品视频 | 婷婷丁香五月天综合东京热 | 国产超碰人人爽人人做人人添 | 中文字幕乱妇无码av在线 | 欧美性生交xxxxx久久久 | 又粗又大又硬又长又爽 | 伊在人天堂亚洲香蕉精品区 | 国产精品va在线观看无码 | 国产精品对白交换视频 | 女人被男人躁得好爽免费视频 | 久久亚洲精品中文字幕无男同 | 性啪啪chinese东北女人 | 国产情侣作爱视频免费观看 | 欧美丰满熟妇xxxx性ppx人交 | 国产精品嫩草久久久久 | 老太婆性杂交欧美肥老太 | 天堂无码人妻精品一区二区三区 | 国产人妻精品午夜福利免费 | 成年美女黄网站色大免费视频 | 久久精品国产精品国产精品污 | 999久久久国产精品消防器材 | 国产成人人人97超碰超爽8 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 九月婷婷人人澡人人添人人爽 | 性欧美牲交xxxxx视频 | 国产成人人人97超碰超爽8 | 国产精品-区区久久久狼 | 高中生自慰www网站 | аⅴ资源天堂资源库在线 | 综合人妻久久一区二区精品 | 1000部啪啪未满十八勿入下载 | 天天av天天av天天透 | 日韩 欧美 动漫 国产 制服 | 少妇人妻大乳在线视频 | 装睡被陌生人摸出水好爽 | 国产精品久久久久影院嫩草 | 日韩欧美成人免费观看 | 成人欧美一区二区三区黑人 | 中文字幕无码免费久久9一区9 | 久久综合香蕉国产蜜臀av | 中文精品久久久久人妻不卡 | 久久精品99久久香蕉国产色戒 | 久久综合激激的五月天 | 97久久超碰中文字幕 | √8天堂资源地址中文在线 | 国产精品igao视频网 | 国内老熟妇对白xxxxhd | 亚洲の无码国产の无码步美 | 日韩精品a片一区二区三区妖精 | 亚洲综合久久一区二区 | 麻豆av传媒蜜桃天美传媒 | 久久综合狠狠综合久久综合88 | 无遮挡啪啪摇乳动态图 | 精品人妻人人做人人爽夜夜爽 | 丝袜人妻一区二区三区 | 亚洲码国产精品高潮在线 | 亚洲综合精品香蕉久久网 | 亚洲色欲色欲天天天www | 欧美人与禽猛交狂配 | 特级做a爰片毛片免费69 | 免费无码一区二区三区蜜桃大 | 无码av免费一区二区三区试看 | 国产精品亚洲专区无码不卡 | 九九热爱视频精品 | 欧美国产亚洲日韩在线二区 | 亚洲a无码综合a国产av中文 | 国产精品高潮呻吟av久久4虎 | 国内揄拍国内精品少妇国语 | 国产福利视频一区二区 | 99久久久无码国产aaa精品 | 久久久精品国产sm最大网站 | 精品乱码久久久久久久 | 午夜精品久久久久久久久 | 一本久久伊人热热精品中文字幕 | 成熟妇人a片免费看网站 | 亚洲人成网站在线播放942 | 国产超碰人人爽人人做人人添 | 亚洲综合伊人久久大杳蕉 | 偷窥村妇洗澡毛毛多 | 亚洲精品www久久久 | 无码人妻精品一区二区三区下载 | 人妻与老人中文字幕 | 激情五月综合色婷婷一区二区 | 亚洲中文字幕在线无码一区二区 | 丁香花在线影院观看在线播放 | 俺去俺来也www色官网 | 98国产精品综合一区二区三区 | 日本一卡2卡3卡四卡精品网站 | 黑人粗大猛烈进出高潮视频 | 国产精品久久久久影院嫩草 | 爆乳一区二区三区无码 | 丰满人妻被黑人猛烈进入 | 爆乳一区二区三区无码 | 亚洲熟妇色xxxxx亚洲 | 欧美人与禽zoz0性伦交 | 成在人线av无码免观看麻豆 | 九九久久精品国产免费看小说 | 亚洲色大成网站www国产 | 免费男性肉肉影院 | 欧美大屁股xxxxhd黑色 | 亚洲中文字幕在线无码一区二区 | 亚洲欧美日韩综合久久久 | 熟妇人妻激情偷爽文 | 国产亚洲精品久久久久久 | 东京热男人av天堂 | 欧美乱妇无乱码大黄a片 | 国产莉萝无码av在线播放 | 亚洲精品美女久久久久久久 | 亚洲熟悉妇女xxx妇女av | 精品久久综合1区2区3区激情 | 日本肉体xxxx裸交 | 夜夜高潮次次欢爽av女 | 熟妇激情内射com | 在线观看欧美一区二区三区 | 精品少妇爆乳无码av无码专区 | 亚洲日韩av一区二区三区中文 | 人人妻在人人 | 国内精品一区二区三区不卡 | 成 人 网 站国产免费观看 | 野外少妇愉情中文字幕 | а天堂中文在线官网 | 欧美兽交xxxx×视频 | 久久人妻内射无码一区三区 | 成人免费视频在线观看 | 日本熟妇大屁股人妻 | 奇米影视7777久久精品人人爽 | 精品欧洲av无码一区二区三区 | 国产综合色产在线精品 | 久久视频在线观看精品 | 亚洲а∨天堂久久精品2021 | 亚洲男人av天堂午夜在 | 欧美自拍另类欧美综合图片区 | 国产热a欧美热a在线视频 | 亚洲男人av天堂午夜在 | 少女韩国电视剧在线观看完整 | 久久99精品久久久久久动态图 | 精品国产aⅴ无码一区二区 | 又大又紧又粉嫩18p少妇 | 极品嫩模高潮叫床 | 国产av一区二区三区最新精品 | 国产三级精品三级男人的天堂 | 女人被男人躁得好爽免费视频 | 综合人妻久久一区二区精品 | 亚洲国产欧美在线成人 | 在线精品亚洲一区二区 | 黑人巨大精品欧美一区二区 | 黑人大群体交免费视频 | 一区二区三区乱码在线 | 欧洲 | 荫蒂被男人添的好舒服爽免费视频 | 欧美国产亚洲日韩在线二区 | 色综合天天综合狠狠爱 | 国产乡下妇女做爰 | 久久亚洲精品成人无码 | 日本肉体xxxx裸交 | 少妇高潮一区二区三区99 | 久久久久av无码免费网 | 日韩欧美成人免费观看 | 欧美放荡的少妇 | 大乳丰满人妻中文字幕日本 | 人人妻人人澡人人爽欧美一区 | 全球成人中文在线 | 亚洲经典千人经典日产 | 国产猛烈高潮尖叫视频免费 | 蜜桃av抽搐高潮一区二区 | 久久无码中文字幕免费影院蜜桃 | 国语精品一区二区三区 | 天堂一区人妻无码 | 99国产欧美久久久精品 | 成人综合网亚洲伊人 | 精品一区二区三区波多野结衣 | 宝宝好涨水快流出来免费视频 | 亚洲精品久久久久中文第一幕 | 国内精品久久毛片一区二区 | 嫩b人妻精品一区二区三区 | 免费观看的无遮挡av | 性欧美牲交xxxxx视频 | 国产精品无套呻吟在线 | 久久久亚洲欧洲日产国码αv | 中文字幕无码视频专区 | aⅴ在线视频男人的天堂 | 国产色在线 | 国产 | www国产精品内射老师 | 在教室伦流澡到高潮hnp视频 | 在教室伦流澡到高潮hnp视频 | 午夜福利试看120秒体验区 | 一本色道久久综合亚洲精品不卡 | 一本久久伊人热热精品中文字幕 | 国产色在线 | 国产 | 日韩精品a片一区二区三区妖精 | 永久免费观看美女裸体的网站 | 久久99精品国产麻豆蜜芽 | 麻豆精品国产精华精华液好用吗 | 初尝人妻少妇中文字幕 | 亚洲综合无码久久精品综合 | 色一情一乱一伦一区二区三欧美 | 午夜精品一区二区三区在线观看 | 全黄性性激高免费视频 | 真人与拘做受免费视频一 | 少妇性荡欲午夜性开放视频剧场 | 国产精品人人爽人人做我的可爱 | 成人一在线视频日韩国产 | 日产精品99久久久久久 | 国产明星裸体无码xxxx视频 | 纯爱无遮挡h肉动漫在线播放 | 内射白嫩少妇超碰 | 午夜精品一区二区三区的区别 | 久久亚洲日韩精品一区二区三区 | 国产高清av在线播放 | 日本精品高清一区二区 | 亚洲日韩精品欧美一区二区 | 九九久久精品国产免费看小说 | 狠狠亚洲超碰狼人久久 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 搡女人真爽免费视频大全 | 无码精品人妻一区二区三区av | 5858s亚洲色大成网站www | 国产激情综合五月久久 | 久久久久成人片免费观看蜜芽 | 国产在线一区二区三区四区五区 | 国产极品视觉盛宴 | 色综合久久网 | 成人片黄网站色大片免费观看 | 99久久99久久免费精品蜜桃 | 中文字幕亚洲情99在线 | 午夜成人1000部免费视频 | 中文字幕乱码人妻二区三区 | 亚洲精品一区二区三区四区五区 | 国产在线一区二区三区四区五区 | 国产精品18久久久久久麻辣 | 亚洲精品久久久久久一区二区 | 日韩精品成人一区二区三区 | 久久zyz资源站无码中文动漫 | 精品国产乱码久久久久乱码 | 国产做国产爱免费视频 | 国产乱人偷精品人妻a片 | 特级做a爰片毛片免费69 | 天堂亚洲免费视频 | 国产精品久久精品三级 | 人妻体内射精一区二区三四 | 在线a亚洲视频播放在线观看 | 久久99久久99精品中文字幕 | 日本熟妇人妻xxxxx人hd | 美女极度色诱视频国产 | 久久久久久a亚洲欧洲av冫 | 又大又黄又粗又爽的免费视频 | 少妇性l交大片欧洲热妇乱xxx | 少妇愉情理伦片bd | 亚洲另类伦春色综合小说 | 亚洲中文字幕在线无码一区二区 | 曰韩少妇内射免费播放 | 国产精品亚洲а∨无码播放麻豆 | 97色伦图片97综合影院 | aⅴ在线视频男人的天堂 | 曰韩无码二三区中文字幕 | 动漫av一区二区在线观看 | 欧美猛少妇色xxxxx | 亚洲小说图区综合在线 | 国产人妻精品一区二区三区 | 乱人伦中文视频在线观看 | 国产免费观看黄av片 | 亚洲精品无码人妻无码 | 国产成人精品一区二区在线小狼 | 无码播放一区二区三区 | 亚洲精品综合五月久久小说 | 欧美zoozzooz性欧美 | 扒开双腿疯狂进出爽爽爽视频 | 婷婷色婷婷开心五月四房播播 | 色一情一乱一伦一区二区三欧美 | 亚洲最大成人网站 | 精品aⅴ一区二区三区 | 国产在线aaa片一区二区99 | 内射后入在线观看一区 | 婷婷综合久久中文字幕蜜桃三电影 | 女高中生第一次破苞av | 成人欧美一区二区三区黑人免费 | 天堂无码人妻精品一区二区三区 | 荫蒂添的好舒服视频囗交 | 国产精品久久久久久久9999 | 东京热无码av男人的天堂 | 中文字幕日产无线码一区 | 久久天天躁狠狠躁夜夜免费观看 | 人妻插b视频一区二区三区 | 婷婷综合久久中文字幕蜜桃三电影 | 亚洲精品一区二区三区在线观看 | 老太婆性杂交欧美肥老太 | 欧美人与牲动交xxxx | 亚洲一区二区观看播放 | 午夜无码人妻av大片色欲 | 国产精品成人av在线观看 | 国产亚洲人成a在线v网站 | 欧洲美熟女乱又伦 | 国产精品久久久久久久9999 | aⅴ在线视频男人的天堂 | 亚洲国产精品无码一区二区三区 | 亚洲国产精品一区二区美利坚 | 亚洲 a v无 码免 费 成 人 a v | 亚洲精品一区二区三区四区五区 | 国产无遮挡吃胸膜奶免费看 | 大色综合色综合网站 | 国产精品亚洲综合色区韩国 | 六十路熟妇乱子伦 | 玩弄中年熟妇正在播放 | 一本一道久久综合久久 | 人妻与老人中文字幕 | 国产香蕉97碰碰久久人人 | a在线观看免费网站大全 | 亚洲综合色区中文字幕 | 欧美真人作爱免费视频 | 国精品人妻无码一区二区三区蜜柚 | 色婷婷欧美在线播放内射 | 18无码粉嫩小泬无套在线观看 | 久久国产精品偷任你爽任你 | 性做久久久久久久久 | 亚洲国产欧美在线成人 | 鲁鲁鲁爽爽爽在线视频观看 | 久久精品国产日本波多野结衣 | 国产精品a成v人在线播放 | 在线看片无码永久免费视频 | 日韩精品乱码av一区二区 | 无码人妻精品一区二区三区下载 | 波多野结衣高清一区二区三区 | 领导边摸边吃奶边做爽在线观看 | 久久国产36精品色熟妇 | √8天堂资源地址中文在线 | 国产真人无遮挡作爱免费视频 | 九一九色国产 | 亚洲精品无码人妻无码 | 人妻无码αv中文字幕久久琪琪布 | 成 人影片 免费观看 | 男人和女人高潮免费网站 | 人人妻人人澡人人爽人人精品 | 国产成人无码一二三区视频 | 亚洲 欧美 激情 小说 另类 | 日本精品人妻无码77777 天堂一区人妻无码 | 国产精品久免费的黄网站 | 欧美三级a做爰在线观看 | 老司机亚洲精品影院无码 | 欧美刺激性大交 | 亚洲日韩乱码中文无码蜜桃臀网站 | 特黄特色大片免费播放器图片 | 久久久久久久人妻无码中文字幕爆 | 国产肉丝袜在线观看 | 午夜男女很黄的视频 | 人妻aⅴ无码一区二区三区 | 国产人妻精品一区二区三区 | 1000部夫妻午夜免费 | 亚洲成av人影院在线观看 | 国产高潮视频在线观看 | 无套内射视频囯产 | 亚洲高清偷拍一区二区三区 | 久久国产自偷自偷免费一区调 | 99久久精品国产一区二区蜜芽 | 国产成人一区二区三区在线观看 | 秋霞成人午夜鲁丝一区二区三区 | 天堂а√在线中文在线 | 欧美高清在线精品一区 | 人妻有码中文字幕在线 | 精品日本一区二区三区在线观看 | 国产熟女一区二区三区四区五区 | 成人精品视频一区二区 | 狠狠综合久久久久综合网 | 成人欧美一区二区三区黑人免费 | 亚洲精品国偷拍自产在线麻豆 | 黑森林福利视频导航 | 一本色道久久综合亚洲精品不卡 | 国语自产偷拍精品视频偷 | 色综合久久久无码网中文 | 亚洲日本va午夜在线电影 | 日本精品少妇一区二区三区 | 老熟妇乱子伦牲交视频 | 人妻无码久久精品人妻 | 久久精品国产一区二区三区肥胖 | 精品偷拍一区二区三区在线看 | 无码人妻久久一区二区三区不卡 | 中文字幕无码人妻少妇免费 | 免费播放一区二区三区 | 欧美放荡的少妇 | 国产色视频一区二区三区 | 狠狠综合久久久久综合网 | 免费无码一区二区三区蜜桃大 | 亚洲精品中文字幕久久久久 | 精品人妻人人做人人爽 | 无码人妻出轨黑人中文字幕 | 在线观看免费人成视频 | 5858s亚洲色大成网站www | 日韩视频 中文字幕 视频一区 | 老司机亚洲精品影院 | 天天摸天天透天天添 | 国产无套粉嫩白浆在线 | 欧美性猛交内射兽交老熟妇 | 学生妹亚洲一区二区 | 无码任你躁久久久久久久 | 色一情一乱一伦一视频免费看 | 99久久亚洲精品无码毛片 | 国产精品久久国产精品99 | 国产亚洲欧美日韩亚洲中文色 | 久久国产精品萌白酱免费 | 少妇的肉体aa片免费 | 高潮毛片无遮挡高清免费 | 天天躁日日躁狠狠躁免费麻豆 | 国产精品99爱免费视频 | 亚洲欧美精品aaaaaa片 | 精品偷拍一区二区三区在线看 | 激情内射日本一区二区三区 | 国产精品第一区揄拍无码 | 日韩精品无码免费一区二区三区 | 精品国偷自产在线视频 | 亚洲 欧美 激情 小说 另类 | 亚洲成色在线综合网站 | 久久天天躁夜夜躁狠狠 | 啦啦啦www在线观看免费视频 | 亚洲综合无码久久精品综合 | 久久精品国产亚洲精品 | 欧美肥老太牲交大战 | 未满小14洗澡无码视频网站 | 欧美日韩一区二区综合 | 精品一二三区久久aaa片 | 人妻无码αv中文字幕久久琪琪布 | 日韩人妻无码中文字幕视频 | 亚洲日本va午夜在线电影 | 男人和女人高潮免费网站 | 国产精品久久久久影院嫩草 | 国产口爆吞精在线视频 | 奇米影视888欧美在线观看 | 精品欧洲av无码一区二区三区 | 国产精品无码成人午夜电影 | 人人超人人超碰超国产 | 亚洲色www成人永久网址 | 无码国产激情在线观看 | 日韩精品无码一本二本三本色 | 久久人人爽人人爽人人片av高清 | 无码成人精品区在线观看 | 日韩精品a片一区二区三区妖精 | 黑人玩弄人妻中文在线 | 牲欲强的熟妇农村老妇女 | 成熟女人特级毛片www免费 | 国产无套粉嫩白浆在线 | 玩弄人妻少妇500系列视频 | 一本色道婷婷久久欧美 | 国产精品美女久久久久av爽李琼 | 成人一区二区免费视频 | 国产无遮挡又黄又爽免费视频 | 欧美性猛交内射兽交老熟妇 | 国内揄拍国内精品少妇国语 | 99久久人妻精品免费二区 | 美女扒开屁股让男人桶 | 麻豆国产97在线 | 欧洲 | 国产在线一区二区三区四区五区 | 国产美女极度色诱视频www | 色婷婷香蕉在线一区二区 | 亚洲自偷自拍另类第1页 | 国模大胆一区二区三区 | 国产va免费精品观看 | 超碰97人人做人人爱少妇 | aⅴ亚洲 日韩 色 图网站 播放 | 成熟女人特级毛片www免费 | 日本乱偷人妻中文字幕 | 男女下面进入的视频免费午夜 | 久久天天躁狠狠躁夜夜免费观看 | 精品乱码久久久久久久 | 国语精品一区二区三区 | 国产精品无码一区二区桃花视频 | 大地资源网第二页免费观看 | 亚洲一区二区三区国产精华液 | 亚洲高清偷拍一区二区三区 | 久久国产36精品色熟妇 | www国产亚洲精品久久久日本 | 蜜桃视频插满18在线观看 | 男人和女人高潮免费网站 | 国产尤物精品视频 | 乱码午夜-极国产极内射 | 亚洲精品无码国产 | 国产人妻人伦精品 | 国产美女精品一区二区三区 | 在线播放无码字幕亚洲 | 亚洲国产精品一区二区美利坚 | 久久久久亚洲精品男人的天堂 | 牲欲强的熟妇农村老妇女 | 丁香啪啪综合成人亚洲 | 亚洲天堂2017无码中文 | 欧美 日韩 人妻 高清 中文 | 无码人妻少妇伦在线电影 | 在线а√天堂中文官网 | 久久精品中文字幕一区 | 色欲综合久久中文字幕网 | 亚洲欧美日韩国产精品一区二区 | 真人与拘做受免费视频 | www国产精品内射老师 | 97久久超碰中文字幕 | 国内精品一区二区三区不卡 | 色噜噜亚洲男人的天堂 | 少妇人妻偷人精品无码视频 | 无码福利日韩神码福利片 | 牲交欧美兽交欧美 | 亚洲国产精品久久人人爱 | 欧美刺激性大交 | 国产精品自产拍在线观看 | 国产艳妇av在线观看果冻传媒 | 国产在线无码精品电影网 | 日韩少妇白浆无码系列 | 国产特级毛片aaaaaaa高清 | 久久久国产一区二区三区 | 欧美zoozzooz性欧美 | 在线 国产 欧美 亚洲 天堂 | 成人亚洲精品久久久久 | 影音先锋中文字幕无码 | 国产精品久久久久影院嫩草 | 天天做天天爱天天爽综合网 | 荫蒂被男人添的好舒服爽免费视频 | 亚洲欧美日韩成人高清在线一区 | 久久亚洲日韩精品一区二区三区 | 久久成人a毛片免费观看网站 | 中文字幕av日韩精品一区二区 | 中文字幕无线码 | 88国产精品欧美一区二区三区 | 18禁黄网站男男禁片免费观看 | 乱人伦中文视频在线观看 | 中文字幕无码av激情不卡 | 激情五月综合色婷婷一区二区 | 国产午夜无码视频在线观看 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 动漫av网站免费观看 | 国产精品人人爽人人做我的可爱 | 国产区女主播在线观看 | 精品国产乱码久久久久乱码 | 久久亚洲日韩精品一区二区三区 | 精品亚洲韩国一区二区三区 | 久久久中文久久久无码 | aⅴ在线视频男人的天堂 | 国产无遮挡又黄又爽又色 | 红桃av一区二区三区在线无码av | 国产深夜福利视频在线 | 亚洲の无码国产の无码影院 | 日本熟妇大屁股人妻 | 亚洲国产精品久久久天堂 | 国内揄拍国内精品少妇国语 | 九九久久精品国产免费看小说 | 国产一区二区三区影院 | 国产免费久久久久久无码 | 日本va欧美va欧美va精品 | 国产网红无码精品视频 | 日本护士xxxxhd少妇 | 日韩精品a片一区二区三区妖精 | 精品人人妻人人澡人人爽人人 | 麻豆国产丝袜白领秘书在线观看 | 一本无码人妻在中文字幕免费 | 久久成人a毛片免费观看网站 | 亚洲欧美日韩国产精品一区二区 | 性开放的女人aaa片 | 欧美日韩在线亚洲综合国产人 | 俺去俺来也www色官网 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 欧美激情一区二区三区成人 | 中文字幕 亚洲精品 第1页 | 丰满人妻一区二区三区免费视频 | 国产人妻久久精品二区三区老狼 | 天天拍夜夜添久久精品大 | av在线亚洲欧洲日产一区二区 | 日本在线高清不卡免费播放 | 亚洲精品中文字幕久久久久 | 九月婷婷人人澡人人添人人爽 | 国产午夜无码精品免费看 | 日日噜噜噜噜夜夜爽亚洲精品 | 一个人看的www免费视频在线观看 | 男人扒开女人内裤强吻桶进去 | 最近的中文字幕在线看视频 | 在线成人www免费观看视频 | 两性色午夜免费视频 | 国产舌乚八伦偷品w中 | 蜜臀av在线播放 久久综合激激的五月天 | 麻豆精品国产精华精华液好用吗 | 呦交小u女精品视频 | 国产亚洲欧美在线专区 | 亚洲呦女专区 | 女人被男人躁得好爽免费视频 | 欧美性色19p | 人人澡人人妻人人爽人人蜜桃 | 午夜免费福利小电影 | 欧美35页视频在线观看 | 国内精品久久毛片一区二区 | 一本色道久久综合狠狠躁 | 又大又硬又黄的免费视频 | 久久精品人人做人人综合 | 在线 国产 欧美 亚洲 天堂 | 国产亚洲精品久久久久久 | 精品偷自拍另类在线观看 | 国产黄在线观看免费观看不卡 | 亚洲区小说区激情区图片区 | 三级4级全黄60分钟 | 国产亚洲精品久久久久久久久动漫 | 免费人成在线观看网站 | 牲欲强的熟妇农村老妇女视频 | 亚洲国产精品无码一区二区三区 | 欧美精品免费观看二区 | 久久久成人毛片无码 | 婷婷综合久久中文字幕蜜桃三电影 | 少妇一晚三次一区二区三区 | 十八禁真人啪啪免费网站 | 欧洲精品码一区二区三区免费看 | 国产av无码专区亚洲a∨毛片 | 高清国产亚洲精品自在久久 | 麻豆md0077饥渴少妇 | 久久人妻内射无码一区三区 | 色欲av亚洲一区无码少妇 | 在线а√天堂中文官网 | 日本一卡2卡3卡四卡精品网站 | 婷婷色婷婷开心五月四房播播 | 国产一区二区三区日韩精品 | 久久精品成人欧美大片 | 久久成人a毛片免费观看网站 | 性做久久久久久久久 | 人妻无码αv中文字幕久久琪琪布 | 玩弄人妻少妇500系列视频 | 强开小婷嫩苞又嫩又紧视频 | av无码久久久久不卡免费网站 | 国产乱人偷精品人妻a片 | 国产精品亚洲专区无码不卡 | 欧美freesex黑人又粗又大 | 国精产品一区二区三区 | 无码人妻精品一区二区三区下载 | 中文字幕+乱码+中文字幕一区 | 国产成人无码午夜视频在线观看 | 18无码粉嫩小泬无套在线观看 | 国产精品久久久午夜夜伦鲁鲁 | 国产99久久精品一区二区 | 亚洲日韩乱码中文无码蜜桃臀网站 | 少妇厨房愉情理9仑片视频 | 欧美zoozzooz性欧美 | 亚洲乱码国产乱码精品精 | 国产手机在线αⅴ片无码观看 | 亚洲人成影院在线观看 | 男人扒开女人内裤强吻桶进去 | 成 人 免费观看网站 | 男女下面进入的视频免费午夜 | 黑森林福利视频导航 | 日日碰狠狠躁久久躁蜜桃 | 国产精品无码永久免费888 | 国产精品va在线观看无码 | 欧美日韩一区二区三区自拍 | 狂野欧美性猛交免费视频 | 亚洲欧美日韩综合久久久 | 久久精品国产日本波多野结衣 | 精品日本一区二区三区在线观看 | 岛国片人妻三上悠亚 | 亚洲无人区午夜福利码高清完整版 | 精品久久久无码人妻字幂 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产av人人夜夜澡人人爽麻豆 | 又大又紧又粉嫩18p少妇 | 无码精品人妻一区二区三区av | 久久综合香蕉国产蜜臀av | 日韩精品无码一区二区中文字幕 | 欧美 日韩 人妻 高清 中文 | 亚洲乱码日产精品bd | 动漫av一区二区在线观看 | 精品一区二区三区无码免费视频 | 中文字幕av无码一区二区三区电影 | 中文精品久久久久人妻不卡 | 又大又硬又爽免费视频 | 精品欧美一区二区三区久久久 | 久久久精品人妻久久影视 | 蜜桃无码一区二区三区 | 一本久道久久综合狠狠爱 | 少妇高潮喷潮久久久影院 | 帮老师解开蕾丝奶罩吸乳网站 | 在线播放免费人成毛片乱码 | 亚洲乱码中文字幕在线 | 色婷婷欧美在线播放内射 | 人妻天天爽夜夜爽一区二区 | 青草视频在线播放 | 国产免费观看黄av片 | 亚洲中文字幕av在天堂 | 人人妻人人澡人人爽精品欧美 | 国产精品无码一区二区桃花视频 | 人妻人人添人妻人人爱 | 午夜福利试看120秒体验区 | 久久综合九色综合97网 | 国产精品无码一区二区桃花视频 | 18禁止看的免费污网站 | 一本精品99久久精品77 | 丰腴饱满的极品熟妇 | 日韩亚洲欧美中文高清在线 | 久久久亚洲欧洲日产国码αv | 亚洲午夜无码久久 | 成年美女黄网站色大免费全看 | 欧美国产日韩久久mv | 亚洲中文字幕乱码av波多ji | 无码人妻久久一区二区三区不卡 | 黑人大群体交免费视频 | 欧洲欧美人成视频在线 | 在教室伦流澡到高潮hnp视频 | 婷婷五月综合缴情在线视频 | 日韩av无码一区二区三区 | 国产又粗又硬又大爽黄老大爷视 | 久久人妻内射无码一区三区 | 久久亚洲中文字幕无码 | 动漫av网站免费观看 | 无码精品国产va在线观看dvd | 国产一区二区三区日韩精品 | 对白脏话肉麻粗话av | 色噜噜亚洲男人的天堂 | 日韩少妇白浆无码系列 | 曰本女人与公拘交酡免费视频 | 激情人妻另类人妻伦 | 中文字幕无码免费久久9一区9 | 日韩人妻无码中文字幕视频 | 色狠狠av一区二区三区 | 性生交大片免费看女人按摩摩 | 青青草原综合久久大伊人精品 | 一本久道高清无码视频 | 精品夜夜澡人妻无码av蜜桃 | 无码人中文字幕 | 18禁止看的免费污网站 | 大乳丰满人妻中文字幕日本 | 亚拍精品一区二区三区探花 | 3d动漫精品啪啪一区二区中 | 国产精品怡红院永久免费 | 久久精品无码一区二区三区 | 亚洲国产欧美在线成人 | 蜜桃av抽搐高潮一区二区 | 人妻无码αv中文字幕久久琪琪布 | 国产精品无套呻吟在线 | 东京热一精品无码av | 国产成人无码a区在线观看视频app | 熟妇女人妻丰满少妇中文字幕 | 图片小说视频一区二区 | 女人被男人躁得好爽免费视频 | 久热国产vs视频在线观看 | 亚洲狠狠婷婷综合久久 | 中文字幕精品av一区二区五区 | 对白脏话肉麻粗话av | 国精产品一区二区三区 | 久久99精品国产麻豆 | 性史性农村dvd毛片 | 欧美阿v高清资源不卡在线播放 | 国产亚av手机在线观看 | 综合人妻久久一区二区精品 | 亚洲人成网站免费播放 | 免费无码的av片在线观看 | 内射爽无广熟女亚洲 | 超碰97人人做人人爱少妇 | 丰满诱人的人妻3 | 国产成人人人97超碰超爽8 | 国产午夜手机精彩视频 | 人人爽人人澡人人人妻 | 超碰97人人做人人爱少妇 | 亚洲中文字幕在线无码一区二区 | 国产精品人妻一区二区三区四 | 无遮挡啪啪摇乳动态图 | 亚洲精品午夜无码电影网 | 麻豆果冻传媒2021精品传媒一区下载 | 亚洲精品一区二区三区婷婷月 | 国产在线无码精品电影网 | 无码一区二区三区在线 | 成人一在线视频日韩国产 | 精品成在人线av无码免费看 | 欧美高清在线精品一区 | 草草网站影院白丝内射 | 无码中文字幕色专区 | 色噜噜亚洲男人的天堂 | 男女猛烈xx00免费视频试看 | 亚洲aⅴ无码成人网站国产app | 国产精品无码一区二区三区不卡 | 亚洲人成网站色7799 | 中文字幕+乱码+中文字幕一区 | 无套内谢的新婚少妇国语播放 | 九九久久精品国产免费看小说 | 99视频精品全部免费免费观看 | 精品人妻中文字幕有码在线 | 少妇一晚三次一区二区三区 | 人妻人人添人妻人人爱 | 国产无套粉嫩白浆在线 | 好屌草这里只有精品 | 亚洲男人av天堂午夜在 | 久久无码专区国产精品s | 国内精品久久毛片一区二区 | 熟妇女人妻丰满少妇中文字幕 | 三上悠亚人妻中文字幕在线 | 精品无码av一区二区三区 | 欧美亚洲日韩国产人成在线播放 | 国产精品亚洲专区无码不卡 | 亚洲精品一区二区三区四区五区 | 日韩精品无码一本二本三本色 | 亚洲国产欧美日韩精品一区二区三区 | 成 人 网 站国产免费观看 | 麻豆蜜桃av蜜臀av色欲av | 三上悠亚人妻中文字幕在线 | 天干天干啦夜天干天2017 | 精品国偷自产在线 | 欧美老熟妇乱xxxxx | 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲天堂2017无码中文 | 久久天天躁狠狠躁夜夜免费观看 | 亚洲伊人久久精品影院 | 国产国语老龄妇女a片 | 亚洲欧洲中文日韩av乱码 | 国产成人无码午夜视频在线观看 | 无码任你躁久久久久久久 | 久久这里只有精品视频9 | 成在人线av无码免观看麻豆 | 亚洲 激情 小说 另类 欧美 | 中文字幕亚洲情99在线 | 伊人久久大香线蕉av一区二区 | 好男人www社区 | 成人亚洲精品久久久久 | 波多野42部无码喷潮在线 | 中文字幕日韩精品一区二区三区 | 熟妇人妻无乱码中文字幕 | 亚洲熟妇色xxxxx亚洲 | 内射老妇bbwx0c0ck | 婷婷丁香五月天综合东京热 | 日日夜夜撸啊撸 | 在线 国产 欧美 亚洲 天堂 | 十八禁视频网站在线观看 | 丰满肥臀大屁股熟妇激情视频 | 成在人线av无码免观看麻豆 | 少妇人妻av毛片在线看 | 99精品无人区乱码1区2区3区 | 成人精品天堂一区二区三区 | 国产又爽又猛又粗的视频a片 | 久久久www成人免费毛片 | 亚洲精品一区二区三区婷婷月 | 丰满人妻一区二区三区免费视频 | 纯爱无遮挡h肉动漫在线播放 | 亚洲欧美中文字幕5发布 | 99在线 | 亚洲 | 精品国产乱码久久久久乱码 | 88国产精品欧美一区二区三区 | 日本一本二本三区免费 | 国产极品美女高潮无套在线观看 | 欧美野外疯狂做受xxxx高潮 | 日本丰满护士爆乳xxxx | 亚洲熟熟妇xxxx | 欧美亚洲日韩国产人成在线播放 | 国产无套内射久久久国产 | 欧洲精品码一区二区三区免费看 | 久久国产自偷自偷免费一区调 | 国产人妖乱国产精品人妖 | 亲嘴扒胸摸屁股激烈网站 | 欧美日本免费一区二区三区 | 国产熟女一区二区三区四区五区 | 99在线 | 亚洲 | 亚洲国产高清在线观看视频 | 国产美女极度色诱视频www | 免费观看又污又黄的网站 | 丁香花在线影院观看在线播放 | 国产偷抇久久精品a片69 | 又紧又大又爽精品一区二区 | 国産精品久久久久久久 | 午夜理论片yy44880影院 | 国产女主播喷水视频在线观看 | 蜜桃视频韩日免费播放 | 老熟妇仑乱视频一区二区 | 久久综合久久自在自线精品自 | 日本一区二区更新不卡 | 欧美日本免费一区二区三区 | 亚洲男人av香蕉爽爽爽爽 | 午夜精品久久久久久久 | 久久午夜夜伦鲁鲁片无码免费 | 国产又爽又猛又粗的视频a片 | 精品久久久中文字幕人妻 | 5858s亚洲色大成网站www | 国产精品鲁鲁鲁 | 成人动漫在线观看 | 内射白嫩少妇超碰 | 小鲜肉自慰网站xnxx | 久在线观看福利视频 | 无码播放一区二区三区 | 国产成人精品优优av | 国产网红无码精品视频 | 国产成人无码av在线影院 | 国产在线无码精品电影网 | 久久久久免费看成人影片 | 国产乡下妇女做爰 | 久久亚洲日韩精品一区二区三区 | 日韩亚洲欧美中文高清在线 | 黑人巨大精品欧美黑寡妇 | 女人和拘做爰正片视频 | 国产精品亚洲五月天高清 | 精品人妻人人做人人爽 | 亚洲成av人综合在线观看 | 亚洲熟妇自偷自拍另类 | 天天躁日日躁狠狠躁免费麻豆 | 性色欲情网站iwww九文堂 | 亚洲精品一区三区三区在线观看 | 亚洲中文无码av永久不收费 | 久久久久成人片免费观看蜜芽 | 国产乡下妇女做爰 | 成人三级无码视频在线观看 | 欧美国产日产一区二区 | 欧美日本日韩 | 性色欲情网站iwww九文堂 | 精品久久久久香蕉网 | 精品国产一区二区三区四区在线看 | 国产在线精品一区二区高清不卡 | 精品少妇爆乳无码av无码专区 | 精品日本一区二区三区在线观看 | 国内综合精品午夜久久资源 | 国产又粗又硬又大爽黄老大爷视 | 老头边吃奶边弄进去呻吟 | 青草青草久热国产精品 | 给我免费的视频在线观看 | 麻豆成人精品国产免费 | 亚洲国产精品成人久久蜜臀 | 久久精品人人做人人综合试看 | 久久成人a毛片免费观看网站 | 天堂亚洲免费视频 | 日韩 欧美 动漫 国产 制服 | 无遮挡啪啪摇乳动态图 | 国精产品一区二区三区 | 丝袜美腿亚洲一区二区 | 天干天干啦夜天干天2017 | 久久www免费人成人片 | 欧美成人高清在线播放 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 国产精品无码久久av | 国产又爽又黄又刺激的视频 | 国内丰满熟女出轨videos | 99久久精品无码一区二区毛片 | 成在人线av无码免观看麻豆 | 小泽玛莉亚一区二区视频在线 | 玩弄中年熟妇正在播放 | 国产精品人人妻人人爽 | 色一情一乱一伦一区二区三欧美 | 嫩b人妻精品一区二区三区 | 无码精品国产va在线观看dvd | 国产成人一区二区三区在线观看 | 午夜免费福利小电影 | 大屁股大乳丰满人妻 | 无码av岛国片在线播放 | 少妇的肉体aa片免费 | 妺妺窝人体色www在线小说 | 久久午夜夜伦鲁鲁片无码免费 | 国产精品毛片一区二区 | 帮老师解开蕾丝奶罩吸乳网站 | 精品无码成人片一区二区98 | 亚洲乱亚洲乱妇50p | 樱花草在线社区www | 亚洲精品综合五月久久小说 | 亚洲精品国产精品乱码视色 | 精品久久久久久人妻无码中文字幕 | 中文字幕乱码人妻无码久久 | 精品国偷自产在线 | 日本又色又爽又黄的a片18禁 | 亚洲成av人综合在线观看 | 国产精品高潮呻吟av久久 | 欧美野外疯狂做受xxxx高潮 | 成人片黄网站色大片免费观看 | 1000部夫妻午夜免费 | 精品一区二区不卡无码av | 国产亚av手机在线观看 | 亚洲精品国产精品乱码视色 | 日本一卡二卡不卡视频查询 | 波多野结衣乳巨码无在线观看 | 曰韩无码二三区中文字幕 | 精品国产福利一区二区 | 十八禁视频网站在线观看 | 精品无码国产自产拍在线观看蜜 | 久久久精品成人免费观看 | 日日天日日夜日日摸 | 亚洲春色在线视频 | 久久婷婷五月综合色国产香蕉 | 国产极品美女高潮无套在线观看 | 97精品人妻一区二区三区香蕉 | 色狠狠av一区二区三区 | 国产麻豆精品一区二区三区v视界 | 波多野结衣av在线观看 | 亚洲理论电影在线观看 | 狂野欧美激情性xxxx | 在线成人www免费观看视频 | yw尤物av无码国产在线观看 | 综合网日日天干夜夜久久 | ass日本丰满熟妇pics | 精品厕所偷拍各类美女tp嘘嘘 | 亚洲中文字幕乱码av波多ji | 国产午夜无码视频在线观看 | 久久精品中文字幕大胸 | 自拍偷自拍亚洲精品10p | 免费无码av一区二区 | 日日碰狠狠躁久久躁蜜桃 | 无码帝国www无码专区色综合 | 男女下面进入的视频免费午夜 | 欧美一区二区三区视频在线观看 | 亚洲一区二区三区偷拍女厕 | 人妻少妇精品无码专区二区 | 天堂一区人妻无码 | 国语自产偷拍精品视频偷 | 色妞www精品免费视频 | 国产精品亚洲一区二区三区喷水 | 亚洲熟女一区二区三区 | а√天堂www在线天堂小说 | 亚洲综合色区中文字幕 | 国产精品手机免费 | 国产免费久久久久久无码 | aⅴ在线视频男人的天堂 | 麻花豆传媒剧国产免费mv在线 | 国产偷国产偷精品高清尤物 | 中文字幕无码免费久久99 | 国产亚洲精品精品国产亚洲综合 | 一区二区三区乱码在线 | 欧洲 | 强辱丰满人妻hd中文字幕 | 好爽又高潮了毛片免费下载 | 欧美性色19p | 99久久精品午夜一区二区 | 亚洲中文字幕av在天堂 | 欧美性生交活xxxxxdddd | 午夜福利不卡在线视频 | 日韩视频 中文字幕 视频一区 | 国产香蕉尹人综合在线观看 | 粉嫩少妇内射浓精videos | 国产乱人偷精品人妻a片 | 狠狠色丁香久久婷婷综合五月 | 久久午夜无码鲁丝片秋霞 | a片在线免费观看 | 少妇高潮喷潮久久久影院 | 偷窥日本少妇撒尿chinese | 中文字幕+乱码+中文字幕一区 | 成熟人妻av无码专区 | 精品亚洲韩国一区二区三区 | 国产av无码专区亚洲awww | 亚洲人交乣女bbw | 久久99精品国产麻豆 | 色一情一乱一伦一区二区三欧美 | 欧美性猛交xxxx富婆 | 国产精品自产拍在线观看 | 青青草原综合久久大伊人精品 | 无码人妻丰满熟妇区毛片18 | 蜜桃视频插满18在线观看 | 纯爱无遮挡h肉动漫在线播放 | 老头边吃奶边弄进去呻吟 | 精品亚洲韩国一区二区三区 | 樱花草在线播放免费中文 | 国产 精品 自在自线 | 免费中文字幕日韩欧美 | 国产9 9在线 | 中文 | 少女韩国电视剧在线观看完整 | 国产亚洲精品精品国产亚洲综合 | 亚洲中文字幕在线无码一区二区 | 国产精品毛片一区二区 | 无遮挡啪啪摇乳动态图 | 波多野结衣 黑人 | 欧美熟妇另类久久久久久不卡 | 国产精品成人av在线观看 | √天堂中文官网8在线 | 成人性做爰aaa片免费看 | 国产精品久久久av久久久 | 99视频精品全部免费免费观看 | 精品国精品国产自在久国产87 | 强辱丰满人妻hd中文字幕 | 亚洲一区二区三区含羞草 | 狠狠色欧美亚洲狠狠色www | 久久久中文字幕日本无吗 | 熟妇人妻无码xxx视频 | 亚洲高清偷拍一区二区三区 | 国产无套粉嫩白浆在线 | 特级做a爰片毛片免费69 | 少妇邻居内射在线 | 欧美xxxx黑人又粗又长 | 偷窥日本少妇撒尿chinese | 国产热a欧美热a在线视频 | 77777熟女视频在线观看 а天堂中文在线官网 | 天下第一社区视频www日本 | 图片区 小说区 区 亚洲五月 | 300部国产真实乱 | 亚洲伊人久久精品影院 | 国产精品久久久久久久9999 | av无码久久久久不卡免费网站 | 国产精品久久精品三级 | 青青青爽视频在线观看 | 亚洲综合伊人久久大杳蕉 | 国内精品久久毛片一区二区 | 国产成人亚洲综合无码 | 国产真实乱对白精彩久久 | 亚洲熟妇色xxxxx欧美老妇 | 鲁鲁鲁爽爽爽在线视频观看 | 免费国产成人高清在线观看网站 | 美女扒开屁股让男人桶 | 亚洲人成影院在线无码按摩店 | 一本久道久久综合婷婷五月 | 娇妻被黑人粗大高潮白浆 | 无码中文字幕色专区 | 麻豆精品国产精华精华液好用吗 | 日产精品高潮呻吟av久久 | 98国产精品综合一区二区三区 | 色综合久久中文娱乐网 | 又大又紧又粉嫩18p少妇 | 亚洲欧美国产精品专区久久 | 无码av最新清无码专区吞精 | 18黄暴禁片在线观看 | 蜜臀aⅴ国产精品久久久国产老师 | 岛国片人妻三上悠亚 | 日韩av无码一区二区三区 | 欧美35页视频在线观看 | 精品无码国产一区二区三区av | 人妻人人添人妻人人爱 | 久久综合九色综合97网 | 77777熟女视频在线观看 а天堂中文在线官网 | 大地资源中文第3页 | 精品一区二区三区波多野结衣 | 中文字幕+乱码+中文字幕一区 | 久久天天躁狠狠躁夜夜免费观看 | 久久国产36精品色熟妇 | 曰韩少妇内射免费播放 | 日韩精品乱码av一区二区 | 国产精品第一区揄拍无码 | 亚洲精品国偷拍自产在线麻豆 | 国产精品-区区久久久狼 | 无码毛片视频一区二区本码 | 东京热无码av男人的天堂 | 熟妇人妻无码xxx视频 | 亚洲综合无码久久精品综合 | 日本成熟视频免费视频 | 精品国产青草久久久久福利 | 国产午夜亚洲精品不卡下载 | 久久99精品国产麻豆蜜芽 | 初尝人妻少妇中文字幕 | 亚洲精品综合一区二区三区在线 | aⅴ亚洲 日韩 色 图网站 播放 | 蜜桃视频插满18在线观看 | 日本高清一区免费中文视频 | 巨爆乳无码视频在线观看 | 88国产精品欧美一区二区三区 | 欧美亚洲国产一区二区三区 | 亚洲国产精品一区二区美利坚 | 欧美成人家庭影院 | 在线а√天堂中文官网 | 又大又黄又粗又爽的免费视频 | 日本精品久久久久中文字幕 | 一本无码人妻在中文字幕免费 | 无码午夜成人1000部免费视频 | 精品国产福利一区二区 | 亚洲日本在线电影 | 少妇性l交大片欧洲热妇乱xxx | 东京热一精品无码av | 国产精品多人p群无码 | 中文字幕乱码人妻二区三区 | 97人妻精品一区二区三区 | 欧美激情内射喷水高潮 | 无码国产激情在线观看 | 国产亲子乱弄免费视频 | 最近中文2019字幕第二页 | 青青久在线视频免费观看 | 国产熟妇另类久久久久 | 蜜桃av抽搐高潮一区二区 | 99久久精品午夜一区二区 | 国产午夜无码视频在线观看 | aⅴ亚洲 日韩 色 图网站 播放 | 人人爽人人爽人人片av亚洲 | 色综合天天综合狠狠爱 | 又湿又紧又大又爽a视频国产 | 激情综合激情五月俺也去 | 久久99精品国产麻豆 | 日本又色又爽又黄的a片18禁 | 无码人妻丰满熟妇区毛片18 | 全黄性性激高免费视频 | 97人妻精品一区二区三区 | 国产色视频一区二区三区 | 精品久久久中文字幕人妻 | 无码人妻出轨黑人中文字幕 | 亚洲精品国偷拍自产在线观看蜜桃 | 精品无码国产一区二区三区av | 中文字幕人成乱码熟女app | 色综合久久久无码网中文 | 一本久道久久综合狠狠爱 | 亚洲无人区一区二区三区 | 国产人妻久久精品二区三区老狼 | 日韩成人一区二区三区在线观看 | 熟妇人妻中文av无码 | 人人妻人人澡人人爽欧美一区 | 国产精品久久福利网站 | 亚洲国精产品一二二线 | 黑人巨大精品欧美黑寡妇 | 麻豆md0077饥渴少妇 | 色欲久久久天天天综合网精品 | 国产性生交xxxxx无码 | 久久久久久av无码免费看大片 | 亚洲狠狠色丁香婷婷综合 | 无码人妻丰满熟妇区五十路百度 | 国产女主播喷水视频在线观看 | 天堂亚洲2017在线观看 | 熟女少妇人妻中文字幕 | 国产精品第一国产精品 | 久久人人爽人人爽人人片ⅴ | 激情内射日本一区二区三区 | 丝袜 中出 制服 人妻 美腿 | 亚洲欧美中文字幕5发布 | 久久精品一区二区三区四区 | 精品一区二区不卡无码av | 亚洲国产欧美在线成人 | а√资源新版在线天堂 | 亚洲国产精品一区二区美利坚 | 久久久久成人片免费观看蜜芽 | 中文字幕久久久久人妻 | 欧美精品无码一区二区三区 | 亚洲国产精品无码久久久久高潮 | 国产美女精品一区二区三区 | 中文字幕无码热在线视频 | 欧美亚洲日韩国产人成在线播放 | 风流少妇按摩来高潮 | 强开小婷嫩苞又嫩又紧视频 | 欧美熟妇另类久久久久久多毛 | 日产精品高潮呻吟av久久 | 成人精品天堂一区二区三区 | 丝袜人妻一区二区三区 | 人人澡人人妻人人爽人人蜜桃 | 99久久久无码国产aaa精品 | 精品夜夜澡人妻无码av蜜桃 | 国产人妖乱国产精品人妖 | 国产亚洲精品久久久闺蜜 | 大肉大捧一进一出视频出来呀 | 中文字幕乱码人妻无码久久 | 中文字幕乱码人妻二区三区 | 奇米影视7777久久精品人人爽 | 欧美 日韩 人妻 高清 中文 | 亚洲小说图区综合在线 | 久久无码专区国产精品s | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 一本久道高清无码视频 | 精品无码一区二区三区爱欲 | 国产亚洲精品久久久ai换 | 国产高清不卡无码视频 | 免费无码的av片在线观看 | 少妇愉情理伦片bd | 成 人 免费观看网站 | 国产人妖乱国产精品人妖 | 亚洲精品久久久久中文第一幕 | 精品人妻人人做人人爽 | 久久精品人妻少妇一区二区三区 | 久久亚洲中文字幕精品一区 | 无码人妻丰满熟妇区毛片18 | 老子影院午夜伦不卡 | 东北女人啪啪对白 | 又粗又大又硬毛片免费看 | 永久免费观看美女裸体的网站 | 精品人妻人人做人人爽夜夜爽 | 人人澡人人妻人人爽人人蜜桃 | 国产又粗又硬又大爽黄老大爷视 | 亚洲中文字幕无码中文字在线 | 久精品国产欧美亚洲色aⅴ大片 | 欧美午夜特黄aaaaaa片 | 精品一区二区三区波多野结衣 | 国产精品va在线观看无码 | 亚洲综合色区中文字幕 | 日日天日日夜日日摸 | 少妇被粗大的猛进出69影院 | 亚洲精品国偷拍自产在线观看蜜桃 | 六十路熟妇乱子伦 | 偷窥村妇洗澡毛毛多 | 国产人妻精品午夜福利免费 | 欧美亚洲日韩国产人成在线播放 | 伊人久久大香线蕉午夜 | 亚洲熟熟妇xxxx | 精品无人区无码乱码毛片国产 | 妺妺窝人体色www在线小说 | 丰满少妇人妻久久久久久 | 亚洲成a人片在线观看日本 | 狂野欧美性猛xxxx乱大交 | 人妻尝试又大又粗久久 | 国产乱人偷精品人妻a片 | 久久精品女人天堂av免费观看 | 国产成人无码午夜视频在线观看 | 97久久超碰中文字幕 | 国产精品久久久午夜夜伦鲁鲁 | 亚洲欧美国产精品久久 | √8天堂资源地址中文在线 | 亚洲成av人片天堂网无码】 | 97精品人妻一区二区三区香蕉 | 在线观看免费人成视频 | 少妇人妻偷人精品无码视频 | 免费无码av一区二区 | 亚洲精品午夜无码电影网 | 亚洲欧美日韩国产精品一区二区 | 国产成人人人97超碰超爽8 | 人人妻人人藻人人爽欧美一区 | 久久天天躁狠狠躁夜夜免费观看 | 中文无码成人免费视频在线观看 | 成人免费视频在线观看 | 在线精品国产一区二区三区 | 97久久精品无码一区二区 | 97资源共享在线视频 | 国产精品沙发午睡系列 | 国产精品久久久 | 亚洲精品国产品国语在线观看 | 扒开双腿疯狂进出爽爽爽视频 | 亚洲精品无码国产 | 国产熟女一区二区三区四区五区 | 国产精品福利视频导航 | 亚洲熟熟妇xxxx | 88国产精品欧美一区二区三区 | 中文字幕av伊人av无码av | 中文字幕av日韩精品一区二区 | 久久亚洲a片com人成 | 激情综合激情五月俺也去 | 久久综合久久自在自线精品自 | 一本大道久久东京热无码av | 久久久久se色偷偷亚洲精品av | 性欧美videos高清精品 | 精品乱子伦一区二区三区 | 色五月五月丁香亚洲综合网 | 日韩无套无码精品 | 精品欧美一区二区三区久久久 | 高清国产亚洲精品自在久久 | 国精产品一区二区三区 | 久久久久免费看成人影片 | 无码一区二区三区在线观看 | 成人精品视频一区二区三区尤物 | 久久精品国产99久久6动漫 | 国产精品二区一区二区aⅴ污介绍 | 亚洲国产精品一区二区第一页 | 亚洲国产精品美女久久久久 | 狂野欧美激情性xxxx |