演示如何使用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. onepill服务端

    运行git搞崩掉了重新创建... 1.新建SpringBoot项目 应该就这些 2. 使用的框架: 数据库:Spring Date JPA Service+Dao+Controller OKHttpC ...

  2. 官宣!AWS Athena正式可查询Apache Hudi数据集

    1. 引入 Apache Hudi是一个开源的增量数据处理框架,提供了行级insert.update.upsert.delete的细粒度处理能力(Upsert表示如果数据集中存在记录就更新:否则插入) ...

  3. 图解HTTP 2/11

    第一章 了解Web及网络基础 *HTTP(HyperText Transfer Protocal, 超文本传输协议),可以说,Web是建立在HTTP协议上通信的. *3项WWW(World Wide ...

  4. PHP date_parse() 函数

    ------------恢复内容开始------------ 实例 返回一个包含指定日期的详细信息的关联数组: <?phpprint_r(date_parse("2013-05-01 ...

  5. PHP mb_substr() 函数

    实例 从字符串中返回 "菜鸟": <?php echo mb_substr("菜鸟教程", 0, 2); // 输出:菜鸟 ?> 定义和用法 mb_ ...

  6. JsLint undeclared ‘window’

    如果使用IDEA 设置一下 globals 或 /*global window */ ... your script goes here https://stackoverflow.com/quest ...

  7. ios wkwebview didReceiveAuthenticationChallenge crash解决

    //需要响应身份验证时调用 同样在block中需要传入用户身份凭证 //现在就是不进行https验证了 然后就闪退不了了 - (void)webView:(WKWebView *)webView di ...

  8. python1.2元组与字典:

    #定义元组(),元组与列表类似但元素不可以更改a=(1,2,3,4,5,6,"a","b","c","d"," ...

  9. 眼见为实 — CSS的overflow属性

    1. overflow属性 CSS的overflow属性指定当内容溢出一个元素的框,会发生什么.举个栗子: <!DOCTYPE html> <html> <head> ...

  10. go微服务系列(一) go micro入门

    1. 什么是go micro 1.1 go micro作用 1.2 go micro架构组成 2. go micro入门 3. 结合consul进行服务注册/发现 3.1 consul的安装 3.2 ...