演示如何使用select语句,接下来对emp、dept、salgrade表结构进行解说。

emp 雇员表

    字段名称   数据类型       是否为空   备注

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

    EMPNO    NUMBER()                 员工编号                

    ENAME    VARCHAR2() Y         员工名称        

    JOB        VARCHAR2()   Y         职位                

    MGR       NUMBER()       Y         上级的编号            

    HIREDATE DATE             Y         入职日期               

    SAL         NUMBER(,)   Y         月工资            

    COMM      NUMBER(,)   Y         奖金                

    DEPTNO   NUMBER()      Y         所属部门

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

    job字段:

    clerk 普员工

    salesman 销售

    manager 经理

    analyst 分析师

    president 总裁
dept 部门表

    字段名称    数据类型          是否为空   备注

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

    DEPTNO   NUMBER()                    部门编号               

    DNAME    VARCHAR2()    Y          部门名称        

    LOC         VARCHAR2()   Y          部门所在地点

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

    DNAME字段:

    accounting 财务部

    research 研发部

    operations 业务部

    salgrade 工资级别表

    字段名称  数据类型   是否为空  备注

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

    GRADE   NUMBER     Y         级别                

    LOSAL    NUMBER     Y         最低工资               

    HISAL     NUMBER     Y         最高工资

1、查看表结构

 desc emp;

2、查询所有列

 select * from dept;
--备注:切忌动不动就用select *,使用*效率比较低,特别在大表中要注意。

3、打开显示操作时间的开关,在底部显示操作时间。

set timing on/off;

eg: sql> insert into tb_stu values('0001','zhangsan',24);
1 row inserted
executed in 0.015 seconds

4、insert into ...select ... 表复制语句

  语法:insert into table2(field1,field2,...) select value1,value2,... from table1

--创建tb_dept

create table tb_dept
(
deptno number(4) not null,
dname varchar2(14),
loc varchar2(13)
)
--添加主键约束
alter table tb_dept add constraint tb_dept primary key (deptno);

  --insert into...select...用法 insert into tb_dept (deptno, dname, loc) select a.deptno, a.dname, a.loc from dept a;

5、统计 select count(*) from emp;

6、查询指定列 select ename, sal, job, deptno from emp;

7、如何取消重复行distinct select distinct deptno, job from emp;

8、查询smith所在部门,工作,薪水 select deptno, job, sal from emp where ename = 'smith'; 注意:oracle对内容的大小写是敏感的,所以ename='smith'和ename='SMITH'是不同的

9、nvl函数

格式为:nvl(string1, replace_with)   
功能:如果string1为null,则nvl函数返回replace_with的值,否则返回string1的值。  
注意事项:string1和replace_with必须为同一数据类型,除非显示的使用to_char函数。  
eg、如何显示每个雇员的年工资?
select sal*13+nvl(comm, 0)*13 "年薪" , ename, comm from emp;

10、使用列的别名 select ename "姓名", sal*12 as "年收入" from emp;

11、如何处理null值 使用nvl函数来处理

12、如何连接字符串(||) select ename || ' is a ' || job from emp;

13、使用where子句

问题:如何显示工资高于3000的员工?
select * from emp where sal > 3000; 问题:如何查找1982.1.1后入职的员工?
select ename,hiredate from emp where hiredate >'1-1 月-1982'; 问题:如何显示工资在2000到3000的员工?
select ename,sal from emp where sal>=2000 and sal<=3000;

14、如何使用like操作符

%:表示0到多个字符
_:表示任意单个字符 问题:如何显示首字符为s的员工姓名和工资?
select ename,sal from emp where ename like 's%'; 问题:如何显示第三个字符为大写o的所有员工的姓名和工资?
select ename,sal from emp where ename like '__o%';

15、在where条件中使用in

问题:如何显示empno为7844,7839,123,456的雇员情况?
select * from emp where empno in (7844, 7839, 123, 456);

16、使用is null的操作符

问题:如何显示没有上级的雇员的情况?
错误写法:select * from emp where mgr = '';
正确写法:select * from emp where mgr is null;

8.oracle 表查询的更多相关文章

  1. oracle 表查询(2)

    使用逻辑操作符号 问题:查询工资高于500 或者是岗位为MANAGER 的雇员,同时还要满足他们的姓名首字母为大写的J? or job = 'MANAGER') and ename LIKE 'J%' ...

  2. oracle 表查询(1)

    oracle 表基本查询 介绍在我们讲解的过程中我们利用scott 用户存在的几张表(emp,dept)为大家演示如何使用select语句,select 语句在软件编程中非常有用,希望大家好好的掌握. ...

  3. (六)Oracle 的 oracle表查询关键字

    参考:http://www.hechaku.com/Oracle/oracle_tables2.html 1.使用逻辑操作符号问题:查询工资高于500或者是岗位为manager的雇员,同时还要满足他们 ...

  4. oracle表查询

    使用scott用户中存在的emp.dept表等做演示 一.单表查询 查看表结构:desc dept; 查看所有列:select * from dept: 查询指定列:select ename,sal, ...

  5. oracle 表查询二

    1.使用逻辑操作符号问题:查询工资高于500或者是岗位为manager的雇员,同时还要满足他们的姓名首字母为大写的J?select * from emp where (sal > 500 or ...

  6. 七、oracle 表查询二

    1.使用逻辑操作符号问题:查询工资高于500或者是岗位为manager的雇员,同时还要满足他们的姓名首字母为大写的J?select * from emp where (sal > 500 or ...

  7. oracle 表查询(二)

    1.使用逻辑操作符号问题:查询工资高于500或者是岗位为manager的雇员,同时还要满足他们的姓名首字母为大写的J?select * from emp where (sal > 500 or ...

  8. 七 oracle 表查询二

    1.使用逻辑操作符号问题:查询工资高于500或者是岗位为manager的雇员,同时还要满足他们的姓名首字母为大写的J?select * from emp where (sal > 500 or ...

  9. (21)Oracle表查询进阶

    转到基本查询 一.多表查询 笛卡尔积:每张表的列数相加,行数相乘. 连接条件:得出笛卡尔积后需要用where条件筛选出正确的数据.连接条件至少需要n张表减1个 1.等值连接 连接条件为等号 selec ...

  10. oracle 表查询一

    通过scott用户下的表来演示如何使用select语句,接下来对emp.dept.salgrade表结构进行解说. emp 雇员表字段名称   数据类型       是否为空   备注-------- ...

随机推荐

  1. springboot(九)文件上传

    在企业级项目开发过程中,上传文件是最常用到的功能.SpringBoot集成了SpringMVC,当然上传文件的方式跟SpringMVC没有什么出入.下面我们来创建一个SpringBoot项目完成单个. ...

  2. PHPSTORM常用插件

    Translation 最好用的翻译插件 .env files support 可以在env函数使用是提示.env文件中所有的key值的自动完成功能 PHP composer.json support ...

  3. Python os.remove() 方法

    概述 os.remove() 方法用于删除指定路径的文件.如果指定的路径是一个目录,将抛出OSError.高佣联盟 www.cgewang.com 在Unix, Windows中有效 语法 remov ...

  4. Python os.lstat() 方法

    概述 os.lstat() 方法用于类似 stat() 返回文件的信息,但是没有符号链接.在某些平台上,这是fstat的别名,例如 Windows.高佣联盟 www.cgewang.com 语法 ls ...

  5. 7.29 NOI模拟赛 题答 npc问题 三染色 随机 贪心

    LINK:03colors 这道题虽然绝大多数的人都获得了满分 可是我却没有. 老师讲题的时候讲到了做题答的几个技巧 这里总结一下. 数据强度大概为n=5000,m=60000的随机数据. 老师说:一 ...

  6. C/C++编程笔记:C语言实现连连看游戏,小白练手项目(源码分享)

    本篇文章分享看题目就知道是写给初学者的,学的比较好的小伙伴也可以将自动算法等一些知识给加进去,希望对大家有帮助! 好了,当我们所有的准备工作做好之后,我们就可以来编写我们的C语言连连看游戏了! 其实这 ...

  7. 关于idea 在创建maven 骨架较慢问题解决

    在设置中->maven>runner>VM Options 粘贴     -DarchetypeCatalog=internal 其中 -D archetype:原型,典型的意思 ( ...

  8. 借助GPU Boost和K80 Autoboost提高性能

    原网站:https://devblogs.nvidia.com/increase-performance-gpu-boost-k80-autoboost/ 由于我主要使用nvidia-smi,故nvc ...

  9. Maven骨架生成项目速度慢问题解决办法

    在创建maven project时(使用了archetype),速度慢的令人不敢相信,从Idea的控制台可以看到信息停留在: [INFO] <<< maven-archetype-p ...

  10. NIO(三):Selector选择器

    一.堵塞式与非堵塞式 在传统IO中,将数据由当前线程从客户端传入服务端,由服务端的内核进行判断传过来的数据是否合法,内核中是否存在数据. 如果不存在数据 ,并且数据并不合法,当前线程将会堵塞等待.当前 ...