過濾和排序--=======================================/*一、使用WHERE字句實現對數據的過濾用法:SELECT*|{[DISTINCT]column|expression[alias],...}FROMtable[WHEREcondition(s)];二、多條件連接AND同時滿足OR滿足其中一個三、比較符>大于>=" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SQL基礎-->過濾和排序

系統 1885 0

--=======================================

--SQL 基礎 --> 過濾和排序

--=======================================

/*

一、使用 WHERE 字句實現對數據的過濾

??? 用法: SELECT *|{[DISTINCT] column|expression [alias],...}

????????? FROM table

????????? [WHERE condition(s)];

二、多條件連接

??? AND ?? 同時滿足

??? OR ????? 滿足其中一個

?

三、比較符

??? ? ??? 大于

??? >= 大于等于

??? ? ??? 小于

??? <= 小于等于

??? <> 不等于

??? = ??? 不等于

??? IS NULL 是否為空值

??? IS NOT NULL 不為空值

??? NOT ???????? 條件為 FALSE 時返回 TRUE

?

??? BETWEEN x AND y ?? 大于等于 X ,小于等于 Y

??? IN (集合) ? ?? ? 在這個集合中,或者講在這個列表中

??? NOT IN (集合) ? 不在這個集合中,或者講不在這個列表中

?

??? LIKE ?? 使用 LIKE 操作符來執行有效搜索字符串數值的通配符搜索

??? ? ??? 通配任意字符

??? _ ?? ??? 能配單個字符

???

四、日期和字符串的處理

??? 字符串和日期值使用單引號標記嵌入

??? 字符數值是大小寫有關,而日期數值是格式化的。

??? ORACLE 默認顯示的日期格式為: DD MON RR

??? 可以用 alter session set nls_date_format='yyyy-mm-dd'; 修改日期格式

??? 永久性修改可以用:

??? alter system set nls_date_format='yyyy-mm-dd' scope=spfile;

?

??? 日期相加減:

??? ??? 日期+(-)數字 ? 返回一個往前或往后的天數的日期

?????? ??? ??? +往后 ? -往前

?

??? ??? 日期-日期 ????? 得到兩個日期之間相差的天數

??????

五、 order by 排序

??? 默認的排序方式:升序

??? 控制排序方式: ?? ASC ?? 升序

?????????? ??????? DESC 降序

???

六、演示 */

/* 使用 WHERE 條件查詢 */

SQL > select * from scott . emp where sal > 2000

? 2 ? ;

?

???? EMPNO ENAME ????? JOB ????????????? MGR HIREDATE ???????? SAL ?????? COMM ???? DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

????? 7566 JONES ????? MANAGER ???????? 7839 02 - APR - 81 ?????? 2975 ??????????????????? 20

????? 7698 BLAKE ????? MANAGER ???????? 7839 01 - MAY - 81 ?????? 2850 ??????????????????? 30

????? 7782 CLARK ????? MANAGER ???????? 7839 09 - JUN - 81 ?????? 2450 ??????????????????? 10

????? 7788 SCOTT ????? ANALYST ???????? 7566 19 - APR - 87 ?????? 3000 ??????????????????? 20

????? 7839 KING ?????? PRESIDENT ??????????? 17 - NOV - 81 ?????? 5000 ??????????????????? 10

????? 7902 FORD ?????? ANALYST ???????? 7566 03 - DEC - 81 ?????? 3000 ??????????????????? 20

?

/* 多條件連接 */

SQL > select * from scott . emp where deptno = 20 and sal > 2000 ;

?

???? EMPNO ENAME ????? JOB ????????????? MGR HIREDATE ???????? SAL ?????? COMM ???? DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

????? 7566 JONES ????? MANAGER ???????? 7839 02 - APR - 81 ?????? 2975 ??????????????????? 20

????? 7788 SCOTT ????? ANALYST ???????? 7566 19 - APR - 87 ?????? 3000 ??????????????????? 20

????? 7902 FORD ?????? ANALYST ???????? 7566 03 - DEC - 81 ?????? 3000 ??????????????????? 20

?

/* 錯誤的寫法 */

SQL > select * from scott . emp where 1000 <= sal <= 2000 ;

select * from scott . emp where 1000 <= sal <= 2000

?????????????????????????????????????? *

ERROR at line 1 :

ORA - 00933 : SQL command not properly ended

?

/* 正確的寫法 */

SQL > select * from scott . emp where sal >= 1000 and sal <= 2000 ;

?

???? EMPNO ENAME ????? JOB ????????????? MGR HIREDATE ???????? SAL ?????? COMM ???? DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

????? 7499 ALLEN ????? SALESMAN ??????? 7698 20 - FEB - 81 ????? ? 1600 ??????? 300 ???????? 30

????? 7521 WARD ?????? SALESMAN ??????? 7698 22 - FEB - 81 ?????? 1250 ??????? 500 ???????? 30

????? 7654 MARTIN ???? SALESMAN ??????? 7698 28 - SEP - 81 ?????? 1250 ?????? 1400 ???????? 30

????? 7844 TURNER ???? SALESMAN ??????? 7698 08 - SEP - 81 ??? ??? 1500 ????????? 0 ???????? 30

????? 7876 ADAMS ????? CLERK ?????????? 7788 23 - MAY - 87 ?????? 1100 ??????????????????? 20

????? 7934 MILLER ???? CLERK ?????????? 7782 23 - JAN - 82 ?????? 1300 ??????????????????? 10

?

/*BETWEEN 的用法 */

SQL > select * from scott . emp where sal between 1000 and 2000 ;

?

???? EMPNO ENAME ????? JOB ????????????? MGR HIREDATE ???????? SAL ?????? COMM ???? DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

????? 7499 ALLEN ????? SALESMAN ??????? 7698 20 - FEB - 81 ?????? 1600 ??????? 300 ???????? 30

????? 7521 WARD ?????? SALESMAN ??????? 7698 22 - FEB - 81 ?????? 1250 ??????? 500 ???????? 30

????? 7654 MARTIN ???? SALESMAN ??????? 7698 28 - SEP - 81 ?????? 1250 ?????? 1400 ???????? 30

????? 7844 TURNER ???? SALESMAN ??????? 7698 08 - SEP - 81 ???? ?? 1500 ????????? 0 ???????? 30

????? 7876 ADAMS ????? CLERK ?????????? 7788 23 - MAY - 87 ?????? 1100 ??????????????????? 20

????? 7934 MILLER ???? CLERK ?????????? 7782 23 - JAN - 82 ?????? 1300 ??????????????????? 10

?

/*IN 的用法,以下兩條語句等同 */

SQL > select * from scott . emp where sal = 3000 or sal = 5000 ;

?

SQL > select * from scott . emp where sal in ( 3000 , 5000 );

?

???? EMPNO ENAME ????? JOB ????????????? MGR HIREDATE ???????? SAL ?????? COMM ???? DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

? ???? 7788 SCOTT ????? ANALYST ???????? 7566 19 - APR - 87 ?????? 3000 ??????????????????? 20

????? 7839 KING ?????? PRESIDENT ??????????? 17 - NOV - 81 ?????? 5000 ??????????????????? 10

????? 7902 FORD ?????? ANALYST ???????? 7566 03 - DEC - 81 ?????? 3000 ??????????????????? 20

?

SQL > select * from scott . emp where sal = 3000 or sal = 5000 ;

?

???? EMPNO ENAME ????? JOB ????????????? MGR HIREDATE ???????? SAL ?????? COMM ???? DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

????? 7788 SCOTT ??? ?? ANALYST ???????? 7566 19 - APR - 87 ?????? 3000 ??????????????????? 20

????? 7839 KING ?????? PRESIDENT ??????????? 17 - NOV - 81 ?????? 5000 ??????????????????? 10

????? 7902 FORD ?????? ANALYST ???????? 7566 03 - DEC - 81 ?????? 3000 ??????????????????? 20

?

--not in 的用法

SQL > select * from scott . emp where sal not in ( 3000 , 5000 );

?

???? EMPNO ENAME ????? JOB ????????????? MGR HIREDATE ???????? SAL ?????? COMM ???? DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

????? 7369 SMITH ??? ?? CLERK ?????????? 7902 17 - DEC - 80 ??????? 800 ??????????????????? 20

????? 7499 ALLEN ????? SALESMAN ??????? 7698 20 - FEB - 81 ?????? 1600 ??????? 300 ???????? 30

????? 7521 WARD ?????? SALESMAN ??????? 7698 22 - FEB - 81 ?????? 1250 ??????? 500 ???????? 30

????? 7566 JONES ? ???? MANAGER ???????? 7839 02 - APR - 81 ?????? 2975 ??????????????????? 20

????? 7654 MARTIN ???? SALESMAN ??????? 7698 28 - SEP - 81 ?????? 1250 ?????? 1400 ???????? 30

????? 7698 BLAKE ????? MANAGER ???????? 7839 01 - MAY - 81 ?????? 2850 ??????????????????? 30

????? 7782 CLARK ????? MANAGER ???????? 7839 09 - JUN - 81 ?????? 2450 ??????????????????? 10

????? 7844 TURNER ???? SALESMAN ??????? 7698 08 - SEP - 81 ?????? 1500 ????????? 0 ???????? 30

????? 7876 ADAMS ????? CLERK ?????????? 7788 23 - MAY - 87 ?????? 1100 ??????????????????? 20

????? 7900 JAMES ????? CLERK ?????????? 7698 03 - DEC - 81 ??????? 950 ??????????????????? 30

????? 7934 MILLER ???? CLERK ?????????? 7782 23 - JAN - 82 ?????? 1300 ??????????????????? 10

?

/*LIKE % _ 運算符的用法 */

SQL > select * from scott . emp where ename like 'A%' ;

?

???? EMPNO ENAME ????? JOB ????????????? MGR HIREDATE ???????? SAL ?????? COMM ???? DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

????? 7499 ALLEN ????? SALESMAN ??????? 7698 20 - FEB - 81 ?????? 1600 ??????? 300 ???????? 30

????? 7876 ADAMS ????? CLERK ?????????? 7788 23 - MAY - 87 ?????? 1100 ??????????????????? 20

?

SQL > select * from scott . emp where ename like '_L%' ;

?

???? EMPNO ENAME ????? JOB ????????????? MGR HIREDATE ???????? SAL ?????? COMM ???? DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

????? 7499 ALLEN ????? SALESMAN ??????? 7698 20 - FEB - 81 ?????? 1600 ??????? 300 ???????? 30

????? 7698 BLAKE ????? MANAGER ???????? 7839 01 - MAY - 81 ?????? 2850 ??????????????????? 30

????? 7782 CLARK ????? MANAGER ???????? 7839 09 - JUN - 81 ?????? 2450 ??????????????????? 10

?

-- 日期格式:未修改前

SQL > select sysdate from dual ;

?

SYSDATE

---------

28 - MAR - 10

?

/* 日期格式的修改,僅對當前會話有效 */

SQL > alter session set nls_date_format = 'yyyy-mm-dd' ;

?

Session altered .

?

-- 查看修改后的日期格式

SQL > select sysdate from dual ;

?

SYSDATE

----------

2010 - 03 - 28

?

-- 永久性修改,將其修改寫到參數文件中。

alter system set ? nls_date_format = ? 'yyyy_mm_dd' scope = spfile ;

?

-- 日期的加減

-- ???? 日期+(-)數字 ? 返回往前或往后的天數日期

-- ???? +往前,-往后

-- ???? 日期- 日期

?

SQL > select sysdate + 10 from dual ;

?

SYSDATE + 10

----------

2010 - 04 - 07

?

SQL > select sysdate - 10 from dual ;

?

SYSDATE - 10

----------

2010 - 03 - 18

?

-- 日期相減 ( 為相差的天數 )

SQL > select empno , ename , sysdate , sysdate - hiredate from scott . emp ;

?

???? EMPNO ENAME ????? SYSDATE ??? SYSDATE - HIREDATE

---------- ---------- ---------- ----------------

????? 7369 SMITH ????? 2010 - 03 - 28 ?????? 10693.4346

????? 7499 ALLEN ????? 2010 - 03 - 28 ?????? 10628.4346

????? 7521 WARD ?????? 2010 - 03 - 28 ?????? 10626.4346

????? 7566 JONES ??? ?? 2010 - 03 - 28 ?????? 10587.4346

????? 7654 MARTIN ???? 2010 - 03 - 28 ?????? 10408.4346

????? 7698 BLAKE ????? 2010 - 03 - 28 ?????? 10558.4346

????? 7782 CLARK ????? 2010 - 03 - 28 ?????? 10519.4346

????? 7788 SCOTT ????? 2010 - 03 - 28 ?????? 8379.43456

????? 7839 KING ?????? 2010 - 03 - 28 ?????? 10358.4346

????? 7844 TURNER ???? 2010 - 03 - 28 ?????? 10428.4346

????? 7876 ADAMS ????? 2010 - 03 - 28 ?????? 8345.43456

?

-- 使用 null 值過濾 ??

SQL > select * from scott . emp where comm is null;

?

???? EMPNO ENAME ????? JOB ????????????? MGR HIREDATE ????????? SAL ?? ???? COMM ???? DEPTNO

---------- ---------- --------- ---------- ---------- ---------- ---------- ----------

????? 7369 SMITH ????? CLERK ?????????? 7902 1980 - 12 - 17 ??????? 800 ??????????????????? 20

????? 7566 JONES ????? MANAGER ???????? 7839 1981 - 04 - 02 ?????? 2975 ??????????????????? 20

????? 7698 BLAKE ????? MANAGER ???????? 7839 1981 - 05 - 01 ?????? 2850 ??????????????????? 30

????? 7782 CLARK ????? MANAGER ???????? 7839 1981 - 06 - 09 ?????? 2450 ??????????????????? 10

????? 7788 SCOTT ????? ANALYST ???????? 7566 1987 - 04 - 19 ??? ??? 3000 ??????????????????? 20

????? 7839 KING ?????? PRESIDENT ??????????? 1981 - 11 - 17 ?????? 5000 ??????????????????? 10

????? 7876 ADAMS ????? CLERK ?????????? 7788 1987 - 05 - 23 ?????? 1100 ??????????????????? 20

????? 7900 JAMES ????? CLERK ?????????? 7698 1981 - 12 - 03 ??????? 950 ??????????????????? 30

????? 7902 FORD ?????? ANALYST ???????? 7566 1981 - 12 - 03 ?????? 3000 ??????????????????? 20

????? 7934 MILLER ???? CLERK ?????????? 7782 1982 - 01 - 23 ?????? 1300 ??????????????????? 10

?

/*ORDER BY 排序(默認為升序) */

SQL > select * from scott . emp where sal > 2000 order by sal ;

?

???? EMPNO ENAME ????? JOB ????????????? MGR HIREDATE ????????? SAL ?????? COMM ???? DEPTNO

---------- ---------- --------- ---------- ---------- ---------- ---------- ----------

????? 7782 CLARK ????? MANAGER ???????? 7839 1981 - 06 - 09 ?????? 2450 ??????????????????? 10

????? 7698 BLAKE ????? MANAGER ???????? 7839 1981 - 05 - 01 ?????? 2850 ??????????????????? 30

????? 7566 JONES ????? MANAGER ???????? 7839 1981 - 04 - 02 ?????? 2975 ??????????????????? 20

??? ?? 7902 FORD ?????? ANALYST ???????? 7566 1981 - 12 - 03 ?????? 3000 ??????????????????? 20

????? 7788 SCOTT ????? ANALYST ???????? 7566 1987 - 04 - 19 ?????? 3000 ??????????????????? 20

????? 7839 KING ?????? PRESIDENT ??????????? 1981 - 11 - 17 ?????? 5000 ??????????????????? 10

?

-- 多字段排序 ?

SQL > select * from scott . emp where sal > 2000 order by sal desc , ename asc ;

?

???? EMPNO ENAME ????? JOB ????????????? MGR HIREDATE ????????? SAL ?????? COMM ???? DEPTNO

---------- ---------- --------- ---------- ---------- ---------- ---------- ----------

????? 7839 KING ?????? PRESIDENT ??????????? 1981 - 11 - 17 ?????? 5000 ??????????????????? 10

????? 7902 FORD ?????? ANALYST ???????? 7566 1981 - 12 - 03 ?????? 3000 ??????????????????? 20

????? 7788 SCOTT ????? ANALYST ???????? 7566 1987 - 04 - 19 ?????? 3000 ????????? ?????????? 20

????? 7566 JONES ????? MANAGER ???????? 7839 1981 - 04 - 02 ?????? 2975 ??????????????????? 20

????? 7698 BLAKE ????? MANAGER ???????? 7839 1981 - 05 - 01 ?????? 2850 ??????????????????? 30

????? 7782 CLARK ????? MANAGER ???????? 7839 1981 - 06 - 09 ?????? 2450 ??????????????????? 10

?

-- 按第個字段降序排列, order by 4 desc ??

SQL > select empno , ename , job , sal from scott . emp where sal > 2000 order by 4 desc ;

?

???? EMPNO ENAME ????? JOB ????????????? SAL

---------- ---------- --------- ----------

????? 7839 KING ?? ???? PRESIDENT ?????? 5000

????? 7902 FORD ?????? ANALYST ???????? 3000

????? 7788 SCOTT ????? ANALYST ???????? 3000

????? 7566 JONES ????? MANAGER ???????? 2975

????? 7698 BLAKE ????? MANAGER ???????? 2850

????? 7782 CLARK ????? MANAGER ???????? 2450

?

七、更多

??? SQL 基礎 -->SELECT 查詢

??? Sqlplus 常用命令

??? Oralce ? 相關 ?

??? ??

?

?

SQL基礎-->過濾和排序


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产影片中文字幕 | 青青操网址| 50-60岁老妇女一级毛片 | 免费一级真人毛片 | 老司机永久免费网站在线观看 | 精品香蕉一区二区三区 | 欧美国产综合在线 | 四虎影视884a精品国产四虎 | 香蕉97超级碰碰碰碰碰久 | 久久中文字幕不卡一二区 | 国产剧情一区二区三区 | 精品国产一区二区三区香蕉事 | 日本一级高清不卡视频在线 | 久久色国产 | 国内精品美女久久久久 | 亚洲精品一区二区三区在线播放 | 一级爱爱片一级毛片-一毛 一级白嫩美女毛片免费 | 国产日韩精品一区二区在线观看 | 美国一级毛片片aa久久综合 | 久久精品免费大片国产大片 | 成人欧美一区二区三区视频 | 久9视频这里只有精品8 | 91久久综合九色综合欧美亚洲 | 日本最新免费二区 | 久久这里只有精品99 | 成人精品一区二区激情 | 成 人 免费 黄 色 视频 | 精品乱码一区二区三区在线 | 国产日韩欧美中文 | 日韩日日操 | 成人www视频网站免费观看 | 国产视频不卡 | 91久久精品国产亚洲 | 高清不卡一区二区 | 国产精品一二区 | 91精品久久一区二区三区 | 久久99精品久久 | 国产精品98福利小视频 | 在线成人播放毛片 | 国产欧美乱码在线看 | 亚洲在线观看视频 |