Oracle教程-查询(二)
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教程-查询(二)的更多相关文章
- 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 ...
- Elasticsearch入门教程(六):Elasticsearch查询(二)
原文:Elasticsearch入门教程(六):Elasticsearch查询(二) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:h ...
- oracle教程:PLSQL常用方法汇总
oracle教程:PLSQL常用方法汇总 在SQLPLUS下,实现中-英字符集转换alter session set nls_language='AMERICAN';alter session set ...
- CRL快速开发框架系列教程十二(MongoDB支持)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- [译]MVC网站教程(二):异常管理
介绍 “MVC网站教程”系列的目的是教你如何使用 ASP.NET MVC 创建一个基本的.可扩展的网站. 1) MVC网站教程(一):多语言网站框架 2) MVC网站教程(二):异常管理 3) ...
- 关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其他位数)
关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其... 方法一:使用to_char的fm格式,即: to_char(round(data.amount,2),'FM9999 ...
随机推荐
- MySQL安装--ubuntu
1. 执行命令: $ apt-get install mysql-server 执行上述命令会自动安装mysql-client,mysql-common等包. 2. 安装过程中会让你给root账号设置 ...
- IOS 播放视频 MPMoviePlayerController
在unity游戏的开头播放视频 , 根据需求 , 最后决定用 MPMoviePlayerController 来实现播放, 实现如下: by Tin 需要在AppController.mm的 Open ...
- Javascript调用 ActiveXObject导出excel文档。
function makeDataBook(){ var xls = new ActiveXObject ("Excel.Application"); xls.visible = ...
- Entity Framework Code First ---EF Power Tool 和MySql一起使用遇到的问题
关于如何使用EF Power Tool的介绍请看 http://www.cnblogs.com/LingzhiSun/archive/2011/05/24/EFPowerTool_1.html, 这里 ...
- android studio导入包后无法import
android studio导入jar包的方法: 1.将jar包放到module的libs目录下 2.在所导入的jar包上右键,选择“Add as library”. 其中,第二点跟eclipse不同 ...
- js里写网页结构, 传函数参数
如题 "<td align='center' height='30px' width='80px'><a href='javascript:sort(\"&quo ...
- Linux 配置脚本 启动服务
之前在mac安装了php和nginx每次都用一堆命令重启 今天没事情干,心血来潮,自己研究写了一段shell脚本来重启 首先vim /usr/sbin/pn 代码如下 #! /bin/bash php ...
- rm: 无法删除 "xxxxx.o" : 输入/输出错误.
rm: 无法删除 "xxxxx.o" : 输入/输出错误. 碰到无法删除的文件,以为完蛋了,要重装. 后面重启一下就可以了
- include和 merge
include和merge标记的作用主要是为了解决layout的重用问题. 比如我们有三四个Activity但是他们都要用到同一个样式的标题栏,虽然我们把一样的代码copy个三四遍也没关系,但实在是太 ...
- Oracle 锁
select for update对某行加锁之后: select语句可以执行: select for update 这行不可以: 会一直等待锁释放 select for update wait 3 ...