oracle 表查询(一)
通过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;
参见:http://www.cnblogs.com/linjiqin/archive/2012/02/02/2335347.html
oracle 表查询(一)的更多相关文章
- oracle 表查询(2)
使用逻辑操作符号 问题:查询工资高于500 或者是岗位为MANAGER 的雇员,同时还要满足他们的姓名首字母为大写的J? or job = 'MANAGER') and ename LIKE 'J%' ...
- oracle 表查询(1)
oracle 表基本查询 介绍在我们讲解的过程中我们利用scott 用户存在的几张表(emp,dept)为大家演示如何使用select语句,select 语句在软件编程中非常有用,希望大家好好的掌握. ...
- (六)Oracle 的 oracle表查询关键字
参考:http://www.hechaku.com/Oracle/oracle_tables2.html 1.使用逻辑操作符号问题:查询工资高于500或者是岗位为manager的雇员,同时还要满足他们 ...
- oracle表查询
使用scott用户中存在的emp.dept表等做演示 一.单表查询 查看表结构:desc dept; 查看所有列:select * from dept: 查询指定列:select ename,sal, ...
- oracle 表查询二
1.使用逻辑操作符号问题:查询工资高于500或者是岗位为manager的雇员,同时还要满足他们的姓名首字母为大写的J?select * from emp where (sal > 500 or ...
- 七、oracle 表查询二
1.使用逻辑操作符号问题:查询工资高于500或者是岗位为manager的雇员,同时还要满足他们的姓名首字母为大写的J?select * from emp where (sal > 500 or ...
- oracle 表查询(二)
1.使用逻辑操作符号问题:查询工资高于500或者是岗位为manager的雇员,同时还要满足他们的姓名首字母为大写的J?select * from emp where (sal > 500 or ...
- 七 oracle 表查询二
1.使用逻辑操作符号问题:查询工资高于500或者是岗位为manager的雇员,同时还要满足他们的姓名首字母为大写的J?select * from emp where (sal > 500 or ...
- (21)Oracle表查询进阶
转到基本查询 一.多表查询 笛卡尔积:每张表的列数相加,行数相乘. 连接条件:得出笛卡尔积后需要用where条件筛选出正确的数据.连接条件至少需要n张表减1个 1.等值连接 连接条件为等号 selec ...
- oracle 表查询一
通过scott用户下的表来演示如何使用select语句,接下来对emp.dept.salgrade表结构进行解说. emp 雇员表字段名称 数据类型 是否为空 备注-------- ...
随机推荐
- java web轻量级开发面试教程摘录,java web面试技巧汇总,如何准备Spring MVC方面的面试
本内容摘自 java web轻量级开发面试教程 https://baike.baidu.com/item/Java%20Web%E8%BD%BB%E9%87%8F%E7%BA%A7%E5%BC%80% ...
- jsp基本语法及运行原理
一.jsp简介 JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 是由Sun Microsystems公司倡导.许多公司参与一起建立 ...
- 为什么内存使用2G的苹果手机比内存使用4G的安卓机更流畅?
这是在国外一家网站看到的,分析得不错,原文如下: Why does the iPhone require less RAM than Android devices? There are people ...
- HTTP协议的8种请求类型介绍
HTTP协议的8种请求类型介绍 转自:http://www.cnblogs.com/liangxiaofeng/p/5798607.html HTTP协议的8种请求类型介绍 HTTP协议中共定义了八种 ...
- 现在开始学习WPF了,mongodb在整理一下
回忆一下自己学习mongodb的过程 1安装 2增删改查 3数据类型转换 4GridFS 5权限管理--开启权限之前先建立一个超级用户(admin库中),开启权限,用该用户登陆,进入admin数据库( ...
- [2016-03-15]rabbitmq notes
安装 系统:CentOS 6 环境: rabbitmq 依赖的Erlang环境包 wget https://www.rabbitmq.com/releases/erlang/erlang-18.1-1 ...
- 关于idea的使用心得
开发java多年,所在的项目组一直都在使用的eclipse或者myeclipse,今天偶然的机会接触到了idea,感觉优化的确实不错,下面是我的一些使用心得:
- Python验证码通过pytesser识别
Python安装包: 需要安装的包主要有两个: PIL 和 pytesser .tesseract (1).安装PIL:下载地址:http://www.pythonware.com/products/ ...
- 搭建互联网DNS构架
author:JevonWei 版权声明:原创作品 构建"." DNS."com" DNS及"danran.com",用户通过"电 ...
- TitleLayout——一个Android轻松实现标题栏的库
TitleLayout 多功能.通用的.可在布局或者使用Java代码实现标题栏: 支持沉浸式状态栏: 支持左侧返回按钮不需要手动实现页面返回: 支持左侧按钮,中间标题,右边按钮点击 左侧支持图片+文字 ...