4.有关日期格式属性修改常识,v$nls_parameters,between and,查询指定部门的员工信息,in和null,like模糊查询,order by后面可以跟:列名、表达式、别名、序号
1?有關日期格式屬性修改常識
NLS_DATE_FORMAT???????????DD-MON-RR
select sysdate from dual;
????????
NLS_CURRENCY????????????????¥
可以通過下面的方式查到上面的格式默認參數:
2?v$nls_parameters
????????SQL>select * from v$nls_parameters;
??????????????????結果略:
3修改默認參數
?????????alter session set NLS_DATE_FORMAT='DD-MON-RR';
?????????alter?session set NLS_DATE_FORMAT='yyyy-mm-dd';
?????????
----查詢比81年1月1號入職晚的員工
????????select*
????????fromemp
where hiredate > '01-1月 -81';
????????運行結果略:
???注意:
????????? ------- oracle支持隱式類型轉換 ..eg char****====>date,拋磚
????????? -------- 日期轉換的函數.....
????????? ------ 日期和字符串''
????????? -------日期是格式敏感
4語法格式:
select ....
from .....
where col > 30
????????? col? in()
????????? col?between a and b ..?a要小b []?
?????????
5查詢工資在1000~2000之間的員工信息
????????? select *
????????? from emp
????????? where sal between 1000 and 2000;
?
????????? 等價:
????????? select *
????????? from emp
????????? where sal >=1000 and sal <=2000?
?????????
?????????????? EMPNO ENAME????? JOB?????????????MGR HIREDATE????????????? SAL?????? COMM????DEPTNO
---------- ---------- --------- ------------------------ ---------- ---------- ----------
?????7499 ALLEN?????SALESMAN??????? 7698 20-2月 -81??????????1600??????? 300???????? 30
?????7521 WARD??????SALESMAN??????? 7698 22-2月 -81??????????1250??????? 500???????? 30
?????7654 MARTIN????SALESMAN??????? 7698 28-9月 -81??????????1250?????? 1400???????? 30
?????7844 TURNER????SALESMAN??????? 7698 08-9月 -81??????????1500????????? 0???????? 30
?????7876 ADAMS?????CLERK?????????? 7788 23-5月 -87??????????1100??????????????????? 20
?????7934 MILLER????CLERK?????????? 7782 23-1月 -82??????????1300??????????????????? 10
?
錯誤案例:
?1?select *
?2??????from emp
?3*?????where sal between 1000 and200
SQL> /
?
6查詢10 20號部門的員工信息
select * from emp
????????whereDEPTNO in (10, 20)
?
7?查詢不是10 20號部門的員工信息
????????select* from emp
????????whereDEPTNO not in (10, 20)
??????????
??????????????????????????????? EMPNO ENAME????? JOB?????????????MGR HIREDATE????????????? SAL?????? COMM????DEPTNO
???????????????????????????-------------------- --------- ---------- -------------- ---------- ---------- ----------
???????????????????????????????? 7369 SMITH????? CLERK??????????7902 17-12月-80???????????800??????????????????? 20
???????????????????????????????? 7566 JONES????? MANAGER????????7839 02-4月 -81??????????2975??????????????????? 20
???????????????????????????????? 7782 CLARK????? MANAGER????????7839 09-6月 -81??????????2450??????????????????? 10
???????????????????????????????? 7788 SCOTT????? ANALYST????????7566 19-4月 -87??????????3000??????????????????? 20
???????????????????????????????? 7839 KING?????? PRESIDENT???????????17-11月-81??????????5000??????????????????? 10
???????????????????????????????? 7876 ADAMS????? CLERK??????????7788 23-5月 -87??????????1100???????????????? ???20
???????????????????????????????? 7902 FORD?????? ANALYST????????7566 03-12月-81??????????3000??????????????????? 20
???????????????????????????????? 7934 MILLER???? CLERK??????????7782 23-1月 -82??????????1300??????????????????? 10
????????????????????????????????????? ??????????????????????
???????????????????????????????????????????????????????
???????????????????????????????????????????????????????
8??in 中是一個集合可以有null
?select * from emp
?????????? where DEPTNO in (10, 20, null)
??????????
??????????? select * from emp
?????????? where DEPTNO not in (10, 20)???????????
??????????
?????????? ======>in集合中遇見null?(in集合和空值可以在一起...)
?????????? ======>in (集合中含有空值 )查詢結果不受影響
?????????? ======>not in (集合中含有空值 )查詢結果受影響
?????????
9?like模糊查詢
????????A?? % 代表零個或多個字符(任意個字符)。
????????B?? _ 代表一個字符。
????????C?? 查詢名字S開頭的員工信息
????????select* from emp? where ENAME like 'S%'’;?---''單引號中的字符串是區分大小寫的....
???????????????????????????SQL>/
??????????????????????????????? EMPNO ENAME????? JOB?????????????MGR HIREDATE????????????? SAL?????? COMM????DEPTNO
???????????????????????????-------------------- --------- ---------- -------------- ---------- ---------- ----------
???????????????????????????????? 7369 SMITH????? CLERK??????????7902 17-12月-80???????????800??????????????????? 20
???????????????????????????????? 7788 SCOTT????? ANALYST????????7566 19-4月 -87??????????3000??????????????????? 20
?
??????????????????
????????D? 查詢名字含有4個字母的員工
?????????select * from emp where ENAME like '____';
?????????????????????? EMPNO ENAME????? JOB?????????????MGR HIREDATE????????????? SAL?????? COMM????DEPTNO
??????????????????-------------------- --------- ---------- -------------- ---------- ---------- ----------
??????????????????????? 7521 WARD?????? SALESMAN???????7698 22-2月 -81??????????1250??????? 500???????? 30
??????????????????????? 7839 KING?????? PRESIDENT???????????17-11月-81??????????5000??????????????????? 10
??????????????????????? 7902 FORD?????? ANALYST????????7566 03-12月-81??????????3000??????????????????? 20
?
????????
????????E?? 查詢名字含有下劃線的員工 (查詢的內容含有轉義字符)????????
????????insertinto emp(empno, ename, sal , DEPTNO) values(1, 'tom_abc', 8000, 10)
????????
????????select* from emp where ename like '%\_%' escape '\'
?????????????????????? EMPNO ENAME????? JOB?????????????MGR HIREDATE????????????? SAL?????? COMM????DEPTNO
??????????????????-------------------- --------- ---------- -------------- ---------- ---------- ----------
?????????????????????????? 1 tom_abc?????????????????????????????????????????????8000???????????????????10
?
10??order by 默認按照排序從小到大(升序)
?
11?order by后面可以跟:列名、表達式、別名、序號;
?
????????A?按照薪水,查詢員工信息
????????select*from emp? order by sal
????????selectempno, ename, sal, sal*12 年薪 from emp?order by 年薪;
?
????EMPNO ENAME????????????SAL?????? 年薪
---------- ---------- ---------- ----------
?????7369 SMITH????????????800?????? 9600
?????7900 JAMES????????????950????? 11400
?????7876 ADAMS???????????1100????? 13200
?????7521 WARD????????????1250????? 15000
?????7654 MARTIN??????????1250????? 15000
?????7934 MILLER??????????1300????? 15600
?????7844 TURNER??????????1500????? 18000
?????7499 ALLEN???????????1600????? 19200
?????7782 CLARK???????????2450????? 29400
?????7698 BLAKE???????????2850????? 34200
?????7566 JONES???????????2975????? 35700
?????7902 FORD????????????3000????? 36000
?????7788 SCOTT???????????3000??? ??36000
?????7839 KING????????????5000????? 60000
????????1 tom_abc?????????8000????? 96000
?
????????B? 按照年薪,查詢員工信息
????????2order by 遇上空值
??????????????????1任何表達式和null運算都為空
??????????????????2null != null? (is null )
??????????????????3where子句中(in集合和空值在一起...)
??????????????????4
??????????
?????????? 按照獎金,查詢員工信息
??????????
????selectempno, ename, comm from emp? orderby?3 desc? nulls last;
????????????????????????????????????SQL>/
????????????????????????????????????
???????????????????????????????????????? EMPNO ENAME??????????? COMM
????????????????????????????????????-------------------- ----------
????????????????????????????????????????? 7654 MARTIN?????????? 1400
????????????????????????????????????????? 7521 WARD????????????? 500
????????????????????????????????????????? 7499 ALLEN???????????? 300
???????????????????????????????????? ????? 7844 TURNER?????????????0
????????????????????????????????????????? 7782 CLARK
????????????????????????????????????????? 7788 SCOTT
????????????????????????????????????????? 7839 KING
????????????????????????????????????????? 7876 ADAMS
????????????????????????????????????????? 7900 JAMES
????????????????????????????????????????? 7902 FORD
????????????????????????????????????????? 7698 BLAKE
????????????????????????????????????????? 7566 JONES
????????????????????????????????????????? 7934 MILLER
???????????????????????????????????????????? 1 tom_abc
????????????????????????????????????????? 7369 SMITH
?
C?order by 后面有多個列,
????????如果多個列中有desc修飾,只作用于最近的那一列
????????按照部門排序
????????select* from emp? order by deptno desc, sal desc;
????????
????????按照部門和工資排序
????????select* from emp? order by deptno desc, saldesc;
???運行結果:
???????????????????????????????????????? EMPNO ENAME????? JOB?????????????MGR HIREDATE ?????????????SAL?????? COMM????DEPTNO
???????????????????????????-------------------- --------- ---------- -------------- ---------- ---------- ----------
???????????????????????????????? 7698 BLAKE????? MANAGER????????7839 01-5月 -81??????????2850??????????????????? 30
???????????????????????????????? 7499 ALLEN????? SALESMAN???????7698 20-2月 -81??????????1600??????? 300???????? 30
???????????????????????????????? 7844 TURNER???? SALESMAN???????7698 08-9月 -81??????????1500????????? 0???????? 30
???????????????????????????????? 7521 WARD?????? SALESMAN???????7698 22-2月 -81??????????1250??????? 500???????? 30
?????????????????????????????? ??7654 MARTIN????SALESMAN??????? 7698 28-9月 -81??????????1250?????? 1400???????? 30
???????????????????????????????? 7900 JAMES????? CLERK??????????7698 03-12月-81???????????950??????????????????? 30
???????????????????????????????? 7902 FORD?????? ANALYST????????7566 03-12月-81??????????3000?????? ?????????????20
???????????????????????????????? 7788 SCOTT????? ANALYST????????7566 19-4月 -87??????????3000??????????????????? 20
???????????????????????????????? 7566 JONES????? MANAGER????????7839 02-4月 -81??????????2975??????????????????? 20
???????????????????????????????? 7876 ADAMS????? CLERK??????????7788 23-5月 -87??????????1100??????????????????? 20
???????????????????????????????? 7369 SMITH????? CLERK??????????7902 17-12月-80???????????800??????????????????? 20
??????????????????????????????????? 1 tom_abc?????????????????????????????????????????????8000???????????????????10
???????????????????????????????? 7839 KING?????? PRESIDENT???????????17-11月-81??????????5000??????????????????? 10
???????????????????????????????? 7782 CLARK????? MANAGER????????7839 09-6月 -81??????????2450??????????????????? 10
???????????????????????????????? 7934 MILLER???? CLERK??????????7782 23-1月 -82??????????1300??????????????????? 10
???????????????????????????
???????????????????????????已選擇15行。
?
總結
以上是生活随笔為你收集整理的4.有关日期格式属性修改常识,v$nls_parameters,between and,查询指定部门的员工信息,in和null,like模糊查询,order by后面可以跟:列名、表达式、别名、序号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 狗仗人势下一句是什么(狗仗人势 仗风势)
- 下一篇: 美团借钱可以提前还款吗