国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

超強干貨!SQL語法合集!

共 16350字,需瀏覽 33分鐘

 ·

2022-01-21 01:51

作者:靜默虛空

https://juejin.im/post/5c7e524af265da2d914db18f

本文針對關(guān)系型數(shù)據(jù)庫的一般語法。限于篇幅,本文側(cè)重說明用法,不會展開講解特性、原理。

一、基本概念

數(shù)據(jù)庫術(shù)語

  • 數(shù)據(jù)庫(database) - 保存有組織的數(shù)據(jù)的容器(通常是一個文件或一組文件)。

  • 數(shù)據(jù)表(table) - 某種特定類型數(shù)據(jù)的結(jié)構(gòu)化清單。

  • 模式(schema) - 關(guān)于數(shù)據(jù)庫和表的布局及特性的信息。模式定義了數(shù)據(jù)在表中如何存儲,包含存儲什么樣的數(shù)據(jù),數(shù)據(jù)如何分解,各部分信息如何命名等信息。數(shù)據(jù)庫和表都有模式。

  • 列(column) - 表中的一個字段。所有表都是由一個或多個列組成的。

  • 行(row) - 表中的一個記錄。

  • 主鍵(primary key) - 一列(或一組列),其值能夠唯一標識表中每一行。

SQL 語法

SQL(Structured Query Language),標準 SQL 由 ANSI 標準委員會管理,從而稱為 ANSI SQL。各個 DBMS 都有自己的實現(xiàn),如 PL/SQL、Transact-SQL 等。

SQL 語法結(jié)構(gòu)

SQL 語法結(jié)構(gòu)包括:

  • 子句 - 是語句和查詢的組成成分。(在某些情況下,這些都是可選的。)

  • 表達式 - 可以產(chǎn)生任何標量值,或由列和行的數(shù)據(jù)庫表

  • 謂詞 - 給需要評估的 SQL 三值邏輯(3VL)(true/false/unknown)或布爾真值指定條件,并限制語句和查詢的效果,或改變程序流程。

  • 查詢 - 基于特定條件檢索數(shù)據(jù)。這是 SQL 的一個重要組成部分。

  • 語句 - 可以持久地影響綱要和數(shù)據(jù),也可以控制數(shù)據(jù)庫事務、程序流程、連接、會話或診斷。

SQL 語法要點

  • SQL 語句不區(qū)分大小寫,但是數(shù)據(jù)庫表名、列名和值是否區(qū)分,依賴于具體的 DBMS 以及配置。

例如:SELECT 與 select 、Select 是相同的。

  • 多條 SQL 語句必須以分號(;)分隔。

  • 處理 SQL 語句時,所有空格都被忽略。SQL 語句可以寫成一行,也可以分寫為多行。

-- 一行 SQL 語句
UPDATE user SET username='robot', password='robot' WHERE username = 'root';

-- 多行 SQL 語句
UPDATE user
SET username='robot', password='robot'
WHERE username = 'root';
  • SQL 支持三種注釋

## 注釋1
-- 注釋2
/* 注釋3 */

SQL 分類

數(shù)據(jù)定義語言(DDL)

數(shù)據(jù)定義語言(Data Definition Language,DDL)是 SQL 語言集中負責數(shù)據(jù)結(jié)構(gòu)定義與數(shù)據(jù)庫對象定義的語言。

DDL 的主要功能是定義數(shù)據(jù)庫對象

DDL 的核心指令是 CREATEALTER、DROP。

數(shù)據(jù)操縱語言(DML)

數(shù)據(jù)操縱語言(Data Manipulation Language, DML)是用于數(shù)據(jù)庫操作,對數(shù)據(jù)庫其中的對象和數(shù)據(jù)運行訪問工作的編程語句。

DML 的主要功能是 訪問數(shù)據(jù),因此其語法都是以讀寫數(shù)據(jù)庫為主。

DML 的核心指令是 INSERT、UPDATE、DELETE、SELECT。這四個指令合稱 CRUD(Create, Read, Update, Delete),即增刪改查。

事務控制語言(TCL)

事務控制語言 (Transaction Control Language, TCL) 用于管理數(shù)據(jù)庫中的事務。這些用于管理由 DML 語句所做的更改。它還允許將語句分組為邏輯事務。

TCL 的核心指令是 COMMIT、ROLLBACK。

數(shù)據(jù)控制語言(DCL)

數(shù)據(jù)控制語言 (Data Control Language, DCL) 是一種可對數(shù)據(jù)訪問權(quán)進行控制的指令,它可以控制特定用戶賬戶對數(shù)據(jù)表、查看表、預存程序、用戶自定義函數(shù)等數(shù)據(jù)庫對象的控制權(quán)。

DCL 的核心指令是 GRANT、REVOKE。

DCL 以控制用戶的訪問權(quán)限為主,因此其指令作法并不復雜,可利用 DCL 控制的權(quán)限有:CONNECTSELECT、INSERT、UPDATEDELETE、EXECUTEUSAGEREFERENCES。

根據(jù)不同的 DBMS 以及不同的安全性實體,其支持的權(quán)限控制也有所不同。

(以下為 DML 語句用法)

二、增刪改查

增刪改查,又稱為 CRUD,數(shù)據(jù)庫基本操作中的基本操作。

插入數(shù)據(jù)

  • INSERT INTO 語句用于向表中插入新記錄。

插入完整的行

INSERT INTO user
VALUES (10, 'root', 'root', '[email protected]')
;

插入行的一部分

INSERT INTO user(username, password, email)
VALUES ('admin', 'admin', '[email protected]')
;

插入查詢出來的數(shù)據(jù)

INSERT INTO user(username)
SELECT name
FROM account
;

更新數(shù)據(jù)

  • UPDATE 語句用于更新表中的記錄。

UPDATE user
SET username='robot', password='robot'
WHERE username = 'root';

刪除數(shù)據(jù)

  • DELETE 語句用于刪除表中的記錄。

  • TRUNCATE TABLE 可以清空表,也就是刪除所有行。

刪除表中的指定數(shù)據(jù)

DELETE FROM user
WHERE username = 'robot';

清空表中的數(shù)據(jù)

TRUNCATE TABLE user;

查詢數(shù)據(jù)

  • SELECT 語句用于從數(shù)據(jù)庫中查詢數(shù)據(jù)。

  • DISTINCT 用于返回唯一不同的值。它作用于所有列,也就是說所有列的值都相同才算相同。

  • LIMIT 限制返回的行數(shù)??梢杂袃蓚€參數(shù),第一個參數(shù)為起始行,從 0 開始;第二個參數(shù)為返回的總行數(shù)。

    • ASC :升序(默認)

    • DESC :降序

查詢單列

SELECT prod_name
FROM products;

查詢多列

SELECT prod_id, prod_name, prod_price
FROM products;

查詢所有列

ELECT *
FROM products;

查詢不同的值

SELECT DISTINCT
vend_id FROM products;

限制查詢結(jié)果

-- 返回前 5
SELECT * FROM mytable LIMIT 5;
SELECT * FROM mytable LIMIT 0, 5;
-- 返回第 3 ~ 5
SELECT * FROM mytable LIMIT 2, 3;

三、子查詢

子查詢是嵌套在較大查詢中的 SQL 查詢。子查詢也稱為內(nèi)部查詢內(nèi)部選擇,而包含子查詢的語句也稱為外部查詢外部選擇。

  • 子查詢可以嵌套在 SELECT,INSERTUPDATE 或 DELETE 語句內(nèi)或另一個子查詢中。推薦:太贊了,SpringBoot+Vue前后端分離完整入門教程!

  • 子查詢通常會在另一個 SELECT 語句的 WHERE 子句中添加。

  • 您可以使用比較運算符,如 ><,或 =。比較運算符也可以是多行運算符,如 INANY 或 ALL。

  • 子查詢必須被圓括號 () 括起來。

  • 內(nèi)部查詢首先在其父查詢之前執(zhí)行,以便可以將內(nèi)部查詢的結(jié)果傳遞給外部查詢。執(zhí)行過程可以參考下圖:

子查詢的子查詢

SELECT cust_name, cust_contact
FROM customers
WHERE cust_id IN (SELECT cust_id
FROM orders
WHERE order_num IN (SELECT order_num
FROM orderitems
WHERE prod_id = 'RGAN01')
)
;

WHERE

  • WHERE 子句用于過濾記錄,即縮小訪問數(shù)據(jù)的范圍。

  • WHERE 后跟一個返回 true 或 false 的條件。

  • WHERE 可以與 SELECT,UPDATE 和 DELETE 一起使用。

  • 可以在 WHERE 子句中使用的操作符

運算符描述
=等于
<>不等于。注釋:在 SQL 的一些版本中,該操作符可被寫成 !=
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在某個范圍內(nèi)
LIKE搜索某種模式
IN指定針對某個列的多個可能值

SELECT 語句中的 WHERE 子句

SELECT * FROM Customers
WHERE cust_name = 'Kids Place';

UPDATE 語句中的 WHERE 子句

UPDATE Customers
SET cust_name = 'Jack Jones'
WHERE cust_name = 'Kids Place';

DELETE 語句中的 WHERE 子句

DELETE FROM Customers
WHERE cust_name = 'Kids Place';

IN 和 BETWEEN

  • IN 操作符在 WHERE 子句中使用,作用是在指定的幾個特定值中任選一個值。

  • BETWEEN 操作符在 WHERE 子句中使用,作用是選取介于某個范圍內(nèi)的值。

IN 示例

SELECT *
FROM products
WHERE vend_id IN ('DLL01', 'BRS01')
;

BETWEEN 示例

SELECT *
FROM products
WHERE prod_price BETWEEN 3 AND 5;

AND、OR、NOT

  • AND、OR、NOT 是用于對過濾條件的邏輯處理指令。

  • AND 優(yōu)先級高于 OR,為了明確處理順序,可以使用 ()。

  • AND 操作符表示左右條件都要滿足。

  • OR 操作符表示左右條件滿足任意一個即可。

  • NOT 操作符用于否定一個條件。

AND 示例

SELECT prod_id, prod_name, prod_price
FROM products
WHERE vend_id = 'DLL01' AND prod_price <= 4;

OR 示例

SELECT prod_id, prod_name, prod_price
FROM products
WHERE vend_id = 'DLL01' OR vend_id = 'BRS01';

NOT 示例

SELECT *
FROM products
WHERE prod_price NOT BETWEEN 3 AND 5;

LIKE

  • LIKE 操作符在 WHERE 子句中使用,作用是確定字符串是否匹配模式。

  • 只有字段是文本值時才使用 LIKE。

  • LIKE 支持兩個通配符匹配選項:% 和 _

  • 不要濫用通配符,通配符位于開頭處匹配會非常慢。

  • % 表示任何字符出現(xiàn)任意次數(shù)。

  • _ 表示任何字符出現(xiàn)一次。

% 示例

SELECT prod_id, prod_name, prod_price
FROM products
WHERE prod_name LIKE '%bean bag%';

_ 示例

SELECT prod_id, prod_name, prod_price
FROM products
WHERE prod_name LIKE '__ inch teddy bear';

四、連接和組合

連接(JOIN)

  • 如果一個 JOIN 至少有一個公共字段并且它們之間存在關(guān)系,則該 JOIN 可以在兩個或多個表上工作。

  • 連接用于連接多個表,使用 JOIN 關(guān)鍵字,并且條件語句使用 ON 而不是 WHERE

  • JOIN 保持基表(結(jié)構(gòu)和數(shù)據(jù))不變。

  • JOIN 有兩種連接類型:內(nèi)連接和外連接。

  • 內(nèi)連接又稱等值連接,使用 INNER JOIN 關(guān)鍵字。在沒有條件語句的情況下返回笛卡爾積。

    • 自連接可以看成內(nèi)連接的一種,只是連接的表是自身而已。

  • 自然連接是把同名列通過 = 測試連接起來的,同名列可以有多個。

  • 內(nèi)連接 vs 自然連接

    • 內(nèi)連接提供連接的列,而自然連接自動連接所有同名列。

  • 外連接返回一個表中的所有行,并且僅返回來自次表中滿足連接條件的那些行,即兩個表中的列是相等的。外連接分為左外連接、右外連接、全外連接(Mysql 不支持)。

    • 左外連接就是保留左表沒有關(guān)聯(lián)的行。

    • 右外連接就是保留右表沒有關(guān)聯(lián)的行。

  • 連接 vs 子查詢

    • 連接可以替換子查詢,并且比子查詢的效率一般會更快。

內(nèi)連接(INNER JOIN)

SELECT vend_name, prod_name, prod_price
FROM vendors INNER JOIN products
ON vendors.vend_id = products.vend_id;

自連接

SELECT c1.cust_id, c1.cust_name, c1.cust_contact
FROM customers c1, customers c2
WHERE c1.cust_name = c2.cust_name
AND c2.cust_contact = 'Jim Jones';

自然連接(NATURAL JOIN)

SELECT *
FROM Products
NATURAL JOIN Customers;

左連接(LEFT JOIN)

SELECT customers.cust_id, orders.order_num
FROM customers LEFT JOIN orders
ON customers.cust_id = orders.cust_id;

右連接(RIGHT JOIN)

SELECT customers.cust_id, orders.order_num
FROM customers RIGHT JOIN orders
ON customers.cust_id = orders.cust_id;

組合(UNION)

  • UNION 運算符將兩個或更多查詢的結(jié)果組合起來,并生成一個結(jié)果集,其中包含來自 UNION 中參與查詢的提取行。

  • UNION 基本規(guī)則

    • 所有查詢的列數(shù)和列順序必須相同。

    • 每個查詢中涉及表的列的數(shù)據(jù)類型必須相同或兼容。

    • 通常返回的列名取自第一個查詢。

  • 默認會去除相同行,如果需要保留相同行,使用 UNION ALL。

  • 只能包含一個 ORDER BY 子句,并且必須位于語句的最后。

  • 應用場景

    • 在一個查詢中從不同的表返回結(jié)構(gòu)數(shù)據(jù)。

    • 對一個表執(zhí)行多個查詢,按一個查詢返回數(shù)據(jù)。

組合查詢

SELECT cust_name, cust_contact, cust_email
FROM customers
WHERE cust_state IN ('IL', 'IN', 'MI')
UNION
SELECT cust_name, cust_contact, cust_email
FROM customers
WHERE cust_name
= 'Fun4All';

JOIN vs UNION

  • JOIN vs UNION

    • JOIN 中連接表的列可能不同,但在 UNION 中,所有查詢的列數(shù)和列順序必須相同。

    • UNION 將查詢之后的行放在一起(垂直放置),但 JOIN 將查詢之后的列放在一起(水平放置),即它構(gòu)成一個笛卡爾積。

推薦:太贊了,SpringBoot+Vue前后端分離完整入門教程!

五、函數(shù)

?? 注意:不同數(shù)據(jù)庫的函數(shù)往往各不相同,因此不可移植。本節(jié)主要以 Mysql 的函數(shù)為例。

文本處理

函數(shù)說明
LEFT()、RIGHT()左邊或者右邊的字符
LOWER()、UPPER()轉(zhuǎn)換為小寫或者大寫
LTRIM()RTIM()去除左邊或者右邊的空格
LENGTH()長度
SOUNDEX()轉(zhuǎn)換為語音值

其中, SOUNDEX() 可以將一個字符串轉(zhuǎn)換為描述其語音表示的字母數(shù)字模式。

SELECT *
FROM mytable
WHERE SOUNDEX(col1)
= SOUNDEX('apple')

日期和時間處理

  • 日期格式:YYYY-MM-DD

  • 時間格式:HH:MM:SS

函 數(shù)說 明
AddDate()增加一個日期(天、周等)
AddTime()增加一個時間(時、分等)
CurDate()返回當前日期
CurTime()返回當前時間
Date()返回日期時間的日期部分
DateDiff()計算兩個日期之差
Date_Add()高度靈活的日期運算函數(shù)
Date_Format()返回一個格式化的日期或時間串
Day()返回一個日期的天數(shù)部分
DayOfWeek()對于一個日期,返回對應的星期幾
Hour()返回一個時間的小時部分
Minute()返回一個時間的分鐘部分
Month()返回一個日期的月份部分
Now()返回當前日期和時間
Second()返回一個時間的秒部分
Time()返回一個日期時間的時間部分
Year()返回一個日期的年份部分
mysql> SELECT NOW();
2018-4-14 20:25:11

數(shù)值處理

函數(shù)說明
SIN()正弦
COS()余弦
TAN()正切
ABS()絕對值
SQRT()平方根
MOD()余數(shù)
EXP()指數(shù)
PI()圓周率
RAND()隨機數(shù)

匯總

函 數(shù)說 明
AVG()返回某列的平均值
COUNT()返回某列的行數(shù)
MAX()返回某列的最大值
MIN()返回某列的最小值
SUM()返回某列值之和

AVG() 會忽略 NULL 行。

使用 DISTINCT 可以讓匯總函數(shù)值匯總不同的值。

SELECT AVG(DISTINCT col1) AS avg_col
FROM mytable

六、排序和分組

ORDER BY

  • ORDER BY 用于對結(jié)果集進行排序。

    • ASC :升序(默認)

    • DESC :降序

  • 可以按多個列進行排序,并且為每個列指定不同的排序方式

指定多個列的排序方向

SELECT * FROM products
ORDER BY prod_price DESC, prod_name ASC;

GROUP BY

  • GROUP BY 子句將記錄分組到匯總行中。

  • GROUP BY 為每個組返回一個記錄。

  • GROUP BY 通常還涉及聚合:COUNT,MAX,SUM,AVG 等。

  • GROUP BY 可以按一列或多列進行分組。

  • GROUP BY 按分組字段進行排序后,ORDER BY 可以以匯總字段來進行排序。

分組

SELECT cust_name, COUNT(cust_address) AS addr_num
FROM Customers GROUP BY cust_name;

分組后排序

SELECT cust_name, COUNT(cust_address) AS addr_num
FROM Customers GROUP BY cust_name
ORDER BY cust_name DESC;

HAVING

  • HAVING 用于對匯總的 GROUP BY 結(jié)果進行過濾。

  • HAVING 要求存在一個 GROUP BY 子句。

  • WHERE 和 HAVING 可以在相同的查詢中。

  • HAVING vs WHERE

    • WHERE 和 HAVING 都是用于過濾。

    • HAVING 適用于匯總的組記錄;而 WHERE 適用于單個記錄。

使用 WHERE 和 HAVING 過濾數(shù)據(jù)

SELECT cust_name, COUNT(*) AS num
FROM Customers
WHERE cust_email IS NOT NULL
GROUP BY cust_name
HAVING COUNT(*) >
= 1;

(以下為 DDL 語句用法)

七、數(shù)據(jù)定義

DDL 的主要功能是定義數(shù)據(jù)庫對象(如:數(shù)據(jù)庫、數(shù)據(jù)表、視圖、索引等)。

數(shù)據(jù)庫(DATABASE)

創(chuàng)建數(shù)據(jù)庫

CREATE DATABASE test;

刪除數(shù)據(jù)庫

DROP DATABASE test;

選擇數(shù)據(jù)庫

USE test;

數(shù)據(jù)表(TABLE)

創(chuàng)建數(shù)據(jù)表

普通創(chuàng)建

CREATE TABLE user (
id int(10)
unsigned NOT NULL COMMENT 'Id',
username varchar(64) NOT NULL DEFAULT 'default' COMMENT '用戶名',
password varchar(64) NOT NULL DEFAULT 'default' COMMENT '密碼',
email varchar(64) NOT NULL DEFAULT 'default' COMMENT '郵箱'
) COMMENT
='用戶表';

根據(jù)已有的表創(chuàng)建新表

CREATE TABLE vip_user AS
SELECT * FROM user;

刪除數(shù)據(jù)表

DROP TABLE user;

修改數(shù)據(jù)表

添加列

ALTER TABLE user
ADD age int(3)
;

刪除列

ALTER TABLE user
DROP COLUMN age;

修改列

ALTER TABLE `user`
MODIFY COLUMN age tinyint;

添加主鍵

ALTER TABLE user
ADD PRIMARY KEY (id)
;

刪除主鍵

ALTER TABLE user
DROP PRIMARY KEY;

視圖(VIEW)

  • 定義

    • 視圖是基于 SQL 語句的結(jié)果集的可視化的表。

    • 視圖是虛擬的表,本身不包含數(shù)據(jù),也就不能對其進行索引操作。對視圖的操作和對普通表的操作一樣。

  • 作用

    • 簡化復雜的 SQL 操作,比如復雜的聯(lián)結(jié);

    • 只使用實際表的一部分數(shù)據(jù);

    • 通過只給用戶訪問視圖的權(quán)限,保證數(shù)據(jù)的安全性;

    • 更改數(shù)據(jù)格式和表示。

創(chuàng)建視圖

CREATE VIEW top_10_user_view AS
SELECT id, username
FROM user
WHERE id < 10;

刪除視圖

DROP VIEW top_10_user_view;

索引(INDEX)

  • 作用

    • 通過索引可以更加快速高效地查詢數(shù)據(jù)。

    • 用戶無法看到索引,它們只能被用來加速查詢。

  • 注意

    • 更新一個包含索引的表需要比更新一個沒有索引的表花費更多的時間,這是由于索引本身也需要更新。因此,理想的做法是僅僅在常常被搜索的列(以及表)上面創(chuàng)建索引。

  • 唯一索引

    • 唯一索引表明此索引的每一個索引值只對應唯一的數(shù)據(jù)記錄。

創(chuàng)建索引

CREATE INDEX user_index
ON user (id)
;

創(chuàng)建唯一索引

CREATE UNIQUE INDEX user_index
ON user (id)
;

刪除索引

ALTER TABLE user
DROP INDEX user_index;

約束

SQL 約束用于規(guī)定表中的數(shù)據(jù)規(guī)則。

  • 如果存在違反約束的數(shù)據(jù)行為,行為會被約束終止。

  • 約束可以在創(chuàng)建表時規(guī)定(通過 CREATE TABLE 語句),或者在表創(chuàng)建之后規(guī)定(通過 ALTER TABLE 語句)。

  • 約束類型

    • NOT NULL - 指示某列不能存儲 NULL 值。

    • UNIQUE - 保證某列的每行必須有唯一的值。

    • PRIMARY KEY - NOT NULL 和 UNIQUE 的結(jié)合。確保某列(或兩個列多個列的結(jié)合)有唯一標識,有助于更容易更快速地找到表中的一個特定的記錄。

    • FOREIGN KEY - 保證一個表中的數(shù)據(jù)匹配另一個表中的值的參照完整性。

    • CHECK - 保證列中的值符合指定的條件。

    • DEFAULT - 規(guī)定沒有給列賦值時的默認值。

創(chuàng)建表時使用約束條件:

CREATE TABLE Users (
Id INT(10)
UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增Id',
Username VARCHAR(64) NOT NULL UNIQUE DEFAULT 'default' COMMENT '用戶名',
Password VARCHAR(64) NOT NULL DEFAULT 'default' COMMENT '密碼',
Email VARCHAR(64) NOT NULL DEFAULT 'default' COMMENT '郵箱地址',
Enabled TINYINT(4) DEFAULT NULL COMMENT '是否有效',
PRIMARY KEY (Id)
) ENGINE
=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='用戶表';

(以下為 TCL 語句用法)

八、事務處理

  • 不能回退 SELECT 語句,回退 SELECT 語句也沒意義;也不能回退 CREATE 和 DROP 語句。

  • MySQL 默認是隱式提交,每執(zhí)行一條語句就把這條語句當成一個事務然后進行提交。當出現(xiàn) START TRANSACTION 語句時,會關(guān)閉隱式提交;當 COMMIT 或 ROLLBACK 語句執(zhí)行后,事務會自動關(guān)閉,重新恢復隱式提交。

  • 通過 set autocommit=0 可以取消自動提交,直到 set autocommit=1 才會提交;autocommit 標記是針對每個連接而不是針對服務器的。

  • 指令

    • START TRANSACTION - 指令用于標記事務的起始點。

    • SAVEPOINT - 指令用于創(chuàng)建保留點。

    • ROLLBACK TO - 指令用于回滾到指定的保留點;如果沒有設(shè)置保留點,則回退到 START TRANSACTION 語句處。

    • COMMIT - 提交事務。

-- 開始事務
START TRANSACTION;

-- 插入操作 A
INSERT INTO `user`
VALUES (1, 'root1', 'root1', '[email protected]');

-- 創(chuàng)建保留點 updateA
SAVEPOINT updateA;

-- 插入操作 B
INSERT INTO `user`
VALUES (2, 'root2', 'root2', '[email protected]');

-- 回滾到保留點 updateA
ROLLBACK TO updateA;

-- 提交事務,只有操作 A 生效
COMMIT;

(以下為 DCL 語句用法)

九、權(quán)限控制

  • GRANT 和 REVOKE 可在幾個層次上控制訪問權(quán)限:

    • 整個服務器,使用 GRANT ALL 和 REVOKE ALL;

    • 整個數(shù)據(jù)庫,使用 ON database.*;

    • 特定的表,使用 ON database.table;

    • 特定的列;

    • 特定的存儲過程。

  • 新創(chuàng)建的賬戶沒有任何權(quán)限。

  • 賬戶用 username@host 的形式定義,username@% 使用的是默認主機名。

  • MySQL 的賬戶信息保存在 mysql 這個數(shù)據(jù)庫中。

    USE mysql;
    SELECT user FROM user;
    復制代碼

創(chuàng)建賬戶

CREATE USER myuser IDENTIFIED BY 'mypassword';

修改賬戶名

UPDATE user SET user='newuser' WHERE user='myuser';
FLUSH PRIVILEGES;

刪除賬戶

DROP USER myuser;

查看權(quán)限

SHOW GRANTS FOR myuser;

授予權(quán)限

GRANT SELECT, INSERT ON *.* TO myuser;

刪除權(quán)限

REVOKE SELECT, INSERT ON *.* FROM myuser;

更改密碼

SET PASSWORD FOR myuser = 'mypass';

十、存儲過程

  • 存儲過程可以看成是對一系列 SQL 操作的批處理;

  • 使用存儲過程的好處

    • 代碼封裝,保證了一定的安全性;

    • 代碼復用;

    • 由于是預先編譯,因此具有很高的性能。

  • 創(chuàng)建存儲過程

    • 命令行中創(chuàng)建存儲過程需要自定義分隔符,因為命令行是以 ; 為結(jié)束符,而存儲過程中也包含了分號,因此會錯誤把這部分分號當成是結(jié)束符,造成語法錯誤。

    • 包含 in、out 和 inout 三種參數(shù)。

    • 給變量賦值都需要用 select into 語句。

    • 每次只能給一個變量賦值,不支持集合的操作。

創(chuàng)建存儲過程

DROP PROCEDURE IF EXISTS `proc_adder`;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_adder`(IN a int, IN b int, OUT sum int)
BEGIN
DECLARE c int;
if a is null then set a = 0;
end if;

if b is null then set b = 0;
end if;

set sum = a + b;
END
;;
DELIMITER ;

使用存儲過程

set @b=5;
call proc_adder(2,@b,@s);
select @s as sum;

十一、游標

  • 游標(cursor)是一個存儲在 DBMS 服務器上的數(shù)據(jù)庫查詢,它不是一條 SELECT 語句,而是被該語句檢索出來的結(jié)果集。

  • 在存儲過程中使用游標可以對一個結(jié)果集進行移動遍歷。

  • 游標主要用于交互式應用,其中用戶需要對數(shù)據(jù)集中的任意行進行瀏覽和修改。

  • 使用游標的四個步驟:

    • 聲明游標,這個過程沒有實際檢索出數(shù)據(jù);

    • 打開游標;

    • 取出數(shù)據(jù);

    • 關(guān)閉游標;

DELIMITER $
CREATE PROCEDURE getTotal()
BEGIN
DECLARE total INT
;
-- 創(chuàng)建接收游標數(shù)據(jù)的變量
DECLARE sid INT;
DECLARE sname VARCHAR(10);
-- 創(chuàng)建總數(shù)變量
DECLARE sage INT;
-- 創(chuàng)建結(jié)束標志變量
DECLARE done INT DEFAULT false;
-- 創(chuàng)建游標
DECLARE cur CURSOR FOR SELECT id,name,age from cursor_table where age>30;
-- 指定游標循環(huán)結(jié)束時的返回值
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = true;
SET total = 0;
OPEN cur;
FETCH cur INTO sid, sname, sage;
WHILE(NOT done)
DO
SET total = total + 1;
FETCH cur INTO sid, sname, sage;
END WHILE;

CLOSE cur;
SELECT total;
END $
DELIMITER ;

-- 調(diào)用存儲過程
call getTotal();

十二、觸發(fā)器

觸發(fā)器是一種與表操作有關(guān)的數(shù)據(jù)庫對象,當觸發(fā)器所在表上出現(xiàn)指定事件時,將調(diào)用該對象,即表的操作事件觸發(fā)表上的觸發(fā)器的執(zhí)行。

可以使用觸發(fā)器來進行審計跟蹤,把修改記錄到另外一張表中。

MySQL 不允許在觸發(fā)器中使用 CALL 語句 ,也就是不能調(diào)用存儲過程。

BEGIN 和 END

當觸發(fā)器的觸發(fā)條件滿足時,將會執(zhí)行 BEGIN 和 END 之間的觸發(fā)器執(zhí)行動作。

?? 注意:在 MySQL 中,分號 ; 是語句結(jié)束的標識符,遇到分號表示該段語句已經(jīng)結(jié)束,MySQL 可以開始執(zhí)行了。因此,解釋器遇到觸發(fā)器執(zhí)行動作中的分號后就開始執(zhí)行,然后會報錯,因為沒有找到和 BEGIN 匹配的 END。

這時就會用到 DELIMITER 命令(DELIMITER 是定界符,分隔符的意思)。它是一條命令,不需要語句結(jié)束標識,語法為:DELIMITER new_delemiter。new_delemiter 可以設(shè)為 1 個或多個長度的符號,默認的是分號 ;,我們可以把它修改為其他符號,如 $ - DELIMITER $ 。在這之后的語句,以分號結(jié)束,解釋器不會有什么反應,只有遇到了 $,才認為是語句結(jié)束。注意,使用完之后,我們還應該記得把它給修改回來。

NEW 和 OLD

  • MySQL 中定義了 NEW 和 OLD 關(guān)鍵字,用來表示觸發(fā)器的所在表中,觸發(fā)了觸發(fā)器的那一行數(shù)據(jù)。

  • 在 INSERT 型觸發(fā)器中,NEW 用來表示將要(BEFORE)或已經(jīng)(AFTER)插入的新數(shù)據(jù);

  • 在 UPDATE 型觸發(fā)器中,OLD 用來表示將要或已經(jīng)被修改的原數(shù)據(jù),NEW 用來表示將要或已經(jīng)修改為的新數(shù)據(jù);

  • 在 DELETE 型觸發(fā)器中,OLD 用來表示將要或已經(jīng)被刪除的原數(shù)據(jù);

  • 使用方法: NEW.columnName (columnName 為相應數(shù)據(jù)表某一列名)

創(chuàng)建觸發(fā)器

提示:為了理解觸發(fā)器的要點,有必要先了解一下創(chuàng)建觸發(fā)器的指令。

CREATE TRIGGER 指令用于創(chuàng)建觸發(fā)器。

語法:

CREATE TRIGGER trigger_name
trigger_time
trigger_event
ON table_name
FOR EACH ROW
BEGIN
trigger_statements
END;

說明:

  • trigger_name:觸發(fā)器名

  • trigger_time: 觸發(fā)器的觸發(fā)時機。取值為 BEFORE 或 AFTER。

  • trigger_event: 觸發(fā)器的監(jiān)聽事件。取值為 INSERTUPDATE 或 DELETE。

  • table_name: 觸發(fā)器的監(jiān)聽目標。指定在哪張表上建立觸發(fā)器。

  • FOR EACH ROW: 行級監(jiān)視,Mysql 固定寫法,其他 DBMS 不同。

  • trigger_statements: 觸發(fā)器執(zhí)行動作。是一條或多條 SQL 語句的列表,列表內(nèi)的每條語句都必須用分號 ; 來結(jié)尾。

示例:

DELIMITER $
CREATE TRIGGER `trigger_insert_user`
AFTER INSERT ON `user`
FOR EACH ROW
BEGIN
INSERT INTO `user_history`(user_id, operate_type, operate_time)
VALUES (NEW.id, 'add a user', now());
END $
DELIMITER ;

查看觸發(fā)器

SHOW TRIGGERS;

刪除觸發(fā)器

DROP TRIGGER IF EXISTS trigger_insert_user;

萬水千山總是情,點個 ?? 行不行。



有興趣玩一些趣味的Python程序,可以加入我們,我們一年會帶大家一起玩一些趣味的項目。通過趣味的程序可以快速入門Python,不然很多人就從入門到放棄了,大家一起學,抱團取暖。






推薦閱讀:

入門: 最全的零基礎(chǔ)學Python的問題  | 零基礎(chǔ)學了8個月的Python  | 實戰(zhàn)項目 |學Python就是這條捷徑


干貨:爬取豆瓣短評,電影《后來的我們》 | 38年NBA最佳球員分析 |   從萬眾期待到口碑撲街!唐探3令人失望  | 笑看新倚天屠龍記 | 燈謎答題王 |用Python做個海量小姐姐素描圖 |碟中諜這么火,我用機器學習做個迷你推薦系統(tǒng)電影


趣味:彈球游戲  | 九宮格  | 漂亮的花 | 兩百行Python《天天酷跑》游戲!


AI: 會做詩的機器人 | 給圖片上色 | 預測收入 | 碟中諜這么火,我用機器學習做個迷你推薦系統(tǒng)電影


小工具: Pdf轉(zhuǎn)Word,輕松搞定表格和水印! | 一鍵把html網(wǎng)頁保存為pdf!|  再見PDF提取收費! | 用90行代碼打造最強PDF轉(zhuǎn)換器,word、PPT、excel、markdown、html一鍵轉(zhuǎn)換 | 制作一款釘釘?shù)蛢r機票提示器! |60行代碼做了一個語音壁紙切換器天天看小姐姐!


年度爆款文案



點閱讀原文,看200個Python案例!

瀏覽 33
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 99久久久精品久久久久久| 99热在线观看免费| 超碰在线图片| 日本不卡在线观看| 国产熟妇码视频户外直播| 在线免费观看毛片| 五月天综合| 另类老妇奶性BBWBBwBBw| 国产精品AV一区| np高辣调教视频| 亚洲无码福利视频| 国产一级a毛一级a做免费图片| 欧美色图888| 日韩3级片| 手机毛片在线播放| 91在线看| 成人精品久久久| 大香蕉久久久久久| 九九综合网| 在线免费观看成人视频| 午夜激情福利| 欧美AAAAAA视频| av天天干| 足浴店少妇69XXX| 思思热视频在线观看| 另类Av| 国产在线接入| 大地8免费高清视频观看大全| 嫩操影院| 日韩无码激情| 91久久婷婷国产| 免费看黄在线看| 好吊妞在线观看| 伦理无码| www超碰在线| 无码三级| 日日干日日操| 国产无码片| 性爱无码网站| 超碰人人在线观看| 免费国产三级片| 国内精品久久久久久久久久变脸| 波多野结衣无码网站| 欧美一级黄片免费看| 午夜一级性爱片| 伊人大香蕉在线观看| 亚洲日韩av在线| 91久久国产综合久久91精品网站 | 2021国产精品视频| 免费黄片视频大全| 免费的一级A片| mm131亚洲国产精品久久| 宅男视频| 日韩三级一区二区| 欧美精品18| 人妻少妇91精品一区黑人| 五月天成人导航| 97精品综合久久| 在线亚洲小视频| 欧美一级欧美三级在线观看| av无码精品一区| 日韩一区二区无码视频| 日韩成人网站| 久久久影院| 日韩三级片网站| 亚洲中文字| 国产精品久久久久久久久久王安宇| 日本黄色大片| 欧美操逼图片| 強姦婬片A片AAA毛片Mⅴ| 91拍真实国产伦偷精品| 欧美激情综合色综合啪啪五月| 日本免费黄色片| 99久久精品国产一区色| 爱爱91| 国产熟妇码视频| 操逼黄视频| 免费无码国产在线观看快色| 国产日韩二区| 欧美特黄AAAAAAAAA片| 久久视频免费看| 黑巨茎大战欧美白妞小说| 日韩AV无码一区二区三区| aaaaaa在线观看免费高清| 国产麻豆精品ThePorn| 2016av天堂网| 草免费视频| 美女久草| 先锋影音亚洲AV每日资源网站| 99在线精品视频在线观看| 9191久久| 亚洲视频入口| 一级a一级a爰片免费免免中国A片| 国产乱色精品成人免费视频| 国产精品V日韩精品V在线观看| 亚洲日韩字幕| 大香蕉尹人在看| 91黑人丨人妻丨国产丨| 人人操在线播放| 国产精品久久7777777精品无码| 日本三级片在线| 9久9久9久9久女女女女| 国内毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 亚洲AV中文无码| 九九综合伊人7777777| 国产视频黄| 中国老少配BBwBBwBBW| 精品人妻一区二区三区日产乱码 | 久久久久久久久久久亚洲| 中日韩精品A片中文字幕| 99re视频在线播放| 狠狠2021| 日韩综合在线观看| 四川BBBBBB搡BBBBB| 97大香蕉视频| 无码AⅤ一区二区三区| 暗呦网一区二区三区| 久久黄网| 国产视频久久| 免费日本黄色| 亚洲无码乱码av| 日日干夜夜撸| 日本内射在线播放| 先锋资源av在线| 婷婷午夜福利| а中文在线天堂精品| 少妇4p| 一级片a片| 国产欧美综合三级伦| 91亚洲日韩| 人人人人人人操| 青春草在线免费视频| 国产在线毛片| ThePorn日本无码| 人人妻人人澡人人爽人人DVD| 日韩人妻精品无码久久| 天天操天天操免费视频| 北条麻纪视频| 午夜福利日本| 国产三级精品三级在线观看| 中文字幕无码网站| 超级碰碰| 日韩精品成人无码| 国产卡一卡二| 特黄特色免费视频| 91人人干| 撒尿BBw搡BBwBBw| 蜜桃传媒一区二区亚洲A| 国产成人亚洲综合AV婷婷| 一级成人毛片| 亚洲无码一级片| 欧美一级爱| 日本久久精品18| av无码电影| 久久久九九九| 内射自拍| 2018天天操天天干| 日日搔AV一区二区三区| 国产免费高清| 国产www在线观看| 日韩18禁| 亚洲成人a片| 精品三级网站| 亚洲激情欧美| 久久久亚洲熟妇熟女| 婷婷国产亚洲精品网站| 久久精品片| 在线观看视频一区| 91aaa在线观看| 久久私拍| 91人妻人人澡人人爽人人精品一 | 久草在线| 无码精品一区二区三区在线播放| 69性影院| 翔田千里无码流出两部| 乱伦91视频| 日韩高清成人无码| 北条麻妃中文字幕在线观看| 久久久国产91桃色一区二区三区| 精品无码产区一区二| 一级操逼大片| 自拍偷拍亚洲无码| 大黄网站在线观看| 欧美日韩国产一区二区三区| 逼逼AV网站-日韩电影| 人妖无码| 国产无码三级| 天天干中文字幕| 黄色在线观看免费| 狠狠色AV| 成人午夜福利| 日本精品二区| 中文有码在线| 成人免费黄色网| 大香蕉伊人青青草| 在线国产激情视频| 免费无码一级A片大黄在线观看 | 岛国片资源| AV无码免费观看| 青春草视频| 熟妇精品| 国产无套进入免费| 亚洲国产精品久久人人爱| 操逼在线看| 日本a级视频| 久久精品99| 成人免费无码毛片| 天天日天天操天天爽| 欧美视频在线免费| 国产无套进入免费| 超碰9| 国产无码片| 香蕉一区二区| 大香蕉国产视频| 婷婷在线视频| 男人操女人视频网站| 國產精品777777777| 亚洲区欧美区| 四虎精品影院| 国产喷水ThePorn| 欧美XX888做受| 国产伦精品一区二区三区视频女| 777免费视频| 大香蕉精品在线| 国内无码精品| 91人妻人人爽人人澡| 91在线无码精品秘国产| 欧美黄色电影网站| 黄色网址五月天| 91视频第一页| 欧美啪啪啪| 大香蕉伊人视频| 中午字幕在线观看| 日中国老太太B| 久久免费视频精品| 蜜桃秘av一区二区三区安全| 蜜桃AV一区二区三区| 无码不卡在线观看| 五月天在线观看| 一级黄色电影免费| 亚洲二级片| 国产综合久久| 欧美黄片在线免费看| 人妻少妇精品无码| 日韩黄频| 国产高清AV| 丁香婷婷在线| 欧美在线视频播放| 久久久国产精品黄毛片| 久久g热| 操操操无码| 影音先锋成人资源网| 高清免费无码| 黑人精品XXX一区一二区| 欧美一级特黄AAAAAA片| 日韩人妻精品无码久久| 97精品人妻麻豆一区二区| 99自拍网| 久久艹大香蕉| 国产午夜91人妻| 3D动漫精品啪啪一区二区下载| 五月天色综合| 久久亚洲成人| 一区二区三区视频免费| 成人天堂| 一级免费爱爱视频| 尤物yw| 亚洲视频久久| 丰臀肥逼高清视频电影播放| 在线无码视频观看| 成人a视频| 蜜桃91精品秘入口| 美女高潮网站| 三级亚洲| 激情男人网| 深爱激情五月婷婷| 日韩成人精品视频| 女人的天堂AAA| 91三级片在线观看| 三级麻豆| 最新免费毛片| 婷婷高清无码| 欧美三级在线视频| 先锋影音亚洲无码av| 91人人操人人爽| 亚洲第二页| 很很撸在线视频| 久久久久久久久黄色| 国产嘿嘿| 在线观看免费A片| 日本成人黄色视频| 国产成人视频| 日韩AV免费在线观看| 日韩中字无码黄片| 亚洲成人AAAAA| 日韩精品网| 国产在线观看自拍| 偷拍精品视频| 中文字幕AV在线播放| 日本熟妇在线| 91日日夜夜| 精品无码一区二区三区四区久久久软件 | 久久嫩草国产成人一区| 亚洲av影院| 骚逼自拍| 亚洲无码自拍偷拍| 亚洲无码人妻一区| 亚洲爆乳无码一区二区三区| 成人精品18| 久久综合无码内射国产| 蜜桃av色偷偷av老熟女| 日本高清视频网站| 玖玖成人| 深爱激情综合| 色资源在线观看| 久久久久久无码| 97国产精品视频| 亚洲无码影视| 久久精品99国产国产精| 国产aⅴ激情无码久久久无码| 亚洲中文字幕久久日| 色逼逼网| 九九视频免费在线观看| 久操久操久操| 亚洲无码成人在线观看| 干欧美美女| 丁香五月激情啪啪啪| 91成人视频在线观看| 色色综合热| 大香蕉性爱| 国精产品九九国精产品| 久久久久久高清毛片一级| 在线观看国产区| 五月天婷婷丁香网| 免费一级A片| 亚洲污污| 泄火熟妇2-ThePorn| 99热999| 91爱爱网| 亚洲a在线视频| 日本免费爱爱视频| 一区二区精品视频| 99久热在线精品视频| 国产一二三| 天天色色婷婷| 综合网插菊花| 91中文在线| 国产黄色电影在线| 九色一区| 亚洲中文字幕日本| 国产精品a久久久久| 18禁二区| 婷婷性爱五月天| 成人福利影视| 天堂va欧美va亚洲va在线| 久久亚洲无码| 麻豆91精品91久久久| 中文字幕在线观看一区| 一区二区三区不卡在线| 国产精品一二三区| 男人天堂视频在线| 熟妇导航| 黄色中文字幕| 日韩视频免费观看| 免费看毛片的网站| 大香蕉中文在线| 午夜免费小视频| 国产视频网| 玖玖综合网| 美女被操免费网站| 免费在线看A| 神马午夜福利视频| 精品中文在线| 丁香五月网| 亚洲天堂男人天堂| 91在线精品视频| 一级在线播放| 操噜噜噜噜噜插| 婷婷狠狠操| 国产A片精品| 大香蕉中文网| 欧美,日韩,中文字幕| 亚洲中文字幕日韩在线| 蜜桃人妻无码AV天堂三区 | 国产在线观看无码免费视频| 被黑人猛躁10次高潮视频| 成人AV在线看| 超碰97在线免费观看| 日韩三级中文| 日本激情视频| 精品人人人人| 三级在线视频| 男女福利视频| 水果派AV解说| 国产成人精品777777| 黄片av| 日本aa视频| 制服丝袜无码| 成年人黄色电影| 操大逼视频免费国产| 日本高潮视频| 久久久久久久久久久久国产精品 | 亚洲熟女视频| 日韩精品一| 成人做爰黄A片免费看陈冠| 欧美亚洲精品在线| 操老女人逼| 成人V| 佳佳女王footjob超级爽| 蜜臀久久99精品久久久兰草影视 | 日韩一级性爱视频| 一区在线视频| 欧美操逼网址| 中文无码字幕视频| 另类日韩| 欧美不卡一区二区| 亚洲午夜视频| 日本熟妇高潮BBwBBwBBw| 久久国产精品在线| 懂色av,蜜臀AV粉嫩av| 一边做一边说国语对白| 成人在线视频免费观看| 日韩爆乳在线| 思思热思思操免费视频| 亚洲高清无码在线播放| 国产无遮挡又黄又爽又色视频软件 | 详情:绿帽夫妻多人运动开淫啪-91n| 美腿丝袜中文字幕精品| 久久青草影院| 日韩欧美在线免费观看| 人人色在线观看| 肉片无遮挡一区二区三区免费观看视频 | 国产18女人水真多免费看| 蜜桃视频一区二区| 91成人区| 亚洲综合婷婷| 国产精品乱子伦一区二区三区视频| 久操精品视频| 一本色道久久综合熟妇| 亚洲欧美v在线视频| 91福利网| 一级av在线| 成年片免费观看网站免费观看,亚洲+欧...| 久久精品免费观看| 国产午夜成人免费看片无遮挡| 黑人Av在线| 国产激情| av在线天堂网| 羽月希在线播放| 伊人成人小说| 亚洲无码中| 久久久久久久| 狠操在线| 人妻18无码人伦一区二区三区精品 | 亚洲无码A片在线| 一区二区三区四区免费| AV自拍| 91人妻无码一区二区久久| 久久黄色网址| 黄色成人免费视频| 被男友内S~高H文| 亚洲五月婷| 就要操逼| 国产精品91久久久| 3D动漫精品啪啪一区二区下载| AV无码一区二区三区| 黑人又粗又大XXXXOO| 国产成人午夜福利在线| av网站在线播放| 99热加勒比| ww国产| 可以免费看av的网站| 亚洲无码三级片在线观看| 亚洲国产精品久久人人爱| 欧美色图另类图片| 午夜老司机福利| 中文字幕在线亚洲| 西西444| 最新毛片网站〖网:.〗| 91乱子伦国产乱子伦| 国产香蕉精品视频| 一级片免费观看视频| 亚洲一区无码| 男女69视频| 91蝌蚪视频在线播放| 菊花插综合网| 四虎AV| 欧美久久久久久| 无码AV天堂| 国产激情综合五月久久| a4yy午夜福利| 丁香五月婷婷基地| 青青娱乐亚洲无| a视频在线免费观看| 亚洲精品中文字幕乱码三区91| 99精品亚洲| 国产高清在线| 老司机av| 人人爽人人操人人| 亚洲插逼视频| 这里只有精品视频| 蜜臀AV成人精品| 中文字幕乱码无码人妻系列蜜桃| 欧美熟妇性爱视频| 你懂的视频在线| 日本在线视频一区二区| 少婦揉BBBB揉BBBB揉| 98在线++传媒麻豆的视频| 玖玖精品| 精品尤物| 亚洲第一成网站| 天天天天毛片| 91综合视频| 97精品在线观看| chinese高潮老女人| 亚洲香蕉av| 欧美黄色一级视频| 国产精品a久久久久| 国产一级片内射| AV天堂小说网| 先锋AV资源| 中文字幕乱码亚州无线码日韩理论电 | 黃色级A片一級片| 欧美国产高清| 网站av| 欧美在线观看视频| 欧美人妻少妇| 欧美伦妇AAAAAA片| 国产欧美综合一区二区| www.怡春院| 啪啪免费视频| 爱爱爱免费视频| 精品乱子伦| AV电影在线免费观看| 日韩黄色中文字幕| 爱爱无码| 欧美三级片在线视频| 刘玥精品国产一区二区三区| 国产精品一区二区AV日韩在线| 蕉久中文字慕| 欧美去干网| 国产中文视频| 嫩小槡BBBB槡BBBB槡免费-百度 | 色999日韩| 免费A片在线看| 一区二区三区四区日韩| 嘿咻无码推油| 亚洲无码在线电影| 日韩激情毛片| 成人黄色小电影| 日韩一区二区无码视频| jizz免费视频| 国产精品秘久久久久久网站| 国产suv精品一区二区| aaa久久| 久草麻豆| 亚洲婷婷在线观看| 91人妻日韩人妻无码专区精品 | 午夜AV在线免费观看| 精品人妻一区二区三区蜜桃| 操操操操一本到| 操逼毛片| 无码一区二区免费| 91免费高清视频| 欧美日韩精品一区二区三区视频播放 | 日本无码毛片| 操逼大毛片| 国产三级在线| 久久人妻熟女中文字幕av蜜芽| 久久久久伊人| 欧美搡BBBB搡BBB| 中文一区在线观看| 国产逼逼| 亚洲欧美美国产| 婷婷欧美| 人妻体内射精一区二区| 综合色婷婷一区二区亚洲欧美国产| 91精品啪| 亚洲一区二区免费视频| 特级西西| 日韩大码无码| 国产黄色av| 成人精品三级AV在线看| 色欲av伊人久久大香线蕉影院| 操逼操123| 在线播放www| 国产对白视频| 边摸边插| 麻豆一区视频| 懂色av| 亚洲精品一区二区三区| 欧美亚洲天堂网| 亚洲国产黄色视频| 欧美日韩在线看| 17c白丝喷水自慰| 午夜xxx| 国产女人18毛片水真多18 | 国产精品s色| 蜜桃成人无码区免费视频网站| 男女福利视频| 国产91嫩草乱婬A片2蜜臀| 日韩一及| www.国产豆花精品区| 亚洲av在线观看| 欧美在线一区二区| 人妻FrXXeeXXee护士| 亚洲第一黄网| 一区二区无码免费| 亚洲AV无码精品国产| 亚洲精品秘一区二区三区影| 成人在线日韩| 免费肏屄| 亚洲精品三级在线观看| 亚洲无码中文人妻| 黄色视频免费在线观看| 国产A区| 九九国产精品| 小黄片免费| 一级一A片一a免费看| 精品人妻无码一区二区三区四川人 | 东京热91| 久久成人无码电影| 97视频网站| 一级A毛片| 婷婷丁香五月花| 久久天堂影院| 国产一级精品视频| 69久久久久久久久久| 97伊人| 91精品国产综合久久久不打电影 | 美日韩无码视频| 日本免费版网站nba| 91久久久久久久久久| 人妖和人妖互交性XXXX视频| 综合久久av| 黄网免费看| 鲁一鲁视频| 色94色.欧美.setu| 伊人成人在线| 在线无码播放| 少妇大战黑人46厘米| 成人一级电影| 日韩无码一二三| а√最新版天堂中文在线| 人妻精品一区二区| 亚州在线视频| 奇米色五月| 欧美丰满人妻| 国产—a毛—a毛A免费看图| 天天操天天操天天操天天操| 色情一级AA片免费观看| 日本边摸边吻奶边做爰| 日韩AV无码成人精品| 国产成人无码一区二区在线播放| 久久久久久大香蕉| 丁香六月激情婷婷| 大地中文资源5页的更新内容| 9一区二区三区| 天天操人人射| 操逼首页123| 免费人成视频观看| 国产乱码一区二区三区| 先锋影音亚洲无码av| 婷婷五月免费视频| 嫩草99| 亲子乱AV一区二区| 一级日韩一级欧美| 草b网站| 日韩在线小电影| 天堂视频中文在线| 国产一区2区| 日韩AV免费在线播放| 中文字幕一区三区人妻视频| 中文字幕无码精品三级在线欧美| 亚洲日日干| 91精品国产综合久久久蜜臀图片 | 72成人网| 无码电影免费观看| 俺来俺去www色官网| 久久黄色精品视频| 久久久精品久久久| 337P人体美鮑高清| 青青草原无码| 亚洲一区二区三区视频| 亚洲精品成AV人片天堂无码| 亚洲无码成人网| 欧美日韩在线视频观看| 中文AV字幕| 欧美三级精品| 97人人爽| 无码中文av| 国产偷拍| 91乱伦视频| 欧美性爱在线| 初学影院WWWBD英语完整版在线观看 | 中文字幕一二三区| 成年女人免费视频| 91在线无码精品秘国产| av无码一区| 欧美成人A| 麻豆啪啪| 亚洲成人AV在线| 一道本在线| 土耳其电影《爱与罚》| 国产又爽又黄视频| 欧美在线成人网| 狠狠撸狠狠撸| 人人操人人网站| 91区视频| av资源观看| 日本免费黄| 一本色道无码道| 中文无码日本一级A片人| 欧美三级大片| 成人午夜视频在线观看| 日韩无码激情| 天堂a√中文8| 久久午夜无码鲁丝片午夜精品偷窥| 精品无码一区二区人妻久久蜜桃| 蜜臀AV成人| 国产精品一区二区AV日韩在线| 91无码一区二区| 婷婷三级| 日本中文字幕中文翻译歌词| 99在线看| 99无码| 97人人草| 亚洲中文无码视频| 免费AV在线| 大香蕉精品欧美色综合2025| 专肏老妇人大逼| 91亚洲精华国产精华精华液| 91三级片在线观看| 久久一道| 西西人体大胆裸体A片| 午夜av在线观看| 伊人无码视频| 精品日韩| 成人国产片女人爽到高潮| 国产一区2区| 91色| 日韩欧美在线中文字幕| 91视频中文字幕| 天天色天天日天天干| 人人操人人摸人人| 影音先锋成人资源| 最新AV在线播放| 欧美成人一级a片| 国产系列第一页| 欧美熟妇BBB搡BBB| 成人午夜av| 日韩无码黄片| 欧美操操| 波多野结衣高清无码| 精产国品一区二区| 影音先锋婷婷| 天天色粽合合合合合合合| 无码精品成人观看A片| 国产操美女| 精品视频| 91视频在线免费观看| 亚洲国产剧情| 午夜成人无码视频| 美女网站黄色| jizz麻豆| 精品无码免费| 亚洲一级黄色电影| 西西444大胆无码视频| 国产又粗又长又硬又大毛苴茸图片| 国产精品国产精品国产专区不52 | 韩国免费一级a一片在线播放| JULIA超乳JULIA无码| 色欲一区| 亚洲av影院| 亚洲精品字幕久久久久| 色婷婷7777| 免费在线观看黄片视频| 欧美肉大捧一进一出小说| 高清无码在线观看18| 色交视频| 日韩AV一区二区在线观看| 国产免费AV在线观看| 国产乱伦中文字幕| 玖玖爱国产| 亚洲国产成人精品女人| 中文字幕乱码亚洲无线码按摩| 一级a毛片| 精品人妻一区二区三区阅读全文| 波多野结衣高清无码视频| 国产爱搞| 四虎最新视频| 老太色HD色老太HD.| 少妇精品久久久久久久久久| 在线无码电影| 日韩免费高清无码| 亚洲AV无码一区二区三竹菊| 色婷婷欧美在线播放内射| 99久久伊人| 亚洲无码高清视频在线| 国产秘久久一区二区| www.爆操| 国产3p绿帽骚妻视频| 精品超碰| 五月丁香天堂网| 久草在线| 大香蕉伊人导航| 亚洲伊人成人| 免费A网站| 欧美视频一区二区| 手机AV免费| 欧美麻豆| 亚洲色图另类| 在线视频你懂得| 五月天婷婷AV| 蜜桃Av噜噜一区二区三区四区| 91丨露脸丨熟女抽搐| 国产免费小视频| 中文字幕乱码免费综合久久 | 日韩成人黄色| 少妇在线| 暗呦罗莉精品一区二区| 欧美日韩视频一区二区| 无码精品成人观看A片| 亚洲无aV在线中文字幕| av拍拍| 精品久久久无码| 成人a片视频| 九九热精品视频在线观看| 日韩视频播放在线综合| 日本黄色片在线播放| 五月天乱伦小说| 影音先锋亚洲资源| 人人爱人人妻人人操| 在线观看中文字幕一区| 欧美成人毛片一级A片| 在线观看高清无码视频| 黄色视频日韩| 特一级黄片| 2019天天干| 久色视频| 亚洲第一黄| 亚洲人操逼视频| 色综合久久88色综合天天99| 亚洲午夜久久久之蝌蚪窝| www.久久精品视频| 97人人射| 精品福利在线观看| 揄拍成人国产精品视频| 欧美老女人性爱视频| 亚洲在线视频播放| 懂色在线精品分类视频| 欧美另类极品| 国产熟妇毛多久久久久一区| 无码成人AV在线看免费| 五月天色婷婷丁香| 日韩AV无码专区亚洲AV| 成人在线视频免费| 岛国av无码免费| 欧美精产国品一二三区别| 久草视频福利| 国产91白浆四溢| 嫩BBB槡BBBB槡BBBB免费视频| 美女91视频网站| 亚洲性爱网站| 蜜臀精品色无码蜜臀AV| 麻豆自拍偷拍| 亚洲一区无码| jizz国产视频| 婷婷色AV| 亚洲精品乱码久久久久| 欧亚一区二区| 在线视频日本| 91成人视频在线观看| 亚洲婷婷精品国产成人| 欧美日韩一二| 99热这里都是精品| 日本久久播| av四虎| 最近日韩中文字幕中文翻译歌词| 毛片一区| 一本一道波多野结衣潮喷视频| 无码一区二| 五月天毛片| 午夜福利站| 欧美日韩性爱视频| 噜噜色av| 中文无码专区| 99欧美| 欧美MV日韩MV国产网站| 亚洲无码影片| 国产亚洲视频在线观看视频| 午夜福利AV在线| 天天日天天插| 日韩AV一区二区在线观看| 91久热| 国产激情综合五月久久| 日韩国产免费| 日韩中文字幕不卡| 亚洲国产成人精品午夜| 麻豆成人精品国产免费|