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

歡迎訪問 生活随笔!

生活随笔

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

数据库

mysql详细学习教程(二)

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

目錄

  • 把查詢結果去除重復記錄【distinct】
  • 連接查詢
    • 什么是連接查詢
    • 連接查詢的分類
    • 當兩張表進行連接查詢時,沒有任何條件的限制會發生什么現象?
    • 怎么避免笛卡爾積現象
    • 內連接之等值連接
    • 內連接之非等值連接
    • 內連接之自連接
    • 外連接
    • 三張表,四張表怎么連接
  • 子查詢
    • 什么是子查詢
    • 子查詢都可以出現在哪里呢
    • where子句中的子查詢
    • from子句中的子查詢
    • select后面出現的子查詢(這個內容不需要掌握,了解即可!!!)
  • union合并查詢結果集
  • limit(非常重要)
    • limit作用:將查詢結果集的一部分取出來。通常使用在分頁查詢當中
    • limit怎么用呢
    • 注意:mysql當中limit在order by之后執行!!!!!!
    • 取出工資排名在[3-5]名的員工?
    • 取出工資排名在[5-9]名的員工
    • 分頁
  • 關于DQL語句的大總結
  • 表的創建 (建表)
    • 建表的語法格式:(建表屬于DDL語句,DDL包括:create drop alter)
    • 關于mysql中的數據類型
    • 創建一個學生表
    • 插入數據insert (DML)
    • insert插入日期
    • date和datetime兩個類型的區別
    • 修改update(DML)
    • 刪除數據 delete (DML)

把查詢結果去除重復記錄【distinct】

注意:原表數據不會被修改,只是查詢結果去重。
去重需要使用一個關鍵字:distinct

mysql> select distinct job from emp; +-----------+ | job | +-----------+ | CLERK | | SALESMAN | | MANAGER | | ANALYST | | PRESIDENT | +-----------+

// 這樣編寫是錯誤的,語法錯誤。
// distinct只能出現在所有字段的最前方。
mysql> select ename,distinct job from emp;

// distinct出現在job,deptno兩個字段之前,表示兩個字段聯合起來去重。

mysql> select distinct job,deptno from emp; +-----------+--------+ | job | deptno | +-----------+--------+ | CLERK | 20 | | SALESMAN | 30 | | MANAGER | 20 | | MANAGER | 30 | | MANAGER | 10 | | ANALYST | 20 | | PRESIDENT | 10 | | CLERK | 30 | | CLERK | 10 | +-----------+--------+

統計一下工作崗位的數量?

select count(distinct job) from emp;+---------------------+| count(distinct job) |+---------------------+| 5 |+---------------------+

連接查詢

什么是連接查詢

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

連接查詢的分類

根據語法的年代分類:
SQL92:1992年的時候出現的語法
SQL99:1999年的時候出現的語法
我們這里重點學習SQL99.(這個過程中簡單演示一個SQL92的例子)

根據表連接的方式分類:
內連接:
等值連接
非等值連接
自連接

外連接:
左外連接(左連接)
右外連接(右連接)

全連接(不講)

當兩張表進行連接查詢時,沒有任何條件的限制會發生什么現象?

案例:查詢每個員工所在部門名稱?

mysql> select ename,deptno from emp;+--------+--------+| ename | deptno |+--------+--------+| SMITH | 20 || ALLEN | 30 || WARD | 30 || JONES | 20 || MARTIN | 30 || BLAKE | 30 || CLARK | 10 || SCOTT | 20 || KING | 10 || TURNER | 30 || ADAMS | 20 || JAMES | 30 || FORD | 20 || MILLER | 10 |+--------+--------+mysql> select * from dept;+--------+------------+----------+| DEPTNO | DNAME | LOC |+--------+------------+----------+| 10 | ACCOUNTING | NEW YORK || 20 | RESEARCH | DALLAS || 30 | SALES | CHICAGO || 40 | OPERATIONS | BOSTON |+--------+------------+----------+兩張表連接沒有任何條件限制:select ename,dname from emp, dept;+--------+------------+| ename | dname |+--------+------------+| SMITH | ACCOUNTING || SMITH | RESEARCH || SMITH | SALES || SMITH | OPERATIONS || ALLEN | ACCOUNTING || ALLEN | RESEARCH || ALLEN | SALES || ALLEN | OPERATIONS |...56 rows in set (0.00 sec)14 * 4 = 56

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

怎么避免笛卡爾積現象

連接時加條件,滿足這個條件的記錄被篩選出來!
select
ename,dname
from
emp, dept
where
emp.deptno = dept.deptno;

select emp.ename,dept.dname from emp, dept whereemp.deptno = dept.deptno;// 表起別名。很重要。效率問題。 select e.ename,d.dname from emp e, dept d wheree.deptno = d.deptno; //SQL92語法。+--------+------------+ | ename | dname | +--------+------------+ | CLARK | ACCOUNTING | | KING | ACCOUNTING | | MILLER | ACCOUNTING | | SMITH | RESEARCH | | JONES | RESEARCH | | SCOTT | RESEARCH | | ADAMS | RESEARCH | | FORD | RESEARCH | | ALLEN | SALES | | WARD | SALES | | MARTIN | SALES | | BLAKE | SALES | | TURNER | SALES | | JAMES | SALES | +--------+------------+

思考:最終查詢的結果條數是14條,但是匹配的過程中,匹配的次數減少了嗎?
還是56次,只不過進行了四選一。次數沒有減少。

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

內連接之等值連接

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

SQL92語法:

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

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

SQL99語法:

select e.ename,d.dname fromemp e joindept d one.deptno = d.deptno;

//inner可以省略(帶著inner可讀性更好!!!一眼就能看出來是內連接)

select e.ename,d.dname fromemp e inner joindept d one.deptno = d.deptno; // 條件是等量關系,所以被稱為等值連接。

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

SQL99語法:

select ...fromajoinbona和b的連接條件where篩選條件

內連接之非等值連接

案例:找出每個員工的薪資等級,要求顯示員工名、薪資、薪資等級?

mysql> select * from emp; e +-------+--------+-----------+------+------------+---------+---------+--------+ | EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO | +-------+--------+-----------+------+------------+---------+---------+--------+ | 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 | | 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 | | 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 | | 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20 | ....mysql> select * from salgrade; s +-------+-------+-------+ | GRADE | LOSAL | HISAL | +-------+-------+-------+ | 1 | 700 | 1200 | | 2 | 1201 | 1400 | | 3 | 1401 | 2000 | | 4 | 2001 | 3000 | | 5 | 3001 | 9999 | +-------+-------+-------+select e.ename, e.sal, s.grade fromemp e joinsalgrade s one.sal between s.losal and s.hisal; // 條件不是一個等量關系,稱為非等值連接。select e.ename, e.sal, s.grade fromemp e inner joinsalgrade s one.sal between s.losal and s.hisal;+--------+---------+-------+ | ename | sal | grade | +--------+---------+-------+ | SMITH | 800.00 | 1 | | ALLEN | 1600.00 | 3 | | WARD | 1250.00 | 2 | | JONES | 2975.00 | 4 | | MARTIN | 1250.00 | 2 | | BLAKE | 2850.00 | 4 | | CLARK | 2450.00 | 4 | | SCOTT | 3000.00 | 4 | | KING | 5000.00 | 5 | | TURNER | 1500.00 | 3 | | ADAMS | 1100.00 | 1 | | JAMES | 950.00 | 1 | | FORD | 3000.00 | 4 | | MILLER | 1300.00 | 2 | +--------+---------+-------+

內連接之自連接

案例:查詢員工的上級領導,要求顯示員工名和對應的領導名?

mysql> select empno,ename,mgr from emp; +-------+--------+------+ | empno | ename | mgr | +-------+--------+------+ | 7369 | SMITH | 7902 | | 7499 | ALLEN | 7698 | | 7521 | WARD | 7698 | | 7566 | JONES | 7839 | | 7654 | MARTIN | 7698 | | 7698 | BLAKE | 7839 | | 7782 | CLARK | 7839 | | 7788 | SCOTT | 7566 | | 7839 | KING | NULL | | 7844 | TURNER | 7698 | | 7876 | ADAMS | 7788 | | 7900 | JAMES | 7698 | | 7902 | FORD | 7566 | | 7934 | MILLER | 7782 | +-------+--------+------+技巧:一張表看成兩張表。 emp a 員工表 +-------+--------+------+ | empno | ename | mgr | +-------+--------+------+ | 7369 | SMITH | 7902 | | 7499 | ALLEN | 7698 | | 7521 | WARD | 7698 | | 7566 | JONES | 7839 | | 7654 | MARTIN | 7698 | | 7698 | BLAKE | 7839 | | 7782 | CLARK | 7839 | | 7788 | SCOTT | 7566 | | 7839 | KING | NULL | | 7844 | TURNER | 7698 | | 7876 | ADAMS | 7788 | | 7900 | JAMES | 7698 | | 7902 | FORD | 7566 | | 7934 | MILLER | 7782 | +-------+--------+------+emp b 領導表 +-------+--------+------+ | empno | ename | mgr | +-------+--------+------+ | 7369 | SMITH | 7902 | | 7499 | ALLEN | 7698 | | 7521 | WARD | 7698 | | 7566 | JONES | 7839 | | 7654 | MARTIN | 7698 | | 7698 | BLAKE | 7839 | | 7782 | CLARK | 7839 | | 7788 | SCOTT | 7566 | | 7839 | KING | NULL | | 7844 | TURNER | 7698 | | 7876 | ADAMS | 7788 | | 7900 | JAMES | 7698 | | 7902 | FORD | 7566 | | 7934 | MILLER | 7782 | +-------+--------+------+select a.ename as '員工名', b.ename as '領導名' fromemp a joinemp b ona.mgr = b.empno; //員工的領導編號 = 領導的員工編號+--------+--------+ | 員工名 | 領導名| +--------+--------+ | SMITH | FORD | | ALLEN | BLAKE | | WARD | BLAKE | | JONES | KING | | MARTIN | BLAKE | | BLAKE | KING | | CLARK | KING | | SCOTT | JONES | | TURNER | BLAKE | | ADAMS | SCOTT | | JAMES | BLAKE | | FORD | JONES | | MILLER | CLARK | +--------+--------+

13條記錄,沒有KING。《內連接》

以上就是內連接中的:自連接,技巧:一張表看做兩張表。

外連接

mysql> select * from emp; e +-------+--------+-----------+------+------------+---------+---------+--------+ | EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO | +-------+--------+-----------+------+------------+---------+---------+--------+ | 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 | | 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 | | 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 | | 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20 | | 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30 | | 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | NULL | 30 | | 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450.00 | NULL | 10 | | 7788 | SCOTT | ANALYST | 7566 | 1987-04-19 | 3000.00 | NULL | 20 | | 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL | 10 | | 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30 | | 7876 | ADAMS | CLERK | 7788 | 1987-05-23 | 1100.00 | NULL | 20 | | 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 | | 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20 | | 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 | +-------+--------+-----------+------+------------+---------+---------+--------+mysql> select * from dept; d +--------+------------+----------+ | DEPTNO | DNAME | LOC | +--------+------------+----------+ | 10 | ACCOUNTING | NEW YORK | | 20 | RESEARCH | DALLAS | | 30 | SALES | CHICAGO | | 40 | OPERATIONS | BOSTON | +--------+------------+----------+內連接:(A和B連接,AB兩張表沒有主次關系。平等的。) select e.ename,d.dname fromemp e joindept d one.deptno = d.deptno; //內連接的特點:完成能夠匹配上這個條件的數據查詢出來。+--------+------------+ | ename | dname | +--------+------------+ | CLARK | ACCOUNTING | | KING | ACCOUNTING | | MILLER | ACCOUNTING | | SMITH | RESEARCH | | JONES | RESEARCH | | SCOTT | RESEARCH | | ADAMS | RESEARCH | | FORD | RESEARCH | | ALLEN | SALES | | WARD | SALES | | MARTIN | SALES | | BLAKE | SALES | | TURNER | SALES | | JAMES | SALES | +--------+------------+外連接(右外連接): select e.ename,d.dname fromemp e right join dept d one.deptno = d.deptno;// outer是可以省略的,帶著可讀性強。 select e.ename,d.dname fromemp e right outer join dept d one.deptno = d.deptno;

right代表什么:表示將join關鍵字右邊的這張表看成主表,主要是為了將
這張表的數據全部查詢出來,捎帶著關聯查詢左邊的表。
在外連接當中,兩張表連接,產生了主次關系。

外連接(左外連接): select e.ename,d.dname fromdept d left join emp e one.deptno = d.deptno;// outer是可以省略的,帶著可讀性強。 select e.ename,d.dname fromdept d left outer join emp e one.deptno = d.deptno;

帶有right的是右外連接,又叫做右連接。
帶有left的是左外連接,又叫做左連接。
任何一個右連接都有左連接的寫法。
任何一個左連接都有右連接的寫法。

+--------+------------+ | ename | dname | +--------+------------+ | CLARK | ACCOUNTING | | KING | ACCOUNTING | | MILLER | ACCOUNTING | | SMITH | RESEARCH | | JONES | RESEARCH | | SCOTT | RESEARCH | | ADAMS | RESEARCH | | FORD | RESEARCH | | ALLEN | SALES | | WARD | SALES | | MARTIN | SALES | | BLAKE | SALES | | TURNER | SALES | | JAMES | SALES | | NULL | OPERATIONS | +--------+------------+

思考:外連接的查詢結果條數一定是 >= 內連接的查詢結果條數?
正確。

案例:查詢每個員工的上級領導,要求顯示所有員工的名字和領導名?

select a.ename as '員工名', b.ename as '領導名' fromemp a left joinemp b ona.mgr = b.empno; +--------+--------+ | 員工名 | 領導名 | +--------+--------+ | SMITH | FORD | | ALLEN | BLAKE | | WARD | BLAKE | | JONES | KING | | MARTIN | BLAKE | | BLAKE | KING | | CLARK | KING | | SCOTT | JONES | | KING | NULL | | TURNER | BLAKE | | ADAMS | SCOTT | | JAMES | BLAKE | | FORD | JONES | | MILLER | CLARK | +--------+--------+

三張表,四張表怎么連接

語法:
select

from
a
join
b
on
a和b的連接條件
join
c
on
a和c的連接條件
right join
d
on
a和d的連接條件

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

案例:找出每個員工的部門名稱以及工資等級,
要求顯示員工名、部門名、薪資、薪資等級?

select e.ename,e.sal,d.dname,s.grade fromemp e joindept d on e.deptno = d.deptno joinsalgrade s one.sal between s.losal and s.hisal;+--------+---------+------------+-------+ | ename | sal | dname | grade | +--------+---------+------------+-------+ | SMITH | 800.00 | RESEARCH | 1 | | ALLEN | 1600.00 | SALES | 3 | | WARD | 1250.00 | SALES | 2 | | JONES | 2975.00 | RESEARCH | 4 | | MARTIN | 1250.00 | SALES | 2 | | BLAKE | 2850.00 | SALES | 4 | | CLARK | 2450.00 | ACCOUNTING | 4 | | SCOTT | 3000.00 | RESEARCH | 4 | | KING | 5000.00 | ACCOUNTING | 5 | | TURNER | 1500.00 | SALES | 3 | | ADAMS | 1100.00 | RESEARCH | 1 | | JAMES | 950.00 | SALES | 1 | | FORD | 3000.00 | RESEARCH | 4 | | MILLER | 1300.00 | ACCOUNTING | 2 | +--------+---------+------------+-------+

案例:找出每個員工的部門名稱以及工資等級,還有上級領導,
要求顯示員工名、領導名、部門名、薪資、薪資等級?

select e.ename,e.sal,d.dname,s.grade,l.ename fromemp e joindept d on e.deptno = d.deptno joinsalgrade s one.sal between s.losal and s.hisal left joinemp l one.mgr = l.empno;+--------+---------+------------+-------+-------+ | ename | sal | dname | grade | ename | +--------+---------+------------+-------+-------+ | SMITH | 800.00 | RESEARCH | 1 | FORD | | ALLEN | 1600.00 | SALES | 3 | BLAKE | | WARD | 1250.00 | SALES | 2 | BLAKE | | JONES | 2975.00 | RESEARCH | 4 | KING | | MARTIN | 1250.00 | SALES | 2 | BLAKE | | BLAKE | 2850.00 | SALES | 4 | KING | | CLARK | 2450.00 | ACCOUNTING | 4 | KING | | SCOTT | 3000.00 | RESEARCH | 4 | JONES | | KING | 5000.00 | ACCOUNTING | 5 | NULL | | TURNER | 1500.00 | SALES | 3 | BLAKE | | ADAMS | 1100.00 | RESEARCH | 1 | SCOTT | | JAMES | 950.00 | SALES | 1 | BLAKE | | FORD | 3000.00 | RESEARCH | 4 | JONES | | MILLER | 1300.00 | ACCOUNTING | 2 | CLARK | +--------+---------+------------+-------+-------+

子查詢

什么是子查詢

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

子查詢都可以出現在哪里呢

select
…(select).
from
…(select).
where
…(select).

where子句中的子查詢

案例:找出比最低工資高的員工姓名和工資?

select ename,salfromemp wheresal > min(sal);ERROR 1111 (HY000): Invalid use of group functionwhere子句中不能直接使用分組函數。

實現思路:
第一步:查詢最低工資是多少

select min(sal) from emp;+----------+| min(sal) |+----------+| 800.00 |+----------+

第二步:找出>800的

select ename,sal from emp where sal > 800;

第三步:合并

select ename,sal from emp where sal > (select min(sal) from emp);+--------+---------+| ename | sal |+--------+---------+| ALLEN | 1600.00 || WARD | 1250.00 || JONES | 2975.00 || MARTIN | 1250.00 || BLAKE | 2850.00 || CLARK | 2450.00 || SCOTT | 3000.00 || KING | 5000.00 || TURNER | 1500.00 || ADAMS | 1100.00 || JAMES | 950.00 || FORD | 3000.00 || MILLER | 1300.00 |+--------+---------+

from子句中的子查詢

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

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

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

select job,avg(sal) from emp group by job;+-----------+-------------+| job | avgsal |+-----------+-------------+| ANALYST | 3000.000000 || CLERK | 1037.500000 || MANAGER | 2758.333333 || PRESIDENT | 5000.000000 || SALESMAN | 1400.000000 |+-----------+-------------+t表

第二步:克服心理障礙,把以上的查詢結果就當做一張真實存在的表t。

mysql> select * from salgrade; s表 +-------+-------+-------+ | GRADE | LOSAL | HISAL | +-------+-------+-------+ | 1 | 700 | 1200 | | 2 | 1201 | 1400 | | 3 | 1401 | 2000 | | 4 | 2001 | 3000 | | 5 | 3001 | 9999 | +-------+-------+-------+

t表和s表進行表連接,條件:t表avg(sal) between s.losal and s.hisal;

select t.*, s.gradefrom(select job,avg(sal) as avgsal from emp group by job) tjoinsalgrade sont.avgsal between s.losal and s.hisal;+-----------+-------------+-------+| job | avgsal | grade |+-----------+-------------+-------+| CLERK | 1037.500000 | 1 || SALESMAN | 1400.000000 | 2 || ANALYST | 3000.000000 | 4 || MANAGER | 2758.333333 | 4 || PRESIDENT | 5000.000000 | 5 |+-----------+-------------+-------+

select后面出現的子查詢(這個內容不需要掌握,了解即可!!!)

案例:找出每個員工的部門名稱,要求顯示員工名,部門名?

select e.ename,e.deptno,(select d.dname from dept d where e.deptno = d.deptno) as dname from emp e;+--------+--------+------------+ | ename | deptno | dname | +--------+--------+------------+ | SMITH | 20 | RESEARCH | | ALLEN | 30 | SALES | | WARD | 30 | SALES | | JONES | 20 | RESEARCH | | MARTIN | 30 | SALES | | BLAKE | 30 | SALES | | CLARK | 10 | ACCOUNTING | | SCOTT | 20 | RESEARCH | | KING | 10 | ACCOUNTING | | TURNER | 30 | SALES | | ADAMS | 20 | RESEARCH | | JAMES | 30 | SALES | | FORD | 20 | RESEARCH | | MILLER | 10 | ACCOUNTING | +--------+--------+------------+

//錯誤:ERROR 1242 (21000): Subquery returns more than 1 row
select e.ename,e.deptno,(select dname from dept) as dname
from
emp e;

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

union合并查詢結果集

案例:查詢工作崗位是MANAGER和SALESMAN的員工?

select ename,job from emp where job = 'MANAGER' or job = 'SALESMAN'; select ename,job from emp where job in('MANAGER','SALESMAN'); +--------+----------+ | ename | job | +--------+----------+ | ALLEN | SALESMAN | | WARD | SALESMAN | | JONES | MANAGER | | MARTIN | SALESMAN | | BLAKE | MANAGER | | CLARK | MANAGER | | TURNER | SALESMAN | +--------+----------+select ename,job from emp where job = 'MANAGER' union select ename,job from emp where job = 'SALESMAN';+--------+----------+ | ename | job | +--------+----------+ | JONES | MANAGER | | BLAKE | MANAGER | | CLARK | MANAGER | | ALLEN | SALESMAN | | WARD | SALESMAN | | MARTIN | SALESMAN | | TURNER | SALESMAN | +--------+----------+

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

a 連接 b 連接 c
a 10條記錄
b 10條記錄
c 10條記錄
匹配次數是:1000

a 連接 b一個結果:10 * 10 --> 100次
a 連接 c一個結果:10 * 10 --> 100次
使用union的話是:100次 + 100次 = 200次。(union把乘法變成了加法運算)

union在使用的時候有注意事項嗎?

//錯誤的:union在進行結果集合并的時候,要求兩個結果集的列數相同。 select ename,job from emp where job = 'MANAGER' union select ename from emp where job = 'SALESMAN';// MYSQL可以,oracle語法嚴格 ,不可以,報錯。要求:結果集合并時列和列的數據類型也要一致。 select ename,job from emp where job = 'MANAGER' union select ename,sal from emp where job = 'SALESMAN'; +--------+---------+ | ename | job | +--------+---------+ | JONES | MANAGER | | BLAKE | MANAGER | | CLARK | MANAGER | | ALLEN | 1600 | | WARD | 1250 | | MARTIN | 1250 | | TURNER | 1500 | +--------+---------+

limit(非常重要)

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

百度默認:一頁顯示10條記錄。
分頁的作用是為了提高用戶的體驗,因為一次全部都查出來,用戶體驗差。可以一頁一頁翻頁看。

limit怎么用呢

完整用法:limit startIndex, length
startIndex是起始下標,length是長度。
起始下標從0開始。

缺省用法:limit 5; 這是取前5.按照薪資降序,取出排名在前5名的員工? select ename,sal fromemp order by sal desc limit 5; //取前5select ename,sal fromemp order by sal desc limit 0,5;+-------+---------+ | ename | sal | +-------+---------+ | KING | 5000.00 | | SCOTT | 3000.00 | | FORD | 3000.00 | | JONES | 2975.00 | | BLAKE | 2850.00 | +-------+---------+

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

取出工資排名在[3-5]名的員工?

select ename,sal fromemp order bysal desc limit2, 3;2表示起始位置從下標2開始,就是第三條記錄。 3表示長度。+-------+---------+ | ename | sal | +-------+---------+ | FORD | 3000.00 | | JONES | 2975.00 | | BLAKE | 2850.00 | +-------+---------+

取出工資排名在[5-9]名的員工

select ename,sal fromemp order by sal desc limit4, 5;+--------+---------+ | ename | sal | +--------+---------+ | BLAKE | 2850.00 | | CLARK | 2450.00 | | ALLEN | 1600.00 | | TURNER | 1500.00 | | MILLER | 1300.00 | +--------+---------+

分頁

每頁顯示3條記錄
第1頁:limit 0,3 [0 1 2]
第2頁:limit 3,3 [3 4 5]
第3頁:limit 6,3 [6 7 8]
第4頁:limit 9,3 [9 10 11]

每頁顯示pageSize條記錄
第pageNo頁:limit (pageNo - 1) * pageSize , pageSize

public static void main(String[] args){// 用戶提交過來一個頁碼,以及每頁顯示的記錄條數int pageNo = 5; //第5頁int pageSize = 10; //每頁顯示10條int startIndex = (pageNo - 1) * pageSize;String sql = "select ...limit " + startIndex + ", " + pageSize; }

記公式:
limit (pageNo-1)*pageSize , pageSize

關于DQL語句的大總結

select ... from... where... group by... having... order by... limit...執行順序?1.from2.where3.group by4.having5.select6.order by7.limit..

表的創建 (建表)

建表的語法格式:(建表屬于DDL語句,DDL包括:create drop alter)

create table 表名(字段名1 數據類型, 字段名2 數據類型, 字段名3 數據類型);

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

關于mysql中的數據類型

很多數據類型,我們只需要掌握一些常見的數據類型即可。

varchar(最長255)可變長度的字符串比較智能,節省空間。會根據實際的數據長度動態分配空間。優點:節省空間缺點:需要動態分配空間,速度慢。char(最長255)定長字符串不管實際的數據長度是多少。分配固定長度的空間去存儲數據。使用不恰當的時候,可能會導致空間的浪費。優點:不需要動態分配空間,速度快。缺點:使用不當可能會導致空間的浪費。varchar和char我們應該怎么選擇?性別字段你選什么?因為性別是固定長度的字符串,所以選擇char。姓名字段你選什么?每一個人的名字長度不同,所以選擇varchar。int(最長11)數字中的整數型。等同于java的int。bigint數字中的長整型。等同于java中的long。float 單精度浮點型數據double雙精度浮點型數據date短日期類型datetime長日期類型clob字符大對象最多可以存儲4G的字符串。比如:存儲一篇文章,存儲一個說明。超過255個字符的都要采用CLOB字符大對象來存儲。Character Large OBject:CLOBblob二進制大對象Binary Large OBject專門用來存儲圖片、聲音、視頻等流媒體數據。往BLOB類型的字段上插入數據的時候,例如插入一個圖片、視頻等,你需要使用IO流才行。t_movie 電影表(專門存儲電影信息的)編號 名字 故事情節 上映日期 時長 海報 類型 no(bigint) name(varchar) history(clob) playtime(date) time(double) image(blob) type(char) ------------------------------------------------------------------------------------------------------------------ 10000 哪吒 ........... 2019-10-11 2.5 .... '1' 10001 林正英之娘娘 ........... 2019-11-11 1.5 .... '2' ....

創建一個學生表

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

create table t_student(no int,name varchar(32),sex char(1),age int(3),email varchar(255) );刪除表:drop table t_student; // 當這張表不存在的時候會報錯!// 如果這張表存在的話,刪除drop table if exists t_student;

插入數據insert (DML)

語法格式:
insert into 表名(字段名1,字段名2,字段名3…) values(值1,值2,值3);

注意:字段名和值要一一對應。什么是一一對應?數量要對應。數據類型要對應。insert into t_student(no,name,sex,age,email) values(1,'zhangsan','m',20,'zhangsan@123.com'); insert into t_student(email,name,sex,age,no) values('lisi@123.com','lisi','f',20,2);insert into t_student(no) values(3);+------+----------+------+------+------------------+ | no | name | sex | age | email | +------+----------+------+------+------------------+ | 1 | zhangsan | m | 20 | zhangsan@123.com | | 2 | lisi | f | 20 | lisi@123.com | | 3 | NULL | NULL | NULL | NULL | +------+----------+------+------+------------------+ insert into t_student(name) values('wangwu'); +------+----------+------+------+------------------+ | no | name | sex | age | email | +------+----------+------+------+------------------+ | 1 | zhangsan | m | 20 | zhangsan@123.com | | 2 | lisi | f | 20 | lisi@123.com | | 3 | NULL | NULL | NULL | NULL | | NULL | wangwu | NULL | NULL | NULL | +------+----------+------+------+------------------+ 注意:insert語句但凡是執行成功了,那么必然會多一條記錄。 沒有給其它字段指定值的話,默認值是NULL。drop table if exists t_student; create table t_student(no int,name varchar(32),sex char(1) default 'm',age int(3),email varchar(255) );+-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | no | int(11) | YES | | NULL | | | name | varchar(32) | YES | | NULL | | | sex | char(1) | YES | | m | | | age | int(3) | YES | | NULL | | | email | varchar(255) | YES | | NULL | | +-------+--------------+------+-----+---------+-------+ insert into t_student(no) values(1); mysql> select * from t_student; +------+------+------+------+-------+ | no | name | sex | age | email | +------+------+------+------+-------+ | 1 | NULL | m | NULL | NULL | +------+------+------+------+-------+insert語句中的“字段名”可以省略嗎?可以insert into t_student values(2); //錯誤的// 注意:前面的字段名省略的話,等于都寫上了!所以值也要都寫上!insert into t_student values(2, 'lisi', 'f', 20, 'lisi@123.com');+------+------+------+------+--------------+| no | name | sex | age | email |+------+------+------+------+--------------+| 1 | NULL | m | NULL | NULL || 2 | lisi | f | 20 | lisi@123.com |+------+------+------+------+--------------+

insert插入日期

數字格式化:format

select ename,sal from emp;+--------+---------+| ename | sal |+--------+---------+| SMITH | 800.00 || ALLEN | 1600.00 || WARD | 1250.00 || JONES | 2975.00 || MARTIN | 1250.00 || BLAKE | 2850.00 || CLARK | 2450.00 || SCOTT | 3000.00 || KING | 5000.00 || TURNER | 1500.00 || ADAMS | 1100.00 || JAMES | 950.00 || FORD | 3000.00 || MILLER | 1300.00 |+--------+---------+格式化數字:format(數字, '格式')select ename,format(sal, '$999,999') as sal from emp;+--------+-------+| ename | sal |+--------+-------+| SMITH | 800 || ALLEN | 1,600 || WARD | 1,250 || JONES | 2,975 || MARTIN | 1,250 || BLAKE | 2,850 || CLARK | 2,450 || SCOTT | 3,000 || KING | 5,000 || TURNER | 1,500 || ADAMS | 1,100 || JAMES | 950 || FORD | 3,000 || MILLER | 1,300 |+--------+-------+str_to_date:將字符串varchar類型轉換成date類型 date_format:將date類型轉換成具有一定格式的varchar字符串類型。drop table if exists t_user; create table t_user(id int,name varchar(32),birth date // 生日也可以使用date日期類型 );create table t_user(id int,name varchar(32),birth char(10) // 生日可以使用字符串,沒問題。 );生日:1990-10-11 (10個字符)

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

mysql> desc t_user; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | name | varchar(32) | YES | | NULL | | | birth | date | YES | | NULL | | +-------+-------------+------+-----+---------+-------+

插入數據?
insert into t_user(id,name,birth) values(1, ‘zhangsan’, ‘01-10-1990’); // 1990年10月1日
出問題了:原因是類型不匹配。數據庫birth是date類型,這里給了一個字符串varchar。

怎么辦?可以使用str_to_date函數進行類型轉換。
str_to_date函數可以將字符串轉換成日期類型date?
語法格式:
str_to_date(‘字符串日期’, ‘日期格式’)

mysql的日期格式:%Y 年%m 月%d 日%h 時%i 分%s 秒insert into t_user(id,name,birth) values(1, 'zhangsan', str_to_date('01-10-1990','%d-%m-%Y'));

str_to_date函數可以把字符串varchar轉換成日期date類型數據,
通常使用在插入insert方面,因為插入的時候需要一個日期類型的數據,
需要通過該函數將字符串轉換成date。

好消息?
如果你提供的日期字符串是這個格式,str_to_date函數就不需要了!!!
%Y-%m-%d
insert into t_user(id,name,birth) values(2, ‘lisi’, ‘1990-10-01’);

查詢的時候可以以某個特定的日期格式展示嗎?
date_format
這個函數可以將日期類型轉換成特定格式的字符串。

select id,name,date_format(birth, '%m/%d/%Y') as birth from t_user;+------+----------+------------+| id | name | birth |+------+----------+------------+| 1 | zhangsan | 10/01/1990 || 2 | lisi | 10/01/1990 |+------+----------+------------+

date_format函數怎么用?
date_format(日期類型數據, ‘日期格式’)
這個函數通常使用在查詢日期方面。設置展示的日期格式。

mysql> select id,name,birth from t_user;+------+----------+------------+| id | name | birth |+------+----------+------------+| 1 | zhangsan | 1990-10-01 || 2 | lisi | 1990-10-01 |+------+----------+------------+

以上的SQL語句實際上是進行了默認的日期格式化,
自動將數據庫中的date類型轉換成varchar類型。
并且采用的格式是mysql默認的日期格式:‘%Y-%m-%d’

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

java中的日期格式?

yyyy-MM-dd HH:mm:ss SSS

date和datetime兩個類型的區別

date是短日期:只包括年月日信息。
datetime是長日期:包括年月日時分秒信息。

drop table if exists t_user; create table t_user(id int,name varchar(32),birth date,create_time datetime );

id是整數
name是字符串
birth是短日期
create_time是這條記錄的創建時間:長日期類型

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

insert into t_user(id,name,birth,create_time) values(1,'zhangsan','1990-10-01','2020-03-18 15:49:50');

在mysql當中怎么獲取系統當前時間?
now() 函數,并且獲取的時間帶有:時分秒信息!!!!是datetime類型的。

insert into t_user(id,name,birth,create_time) values(2,'lisi','1991-10-01',now());

修改update(DML)

語法格式:
update 表名 set 字段名1=值1,字段名2=值2,字段名3=值3… where 條件;

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

update t_user set name = 'jack', birth = '2000-10-11' where id = 2; +------+----------+------------+---------------------+ | id | name | birth | create_time | +------+----------+------------+---------------------+ | 1 | zhangsan | 1990-10-01 | 2020-03-18 15:49:50 | | 2 | jack | 2000-10-11 | 2020-03-18 15:51:23 | +------+----------+------------+---------------------+update t_user set name = 'jack', birth = '2000-10-11', create_time = now() where id = 2;

更新所有?

update t_user set name = 'abc';

刪除數據 delete (DML)

語法格式?
delete from 表名 where 條件;

注意:沒有條件,整張表的數據會全部刪除!

delete from t_user where id = 2;insert into t_user(id) values(2);delete from t_user; // 刪除所有!

總結

以上是生活随笔為你收集整理的mysql详细学习教程(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

欧美一区二视频在线免费观看 | 天堂网av 在线 | 97超碰国产在线 | 人人澡人人干 | 日韩高清毛片 | 成人黄色在线视频 | 操处女逼 | 久久免费成人网 | 国产精品一区久久久久 | 国产小视频在线免费观看 | 亚洲精选国产 | 国产一区二区三区四区大秀 | 精品国产亚洲在线 | 韩国av免费在线观看 | 国产亚洲精品精品精品 | 久久精品一区二区三 | 欧美伦理一区二区三区 | 欧美色道 | 亚洲在线成人精品 | 国产精品美女久久久久久久久 | 国产福利在线免费 | 亚洲五月婷婷 | 欧美日韩激情视频8区 | 91在线免费视频观看 | 日韩精品久久久 | 欧美久久影院 | 久久66热这里只有精品 | 日韩精品资源 | 夜夜骑天天操 | 五月激情婷婷丁香 | 国产黄色精品在线 | 久久人91精品久久久久久不卡 | 国产精品欧美日韩在线观看 | 天天操天天玩 | 久草在线综合网 | 亚洲天天摸日日摸天天欢 | 最新国产在线 | 久久黄色网址 | 国产成人久久av免费高清密臂 | 欧美专区日韩专区 | 亚洲精区二区三区四区麻豆 | 一区二区三区韩国免费中文网站 | 一区二区三区 亚洲 | 成人亚洲精品久久久久 | 免费在线观看av片 | 日韩精品不卡在线 | 国产一区二区精品久久 | 国产精品免费一区二区三区在线观看 | 欧美精品一区在线发布 | av在线亚洲天堂 | 最近日本字幕mv免费观看在线 | 免费视频黄色 | 久久精品国产免费 | av在线a | 黄网站app在线观看免费视频 | 免费看国产曰批40分钟 | 久久精品伊人 | 成人9ⅰ免费影视网站 | 好看的国产精品视频 | 在线视频区 | 就要干b | 亚洲天堂精品视频在线观看 | 欧美巨大荫蒂茸毛毛人妖 | 激情av资源网 | 91福利视频一区 | 97超碰站| 九九交易行官网 | 成人高清在线 | 美女视频国产 | 欧美在线观看禁18 | 24小时日本在线www免费的 | 日韩美精品视频 | 韩日色视频 | 天天综合色网 | 日韩精品在线看 | 国产97免费 | 亚洲美女久久 | 在线观看免费黄色 | 五月婷婷精品 | 久热色超碰 | 日日夜夜草 | 精品视频亚洲 | 久久www免费人成看片高清 | 亚洲电影一级黄 | 美女黄色网在线播放 | 涩涩成人在线 | 一级片视频在线 | 99精品国产兔费观看久久99 | 国产精品视频永久免费播放 | 亚洲欧美婷婷六月色综合 | 麻豆传媒视频观看 | 国产精品9999| 西西444www大胆无视频 | 国产一区视频免费在线观看 | 丁香婷婷综合激情五月色 | 国产精品夜夜夜一区二区三区尤 | 日日日干 | 97爱| 国产精品一区二区三区视频免费 | 少妇精品久久久一区二区免费 | 国产精品久久久久999 | 成人在线视频论坛 | 日本中文字幕在线播放 | 尤物97国产精品久久精品国产 | 91影视成人 | 久久亚洲电影 | 日韩国产在线观看 | 91原创在线观看 | 丁香婷五月 | 99免费在线 | 国产一区二区不卡视频 | 久久中文字幕在线视频 | 久久96国产精品久久99软件 | 国产精品久久久久久久久久久久冷 | 中文字幕制服丝袜av久久 | 欧美视频国产视频 | 国产成人61精品免费看片 | 日日碰狠狠躁久久躁综合网 | 久久无码av一区二区三区电影网 | 国产成人av综合色 | 成年人免费在线观看 | 青青河边草观看完整版高清 | 成人免费电影 | 亚洲精品小视频 | 精品国产理论片 | 日韩电影一区二区三区 | 成人99免费视频 | 成人黄色国产 | 福利视频网站 | 亚洲精品高清在线 | 激情狠狠干| 国产精品女人网站 | 久久中文精品视频 | 在线精品视频在线观看高清 | 日韩高清一区二区 | 午夜精品一区二区三区在线观看 | 久久久久免费精品 | 免费看一级黄色大全 | 超碰在线97国产 | 久久经典国产视频 | 欧美国产视频在线 | 国产精品久久久久久久久免费看 | 国产精品video爽爽爽爽 | 久久久久久久综合色一本 | 最新国产视频 | av黄色成人 | 91色在线观看 | 亚洲精品在线网站 | 天天插综合网 | av黄色大片| 久久精品国产亚洲精品 | 亚洲天堂网在线视频 | 在线观看黄色国产 | 久章草在线观看 | 成人午夜网址 | 激情视频国产 | 91视频这里只有精品 | 最新av中文字幕 | 日本久久91| 日韩免费在线看 | 午夜av一区 | 在线观看国产永久免费视频 | 久久国产成人午夜av影院潦草 | 婷婷六月综合亚洲 | 中文字幕丝袜一区二区 | 91.dizhi永久地址最新 | 91激情视频在线观看 | 91爱爱免费观看 | 成人性生爱a∨ | 中文字幕日韩伦理 | 日韩色一区二区三区 | 丁香花在线观看免费完整版视频 | 成年人免费看片网站 | 激情丁香在线 | 一区二区三区四区五区在线 | 中文字幕在线影视资源 | 91免费视频网站在线观看 | 久久情爱 | 日本性生活免费看 | av五月婷婷 | 亚洲另类视频在线 | 久久精品中文字幕一区二区三区 | 中文字幕在线播放日韩 | 午夜国产在线观看 | 国产自制av| 免费av网站在线 | 亚洲黄色成人 | 中文字幕资源网 国产 | 草久草久| 国产91精品久久久久久 | 在线色吧| 久久午夜剧场 | 狠狠躁18三区二区一区ai明星 | 婷婷久久综合网 | 亚洲日本在线视频观看 | 91成人免费在线视频 | 国产黄色看片 | 国产精品网站 | 国产亚洲精品久久久久动 | 亚洲精品mv在线观看 | 又黄又爽又湿又无遮挡的在线视频 | 欧美激情综合五月 | 成人黄色小说在线观看 | 91你懂的 | 亚洲精品免费在线观看视频 | 欧美日韩免费观看一区=区三区 | 亚洲va欧美 | 国产91免费在线 | 一级黄色大片在线观看 | 91一区在线观看 | 视频在线99re | 亚洲人成综合 | 精品综合久久久 | 中文字幕在线视频一区二区三区 | 久久久蜜桃 | 丁香婷婷深情五月亚洲 | 国产一二三四在线观看视频 | 欧美亚洲一区二区在线 | 国产在线综合视频 | 波多野结衣电影一区二区 | 亚洲精品视频在线免费播放 | 国产在线va | 国产一级视频在线免费观看 | 99久热在线精品视频成人一区 | 成人在线视频观看 | 精品福利在线观看 | 中文字幕一二三区 | 日韩欧美网址 | 天天插天天射 | 久草爱视频 | 黄色网在线免费观看 | 久草在线资源观看 | 啪啪午夜免费 | 天天躁日日躁狠狠躁 | 成人一区电影 | 国产尤物在线 | www.com黄色 | www国产一区 | 中文字幕电影高清在线观看 | 国产精选在线 | 五月在线视频 | 色欧美成人精品a∨在线观看 | 欧美一级久久久 | 精品美女在线观看 | 欧美性生活免费 | 99热.com | 免费在线色 | 国产日产亚洲精华av | 久久精品国产免费看久久精品 | 日韩精品中文字幕一区二区 | 久久免费视频6 | 色片网站在线观看 | 91在线视频观看免费 | 91丨九色丨勾搭 | 亚洲精品成人 | 色婷婷国产精品一区在线观看 | 成年人视频在线免费播放 | 日韩中文字幕一区 | 中文字幕专区高清在线观看 | 最近日本中文字幕a | 亚洲在线精品 | 日韩一区精品 | 久久视| 美女视频网站久久 | 日本中文字幕电影在线免费观看 | 视频成人永久免费视频 | 久久伦理 | 人人搞人人搞 | 亚洲片在线观看 | 亚洲人xxx| 夜夜夜夜夜夜操 | 日日夜操| 一级性av| 一区二区三区在线视频观看58 | 久久久国产精品麻豆 | 成人久久18免费网站图片 | 日韩av成人免费看 | 免费毛片一区二区三区久久久 | 91看片麻豆 | 日韩伦理一区二区三区av在线 | 亚洲二区精品 | 一本一本久久a久久精品综合 | 东方av免费在线观看 | 欧美一级视频在线观看 | 精品福利网 | 久久九九久久九九 | 91亚色免费视频 | 高清不卡免费视频 | 国产精品一区二区在线 | 亚洲日本va在线观看 | 国产精品二区三区 | 亚洲天天看| 欧美亚洲国产一卡 | 国产精品久久网 | 91视频在线免费 | 国产视频亚洲 | 91麻豆视频 | 最近最新中文字幕 | 黄色小说免费观看 | 成人av在线影视 | 久久久久久久久久久久久影院 | 色偷偷97| 国产成人免费观看 | 亚洲精品视频在线观看免费视频 | 国产一区免费看 | 亚洲最新av | 992tv人人草 黄色国产区 | av丝袜在线| 99精品国产99久久久久久福利 | 欧美天天射 | 色综合天天爱 | 久久国产精品偷 | 三级黄免费看 | 国产老妇av| 国产精品免费久久久久久 | 免费下载高清毛片 | 日韩av影视在线观看 | 午夜精品电影一区二区在线 | 日韩精品一区二区三区不卡 | 国产九色视频在线观看 | 国产精品97 | 草久久影院 | 中文字幕在线观看完整 | 91精品在线免费视频 | 亚洲第一区在线播放 | 亚洲国产精品成人精品 | 亚洲精品综合在线观看 | 999亚洲国产996395 | 欧美色图另类 | 一区二区理论片 | 美女免费网视频 | 69亚洲视频| 肉色欧美久久久久久久免费看 | 一区二区三区四区五区六区 | 国产成本人视频在线观看 | 成人av高清在线 | 久久综合狠狠综合 | 国产一区二区在线视频观看 | 97超碰影视| 人人添人人澡 | 91丨九色丨蝌蚪丨对白 | 在线a亚洲视频播放在线观看 | 久久久久电影网站 | 99精品色| 中文字幕亚洲精品在线观看 | 国产精品2018 | 午夜少妇 | 狠狠色伊人亚洲综合网站野外 | 日日摸日日碰 | 97在线看| 欧美日韩视频在线 | 欧美日韩午夜爽爽 | 一区二区网 | 欧美另类z0zx | 日韩精品一区二区在线观看 | 三级a毛片 | 草久在线播放 | 久久婷婷色 | 欧美日韩国产亚洲乱码字幕 | 国产成人久久精品一区二区三区 | 成人资源在线播放 | 91高清在线 | 亚洲精品视频在线观看免费 | 国产精品完整版 | 亚洲成aⅴ人片久久青草影院 | 狠狠操狠狠干天天操 | 国产视频九色蝌蚪 | 色.com| 亚洲开心激情 | 一区 二区 精品 | 成人午夜在线电影 | 国产三级国产精品国产专区50 | 丁香av | 五月天久久久久 | 91精品婷婷国产综合久久蝌蚪 | 少妇bbbb揉bbbb日本 | 久久成人国产精品一区二区 | 色狠狠综合 | 亚洲视频在线免费观看 | 日韩高清二区 | 国产亚洲在 | 免费a网址 | 激情五月婷婷综合网 | 亚洲精品视频www | 97成人精品视频在线播放 | 日日干天天 | 超碰97中文 | 一区二区三区四区五区六区 | 国产精品一区二区在线播放 | 欧美99热 | 丁香六月中文字幕 | 国产成人精品一区二区三区 | 久久国产精品二国产精品中国洋人 | 操操操操网 | 国产精品久久精品国产 | 91桃色在线观看视频 | 8x成人在线 | 亚洲色图激情文学 | 免费精品国产 | 国产又粗又猛又色又黄网站 | 国内精品小视频 | 欧美在线观看视频一区二区三区 | 国产精品视频全国免费观看 | 一区二区三区免费播放 | 亚洲成人av片 | 国产精品理论片在线播放 | 欧美久久久久久久久久久 | 日三级在线 | 中文字幕在线免费 | 日韩电影在线观看一区 | 精品主播网红福利资源观看 | 国产精品成人一区二区三区吃奶 | 日韩精品一区二区久久 | 久久久噜噜噜久久久 | 成人av一区二区三区 | 亚洲国产成人在线观看 | 69精品视频在线观看 | 国产又粗又长的视频 | 国产 成人 久久 | 91三级在线观看 | 综合久色 | 久久久99精品免费观看app | 中文字幕高清 | 国产午夜视频在线观看 | 黄色成人影院 | 麻豆国产精品一区二区三区 | 欧美 高跟鞋交 xxxxhd | www.天天综合| 国产美女精品在线 | 又污又黄的网站 | 在线播放第一页 | 国产免费三级在线观看 | 毛片网站观看 | 久久久精品网站 | 狠狠88综合久久久久综合网 | 2017狠狠干 | 欧美一级免费黄色片 | 一级片在线 | 亚洲一区网 | 美女视频黄是免费的 | 激情久久五月天 | 国产成人三级三级三级97 | 久久伦理影院 | 在线中文字幕视频 | 深夜免费福利在线 | 在线观看一二三区 | 国产91精品在线播放 | 亚洲精品视频国产 | 少妇视频一区 | av黄色一级片 | 国产精品免费av | 成人精品一区二区三区电影免费 | 国产黄色片在线免费观看 | 久草视频在线资源站 | 高潮久久久久久久久 | av黄色亚洲| 久久久黄色免费网站 | 激情五月婷婷激情 | 免费在线观看日韩视频 | 中文字幕观看在线 | 国产精品12 | 69av视频在线观看 | 午夜精品99久久免费 | 国产日韩欧美视频在线观看 | 国产精品欧美精品 | 狠狠色狠狠色终合网 | 最近中文字幕mv免费高清在线 | 日韩视频精品在线 | www五月| 国产97在线播放 | www99精品 | 91看片网址 | 去干成人网| 久久成年人 | 免费在线观看黄网站 | 国产在线超碰 | 欧洲亚洲激情 | 免费观看91视频大全 | 五月香视频在线观看 | 久久系列 | 丝袜美腿在线播放 | 色综合天天综合网国产成人网 | 天天操综合网站 | 人人看人人草 | 亚洲 欧美 综合 在线 精品 | 国产精品综合久久久 | 91精品国自产在线 | 国产精品正在播放 | 欧美xxxxx在线视频 | 久久精品首页 | 婷婷成人综合 | 久久成年人网站 | 99精品视频播放 | 久久高清免费视频 | 国产成人精品一区二区三区在线观看 | 久色免费视频 | 亚洲免费激情 | 狠狠操夜夜操 | 一本到视频在线观看 | 日韩欧美亚洲 | 国产第一福利 | 日韩视频欧美视频 | 日韩色在线观看 | 99精品免费网 | 在线av资源 | 狠狠色丁香久久婷婷综合丁香 | 欧美a在线免费观看 | 狠狠干网站 | 午夜精品久久久久久久久久 | 久久成人免费视频 | 91av精品 | 九九热在线观看视频 | 四虎成人精品永久免费av九九 | 亚洲成人av在线 | 99精品久久久久久久久久综合 | 午夜精品视频在线 | 五月在线视频 | 国产999精品 | 成人免费看电影 | 手机在线日韩视频 | 欧美精品在线一区 | 91福利视频久久久久 | 日日干日日 | 久久精品亚洲精品国产欧美 | 狠狠色伊人亚洲综合网站野外 | 婷婷伊人综合亚洲综合网 | 97在线视频免费看 | 国产91学生粉嫩喷水 | 99久久成人 | 蜜臀aⅴ国产精品久久久国产 | 成人免费视频免费观看 | 国产福利一区二区三区视频 | 久久免费精品视频 | 日本三级不卡 | 97在线观看视频 | 成人天堂网 | www黄色com | 91探花国产综合在线精品 | 亚洲国产精品500在线观看 | 国产美女免费 | 99热99热| 99视屏| 欧洲亚洲国产视频 | 日韩在线影视 | 五月天综合网站 | 四虎永久视频 | 久久艹综合 | 国产成人精品999 | avsex| 国产又粗又猛又黄又爽视频 | 91高清免费看| 亚洲色五月 | 久久久www成人免费毛片麻豆 | 国产黄色片久久 | 激情动态| 97精品超碰一区二区三区 | 成人播放器 | 国产黄在线免费观看 | 玖玖在线资源 | 国产欧美日韩精品一区二区免费 | 国产亚洲精品久久久久久电影 | 在线观看日韩精品视频 | 97国产情侣爱久久免费观看 | 高清免费av在线 | 毛片网站免费在线观看 | 久久综合狠狠综合久久狠狠色综合 | 国产一区免费视频 | 麻豆视频国产 | 日本精品久久久一区二区三区 | 成人小视频在线观看免费 | 亚洲国产中文字幕 | 久久福利影视 | av中文天堂 | 激情五月五月婷婷 | 欧美孕交vivoestv另类 | 日日夜夜91 | 久草在线免费看视频 | 日韩在线视频网 | 亚洲人成人在线 | 国产成人精品在线播放 | 国产亚洲综合在线 | 91视频传媒 | 久久伊人精品天天 | 香蕉在线视频观看 | av 一区二区三区四区 | www.69xx| 99999精品视频 | 久久国产精品99久久久久久老狼 | 天天摸日日摸人人看 | 亚洲另类视频在线观看 | 国产一区私人高清影院 | 欧美在线日韩在线 | 国产成免费视频 | 日韩免费看的电影 | av免费黄色 | 成年人在线视频观看 | 亚洲精品乱码久久久久久久久久 | 日韩在线观看影院 | 久久综合免费视频 | 成人一区二区三区在线观看 | 不卡国产视频 | 五月天丁香视频 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 天天操天天操天天操天天操天天操天天操 | 91免费看黄| www.com在线观看 | 精品久久久久久综合 | 美女国产在线 | 香蕉手机在线 | 天天干天天做 | 伊人午夜视频 | 日韩精品免费在线播放 | 欧美精品中文在线免费观看 | 成人久久影院 | 麻豆传媒视频观看 | 五月激情片 | 免费福利小视频 | 午夜久久久久久久久 | 97超在线| 亚洲激情校园春色 | 夜夜爽www | 91精品福利在线 | 九九视频在线 | 日韩在线观看第一页 | 天天天天色射综合 | 伊人色**天天综合婷婷 | 欧美极品少妇xbxb性爽爽视频 | 免费观看www视频 | 日韩天天操 | 美女网站免费福利视频 | 久久精品xxx | 久久再线视频 | 蜜桃av综合网 | 亚洲尺码电影av久久 | 五月天久久综合网 | 亚洲视频在线免费看 | 国产精品自产拍在线观看桃花 | 国产日韩三级 | 日韩在线观看第一页 | 免费在线激情视频 | 日本精品视频网站 | 久久视频免费在线 | 综合色中色 | 国产不卡av在线播放 | 久久视频免费在线观看 | 日韩精品一区二区电影 | 91看片在线免费观看 | 久久免费视频7 | 激情视频二区 | 亚洲国产欧美一区二区三区丁香婷 | 天天色视频 | 久久9精品| 五月综合色婷婷 | 国产精品免费av | 日韩精品一区二区三区电影 | 日韩一级片大全 | 亚洲a资源 | 国产精品不卡av | 国产一区免费在线观看 | 日韩欧美国产免费播放 | 国产91勾搭技师精品 | 国产精品日韩久久久久 | 国产精品18久久久久久不卡孕妇 | 婷婷久久综合网 | 日本乱码在线 | 五月天视频网站 | 日韩精品一区二区在线观看 | 国产精品免费在线 | 麻豆一区二区三区视频 | 亚洲五月婷 | 亚洲国产69| 嫩草伊人久久精品少妇av | 国产成人精品一区二区在线观看 | 99精品视频免费观看 | 日韩免费视频观看 | 成 人 a v天堂 | 亚洲国产精品电影 | 成年人黄色免费网站 | 成人91免费视频 | 一本一本久久a久久精品综合 | 最近免费中文字幕mv在线视频3 | 麻豆国产网站入口 | 久久久999| 国产福利91精品一区 | 手机av电影在线观看 | 久久激情片 | 国产中文a | 日韩一区二区三区不卡 | 成人精品一区二区三区中文字幕 | 最近中文字幕大全中文字幕免费 | 一区二区三区手机在线观看 | av最新资源 | 婷婷久草| 91在线免费看片 | 天天色天天射天天综合网 | 亚洲免费观看视频 | 正在播放亚洲精品 | 顶级欧美色妇4khd | 久久综合久久八八 | 国产精品入口传媒 | 四虎成人精品永久免费av | 国产成人一区二区三区影院在线 | 国产精品系列在线观看 | 黄色免费网战 | 欧洲一区二区在线观看 | 韩国av免费在线 | 一本色道久久精品 | 西西4444www大胆视频 | 亚洲女在线 | 奇米影视8888 | 久久国产日韩 | 国产日韩欧美综合在线 | 精品91视频 | 97在线观看视频 | 国内少妇自拍视频一区 | 91色九色| 欧美色图一区 | 久草在线免费资源 | 免费精品在线 | 偷拍精品一区二区三区 | 国产日韩欧美在线 | 狠狠色噜噜狠狠狠合久 | 黄色中文字幕在线 | 黄网站色成年免费观看 | 日韩一区精品 | 黄色美女免费网站 | 97人人澡人人添人人爽超碰 | 激情五月亚洲 | 日韩一区二区三区在线看 | 高清一区二区 | 日韩色在线观看 | 六月色丁| 亚洲欧美婷婷六月色综合 | 国产一二区视频 | aaa日本高清在线播放免费观看 | 97国产一区二区 | av色网站 | 九九精品毛片 | 91成人免费在线视频 | 午夜精品久久久99热福利 | 日韩精品最新在线观看 | 久久激情视频免费观看 | 亚洲精品资源在线 | 中文在线字幕免费观看 | 九九久久精品视频 | 国产亚洲视频在线免费观看 | 99热这里只有精品免费 | 91精品伦理 | 我要色综合天天 | 天堂av在线免费 | 狠狠狠狠狠狠狠干 | 欧美另类性| 麻豆一级视频 | 午夜国产一区 | 久久国产免费视频 | 五月天婷婷综合 | 91视视频在线直接观看在线看网页在线看 | 色婷婷成人网 | 国产精品乱看 | 天天色天天综合 | 亚洲视频1区2区 | 国产黄影院色大全免费 | 在线a视频免费观看 | av网站免费线看精品 | 五月激情久久久 | 91精品国自产在线偷拍蜜桃 | 婷婷草| 天天草天天草 | 97在线观看免费高清完整版在线观看 | 在线观看av黄色 | 国产成人三级 | 国产 日韩 在线 亚洲 字幕 中文 | 色 免费观看| 天天色天天综合网 | 日韩精品视频免费在线观看 | 亚洲人人射 | 国产精品免费视频久久久 | 激情综合五月天 | 久久这里精品视频 | 欧美日韩国产伦理 | 97视频在线观看视频免费视频 | 99爱精品在线 | 伊人一级 | 欧美精品黑人性xxxx | 久久久久久久久久久免费 | 日日插日日干 | 国产亚洲精品久久久久动 | 日本成人免费在线观看 | 国产三级视频在线 | 国产精品亚洲a | 欧美激情亚洲综合 | 五月婷婷毛片 | 欧美日韩另类在线观看 | 一级黄色在线免费观看 | 天天综合网久久综合网 | 日韩精品高清视频 | 亚洲无吗av| 在线视频第一页 | 天天草av | 免费在线观看91 | 日韩乱码中文字幕 | 天天射天天做 | 国产精品永久久久久久久久久 | 久久一区二区三区四区 | 天天插视频 | 97国产人人| 国产成人一区二区三区在线观看 | 久久人人爽人人 | 精品国产一区二区三区四区在线观看 | 人人爽人人澡人人添人人人人 | 日韩av在线不卡 | 99九九热只有国产精品 | 九九热久久免费视频 | 国产日韩一区在线 | 久久成人精品电影 | 91在线看黄 | 高清av在线免费观看 | 人人爽人人澡人人添人人人人 | 性色av免费在线观看 | 久久久精品 一区二区三区 国产99视频在线观看 | 日韩成人邪恶影片 | 日韩一区二区三区免费视频 | 亚洲国产三级在线观看 | 久久国产精品色av免费看 | 久草爱 | 免费99视频 | 国产精品久久久久永久免费观看 | 精品福利av | www.人人干| 久久精品草| 亚洲一级二级 | 亚洲国产影院 | 色婷五月天 | 中文字幕在线免费 | 色婷婷97| 天堂va在线高清一区 | 99免费国产 | 日韩免费专区 | www.亚洲视频 | 久久精品8| 99视频免费看 | 国产中文字幕在线 | 国产成人免费观看 | 97视频网址| 91精选在线观看 | 91精品国产成人www | 中文字幕在线观看视频一区 | 中文字幕亚洲精品在线观看 | 91亚·色| 日本久久不卡视频 | 成人久久毛片 | 永久黄网站色视频免费观看w | 男女啪啪免费网站 | 1区2区视频| 好看的国产精品视频 | 免费看日韩片 | 成人禁用看黄a在线 | 国产精品一区二区三区免费看 | www.香蕉视频在线观看 | 丁香激情视频 | 精品国产亚洲在线 | 黄色99视频 | 久久久精品小视频 | 久久a视频 | 国产精品一区二区在线观看免费 | 黄色一及电影 | 国产综合精品久久 | 国产亚洲欧美日韩高清 | av免费观看网址 | 国产视频资源在线观看 | 视频成人| 天天干夜夜想 | 免费av的网站 | 九九九热精品 | 天堂av在线网址 | 亚洲爽爽网 | 国产精品一区在线播放 | av网址aaa| 日日干视频| 在线观看中文字幕2021 | 九九免费在线看完整版 | 国产在线一区二区三区播放 | 国产精品毛片一区二区在线 | 日日干干| 91插插插免费视频 | 天天射天天干天天插 | 人人揉人人揉人人揉人人揉97 | 亚洲视频播放 | av大片网站 | 亚洲精品在线免费 | 国产一区二区中文字幕 | 福利电影一区二区 | 中文字幕电影在线 | 黄色毛片视频 | 亚洲黄色小说网 | 中文av一区二区 | 在线国产能看的 | 黄色天堂在线观看 | 日韩在线观看网站 | 欧美日韩大片在线观看 | 国产一级淫片免费看 | 国产 日韩 中文字幕 | 久久综合视频网 | 久久手机免费视频 | 啪啪小视频网站 | 最近免费观看的电影完整版 | 又粗又长又大又爽又黄少妇毛片 | 97电影在线观看 | 久久久久久久久久伊人 | 国产女人40精品一区毛片视频 | 丁香花中文在线免费观看 | 国产偷国产偷亚洲清高 | 美女黄频网站 | 波多野结衣在线观看一区二区三区 | 久久免费激情视频 | 黄色成人在线 | 亚洲一区精品二人人爽久久 | 天天干com | 高清在线观看av | 久久视频在线观看免费 | 日韩 在线 | 五月婷婷六月丁香在线观看 | 狠狠狠色丁香综合久久天下网 | 国产精品美女久久久久久 | 在线看av的网址 | 精品国产乱码久久久久 | 干综合网 | 亚洲一级电影在线观看 | 国产精品h在线观看 | 国产精品 9999 | 欧美色操| 亚洲国产色一区 | 超碰在线人 | 免费网站色| 美女中文字幕 | 国产成人av电影在线观看 | 欧美一级特黄高清视频 | 成人久久精品视频 | 免费亚洲精品视频 | 在线观看福利网站 | 久久久久久久久久久网站 | 婷婷激情综合网 | 欧美精品天堂 | 日本久久久影视 | 久久久久久久久久久国产精品 | 国产精品6 | 人人爽久久久噜噜噜电影 | 美女视频网 | 国产伦理久久精品久久久久_ | 亚洲 精品在线视频 | 麻豆果冻剧传媒在线播放 | 国产在线观看高清视频 | 色999视频 | 久久精品国产免费 | 亚洲精品一区二区精华 | 日韩二区在线 | 日韩亚洲欧美中文字幕 | 久久久夜色 | 国产看片免费 | 五月天综合网站 | www.在线观看视频 | 黄色av免费| 蜜臀av网址 | 日日日网 | 激情综合网五月激情 | 国产.精品.日韩.另类.中文.在线.播放 | 黄色免费在线视频 | 成人黄色在线看 | 国产一级视频在线观看 | 91香蕉久久 | 久久国产视屏 | 人人网av| 成年人免费看片网站 | 五月婷激情 | 国产成人精品aaa | 国产成人一区二区在线观看 | 天天干干| 欧美午夜性 | 色天堂在线视频 | 色亚洲网| 午夜精品成人一区二区三区 | 亚洲精品一区二区三区在线观看 | 国产亚洲久一区二区 | 欧美亚洲专区 | 国产精品美女久久 | 蜜臀av夜夜澡人人爽人人桃色 | 粉嫩av一区二区三区免费 | 国产精品成人自产拍在线观看 | 在线有码中文 | 国产精品综合久久久 | 午夜精品久久久久久久久久久 | 日韩在线观看三区 | 国产主播99 | 在线 国产 亚洲 欧美 | 成人免费一区二区三区在线观看 | 国内精自线一二区永久 | 国产精品伦一区二区三区视频 | 国产精品一区二区三区在线免费观看 |