oracle查询年份的后两位,oracle的基本查询

4-1 Oracle的基本查询语句

查询:使用最频繁的一个操作,可以从一个表中查询数据,也可以从多个表中查询数据

语法:select [distinct] * / cilum_name / expression [alias]

from table

where condition

alias指定别名

expression 表达式

(一)--去除重复行

--select distinct deptno, job from emp;

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

(二)查询日期列

(1)日期列:指数据类型为日期类型的列,如date类型

(2)日期列的默认显示格式为DD-MON-RR

(3)代表年,而且只取年份的后两位数字

46738133_201712011752150377118845.jpg

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

(三) 以简体中文显示日期结果

(1)如果以简体中文显示日期结果,那么可以将会话的nla_language参数设置为:

simplified chinese

(2)alter session set nls_language = 'simplified chinese'

例:

select * from emp;

--设置简体中文的日期格式

alter session set nls_language = 'SIMPLIFIED CHINESE';

select empno,ename,hiredate from emp;

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

(四)以美国英语显示日期结果

(1)如果以美国英语显示日期结果,那么可以将会话的nla_language参数设置为:

American

(2)alter session set nls_language = 'AMERICAN';

--设置美国英语的日期格式

alter session set nls_language = 'AMERICAN';

select empno,ename,hiredate from emp;

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

(五)以特定格式显示日期结果

(1)如果希望定制日期显示格式,并按照特定方式显示日期结果,那么可以设置会话的

nls_date_format参数

(2)alter session set nls_date_format='YYYY/MM/DD';

--设置特定格式

alter session set nls_date_format='YYYY/MM/DD';

select empno,ename,hiredate from emp;

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

4-2 Oracle查询语句中算术运算符的使用

(一)算术运算符

算术运算符可应用在数字和日期的列上

46738133_201712011837250299961195.jpg

例:

(1)需求:应用scott.emp表查询雇员编号,雇员名,雇员月工资,雇员年收入

--select * from emp;

--select empno,ename,sal,sal*12 from emp;

(2)需求:应用scott.emp表查询雇员编号,雇员名,雇员年收入+半月工资

--select empno, ename, sal*12+sal/2 from emp;

(3)需求:应用scott.emp表查询雇员编号,雇员名,雇员年收入+200奖金

--select empno, ename, 200+sal*12  from emp;

(4)需求:应用scott.emp表查询雇员编号,雇员名,月工资每月涨100后的年工收入

--select empno, ename, (sal+100)*12  from emp;

(5)需求:应用scott.emp表查询雇员编号,雇员名,雇员月工资,补助(comm),实发工资

--select empno, ename, sal, comm, sal+comm from emp;

46738133_201712011841010205160641.jpg

46738133_201712011837530424668260.jpg

46738133_201712011845010002612680.jpg

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

4-3 查询语句中列的别名、连接符、字符串

--列的别名

不使用列的别名

select empno, ename, sal*12 from emp;

46738133_201712011906030361248592.jpg

使用列的别名的方式

(1)直接跟别名

select empno 雇员编号, ename 雇员名, sal*12 年收入 from emp;

select empno "雇员编号", ename "雇员名", sal*12 "年收入" from emp;

(2)列名和别名之间用as连接

select empno as 雇员编号, ename as 雇员名, sal*12 as 年收入 from emp;

select empno "雇员编号", ename "雇员名", sal*12 "年收入" from emp;

select empno "雇员编号", ename "雇员名", sal*12  年收入 from emp;

select empno "雇员编号", ename "雇员名", sal*12 as 年收入 from emp;

--连接符

46738133_201712011908410736222541.jpg

连接列的字符串特点:

(1)字符串可以是select列表中的字符,数字,日期

(2)日期和字符只能在单引号中出现

(3)每当返回一行时,字符串被输出一次

select  ename||'的月工资是:'||sal||'岗位是:'||job as 雇员职位信息 from emp;

select ename||5 from emp;

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

4-4 基本查询--过滤数据(比较运算)

过滤数据:使用where字句,将不满足条件的行过滤掉

(1)where字句中使用数字值

当在where字句中使用数字值时,即可用直接引用数字值,也可用用单独引号引住数字值

例:

--数字值的情况

select * from emp where deptno=20;

(2)where字句中使用字符值

当where字句使用字符值,必须给字符值加上单引号

--字符值

select * from emp where job='MANAGER';

(3)where字句中使用日期值

当where字句中使用日期值时,必须给日期值加单引号,且日期值必须符合日期语言和显示格式

--日期值

select * from emp where hiredate = '02-4月-81';

--比较运算

46738133_201712012306080955227146.jpg

select * from emp where sal = 3000;

select * from emp where sal >= 3000;

select * from emp where sal < 3000;

select * from emp where sal <> 3000;

select * from emp where sal != 3000;

select * from emp where sal>1000 and sal<3000;

select * from emp where sal<1000 or sal>3000;

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

4-5 基本查询--过滤数据(范围模糊查询等)

(一)范围查询between..and

46738133_201712012328130596752694.jpg

select empno, ename, sal from emp where sal between 1500 and 3000;

等价于

select empno, ename, sal from emp where sal>=1500 and sal<=3000;

(二)范围查询in

46738133_201712012330330830271815.jpg

select empno,ename, job from

where job in ('SALESMAN','MANAGER','CLERK');

等价于

select empno,ename, job from emp

where job = 'salesman’or job = 'manager’or job ='clerk';

(三)模糊查询like

46738133_201712012329040283374854.jpg

select * from emp where ename like 'J%';

select * from emp where ename like '_AR%';

select * from emp;

select * from emp where ename like 'G\_%' escape '\';

(四)判断空值 is null/is not null

46738133_201712012333190846113954.jpg

select empno, ename, sal, comm from emp where comm is null;

select empno, ename, sal, comm from emp where comm is not null;

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

4-6 基本查询--过滤数据(逻辑运算)

4-6 基本查询--过滤数据(逻辑运算)

逻辑运算符

46738133_201712012344140924678885.jpg

(1)逻辑操作符and

46738133_201712012344580252145593.jpg

select empno, ename, job, deptno from emp where job='MANAGER' and deptno=10;

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

(2)逻辑操作符or

46738133_201712012345570564255344.jpg

select empno, ename, job, sal from emp where job='MANAGER' or sal>2000;

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

(3)逻辑操作符not

46738133_201712012347090439421649.jpg

select empno, ename,job from emp where job not in ('CLERK','SALESMAN','MANAGER');

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

(1)逻辑操作符--混合

46738133_201712012348590877811819.jpg

not》and》or

select empno,ename, job, sal from emp where (sal>2000 or deptno=30) and job not in ('PRESIDENT','MANAGER');

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

4-7 基本查询--排序数据

(一)排序数据order by子句

46738133_201712012358340158586167.jpg

asc升序/desc降序

46738133_201712012358510814604871.jpg

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

(一)单列排序(升序或降序排序,空值靠较大值)

46738133_201712020011000064857343.jpg

select ename, comm from emp order by comm asc;

46738133_201712020001400064925208.jpg

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

(二)使用列的别名排序

select  empno, ename, sal*12 年收入 from emp order by 年收入 desc;

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

(三)多列排序

46738133_201712020006250142356734.jpg

select empno,ename, deptno, sal from emp order by deptno asc, sal desc;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值