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

歡迎訪問 生活随笔!

生活随笔

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

数据库

SQL 100+个最佳入门案例实践(覆盖Oralce、SQL Server、Mysql)之基础操作_1_检索数据

發布時間:2024/9/27 数据库 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL 100+个最佳入门案例实践(覆盖Oralce、SQL Server、Mysql)之基础操作_1_检索数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SQL基礎操作_1_檢索數據

目錄

7.1.1?數據集

7.1.2 學生選課關系表

7.1.3 供應商關系表

7.2.1 從表中查詢所有行和列

7.2.2 從表中查詢部分行

7.2.3 查詢滿足某個條件行

7.2.4 從表中查詢部分列

7.2.5 給字段取個有意義的名字

7.2.6 結合where使用別名

7.2.7 拼接列的值

7.2.8 查詢語句里執行條件判斷

7.2.9 返回的字段在某個范圍內的數據

7.2.10 通過多條件組合返回數據

7.2.11 限制返回的行數

7.2.12 從表中隨機返回N條記錄

7.2.13 從表中查詢空值

7.2.14 返回不重復的記錄

7.2.15 將空值轉成其它值

7.2.16 按照某個模式搜索

7.2.17 按照指定的次序返回查詢結果

7.2.18 按照多個字段排序查詢結果

7.2.19 按照字符串對結果排序

7.2.20 按照字符串數字組合的排序

7.2.21 處理空值的排序

7.2.22 根據數據項的值排序


?

7.1.1?數據集

見如下SQL,以Oracle為例:

-- 1 Oracle版本 -- DROP TABLE EMP; -- DROP TABLE DEPT; -- DROP TABLE BONUS; -- DROP TABLE SALGRADE;CREATE TABLE DEPT (DEPTNO NUMBER(2) NOT NULL CONSTRAINT pk_dept_deptno primary key, DNAME VARCHAR2(14), LOC VARCHAR2(13) );comment on table DEPT is '部門表'; comment on column DEPT.DEPTNO is '表示部門編號,由兩位數字所組成'; comment on column DEPT.DNAME is '部門名稱,最多由14個字符所組成'; comment on column DEPT.LOC is '部門所在的位置';INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK'); INSERT INTO DEPT VALUES (20, 'RESEARCH', 'DALLAS'); INSERT INTO DEPT VALUES (30, 'SALES', 'CHICAGO'); INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');CREATE TABLE EMP (EMPNO NUMBER(4) NOT NULL CONSTRAINT pk_emp_empno primary key, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7, 2), COMM NUMBER(7, 2), DEPTNO NUMBER(2) constraint dept_deptno_ref references dept(deptno) );comment on table EMP is '雇員表'; comment on column EMP.EMPNO is '雇員的編號,由四位數字所組成'; comment on column EMP.ENAME is '雇員的姓名,由10位字符所組成'; comment on column EMP.JOB is '雇員的職位'; comment on column EMP.MGR is '雇員對應的領導編號,領導也是雇員'; comment on column EMP.HIREDATE is '雇員的雇傭日期'; comment on column EMP.SAL is '基本工資,其中有兩位小數,五倍整數,一共是七位'; comment on column EMP.COMM is '獎金,傭金'; comment on column EMP.DEPTNO is '雇員所在的部門編號';INSERT INTO EMP VALUES(7369, 'SMITH', 'CLERK', 7902,TO_DATE('17-DEC-1980', 'DD-MON-YYYY'), 800, NULL, 20); INSERT INTO EMP VALUES(7499, 'ALLEN', 'SALESMAN', 7698,TO_DATE('20-FEB-1981', 'DD-MON-YYYY'), 1600, 300, 30); INSERT INTO EMP VALUES(7521, 'WARD', 'SALESMAN', 7698,TO_DATE('22-FEB-1981', 'DD-MON-YYYY'), 1250, 500, 30); INSERT INTO EMP VALUES(7566, 'JONES', 'MANAGER', 7839,TO_DATE('2-APR-1981', 'DD-MON-YYYY'), 2975, NULL, 20); INSERT INTO EMP VALUES(7654, 'MARTIN', 'SALESMAN', 7698,TO_DATE('28-SEP-1981', 'DD-MON-YYYY'), 1250, 1400, 30); INSERT INTO EMP VALUES(7698, 'BLAKE', 'MANAGER', 7839,TO_DATE('1-MAY-1981', 'DD-MON-YYYY'), 2850, NULL, 30); INSERT INTO EMP VALUES(7782, 'CLARK', 'MANAGER', 7839,TO_DATE('9-JUN-1981', 'DD-MON-YYYY'), 2450, NULL, 10); INSERT INTO EMP VALUES(7788, 'SCOTT', 'ANALYST', 7566,TO_DATE('09-DEC-1982', 'DD-MON-YYYY'), 3000, NULL, 20); INSERT INTO EMP VALUES(7839, 'KING', 'PRESIDENT', NULL,TO_DATE('17-NOV-1981', 'DD-MON-YYYY'), 5000, NULL, 10); INSERT INTO EMP VALUES(7844, 'TURNER', 'SALESMAN', 7698,TO_DATE('8-SEP-1981', 'DD-MON-YYYY'), 1500, 0, 30); INSERT INTO EMP VALUES(7876, 'ADAMS', 'CLERK', 7788,TO_DATE('12-JAN-1983', 'DD-MON-YYYY'), 1100, NULL, 20); INSERT INTO EMP VALUES(7900, 'JAMES', 'CLERK', 7698,TO_DATE('3-DEC-1981', 'DD-MON-YYYY'), 950, NULL, 30); INSERT INTO EMP VALUES(7902, 'FORD', 'ANALYST', 7566,TO_DATE('3-DEC-1981', 'DD-MON-YYYY'), 3000, NULL, 20); INSERT INTO EMP VALUES(7934, 'MILLER', 'CLERK', 7782,TO_DATE('23-JAN-1982', 'DD-MON-YYYY'), 1300, NULL, 10);CREATE TABLE BONUS (ENAME VARCHAR2(10), JOB VARCHAR2(9), SAL NUMBER, COMM NUMBER);comment on table BONUS is '獎金表'; comment on column BONUS.ENAME is '雇員姓名'; comment on column BONUS.JOB is '雇員職位'; comment on column BONUS.SAL is '雇員的工資'; comment on column BONUS.COMM is '雇員的獎金';CREATE TABLE SALGRADE (GRADE NUMBER, LOSAL NUMBER, HISAL NUMBER);comment on table SALGRADE is '工資等級表'; comment on column SALGRADE.GRADE is '工資的等級'; comment on column SALGRADE.LOSAL is '此等級的最低工資'; comment on column SALGRADE.HISAL is '此等級的最高工資';INSERT INTO SALGRADE VALUES (1, 700, 1200); INSERT INTO SALGRADE VALUES (2, 1201, 1400); INSERT INTO SALGRADE VALUES (3, 1401, 2000); INSERT INTO SALGRADE VALUES (4, 2001, 3000); INSERT INTO SALGRADE VALUES (5, 3001, 9999);COMMIT;-- 2 Mysql 版本 DROP TABLE IF EXISTS emp; DROP TABLE IF EXISTS dept; DROP TABLE IF EXISTS bonus; DROP TABLE IF EXISTS salgrade; create table dept(deptno int unsigned auto_increment COMMENT '部門編號',dname varchar(15) COMMENT '部門名稱',loc varchar(50) COMMENT '部門所在位置', primary key(deptno) ) COMMENT='部門表';INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK'); INSERT INTO dept VALUES (20,'RESEARCH','DALLAS'); INSERT INTO dept VALUES (30,'SALES','CHICAGO'); INSERT INTO dept VALUES (40,'OPERATIONS','BOSTON');create table emp(empno int unsigned auto_increment COMMENT '雇員編號',ename varchar(15) COMMENT '雇員姓名',job varchar(10) COMMENT '雇員職位',mgr int unsigned COMMENT '雇員對應的領導的編號',hiredate date COMMENT '雇員的雇傭日期',sal decimal(7,2) COMMENT '雇員的基本工資',comm decimal(7,2) COMMENT '獎金',deptno int unsigned COMMENT '所在部門',primary key(empno),foreign key(deptno) references dept(deptno) ) COMMENT='雇員表';INSERT INTO emp VALUES (7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20); INSERT INTO emp VALUES (7499,'ALLEN','SALESMAN',7698,'1981-2-20',1600,300,30); INSERT INTO emp VALUES (7521,'WARD','SALESMAN',7698,'1981-2-22',1250,500,30); INSERT INTO emp VALUES (7566,'JONES','MANAGER',7839,'1981-4-2',2975,NULL,20); INSERT INTO emp VALUES (7654,'MARTIN','SALESMAN',7698,'1981-9-28',1250,1400,30); INSERT INTO emp VALUES (7698,'BLAKE','MANAGER',7839,'1981-5-1',2850,NULL,30); INSERT INTO emp VALUES (7782,'CLARK','MANAGER',7839,'1981-6-9',2450,NULL,10); INSERT INTO emp VALUES (7788,'SCOTT','ANALYST',7566,'87-7-13',3000,NULL,20); INSERT INTO emp VALUES (7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10); INSERT INTO emp VALUES (7844,'TURNER','SALESMAN',7698,'1981-9-8',1500,0,30); INSERT INTO emp VALUES (7876,'ADAMS','CLERK',7788,'87-7-13',1100,NULL,20); INSERT INTO emp VALUES (7900,'JAMES','CLERK',7698,'1981-12-3',950,NULL,30); INSERT INTO emp VALUES (7902,'FORD','ANALYST',7566,'1981-12-3',3000,NULL,20); INSERT INTO emp VALUES (7934,'MILLER','CLERK',7782,'1982-1-23',1300,NULL,10);create table salgrade(grade int unsigned COMMENT '工資等級',losal int unsigned COMMENT '此等級的最低工資',hisal int unsigned COMMENT '此等級的最高工資' ) COMMENT='工資等級表';INSERT INTO salgrade VALUES (1,700,1200); INSERT INTO salgrade VALUES (2,1201,1400); INSERT INTO salgrade VALUES (3,1401,2000); INSERT INTO salgrade VALUES (4,2001,3000); INSERT INTO salgrade VALUES (5,3001,9999);create table bonus(ename varchar(10) COMMENT '雇員姓名',job varchar(9) COMMENT '雇員職位',sal decimal(7,2) COMMENT '雇員工資',comm decimal(7,2) COMMENT '雇員資金' ) COMMENT='獎金表';-- 3 SQL Server版本 IF EXISTS(Select 1 From Sysobjects Where Name='emp') --查詢表名costSeparateConfig是否存在 DROP table emp; --存在則刪除 IF EXISTS(Select 1 From Sysobjects Where Name='dept') DROP table dept; IF EXISTS(Select 1 From Sysobjects Where Name='bonus') DROP table bonus ; IF EXISTS(Select 1 From Sysobjects Where Name='salgrade') DROP table salgrade; GO create table dept(deptno int IDENTITY(1,1) NOT NULL,dname varchar(15),loc varchar(50), primary key(deptno) );EXECUTE sp_addextendedproperty N'MS_Description', N'部門表', N'user', N'dbo', N'table', N'dept', NULL, NULL EXECUTE sp_addextendedproperty N'MS_Description', N'部門編號', N'user', N'dbo', N'table', N'dept', N'column', N'deptno' EXECUTE sp_addextendedproperty N'MS_Description', N'部門名稱', N'user', N'dbo', N'table', N'dept', N'column', N'dname' EXECUTE sp_addextendedproperty N'MS_Description', N'部門所在位置', N'user', N'dbo', N'table', N'dept', N'column', N'loc'-- set IDENTITY_INSERT dept on SET IDENTITY_INSERT dbo.dept ON; INSERT INTO dept(deptno,dname,loc) VALUES (10,'ACCOUNTING','NEW YORK'); INSERT INTO dept(deptno,dname,loc) VALUES (20,'RESEARCH','DALLAS'); INSERT INTO dept(deptno,dname,loc) VALUES (30,'SALES','CHICAGO'); INSERT INTO dept(deptno,dname,loc) VALUES (40,'OPERATIONS','BOSTON'); set IDENTITY_INSERT dbo.dept OFF;create table emp(empno int IDENTITY(1,1) NOT NULL,ename varchar(15),job varchar(10),mgr int ,hiredate date,sal decimal(7,2),comm decimal(7,2),deptno int,primary key(empno),foreign key(deptno) references dept(deptno) );EXECUTE sp_addextendedproperty N'MS_Description', N'雇員表', N'user', N'dbo', N'table', N'emp', NULL, NULL EXECUTE sp_addextendedproperty N'MS_Description', N'雇員編號', N'user', N'dbo', N'table', N'emp', N'column', N'empno' EXECUTE sp_addextendedproperty N'MS_Description', N'雇員名稱', N'user', N'dbo', N'table', N'emp', N'column', N'ename' EXECUTE sp_addextendedproperty N'MS_Description', N'雇員職位', N'user', N'dbo', N'table', N'emp', N'column', N'job' EXECUTE sp_addextendedproperty N'MS_Description', N'雇員對應的領導的編號', N'user', N'dbo', N'table', N'emp', N'column', N'mgr' EXECUTE sp_addextendedproperty N'MS_Description', N'雇員的雇傭日期', N'user', N'dbo', N'table', N'emp', N'column', N'hiredate' EXECUTE sp_addextendedproperty N'MS_Description', N'雇員的基本工資', N'user', N'dbo', N'table', N'emp', N'column', N'sal' EXECUTE sp_addextendedproperty N'MS_Description', N'獎金', N'user', N'dbo', N'table', N'emp', N'column', N'comm' EXECUTE sp_addextendedproperty N'MS_Description', N'所在部門', N'user', N'dbo', N'table', N'emp', N'column', N'deptno'set IDENTITY_INSERT emp on; INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20); INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7499,'ALLEN','SALESMAN',7698,'1981-2-20',1600,300,30); INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7521,'WARD','SALESMAN',7698,'1981-2-22',1250,500,30); INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7566,'JONES','MANAGER',7839,'1981-4-2',2975,NULL,20); INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7654,'MARTIN','SALESMAN',7698,'1981-9-28',1250,1400,30); INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7698,'BLAKE','MANAGER',7839,'1981-5-1',2850,NULL,30); INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7782,'CLARK','MANAGER',7839,'1981-6-9',2450,NULL,10); INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7788,'SCOTT','ANALYST',7566,'1987-7-13',3000,NULL,20); INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10); INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7844,'TURNER','SALESMAN',7698,'1981-9-8',1500,0,30); INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7876,'ADAMS','CLERK',7788,'1987-7-13',1100,NULL,20); INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7900,'JAMES','CLERK',7698,'1981-12-3',950,NULL,30); INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7902,'FORD','ANALYST',7566,'1981-12-3',3000,NULL,20); INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7934,'MILLER','CLERK',7782,'1982-1-23',1300,NULL,10); SET IDENTITY_INSERT emp OFF;create table salgrade(grade int,losal int,hisal int ) ;EXECUTE sp_addextendedproperty N'MS_Description', N'工資等級表', N'user', N'dbo', N'table', N'salgrade', NULL, NULL EXECUTE sp_addextendedproperty N'MS_Description', N'工資等級', N'user', N'dbo', N'table', N'salgrade', N'column', N'grade' EXECUTE sp_addextendedproperty N'MS_Description', N'此等級的最低工資', N'user', N'dbo', N'table', N'salgrade', N'column', N'losal' EXECUTE sp_addextendedproperty N'MS_Description', N'此等級的最高工資', N'user', N'dbo', N'table', N'salgrade', N'column', N'hisal'INSERT INTO salgrade VALUES (1,700,1200); INSERT INTO salgrade VALUES (2,1201,1400); INSERT INTO salgrade VALUES (3,1401,2000); INSERT INTO salgrade VALUES (4,2001,3000); INSERT INTO salgrade VALUES (5,3001,9999);create table bonus(ename varchar(10),job varchar(9),sal decimal(7,2),comm decimal(7,2) );EXECUTE sp_addextendedproperty N'MS_Description', N'獎金表', N'user', N'dbo', N'table', N'bonus', NULL, NULL EXECUTE sp_addextendedproperty N'MS_Description', N'雇員姓名', N'user', N'dbo', N'table', N'bonus', N'column', N'ename' EXECUTE sp_addextendedproperty N'MS_Description', N'雇員職位', N'user', N'dbo', N'table', N'bonus', N'column', N'job' EXECUTE sp_addextendedproperty N'MS_Description', N'雇員工資', N'user', N'dbo', N'table', N'bonus', N'column', N'sal' EXECUTE sp_addextendedproperty N'MS_Description', N'雇員資金', N'user', N'dbo', N'table', N'bonus', N'column', N'comm' ?

員工關系表

7.1.2 學生選課關系表

數據后期補充

7.1.3 供應商關系表

數據后期補充

7.2.1 從表中查詢所有行和列

需求:檢索表里所有行的數據。

解決方法:通過SQL的關鍵字*來匹配到所有行和列,結合SELECT FROM 即可滿足需求。

Oracle、Sql server、Mysql:

SELECT * FROM emp; ?

等價于:

SELECT empno,ename,job,mgr,hiredate,sal,comm,deptno FROM emp;

執行結果:

empno

ename

job

mgr

hiredate

sal

comm

deptno

7369

SMITH

CLERK

7902

1980/12/17 0:00:00

800.00

20

7499

ALLEN

SALESMAN

7698

1981/2/20 0:00:00

1600.00

300.00

30

7521

WARD

SALESMAN

7698

1981/2/22 0:00:00

1250.00

500.00

30

7566

JONES

MANAGER

7839

1981/4/2 0:00:00

2975.00

20

7654

MARTIN

SALESMAN

7698

1981/9/28 0:00:00

1250.00

1400.00

30

7698

BLAKE

MANAGER

7839

1981/5/1 0:00:00

2850.00

30

7782

CLARK

MANAGER

7839

1981/6/9 0:00:00

2450.00

10

7788

SCOTT

ANALYST

7566

1987/7/13 0:00:00

3000.00

20

7839

KING

PRESIDENT

1981/11/17 0:00:00

5000.00

10

7844

TURNER

SALESMAN

7698

1981/9/8 0:00:00

1500.00

0.00

30

7876

ADAMS

CLERK

7788

1987/7/13 0:00:00

1100.00

20

7900

JAMES

CLERK

7698

1981/12/3 0:00:00

950.00

30

7902

FORD

ANALYST

7566

1981/12/3 0:00:00

3000.00

20

7934

MILLER

CLERK

7782

1982/1/23 0:00:00

1300.00

10

?

7.2.2 從表中查詢部分行

需求:查詢雇員表emp里員工號是7782的員工的詳細信息。

解決方法:先找出emp表的員工號的字段名,再結合SELECT FROM WHERE來實現。其中這里通過where關鍵字來限制檢索的行。

Oracle、Sql server、Mysql:

SELECT * FROM emp WHERE empno = 7782;

執行結果:

empno

ename

job

mgr

hiredate

sal

comm

deptno

7782

CLARK

MANAGER

7839

1981/6/9 0:00:00

2450.00

10

?

7.2.3 查詢滿足某個條件行

需求:查詢雇員表emp中所有的部門號等于10的行。

解決方法:先找出emp表的部門號的字段名,再結合SELECT FROM WHERE來實現。其中的WHERE即是在加過濾條件,多部門表進行篩選,只取部門號為10的數據。

Oracle、Sql server、Mysql:

SELECT * FROM emp WHERE deptno = 10;

執行結果:

empno

ename

job

mgr

hiredate

sal

comm

deptno

7782

CLARK

MANAGER

7839

1981/6/9 0:00:00

2450.00

10

7839

KING

PRESIDENT

1981/11/17 0:00:00

5000.00

10

7934

MILLER

CLERK

7782

1982/1/23 0:00:00

1300.00

10

注:

1 這里字段的判斷支持諸如不等于(“<>”)、等于(“=”),大于(“>”)、小于(“<”) 、,

大于等于(“>=”)、小于等于(“<=”),不等(“!”)等關系比較符。

2 上述的比較符對表字段的類型有要求,一般適用于數值類型。

3 當然我們也可以在where之后結合其它條件再過濾,后面會有案例。

7.2.4 從表中查詢部分列

需求:查詢雇員表emp中所有的員工編號、員工名稱、職位情況。

解決方法:先找出emp表的工編號、員工名稱、職位對應的字段名,再結合SELECT FROM 即可滿足需求。

Oracle、Sql server、Mysql:

SELECT empno,ename,job FROM emp; ?

執行結果:

empno

ename

job

7369

SMITH

CLERK

7499

ALLEN

SALESMAN

7521

WARD

SALESMAN

7566

JONES

MANAGER

7654

MARTIN

SALESMAN

7698

BLAKE

MANAGER

7782

CLARK

MANAGER

7788

SCOTT

ANALYST

7839

KING

PRESIDENT

7844

TURNER

SALESMAN

7876

ADAMS

CLERK

7900

JAMES

CLERK

7902

FORD

ANALYST

7934

MILLER

CLERK

7.2.5 給字段取個有意義的名字

需求:查詢雇員表emp里部門編號是10的員工編號、員工名稱、職位情況,并給員工編號起個別名“員工號”,給員工名稱起個別名“員工名”,給職位起個名字“職位名”。

解決方法:先找出emp表的工編號、員工名稱、職位對應的字段名,再結合SELECT column as “別名”FROM table的方式解決。

Oracle、Sql server、Mysql:

SELECT empno as "員工號",ename as"員工名",job as"職位名" FROM emp WHERE deptno =10;

也可以省略掉as寫成如下的:

SELECT empno "員工號",ename "員工名",job "職位名" FROM emp WHERE deptno =10;

執行結果:

員工號

員工名

職位名

7782

CLARK

MANAGER

7839

KING

PRESIDENT

7934

MILLER

CLERK

注: 這里為了演示,將字段名起個別名是中文, 一般情況下不會這么做。因為表名或者字段是用英文定義的,如果名字比較長了或者不好理解,可以起個別名代替。比如有個表叫employee,可以起個別名emp,這個表里有個字段叫salary,可以起個別名叫sal。

一般我們這么寫:

SELECT empno as id,sal salary,comm commission FROM emp WHERE deptno = 10;

7.2.6 結合where使用別名

需求:查詢雇員表emp里工資大于3000的員工編號、員工名稱、職位、工資情況,并以工資的別名“salary”進行過濾。

解決方法:先找出emp表的工編號、員工名稱、職位、工資對應的字段名分別為empno、ename、job、sal,結合SELECT column as “別名”FROM table的方式給字段sal起個別名salary,這里需要用個只是,內斂表,即將查詢的結果集用“()”包裹起來起個別名,也可以理解成用個虛擬的表。再在這個內斂表的基礎上過濾salary大于3000的記錄即可。

Oracle、Sql server、Mysql:

SELECT * FROM ( SELECT empno,ename,job,sal salary FROM emp )X WHERE salary>3000

執行結果:

empno

ename

job

salary

7839

KING

PRESIDENT

5000.00

7.2.7 拼接列的值

需求:查詢雇員表emp里部門編號是10員工信息,以員工名稱“’job title is”職位的形式輸出。示例:KING’s job title is PRESIDENT

解決方法:首先定位到emp表和涉及到字段員工名稱、職位,再考慮兩列的拼接,選擇字符串函數或則“+”完成,最后加上where條件過濾部門編號等于10。這里不同的數據庫實現方法不同。以下分別來講。

Mysql:

SELECT concat(ename,"'s job title is:",job) as EnameConn FROM emp WHERE deptno =10;

Sql server:

SELECT ename+'''s job title is:'+job as EnameConn FROM emp

Oracle:

SELECT ename||'''s job title is:'||job as EnameConn FROM emp

執行結果:

EnameConn

CLARK's job title is:MANAGER

KING's job title is:PRESIDENT

MILLER's job title is:CLERK

7.2.8 查詢語句里執行條件判斷

需求:查詢雇員表emp里的員工名稱、工資、工資分類狀態。這里的工資分類狀態按照以下規則顯示:如果工資小于等于2000則顯示UNDERPAID(即報酬比較低的),如果工資大于4000時顯示OVERPAID(即報酬較高),其它情況顯示NORMAL(正常水平)。

解決方法:首先定位到emp表和涉及到字段員工名稱、工資,再考慮考慮到工資狀態是個計算出來的列,所以先梳理工資分類狀態這個“列”的邏輯,跟表里的工資字段有關,這里是做 if else判斷,注意到純SQL里沒有if else,但有case when,所以我們選取這個關鍵字。case when 條件1 then value1 case when 條件2 then value2 else value3 end as 別名。

Mysql、SQL server、Oracle:

SELECT ENAME,SAL, CASE WHEN SAL <=2000 THEN 'UNDERPAID'WHEN SAL > 2000 THEN 'OVERPAID' ELSE 'NORMAL' END AS STATUS FROM emp

執行結果:

ENAME

SAL

STATUS

SMITH

800.00

UNDERPAID

ALLEN

1600.00

UNDERPAID

WARD

1250.00

UNDERPAID

JONES

2975.00

OVERPAID

MARTIN

1250.00

UNDERPAID

BLAKE

2850.00

OVERPAID

CLARK

2450.00

OVERPAID

SCOTT

3000.00

OVERPAID

KING

5000.00

OVERPAID

TURNER

1500.00

UNDERPAID

ADAMS

1100.00

UNDERPAID

JAMES

950.00

UNDERPAID

FORD

3000.00

OVERPAID

MILLER

1300.00

UNDERPAID

注:case when還可以如下方式編寫:

select ename,sal,job, case job when 'CLERK' then '小職員'when 'SALESMAN' then '銷售員'when 'MANAGER' then '經理'when 'ANALYST' then '分析師'when 'PRESIDENT' then '董事長'else "其它" end as jobtitle from emp ?

執行結果:

ename

sal

job

jobtitle

SMITH

800.00

CLERK

小職員

ALLEN

1600.00

SALESMAN

銷售員

WARD

1250.00

SALESMAN

銷售員

JONES

2975.00

MANAGER

經理

MARTIN

1250.00

SALESMAN

銷售員

BLAKE

2850.00

MANAGER

經理

CLARK

2450.00

MANAGER

經理

SCOTT

3000.00

ANALYST

分析師

KING

5000.00

PRESIDENT

董事長

TURNER

1500.00

SALESMAN

銷售員

ADAMS

1100.00

CLERK

小職員

JAMES

950.00

CLERK

小職員

FORD

3000.00

ANALYST

分析師

MILLER

小職員

?這種case 字段A when value1的方式適合字段有可窮舉的情況,而case when 字段條件A則比這種更靈活。

7.2.9 返回的字段在某個范圍內的數據

需求:查詢雇員表emp里部門編號在10和30的部門編號、雇員名稱、職位名稱。

解決方法:使用數據庫里IN關鍵字來限制員工表里的deptno。

Mysql、Sql server、Oracle:

SELECT ename,job FROM emp WHERE deptno IN (20,30)

執行結果:

ename

job

deptno

SMITH

CLERK

20

ALLEN

SALESMAN

30

WARD

SALESMAN

30

JONES

MANAGER

20

MARTIN

SALESMAN

30

BLAKE

MANAGER

30

SCOTT

ANALYST

20

TURNER

SALESMAN

30

ADAMS

CLERK

20

JAMES

CLERK

30

FORD

ANALYST

20

7.2.10 通過多條件組合返回數據

需求:查詢雇員表emp里部門編號在10和30且職位是經理“MANAGER”的的雇員名稱、職位名稱。

解決方法:使用數據庫里IN關鍵字來限制員工表里的deptno。

Mysql、Sql server、Oracle:

SELECT ename,job FROM emp WHERE deptno IN (20,30) AND job='MANAGER'

執行結果:

ename

job

JONES

MANAGER

BLAKE

MANAGER

: 這里字段的邏輯條件里常用的有and、or,注意這里的優先級,如果想改變優先級,可以通過“()”來改變。

7.2.11 限制返回的行數

需求:查詢5條雇員表emp里的雇員信息。

解決方法:使用數據庫里內置的限制行數返回的函數來解決。

Mysql:

SELECT * FROM emp limit 5;

Sql server:

SELECT TOP 5 * FROM emp;

Oracle:

SELECT * FROM emp WHERE rownum <=5

執行結果:

empno

ename

job

mgr

hiredate

sal

comm

deptno

7369

SMITH

CLERK

7902

1980/12/17 0:00:00

800.00

20

7499

ALLEN

SALESMAN

7698

1981/2/20 0:00:00

1600.00

300.00

30

7521

WARD

SALESMAN

7698

1981/2/22 0:00:00

1250.00

500.00

30

7566

JONES

MANAGER

7839

1981/4/2 0:00:00

2975.00

20

7654

MARTIN

SALESMAN

7698

1981/9/28 0:00:00

1250.00

1400.00

30

7.2.12 從表中隨機返回N條記錄

需求:從雇員表emp里隨機查詢5條雇員的名稱和工資信息。

解決方法:使用數據庫里內置的限制行數函數結合隨機函數來解決。

Mysql:

SELECT ename,sal FROM emp order by rand() limit 5;

Sql server:

SELECT TOP 5 ename,sal FROM emp ORDER BY NEWID()

注: newid是SQL Server里的內置函數,因為newid()返回的是uniqueidentifier類型的唯一值,而且每次生成的值都不一樣,所以能達到隨機的效果。

Oracle:

SELECT * FROM ( SELECT ename,sal FROM emp ORDER BY Dbms_Random.value() ) WHERE rownum <=5

注: dbms_random是一個可以生成隨機數值或者字符串的程序包。這個包有initialize()、seed()、terminate()、value()、normal()、random()、string()等幾個函數,但返回隨機值的函數value()是最常用的。

你可以直接訪問這個隨機數字的函數,它返回個0到1之間的一個小數。

SELECT Dbms_Random.value() AS RAND_VALUE FROM DUAL;

執行結果:

RAND_VALUE

0.151493981662762

如果想生成1-100之間的隨機數,你可以這么做:

SELECT TRUNC(Dbms_Random.value()*100)AS RAND_VALUE FROM DUAL;

執行結果:

RAND_VALUE

42

7.2.13 從表中查詢空值

需求:從雇員表emp里查詢所有獎金為空的員工名稱、工資信息和獎金信息。

解決方法:首先找到該段邏輯的涉及到的表名和字段名,emp表,字段ename,sal,comm,使用IS NULL關鍵字來來解決,這里的NULL是描述數據的特殊值,即不明確該值是什么,區別于空字符串“''”,空字符串不等于NULL。

Mysql、Sql server、Oracle:

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

執行結果:

ename

sal

comm

SMITH

800.00

JONES

2975.00

BLAKE

2850.00

CLARK

2450.00

SCOTT

3000.00

KING

5000.00

ADAMS

1100.00

JAMES

950.00

FORD

3000.00

MILLER

1300.00

7.2.14 返回不重復的記錄

需求:從雇員表emp里查詢所有不重復的職位信息。

解決方法:這里用到SQL的DISTINCT關鍵字,即對重復的記錄進行去重。

Mysql、Sql server、Oracle:

SELECT DISTINCT JOB FROM emp

執行結果:

JOB

CLERK

SALESMAN

MANAGER

ANALYST

PRESIDENT

7.2.15 將空值轉成其它值

需求:從雇員表emp里查詢所有獎金為空的員工名稱、工資信息和獎金信息。這里如果獎金為空則轉為0。

解決方法:首先找到該段邏輯的涉及到的表名和字段名,emp表,字段ename,sal,comm,使用IS NULL關鍵字來來解決,如果comm為null則轉為0 如果不是null則返回本身。

Mysql、Sql Server、Oracle:

SELECT ename,sal,case WHEN comm IS NULL THEN 0ELSE commEND AS comm FROM emp WHERE comm IS NULL

執行結果:

ename

sal

comm

SMITH

800.00

0

JONES

2975.00

0

BLAKE

2850.00

0

CLARK

2450.00

0

SCOTT

3000.00

0

KING

5000.00

0

ADAMS

1100.00

0

JAMES

950.00

0

FORD

3000.00

0

MILLER

1300.00

0

或者用下面的方法,這里每個數據庫里的函數名各不同:

Mysql:

SELECT ename,sal, ROUND(IFNULL(comm,0))as comm FROM emp WHERE comm IS NULL

Sql Server:

SELECT ename,sal, ISNULL(comm,0)AS comm FROM emp WHERE comm IS NULL

Oracle:

SELECT ename,sal,NVL(comm,0) AS comm FROM emp WHERE comm IS NULL

7.2.16 按照某個模式搜索

需求:從雇員表emp里查詢部門號是10或者20的員工名稱,職位信息,他們要么員工名稱里含有“I”要么他們的職位以“ER”結尾。

解決方法:這里用到SQL的關鍵字“%”,注意如果字段里以“%匹配關鍵字%”則會匹配“匹配關鍵字”在字段里的任何地方,同理如果是“匹配關鍵字%”則是以“匹配關鍵字”開頭來匹配字段,而“%匹配關鍵字”則是匹配以“匹配關鍵字”結尾來匹配字段。

Mysql、Sqlserver、Oracle:

SELECT ename,job FROM emp WHERE deptno IN(10,20) AND (ename LIKE '%I%' OR job LIKE '%ER')

執行結果:

ename

job

SMITH

CLERK

JONES

MANAGER

CLARK

MANAGER

KING

PRESIDENT

MILLER

CLERK

7.2.17 按照指定的次序返回查詢結果

需求:從雇員表emp里查詢所有的員工名稱,職位,獎金信息,這里要求獎金不為空的排在前面。

解決方法:這里用到SQL的關鍵字 ORDER BY 以及ASC和DESC,order by是指定以某個或者某些字段排序,asc是指代以字母順序排列而desc則是以字母降序排列。

Mysql、SqlServer:

SELECT ename,job,comm FROM emp order by comm

執行結果:

ename

job

comm

SMITH

CLERK

JONES

MANAGER

BLAKE

MANAGER

CLARK

MANAGER

SCOTT

ANALYST

KING

PRESIDENT

ADAMS

CLERK

JAMES

CLERK

FORD

ANALYST

MILLER

CLERK

TURNER

SALESMAN

0.00

ALLEN

SALESMAN

300.00

WARD

SALESMAN

500.00

MARTIN

SALESMAN

1400.00

Oracle:

SELECT ename,job,comm FROM emp order by comm

執行結果:

ENAME

JOB

COMM

TURNER

SALESMAN

0.00

ALLEN

SALESMAN

300.00

WARD

SALESMAN

500.00

MARTIN

SALESMAN

1400.00

SCOTT

ANALYST

KING

PRESIDENT

ADAMS

CLERK

JAMES

CLERK

FORD

ANALYST

MILLER

CLERK

BLAKE

MANAGER

JONES

MANAGER

SMITH

CLERK

CLARK

MANAGER

:因為Sql Server和Mysql默認以NULL的排在前面,而Oralce則默認以NULL的排在后面。

7.2.18 按照多個字段排序查詢結果

需求:從雇員表emp里查詢所有的部門編號,員工名稱,職位,工資信息,這里要求先以部門編號排序再以工資從高到低排序顯示。

解決方法:這里用到SQL的關鍵字 ORDER BY 以及ASC和DESC,order by是指定以字段deptno字符排序,以工資降序排列。

Mysql、Sql server、Oracle:

SELECT deptno,ename,job,sal FROM emp order by deptno,comm desc

執行結果:

deptno

ename

job

sal

10

CLARK

MANAGER

2450.00

10

KING

PRESIDENT

5000.00

10

MILLER

CLERK

1300.00

20

SMITH

CLERK

800.00

20

JONES

MANAGER

2975.00

20

SCOTT

ANALYST

3000.00

20

ADAMS

CLERK

1100.00

20

FORD

ANALYST

3000.00

30

MARTIN

SALESMAN

1250.00

30

WARD

SALESMAN

1250.00

30

ALLEN

SALESMAN

1600.00

30

TURNER

SALESMAN

1500.00

30

BLAKE

MANAGER

2850.00

30

JAMES

CLERK

950.00

?

7.2.19 按照字符串對結果排序

需求:從雇員表emp里查詢所有的部門編號,員工名稱,職位,工資信息,職位的后兩位信息,這里要求截取job字段里的最后兩位來排序。

解決方法:這里用到SQL的字符串截取函數再結合order by來對結果進行排序。

Mysql:

SELECT deptno,ename,job,sal,substring(job,length(job)-1) AS last2word FROM emp order by last2word

Oracle:

SELECT deptno,ename,job,sal,substr(job,length(job)-1) AS last2word FROM emp order by last2word ??Sql serer: SELECT deptno,ename,job,sal,substring(job,len(job)-1,2) AS last2word FROM emp order by last2word

執行結果:

deptno

ename

job

sal

last2word

30

ALLEN

SALESMAN

1600.00

AN

30

WARD

SALESMAN

1250.00

AN

30

MARTIN

SALESMAN

1250.00

AN

30

TURNER

SALESMAN

1500.00

AN

20

JONES

MANAGER

2975.00

ER

30

BLAKE

MANAGER

2850.00

ER

10

CLARK

MANAGER

2450.00

ER

10

KING

PRESIDENT

5000.00

NT

20

SMITH

CLERK

800.00

RK

20

ADAMS

CLERK

1100.00

RK

30

JAMES

CLERK

950.00

RK

10

MILLER

CLERK

1300.00

RK

20

SCOTT

ANALYST

3000.00

ST

20

FORD

ANALYST

3000.00

ST

7.2.20 按照字符串數字組合的排序

需求:假設我們從雇員表emp里創建個視圖,這里僅有一個字段,該字段叫data由員工名稱和部門號拼接而成,我們想實現一個查詢可以按照原來的部門編號逆序排序篩選出數據。

解決方法:這里沒有真正創建視圖,因為用戶權限問題,而是建了個表叫做tmp_v。字段拼接生成新字段見上面章節。這里要通過數據庫里的translate和repacle結合來實現這個功能。

注:SQL Server、Mysql里參照網上實現了translate函數,詳細見下。

Oracle:

create table tmp_v as SELECT ename||' '|| deptno as data from emp;SELECT data,replace(translate(data,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','@@@@@@@@@@@@@@@@@@@@@@@@@@'),'@','') as deptno FROM tmp_v order by replace(translate(data,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','@@@@@@@@@@@@@@@@@@@@@@@@@@'),'@','') desc

執行結果:

DATA

DEPTNO

BLAKE 30

30

TURNER 30

30

ALLEN 30

30

MARTIN 30

30

WARD 30

30

JAMES 30

30

SCOTT 20

20

JONES 20

20

SMITH 20

20

ADAMS 20

20

FORD 20

20

KING 10

10

MILLER 10

10

?注:

1 因為我們的ename里的名字都是大寫的,所以這里translate函數里的第二個參數都是大寫的,如果data里是小寫的這里自然是小寫。

2 translate函數有三個參數,第一個一般是字段名或則字符串的值,第二個是要匹配的字符組合,第三個是要裝換成的字符。

3 replace函數一般有三個參數,第一個一般是字段名或則字符串的值,第二個要替換的字段,第三個是要替換成的值。

SQL Server:

可以在SQLServer里實現個自定義個函數叫translate, 參考至http://blog.sina.com.cn/s/blog_95cfa64601018akj.html具體實現見下:

SET ANSI_NULLSON GO SET QUOTED_IDENTIFIERON GO CREATE FUNCTION [dbo].[translate](@string VARCHAR(MAX),@from_str VARCHAR(MAX),@to_str VARCHAR(MAX) ) RETURNS VARCHAR(MAX) AS BEGIN-- 返回將(所有出現的)from_str中的每個字符替換為to_str中的相應字符以后的string。-- TRANSLATE是 REPLACE所提供的功能的一個超集。-- 如果 from_str比 to_str 長,那么在 from_str 中而不在 to_str 中的額外字符將從 string 中被刪除,因為它們沒有相應的替換字符。-- to_str不能為空。-- Oracle將空字符串解釋為 NULL,并且如果TRANSLATE 中的任何參數為NULL,那么結果也是 NULL。IF @string IS NULL OR @from_strISNULLOR @to_strISNULLBEGINRETURN NULL;END;-- 源長度與目標長度DECLARE @FromLen INT, @ToLen INT;SET @FromLen = LEN(@from_str);SET @ToLen = LEN(@to_str);-- 準備用于返回的數值.DECLARE @resultVal VARCHAR(MAX);SET @resultVal =@string;-- 用于存儲 本次需要替換的字符信息.DECLARE @thisTimeReplace CHAR(1);-- 從后向前依次替換.WHILE @FromLen > 0BEGIN-- 取得本次即將要替換的字符.SET @thisTimeReplace =SUBSTRING(@from_str, @FromLen, 1);IF CHARINDEX(@thisTimeReplace,@from_str)<@FromLenBEGIN-- 假如當前這個要替換的字符,在前面還有,那么這里就不替換了-- 原因,為了支持-- SELECT TRANSLATE('2KRW229','1234567890' || '2KRW229', '1234567890')-- 這樣的效果.-- 向前處理上一個/*補充說明:1 理論上TRANSLATE函數的@from_str參數和@to_str參數的長度要一致,即一一映射。比如@from_str='0123',@to_str='abcd'2 該步驟旨在找到在@from_str參數里要替換的的字符重復指定了,比如'0123XYZ23',這里23是重復指定了,對于重復指定的要舍棄所以需要在該步時需要將@FromLen鎖定到字符Z的位置即7*/SET @FromLen =@FromLen - 1;CONTINUE;ENDIF @FromLen >@ToLenBEGIN--from_str 比 to_str長,那么在 from_str 中而不在 to_str 中的額外字符將從 string 中被刪除,因為它們沒有相應的替換字符。SET @resultVal =REPLACE(@resultVal,SUBSTRING(@from_str, @FromLen, 1),'');ENDELSEBEGIN-- from_str中的每個字符替換為to_str中的相應字符以后的string--SELECT dbo.TRANSLATE('2KRW229', '12345678902KRS229','12345678902')這里用S替換時其實無效SET @resultVal =REPLACE(@resultVal, @thisTimeReplace,SUBSTRING(@to_str, @FromLen, 1));END;-- 處理完當前字符后,向前處理上一個.SET @FromLen =@FromLen - 1;END;-- 依次處理完畢后,返回結果.RETURN @resultVal;ENDcreate view tmp_v AS SELECT ename+' '+cast(deptnoasvarchar)as data from emp;SELECT data,replace(dbo.translate(data,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','@@@@@@@@@@@@@@@@@@@@@@@@@@'),'@','') as deptno FROM tmp_v order by replace(dbo.translate(data,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','@@@@@@@@@@@@@@@@@@@@@@@@@@'),'@','')desc ?

執行結果:

DATA

DEPTNO

ALLEN 30

30

WARD 30

30

MARTIN 30

30

BLAKE 30

30

TURNER 30

30

JAMES 30

30

FORD 20

20

SMITH 20

20

ADAMS 20

20

SCOTT 20

20

JONES 20

20

CLARK 10

10

KING 10

10

注: SQL Server 2017里已經有translate函數,見如下示例:

DECLARE @v VARCHAR(100)?

SET @v = '123#456*789!/0'?

SELECT REPLACE(TRIM(TRANSLATE(@v,'#*!/','??? ')),' ','') AS transDemo

transDemo

1234567890

Mysql:

可以在Mysql里實現個自定義個函數叫translate,具體實現見下:

DROP FUNCTION IF EXISTS shenl.translate; CREATE FUNCTION shenl.`translate`( stringToTranslate VARCHAR(256), from_str VARCHAR(256), to_str VARCHAR(256)) RETURNSvarchar(256)CHARSET utf8BEGINDECLARE resultVal VARCHAR(256); DECLARE FromLen INT; DECLARE ToLen INT; DECLARE thisTimeReplace VARCHAR(1); SET FromLen = LENGTH(from_str); SET ToLen = LENGTH(to_str); SET resultVal = stringToTranslate;IF stringToTranslate IS NULL OR from_strISNULLOR to_strISNULLTHENRETURN NULL; END IF;loop_label: LOOP#因為是從后往前替換,所以FromLen=0時循環要結束了。IF FromLen<=0THENLEAVE loop_label;END IF;#from_str里從后往前每次取1個字符SET thisTimeReplace = SUBSTRING(from_str, FromLen, 1);#如果在from_str字符串里重復指定了要替換的字符,則舍棄。即如果from_str的值是1234567890fat29,則29是要舍棄掉的。#即FromLen要鎖定到13IF INSTR(from_str,thisTimeReplace)< FromLen THENSET FromLen = FromLen - 1;ITERATE loop_label;ELSE#如果from_str的長度大于ToLen則以ToLen的長度為標準,此時from_str里多提供的字符會被替換為''IF FromLen > ToLen THEN SET resultVal = REPLACE(resultVal, SUBSTRING(from_str, FromLen, 1),'');#如果from_str的長度等于ToLen則以ToLen對應的字符替換from_str里多的字符ELSESET resultVal = REPLACE(resultVal, thisTimeReplace, SUBSTRING(to_str, FromLen, 1)); END IF; SET FromLen = FromLen - 1;END IF; END LOOP;RETURN resultVal; END;create view tmp_v AS SELECTCONCAT(ename,' ',deptno)as data from emp;SELECT data,replace(translate(data,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','@@@@@@@@@@@@@@@@@@@@@@@@@@'),'@','') as deptno FROM tmp_v order by replace(translate(data,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','@@@@@@@@@@@@@@@@@@@@@@@@@@'),'@','') desc

執行結果:

data

deptno

ALLEN 30

30

MARTIN 30

30

WARD 30

30

BLAKE 30

30

JAMES 30

30

TURNER 30

30

SCOTT 20

20

ADAMS 20

20

SMITH 20

20

JONES 20

20

FORD 20

20

MILLER 10

10

KING 10

10

CLARK 10

10

7.2.21 處理空值的排序

需求:查詢雇員表emp里的員工編號、員工名、獎金信息,這里需要將comm字段為空的排在前面。

解決方法:需要對comm字段進行特殊處理,比如進行轉換,然后再排序,而有的數據庫可以在排序時指定null的順序。如oracle里字段排序時可以指定nulls first或則nulls last

Oracle:

SELECT empno,ename,comm FROM emp ORDER BY comm nulls first

執行結果:

EMPNO

ENAME

COMM

7369

SMITH

7782

CLARK

7902

FORD

7900

JAMES

7876

ADAMS

7566

JONES

7698

BLAKE

7934

MILLER

7788

SCOTT

7839

KING

7844

TURNER

0.00

7499

ALLEN

300.00

7521

WARD

500.00

7654

MARTIN

1400.00

?

Sql Server:

SELECT empno,ename,CASE WHEN comm IS NULL THEN -1 ELSE comm END AS comm FROM emp ORDER BY comm

Mysql:

SELECT empno,ename,CASE WHEN comm IS NULL THEN -1 ELSE comm END AS comm FROM emp ORDER BY comm ?

Sqlserver和Mysql的執行結果見下:

empno

ename

comm

7369

SMITH

-1.00

7566

JONES

-1.00

7698

BLAKE

-1.00

7782

CLARK

-1.00

7788

SCOTT

-1.00

7839

KING

-1.00

7876

ADAMS

-1.00

7900

JAMES

-1.00

7902

FORD

-1.00

7934

MILLER

-1.00

7844

TURNER

0.00

7499

ALLEN

300.00

7521

WARD

500.00

7654

MARTIN

1400.00

7.2.22 根據數據項的值排序

需求:查詢雇員表emp里的員工編號、員工名、工作信息、獎金信息,這里需要對工作是“MANAGER”和“SALESMAN”的按照comm降序排序其他員工按照員工編號降序排列。

解決方法:這里需要在order by后接case when之類的條件判斷以調整排序規則。order by可以跟多個字段,排在前面的規則會被優先應用。

Oracle:

SELECT empno,ename,job,comm FROM emp ORDER BY CASE WHEN job IN ('SALESMAN','MANAGER') THEN comm ELSE empno END DESC

執行結果:

EMPNO

ENAME

JOB

COMM

7782

CLARK

MANAGER

7698

BLAKE

MANAGER

7566

JONES

MANAGER

7934

MILLER

CLERK

7902

FORD

ANALYST

7900

JAMES

CLERK

7876

ADAMS

CLERK

7839

KING

PRESIDENT

7788

SCOTT

ANALYST

7369

SMITH

CLERK

7654

MARTIN

SALESMAN

1400.00

7521

WARD

SALESMAN

500.00

7499

ALLEN

SALESMAN

300.00

7844

TURNER

SALESMAN

0.00

Sql Server、Mysql:

SELECT empno,ename,job,comm FROM emp ORDER BY CASE WHEN job IN('SALESMAN','MANAGER')THEN comm ELSE empno END DESC

執行結果:

empno

ename

job

comm

7934

MILLER

CLERK

NULL

7902

FORD

ANALYST

NULL

7900

JAMES

CLERK

NULL

7876

ADAMS

CLERK

NULL

7839

KING

PRESIDENT

NULL

7788

SCOTT

ANALYST

NULL

7369

SMITH

CLERK

NULL

7654

MARTIN

SALESMAN

1400.00

7521

WARD

SALESMAN

500.00

7499

ALLEN

SALESMAN

300.00

7844

TURNER

SALESMAN

0.00

7698

BLAKE

MANAGER

NULL

7782

CLARK

MANAGER

NULL

7566

JONES

MANAGER

NULL

總結

以上是生活随笔為你收集整理的SQL 100+个最佳入门案例实践(覆盖Oralce、SQL Server、Mysql)之基础操作_1_检索数据的全部內容,希望文章能夠幫你解決所遇到的問題。

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

国产精品3 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 这里只有精品视频在线观看 | 成人精品一区二区三区电影免费 | 国产日韩在线视频 | 亚洲日本一区二区在线 | 亚洲美女免费视频 | 在线看欧美 | 亚洲一区欧美激情 | 中文字幕在线观看一区二区 | 国产精品久久久视频 | 久久精品高清 | 五月天色婷婷丁香 | 中文字幕在线观看免费 | 久久 一区| 奇米影音四色 | 久久精品免费看 | 97超碰人人网 | 在线91色| 久久99精品久久久久久 | 久久不卡国产精品一区二区 | 国产精品久久久久四虎 | 精品国产一区二区三区久久久蜜臀 | 在线看v片成人 | 亚洲精品欧美视频 | 中文av一区二区 | 国产精品久久久免费 | 国产又粗又长的视频 | 国产精品久久久久久久久久不蜜月 | 亚洲 欧美 日韩 综合 | 爱情影院aqdy鲁丝片二区 | 午夜视频在线网站 | 中文字幕中文字幕在线中文字幕三区 | 亚洲精品高清一区二区三区四区 | 四虎在线视频免费观看 | 成人在线超碰 | 狠狠狠狠干| 久久欧美视频 | 亚洲一区二区精品在线 | 毛片区 | 午夜免费福利片 | 久久久www成人免费精品 | 麻豆精品国产传媒 | 91天天操 | 黄色一级免费网站 | 九九热久久免费视频 | 国产aa免费视频 | 久久草网 | 日韩精品字幕 | 99久久婷婷国产综合精品 | 日日精品| 91色国产| 永久免费观看视频 | 精品视频999| 操综合 | 超碰人人舔 | 黄av资源| 日韩免费观看av | 黄色网大全 | 日韩综合第一页 | 国产精品1000| 亚洲毛片久久 | av在线播放快速免费阴 | 香蕉视频91 | 日韩精品视频一二三 | 国产 中文 日韩 欧美 | 色综合久久久久久久久五月 | 激情五月六月婷婷 | 久久丝袜视频 | 国产 日韩 在线 亚洲 字幕 中文 | 日韩精品一区二区三区中文字幕 | 久久久免费看视频 | 国产婷婷视频在线 | 美女久久久 | 天天激情天天干 | 国产探花视频在线播放 | 亚洲国产精品电影在线观看 | 麻豆一区二区 | 亚洲激情视频 | 国产视频中文字幕在线观看 | 国内成人精品2018免费看 | 激情婷婷av | 91精品视频免费在线观看 | 色激情在线 | www色网站| 私人av | 国产日韩三级 | 成人动漫一区二区 | 亚洲精品免费看 | aa级黄色大片 | 2021国产精品 | 夜夜干夜夜 | 国产精品电影一区二区 | 亚洲精品字幕在线观看 | 日日干夜夜操视频 | 欧美激情第28页 | 99热精品国产一区二区在线观看 | 精品久久视频 | 日日干天天操 | 中文字幕在线网 | www.久久视频 | 日韩av进入 | 欧美va日韩va | 天天干天天操天天干 | 国产精品久久久久久电影 | 人人精品 | avav片| 四虎在线观看视频 | 日韩高清av在线 | 亚洲成人国产精品 | 少妇超碰在线 | 亚洲第一伊人 | 日韩在线视频线视频免费网站 | 91av资源网| caobi视频| 亚洲专区在线视频 | 天堂入口网站 | 在线观看中文字幕dvd播放 | 夜夜躁狠狠躁日日躁视频黑人 | 色哟哟国产精品 | 国产亚洲成av片在线观看 | 久久久精华网 | 久久你懂得 | a精品视频| 欧美日韩一区久久 | 婷婷久久五月 | 久久久亚洲网站 | 色婷婷在线视频 | 欧美一级黄色网 | 国产精品久久久久久久久久久免费看 | www.91国产 | 欧美在线视频一区二区三区 | 在线免费黄色av | 韩日精品在线观看 | 97视频成人 | 热久久这里只有精品 | 日韩在线观看一区二区 | 色资源中文字幕 | 国产精品久久久久久久久久99 | 久久精品99国产 | 欧美韩国日本在线 | 欧美日韩一区三区 | 夜夜婷婷| 国产精品成人免费一区久久羞羞 | 亚洲精品黄色片 | 久久国内免费视频 | 91网在线 | 国产在线欧美日韩 | 国产91欧美| 黄a在线观看 | 亚洲高清国产视频 | 91精品国产99久久久久久红楼 | 日韩精品在线视频免费观看 | 婷婷网站天天婷婷网站 | 在线视频 一区二区 | 国色天香在线观看 | av五月婷婷 | 丝袜美腿一区 | 激情网站免费观看 | 国产精品激情偷乱一区二区∴ | 欧美午夜精品久久久久久孕妇 | 97视频免费| 亚洲第一中文网 | 99久国产| 日韩精品一区二区免费 | 少妇性bbb搡bbb爽爽爽欧美 | 国产群p | 亚洲 欧洲av | 精品视频在线看 | 五月天.com| 久草在线手机观看 | 一区二区三区在线观看免费视频 | 热久久电影 | 日韩在线高清免费视频 | 99视频网址 | 婷婷日| 亚洲精品视频播放 | 国产精品色 | 国产最新在线观看 | 午夜精品久久久久久久久久久久久久 | 久久国产免费看 | 欧美日韩高清在线观看 | 国产夫妻性生活自拍 | 国产视频亚洲 | 国产日产高清dvd碟片 | 国产精品美女久久久久久久久 | 国产一卡久久电影永久 | 日韩av电影网站在线观看 | 在线免费观看视频一区二区三区 | 国产一区二区三区四区在线 | 日韩免费在线视频观看 | 日韩深夜在线观看 | 欧美日韩国产二区三区 | 美女免费黄网站 | 91精品视频在线免费观看 | 欧美日韩视频观看 | 亚洲免费av电影 | 国产日韩欧美在线播放 | 亚洲精选久久 | 日韩在线观看的 | 亚洲欧美国产视频 | 久久久久久蜜av免费网站 | 丰满少妇麻豆av | 又黄又色又爽 | 超碰97av在线| 激情av资源网 | 毛片美女网站 | 91日韩在线 | 国产流白浆高潮在线观看 | 蜜臀av性久久久久蜜臀aⅴ四虎 | www激情com| 免费视频国产 | 国产精品伦一区二区三区视频 | 99av国产精品欲麻豆 | 欧美日韩国产色综合一二三四 | 一区二区三区四区五区在线视频 | 91视频在线免费观看 | 五月激情六月丁香 | 亚洲综合色视频在线观看 | 香蕉97视频观看在线观看 | 天天草天天操 | 毛片网站免费 | 欧美一级免费 | 97成人免费| 亚洲最快最全在线视频 | 国产亚洲综合性久久久影院 | 色综合久久久久 | 欧美乱码精品一区二区 | 日韩欧美在线综合网 | 黄网站app在线观看免费视频 | 成人免费观看完整版电影 | 免费男女羞羞的视频网站中文字幕 | 国产成人99久久亚洲综合精品 | av电影 一区二区 | 91毛片在线| 超碰免费公开 | 欧美一区二区三区四区夜夜大片 | 久久无码av一区二区三区电影网 | 欧美久久久久久久久久久 | 久久久久国产成人免费精品免费 | 中文字幕 国产视频 | 国产一区二区三区高清播放 | 日本免费久久高清视频 | 久久综合色一综合色88 | 免费看黄在线网站 | 亚洲区另类春色综合小说校园片 | 国产免费又爽又刺激在线观看 | 伊人手机在线 | 黄色av电影一级片 | 久久久精品午夜 | 久热色超碰 | 91精品对白一区国产伦 | 欧美日韩色婷婷 | 久久草在线精品 | 久久大片 | 狠狠久久 | 五月开心六月伊人色婷婷 | 国产精品区二区三区日本 | 国产97免费 | 五月花丁香婷婷 | 在线观看中文av | 久久视频在线观看 | 久久久亚洲麻豆日韩精品一区三区 | 亚洲精品综合久久 | 亚洲国产免费av | 精品国产黄色片 | 美女黄久久 | 国产精品亚州 | 欧美精品午夜 | 麻豆av一区二区三区在线观看 | 黄色成人91 | 亚洲视频在线视频 | a级国产乱理论片在线观看 伊人宗合网 | 97精品伊人 | 中文字幕乱在线伦视频中文字幕乱码在线 | 永久免费av在线播放 | 日日摸日日 | 中文字幕国产精品 | 在线观看日韩免费视频 | 一区二区三区在线观看 | 九九交易行官网 | 久久夜视频 | 久久丁香 | 久久婷亚洲五月一区天天躁 | 国产成人久久精品一区二区三区 | 激情欧美一区二区三区 | 久久久久久久av麻豆果冻 | 五月综合 | 成人黄色电影在线 | 九九九视频在线 | 黄色小说网站在线 | 久久艹在线 | 外国av网 | 日韩在线视频网站 | 久99精品| a视频免费看| 99麻豆久久久国产精品免费 | 亚洲国产经典视频 | 久久国产热 | 久久精品久久精品 | 亚洲春色综合另类校园电影 | 黄色在线免费观看网站 | 亚洲精品午夜久久久 | 最新免费av在线 | 日日操操操 | 视频二区| 久久久精品欧美一区二区免费 | 国产理论一区二区三区 | 九九久久免费视频 | 久久一久久 | 日韩欧美视频在线免费观看 | 中文字幕乱偷在线 | 麻豆国产精品va在线观看不卡 | 国产成人精品一区二区在线 | 91成人在线网站 | 日韩av在线高清 | 天堂网一区二区三区 | 日韩69视频 | 国产一级免费播放 | 天天操天天操天天 | 69精品| 欧美激情综合五月 | 国产精品毛片久久久 | 干干日日 | 国内精品久久久久久久久久久久 | 日韩中文幕 | 久艹在线观看视频 | 福利视频午夜 | 99精品国产一区二区 | 国产中文欧美日韩在线 | 日本爱爱片 | 亚洲黄色一级电影 | 综合久久网站 | 精品在线观看免费 | 中文在线免费观看 | 伊色综合久久之综合久久 | 99久热在线精品视频观看 | 在线播放国产一区二区三区 | 色综合中文字幕 | 欧美日韩国产欧美 | 激情电影在线观看 | 国产黄色高清 | 国产在线国偷精品产拍免费yy | 97人人超碰在线 | 久久国语| 欧美精品乱码久久久久久 | 91香蕉视频黄 | 日韩av片无码一区二区不卡电影 | 91麻豆精品国产91久久久久 | 天天天天天天天天操 | 九九九九精品九九九九 | 成人毛片在线观看视频 | 波多野结衣理论片 | 青青五月天 | 亚洲精品视频在线观看网站 | 综合天天色 | 人人躁 | 久久综合久色欧美综合狠狠 | 国产一区二区久久精品 | 欧美日韩性视频在线 | 国产亚洲精品久久久久动 | 超碰在线观看99 | 成人91在线 | 久草在线官网 | 国产成人免费在线 | 亚洲精品高清视频 | 日韩av成人免费看 | 免费看一级一片 | 日本成址在线观看 | 九九免费在线观看视频 | 日韩艹 | www黄色大片 | 青青河边草免费观看 | 在线日本看片免费人成视久网 | 91成人精品视频 | 日本久久久久久科技有限公司 | 午夜视频在线观看一区二区三区 | 日本视频高清 | 毛片视频网址 | 婷婷综合久久 | 最新久久久 | 国产美女视频免费 | 91免费视频国产 | 免费a级观看 | 日本久久免费视频 | 国产玖玖在线 | 久久99热精品这里久久精品 | 一级成人免费视频 | 久久r精品| 爱色婷婷 | 一级淫片在线观看 | 2021av在线 | 国产欧美精品一区二区三区四区 | 亚洲精品国产精品国自产观看 | www.97视频| 成年人在线视频观看 | 国产一级片播放 | 久久不卡免费视频 | 久草精品免费 | 免费看国产视频 | 国产对白av | 国产原创在线视频 | 婷婷综合五月天 | 亚洲欧洲精品一区二区 | 成人在线免费看视频 | 91在线视频观看 | 九九热只有精品 | 午夜美女视频 | 美女久久久久久久久久 | 天天激情综合 | 久要激情网 | 久久久久久久毛片 | 狠狠狠综合| av资源免费在线观看 | 午夜三级在线 | 久久天天躁狠狠躁夜夜不卡公司 | 国产精品一区专区欧美日韩 | 欧美a级在线播放 | 九九九电影免费看 | 丁香婷婷久久久综合精品国产 | 一区二区视频在线看 | 在线观看一区 | 亚洲国产美女久久久久 | 色久网| 丁香六月天 | 亚洲日b视频 | 精品国产aⅴ一区二区三区 在线直播av | 国产白浆视频 | 免费视频在线观看网站 | 欧美视频99| 久久国产精品视频观看 | 久久短视频 | 91亚洲精品久久久蜜桃网站 | 精品xxx | 天天爱天天插 | 久草资源免费 | 亚洲精品大片www | 99精品在线免费在线观看 | 国产亚洲精品久久网站 | 奇米四色影狠狠爱7777 | 91久草视频| 日韩在线精品视频 | 亚洲经典精品 | 国产成人福利片 | 最近最新中文字幕 | 日韩特级片 | 九色自拍视频 | 成年人免费观看国产 | 在线国产视频观看 | 91x色 | www九九热 | 国产综合香蕉五月婷在线 | 久久中文字幕视频 | 国产精品乱码久久久 | 狠狠干夜夜爽 | 日韩xxxbbb| 精品国产一区二区三区久久影院 | 亚洲成av人电影 | 国产福利在线免费 | 欧美aaa大片 | 日操干| 免费久久久久久久 | 九九精品视频在线看 | 精壮的侍卫呻吟h | 亚洲黄色av| 中文字幕一区二区三区在线观看 | 99中文字幕在线观看 | 国产青青青 | 日一日操一操 | 免费视频久久 | 欧美日本高清视频 | 色天天中文| 欧美a视频在线观看 | 一本一本久久a久久精品综合妖精 | 黄av免费 | 激情五月六月婷婷 | 99国产精品一区二区 | 99亚洲视频 | 色多多视频在线观看 | 人成午夜视频 | 国产视频97| 成人h视频| 91视频在线播放视频 | 亚州精品在线视频 | 玖玖在线观看视频 | 国产高清视频免费观看 | 国产黄色av网站 | 精品国产视频在线 | 亚洲精品视频在线免费 | 爱干视频 | 婷婷激情小说网 | 成人a视频片观看免费 | 日本爱爱免费视频 | 激情久久一区二区三区 | 天天插伊人 | 成人午夜性影院 | 免费日韩电影 | 91精品国产福利在线观看 | 国产成人精品一区二区三区在线观看 | 国产亚洲一级高清 | 青青河边草观看完整版高清 | 婷婷六月丁 | 欧美日韩视频网站 | 亚洲更新最快 | 国产日韩精品一区二区三区在线 | 亚洲伊人网在线观看 | 久草国产精品 | 亚洲精品在线免费看 | 免费人成网 | 91免费版在线 | 久久伦理电影 | www久久久| 免费看91的网站 | 日日操天天操狠狠操 | 日日操夜 | 91九色在线视频观看 | 国产精品一区二区三区视频免费 | 久久综合射 | 久久av一区二区三区亚洲 | 亚洲精品xxx | 久久理论视频 | 成人四虎影院 | 亚洲h在线播放在线观看h | 麻豆小视频在线观看 | 视频精品一区二区三区 | 午夜av影院 | 97人人模人人爽人人喊中文字 | 久草在线看片 | 国产久视频 | 久久久久免费精品视频 | 日韩色视频在线观看 | 丁香五月网久久综合 | 视频一区在线播放 | 在线国产黄色 | av九九| 黄色特一级片 | 欧美不卡在线 | 成人精品一区二区三区中文字幕 | 涩涩网站免费 | 福利av在线| 麻豆传媒视频观看 | 又爽又黄在线观看 | 免费的成人av | 2000xxx影视| 99精品视频一区 | 国产一级精品绿帽视频 | 国产在线播放一区 | 久久伦理网 | 欧美九九九 | 韩国av免费在线 | 97激情影院| 99av国产精品欲麻豆 | 精品亚洲午夜久久久久91 | 夜夜操天天 | 一区二区激情视频 | 狠狠干夜夜操 | 97超级碰碰碰视频在线观看 | www.狠狠色 | 精品一区二区三区久久 | av福利在线看 | 操久在线 | 国产午夜精品久久久久久久久久 | 国产一线二线三线性视频 | 91看成人| 久久一线| 97国产情侣爱久久免费观看 | 婷婷av网| 亚洲久草在线视频 | 视频三区在线 | 国产精品99在线观看 | 美女在线观看网站 | 久久久久在线观看 | 韩国av免费观看 | 毛片3| 国产精品久久久久国产a级 激情综合中文娱乐网 | 久久久久成人免费 | 欧美一级特黄高清视频 | 亚洲少妇自拍 | 日日爽日日操 | 特级西西444www大胆高清无视频 | 99视频一区 | 欧美一区二视频在线免费观看 | 一区二区中文字幕在线观看 | 久草免费在线视频观看 | 人人揉人人揉人人揉人人揉97 | 免费国产一区二区视频 | 草久在线观看视频 | 二区三区在线 | 免费中午字幕无吗 | 国产一区二区三区午夜 | 97看片吧 | 日韩高清在线观看 | 91麻豆精品一区二区三区 | 日韩精品一区二 | 国产精品一区二区吃奶在线观看 | av在线中文| 日韩欧美一区二区在线播放 | 成人黄色大片网站 | 色射爱| 91精品视频在线观看免费 | 国产精品videossex国产高清 | 国产99自拍| 欧美一级片免费在线观看 | 99视频99| 免费色视频 | 欧美午夜激情网 | 国产精品精 | 国产精品久久久久久久久大全 | 亚洲午夜精品一区二区三区电影院 | 超碰97在线资源 | 这里只有精品视频在线观看 | 亚洲乱码中文字幕综合 | 久久精品波多野结衣 | 一本到在线| 色片网站在线观看 | 欧美日在线 | 久久久精品久久 | 色婷婷六月| 麻豆视频免费在线 | 国产99久久精品一区二区永久免费 | 一区二区视频在线免费观看 | 中文字幕观看在线 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 九九久久精品视频 | 8x成人免费视频 | 亚洲在线免费视频 | 国产999精品视频 | 91精品欧美 | 中文字幕日韩高清 | 日韩免费电影 | 九九在线高清精品视频 | 亚洲首页| 色天天综合久久久久综合片 | 精品欧美一区二区精品久久 | 日韩中文字幕免费电影 | 国产精品二区在线观看 | 九九视频精品免费 | 日日弄天天弄美女bbbb | 在线免费黄色 | 午夜性色| 天天草天天操 | 亚洲精品字幕在线观看 | 九九九免费视频 | 精品成人a区在线观看 | 国产片免费在线观看视频 | 久久福利小视频 | 国产一二三四在线观看视频 | 日韩精品一区二区在线视频 | 91亚洲精品国偷拍 | 日韩最新av | 五月天久久狠狠 | 91精品国产成人观看 | 久久久国产在线视频 | 97色狠狠| 久久久蜜桃一区二区 | 国产不卡一| 国产成人一二片 | 亚洲无吗视频在线 | 久久99电影| 婷婷www | 亚洲精品高清一区二区三区四区 | 免费在线成人 | 久久99久久99精品免费看小说 | 日产av在线播放 | 国产一区二区精 | 欧美日韩裸体免费视频 | 91在线播放视频 | 色网址99 | 成年人在线观看视频免费 | 在线观看久久久久久 | 久久久久五月天 | 亚洲在线成人精品 | 免费黄色看片 | 国产免费又粗又猛又爽 | h视频在线看| 日日夜夜草 | 国产正在播放 | 福利久久| 久草线 | 中文字幕在线日亚洲9 | 国产一区欧美一区 | 天天躁天天操 | 又爽又黄在线观看 | 久久毛片网 | 国产日本亚洲高清 | 中文字幕av全部资源www中文字幕在线观看 | 国产日韩欧美在线播放 | 国产精品福利一区 | 久久久亚洲精品 | www.天天草| 亚洲国产精品va在线 | 国产成人免费在线观看 | 亚洲精品电影在线 | 精品三级av | 一区二区三区中文字幕在线 | 在线亚洲精品 | 日韩av中文| 五月婷婷狠狠 | 99热在线看| 欧美乱熟臀69xxxxxx | 成片免费观看视频999 | 欧美日韩在线免费观看视频 | 日韩激情小视频 | 久操视频在线 | 亚洲国产美女精品久久久久∴ | 亚洲乱码在线观看 | 久久精品国产精品亚洲 | 日韩理论在线播放 | 天天摸天天操天天爽 | 黄色福利网站 | 色综合久久综合网 | 99re8这里有精品热视频免费 | 亚洲专区在线视频 | 色婷婷a| 国产精品一区二区在线播放 | 99视频在线免费观看 | 亚洲最新av在线网站 | 日韩精品在线一区 | av不卡中文| 在线观看色网 | 在线观看视频你懂得 | 伊人影院av| 天天想夜夜操 | 综合色在线观看 | 久久视频热| 国产精品69久久久久 | 国产主播大尺度精品福利免费 | 日韩在线观看网址 | 蜜桃久久久 | 五月婷婷开心中文字幕 | 日日成人网 | 91麻豆精品国产自产在线游戏 | 在线有码中文 | 欧美日韩网址 | 免费看的黄色录像 | 国产亚洲欧美精品久久久久久 | 精品亚洲一区二区三区 | 久久亚洲精品国产亚洲老地址 | 在线 欧美 日韩 | 国产精品av久久久久久无 | 亚洲精品97 | 99热官网| 国产在线97| 黄色a视频免费 | 日韩黄色免费 | 国产精品中文字幕av | 亚洲三级网 | 国产一级免费av | 天天看天天干天天操 | 免费高清在线一区 | 亚洲精品美女久久久久 | 国产日韩高清在线 | 亚洲人人av | 日韩在线观看第一页 | 国产成人精品av在线 | 色在线免费 | 免费高清看电视网站 | 黄网站色欧美视频 | 中文字幕在线免费观看视频 | 成人中文字幕av | 成人久久久久久久久久 | 亚洲色五月 | 亚洲精品国产精品99久久 | 亚洲精品国产精品久久99 | 欧美成人性网 | 九色琪琪久久综合网天天 | 久久av电影 | 午夜久久福利影院 | 久久久久久久久久网 | 日日狠狠 | 五月激情丁香图片 | 亚州人成在线播放 | 91最新地址永久入口 | 亚洲午夜在线视频 | 久久论理 | 久久久久久毛片精品免费不卡 | 久久九九国产精品 | 日日操夜夜操狠狠操 | 国产精品一区二区三区电影 | 国产视频精品久久 | 2020天天干天天操 | 婷婷精品在线视频 | 国产一级在线 | 色婷婷av国产精品 | 久久激情五月婷婷 | 亚洲国产中文字幕在线观看 | 国产一级黄色片免费看 | 久久人人爽人人爽人人片av软件 | 九色精品免费永久在线 | 免费av黄色| 婷婷色av | 亚洲天天在线日亚洲洲精 | 国产精品毛片一区视频播 | 美女在线国产 | 麻豆免费看片 | h动漫中文字幕 | 水蜜桃亚洲一二三四在线 | 毛片永久新网址首页 | 午夜电影av| 草久视频在线观看 | 免费色视频网址 | 国产一级一片免费播放放 | 久久一区二区三区日韩 | 成人在线观看资源 | 日韩午夜电影 | 婷婷色在线观看 | 欧美在线视频第一页 | 伊人狠狠操 | 成人午夜免费剧场 | 人人艹视频 | 国产精品综合av一区二区国产馆 | 五月天久久综合 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | www.超碰97.com | 亚洲h在线播放在线观看h | 日本乱码在线 | 黄色www免费 | 亚洲黄色免费 | 韩国av三级 | 国产高清免费 | 一级特黄aaa大片在线观看 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 中文字幕频道 | 国产精品手机看片 | 国产成人精品日本亚洲999 | av3级在线 | 国产精品欧美久久久久无广告 | 久久视频这里有精品 | 色婷婷综合视频在线观看 | 亚洲人片在线观看 | 国产精品电影一区二区 | 欧美色插| 成人免费视频播放 | 亚洲国产mv | 91香蕉国产在线观看软件 | 91精品国自产在线观看欧美 | 午夜精品久久久久久久久久 | 欧美精品在线观看免费 | 国产成人精品a | 丁香伊人网 | 久久精品亚洲国产 | 久草网在线 | 国产一区二区三区四区大秀 | 国产中文字幕在线免费观看 | 国产精品黄色影片导航在线观看 | 97av色| 国产精品一区二区三区四区在线观看 | 久久亚洲私人国产精品 | 国产一区二区三区四区在线 | 五月婷婷黄色 | 久久成人麻豆午夜电影 | 在线观看亚洲视频 | 麻豆精品视频在线观看免费 | 在线中文视频 | 夜夜夜夜爽 | 国产精品乱码久久久久久1区2区 | 人人射人人射 | 国产欧美日韩视频 | 国产清纯在线 | 国产精品国产三级国产aⅴ9色 | 久久中文字幕导航 | 色婷婷国产精品一区在线观看 | 日韩在线观看视频网站 | 欧美日本一区 | 日本三级全黄少妇三2023 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 国产高清视频在线免费观看 | 91免费在线看片 | av免费网站在线观看 | zzijzzij亚洲成熟少妇 | 这里有精品在线视频 | 日本黄色a级大片 | 天天躁天天操 | 久久好看 | 色99视频 | www成人av | 久草久热 | 天天色天天色 | 91视频麻豆视频 | 最新日韩在线 | 黄色www免费 | 夜夜骑天天操 | 久久久一本精品99久久精品66 | 国产精品久久艹 | 中文字幕视频观看 | 99精品国产99久久久久久97 | 久久曰视频 | 国产一区二区三区高清播放 | 久久视频精品在线观看 | 激情五月在线 | 人人插超碰 | 国产精品视频地址 | 美女视频免费一区二区 | 色婷婷天天干 | 444av| 免费久久久久久 | 99久高清在线观看视频99精品热在线观看视频 | 人人干狠狠操 | 色欧美成人精品a∨在线观看 | 日日夜夜精品免费观看 | 91热精品 | 日韩精品免费一区二区 | 精品久久久久_ | 97电影在线 | 成人精品视频久久久久 | 免费av网址在线观看 | 国产精品久久久久久久久久久久午 | 欧美日韩视频观看 | 99精品免费久久久久久久久 | 亚洲乱码久久久 | 少妇精69xxtheporn | 久草在线免费色站 | 日日夜夜操av | 亚洲一二视频 | 日韩精品欧美专区 | 波多野结衣视频网址 | 午夜视频导航 | 久久综合久久综合久久综合 | 日韩一区二区三区免费视频 | 国产无套精品久久久久久 | 久久久久欧美精品999 | 国产中文字幕91 | 96香蕉视频 | 精品夜夜嗨av一区二区三区 | 四川bbb搡bbb爽爽视频 | 九九热精| 国产日韩欧美在线看 | 99热这里只有精品1 av中文字幕日韩 | 99精品国产一区二区三区麻豆 | 欧美粗又大 | 欧美精品一区在线发布 | 麻豆免费在线播放 | 日韩一二三 | 亚洲自拍自偷 | 美女网站视频免费都是黄 | 亚州精品视频 | 亚洲国产免费看 | 亚洲电影av在线 | 免费午夜视频在线观看 | 超碰在线日韩 | 99精品在线看 | 特级西西人体444是什么意思 | 波多野结衣久久资源 | 亚洲日本在线视频观看 | 黄色毛片在线 | 国产日本三级 | 天天射天天干天天爽 | 国产一区视频在线播放 | 精品中文字幕视频 | 国产精品久久在线观看 | 日韩视频一区二区三区 | 日韩欧美一区二区不卡 | 男女全黄一级一级高潮免费看 | 久久国产精品免费 | 日韩精品一区二区免费视频 | 中文字幕在线播放视频 | 亚州精品天堂中文字幕 | 中国一级片视频 | 插久久 | 色婷婷综合久久久久中文字幕1 | 狠狠色丁香婷婷综合久小说久 | 亚洲高清在线精品 | 久久久国产精品一区二区中文 | 国内外成人在线视频 | 在线成人国产 | 婷婷午夜| 91视频在线免费看 | 五月婷婷av在线 | 国产精品18久久久久白浆 | 国产老太婆免费交性大片 | 国产黄视频在线观看 | 久久99久久久久久 | 国产高清免费av | 天天曰天天曰 | www.久艹 | 在线之家免费在线观看电影 | 狠狠操电影网 | 99久久综合国产精品二区 | 亚洲涩涩网站 | 欧美日韩在线网站 | 久草com| 免费日韩一区 | 丁香5月婷婷久久 | 久久久久久久久久亚洲精品 | 国产成人精品综合久久久 | 一区二区三区在线免费 | 久久综合之合合综合久久 | 黄色一级大片在线免费看国产一 | av解说在线观看 | 国产精品久久久久免费观看 | 天堂网一区 | 成人免费观看网址 | 人人干干人人 | 国内精品久久天天躁人人爽 | 一本一本久久a久久精品综合小说 | 天天草综合网 | 欧美日韩三级 | 日韩精品视频在线观看免费 |