8.oracle 表查询
演示如何使用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 表查询的更多相关文章
- 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 雇员表字段名称 数据类型 是否为空 备注-------- ...
随机推荐
- MySQL(四)数据备份与还原
数据备份与还原: 备份:将当前已有的数据或者记录保留 还原:将已经保留的数据恢复到对应的表中 为什么要做备份还原: 1.防止数据丢失:被盗.误操作 2.保护数据的记录 数据备份还原的方式很多:数据表备 ...
- HITCON2017-web ssrfme
<?php if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $http_x_headers = explode(',', $_SERVER['HTT ...
- JSONObject遍历
导入JSONObject和JSONArray所需要的jar包 JSONObject所必需的6个jar包: commons-beanutils-1.7.0.jar commons-collections ...
- proj0的具体实现 #CS61B-sp18
https://github.com/Centurybbx/sp18-century/tree/master/proj0 proj0的具体实现在上面的Github中. 在proj0中我明显感受到国外大 ...
- Python pass语句
Python pass语句:空语句,主要用于保持程序结构的完整性 或者 函数想要添加某种功能,但是还没有想好具体应该怎么写. 在 for 循环中使用 pass: lst = [7,8,9,4] for ...
- Python os.lchown() 方法
概述 os.lchown() 方法用于更改文件所有者,类似 chown,但是不追踪链接.高佣联盟 www.cgewang.com 只支持在 Unix 下使用. 语法 lchown()方法语法格式如下: ...
- C/C++编程笔记:流行的数字游戏【2048】,C语言400行源代码分享
游戏介绍 你玩过2048吗?2048是一款流行于各大网页和手机的数字游戏,手机安卓版推出的是<挑战2048>,之后的版本中还加入了双人对战的游戏模式,更加受到玩家的热捧. 2048的游戏规 ...
- 4.24 省选模拟赛 欧珀瑞特 主席树 可持久化trie树
很容易的一道题目.大概.不过我空间计算失误MLE了 我草草的计算了一下没想到GG了. 关键的是 我学了一个dalao的空间回收的方法 但是弄巧成拙了. 题目没有明确指出 在任意时刻数组长度为有限制什么 ...
- Go语言系列(三)之数组和切片
<Go语言系列文章> Go语言系列(一)之Go的安装和使用 Go语言系列(二)之基础语法总结 1. 数组 数组用于存储若干个相同类型的变量的集合.数组中每个变量称为数组的元素,每个元素都有 ...
- APP常用控件学习理解
1.TextView 示例: layout_width指的是文本的所占宽度(不一定填充满),layout_height指的是文本所占高(不一定填充满),warp_coonent :包裹文本宽度 mat ...