打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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)代表年,而且只取年份的后两位数字
 

---------------------------------------------------------------------------------
(三) 以简体中文显示日期结果
(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查询语句中算术运算符的使用
(一)算术运算符
算术运算符可应用在数字和日期的列上
 
 
例:
(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;
  
 
  
 
---------------------------------------------------------------------------
4-3 查询语句中列的别名、连接符、字符串

--列的别名
不使用列的别名
select empno, ename, sal*12 from emp;
 
 
使用列的别名的方式
(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;

--连接符
 
 连接列的字符串特点:
(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';

--比较运算
 
 
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
  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
  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
  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
 
 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 基本查询--过滤数据(逻辑运算)

逻辑运算符
 
 
 
(1)逻辑操作符and
 
 select empno, ename, job, deptno from emp where job='MANAGER' and deptno=10;

--------------------------------------------------------------------------------
(2)逻辑操作符or
 select empno, ename, job, sal from emp where job='MANAGER' or sal>2000;

---------------------------------------------------------------------------
(3)逻辑操作符not
 
 select empno, ename,job from emp where job not in ('CLERK','SALESMAN','MANAGER');

------------------------------------------------------------------------------
(1)逻辑操作符--混合
 
 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子句
 
 
  asc升序/desc降序
 
  
-------------------------------------------------------------------------
(一)单列排序(升序或降序排序,空值靠较大值)
 
 
   select ename, comm from emp order by comm asc;
 
 
------------------------------------------------------------------------
(二)使用列的别名排序
   select  empno, ename, sal*12 年收入 from emp order by 年收入 desc;

------------------------------------------------------------------------
(三)多列排序
   select empno,ename, deptno, sal from emp order by deptno asc, sal desc;
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
oracle学习笔记之表的查询
Oracle笔记(四) 简单查询、限定查询、数据的排序
Oracle笔记之select查询
Oracle PL/SQL开发基础(第七弹:ROWNUM伪列)
梓轩--sql语句编程手册(实用+练习)
Oracle练习题及答案(二)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服