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

emp 雇员表
字段名称   数据类型       是否为空   备注
--------   -----------   --------   --------
EMPNO    NUMBER(4)                 员工编号                
ENAME    VARCHAR2(10) Y         员工名称        
JOB        VARCHAR2(9)   Y         职位                
MGR       NUMBER(4)       Y         上级的编号            
HIREDATE DATE             Y         入职日期               
SAL         NUMBER(7,2)   Y         月工资            
COMM      NUMBER(7,2)   Y         奖金                
DEPTNO   NUMBER(2)      Y         所属部门
-------------------------------------------
job字段:
clerk 普员工
salesman 销售
manager 经理
analyst 分析师
president 总裁

dept 部门表
字段名称    数据类型          是否为空   备注
--------    -----------      --------   --------
DEPTNO   NUMBER(2)                    部门编号               
DNAME    VARCHAR2(14)    Y          部门名称        
LOC         VARCHAR2(13)   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;

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 ...

随机推荐

  1. HDU1796 How many integers can you find(容斥原理)

    题目给一个数字集合,问有多少个小于n的正整数能被集合里至少一个元素整除. 当然是容斥原理来计数了,计算1个元素组合的有几个减去2个元素组合的LCM有几个加上3个元素组合的LCM有几个.注意是LCM. ...

  2. ural 1246. Tethered Dog

    1246. Tethered Dog Time limit: 1.0 secondMemory limit: 64 MB A dog is tethered to a pole with a rope ...

  3. shell中(),[]和[[]]的区别

    1. 首先,尽管很相似,但是从概念上讲,二者是不同层次的东西."[[",是关键字,许多shell(如ash bsh)并不支持这种方式.ksh, bash(据说从2.02起引入对[[ ...

  4. CentOS 下用的是lnmp 的包配置Nginx 下的CI伪静态(搞爽了)

    server { listen ; server_name cy.com; index index.html index.htm index.php default.html default.htm ...

  5. win95+ie3-win10+ie11 浏览器执行漏洞

    alliedve.htm <!doctype html><html><meta http-equiv="X-UA-Compatible" conten ...

  6. mysql 常用知识

    1.uuid guid UUID是一个由4个连字号(-)将32个字节长的字符串分隔后生成的字符串,总共36个字节长.比如:550e8400-e29b-41d4-a716-446655440000 CH ...

  7. Html - Bootstrap Panel面板

    http://v3.bootcss.com/components/#panels Bootstrap Panel面板 <div class="panel panel-default&q ...

  8. IOS第五天(2:用户登录,回车的监听(代理模式UITextFieldDelegate)) 和关闭键盘

    *********用户登录,回车的监听(代理模式UITextFieldDelegate) #import "HMViewController.h" @interface HMVie ...

  9. 【液晶模块系列基础视频】4.3.X-GUI图形界面库-画box函数简介

    [液晶模块系列基础视频]4.3.X-GUI图形界面库-画box函数简介 ============================== 技术论坛:http://www.eeschool.org 博客地址 ...

  10. 《GK101任意波发生器》升级固件发布(版本:1.0.1build803)

    一.固件说明: 硬件版本:0,logic.3 固件版本:1.0.1.build803 编译日期:2014-08-06 ====================================== 二. ...