Oracle 的 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;

如何使用oracle查询,oracle 表查询相关推荐

  1. Oracle(四)多表查询

    Oracle(四)多表查询 ---oracle中专用外连接 select * from emp e,dept d where e.deptno(+) = d.deptno--查询出员工姓名,员工领导姓 ...

  2. Oracle SQL多表查询

    曾经一段时间我对oracle的多表查询搞的云里雾里,究其原因:oracle自己的语法和SQL国际标准语法混用.此文章仅适合oracle 菜鸟,老鸟直接飞过- 多表连接类型(SQL 1999标准) • ...

  3. oracle把所有表查询权限赋与另一用户

    oracle把所有表查询权限赋与另一用户. 2008-02-01 9:07 昨天有一同事问如何把oracle里一个用户所有表查询权限赋与另一用户,在网上查了好像没有现成的一劳永逸的语句,只能手了一个批 ...

  4. Oracle EBS 常用表 查询语句

    ORACLE EBS常用表查询语句 1.  OU.库存组织 SELECT hou.organization_id ou_org_id,           --org_id   hou.name ou ...

  5. Oracle中多表查询再按时间倒序

    我在工作中在Oracle中多表查询再按时间倒序时,用order by 表名.datatime desc 总是实现不了. 不过最后问杨鹃最后和我说可以把我们查询的总个sql语句做为一个表来排序: sel ...

  6. [亲测]Oracle查询--单表查询,连接查询(一)

    ORACLE查询(单表查询,连接查询) 一.单表查询 (一)简单条件查询 1. 查询水表编号为 30408 的业主记录 ( 精确查询 ) select * from t_owners where wa ...

  7. ORACLE SQL 多表查询

    ORACLE SQL 多表查询 开发工具与关键技术:Oracle sql*plus PLSQL Developer SQL 撰写时间:2019年05月08日 说明:顾名思义,多表就是多个表连接起来进行 ...

  8. Oracle数据库—— 多表查询

    Oracle数据库-- 多表查询 (一)笛卡尔问题 1.笛卡尔积会在下面条件下产生: 省略连接条件 连接条件无效 所有表中的所有行互相连接 2.为了避免笛卡尔积,可以在WHERE加入有效的连接条件 ( ...

  9. 数据库的实例化操作——员工信息的查询——简单表查询(二)

    员工信息的查询--简单表查询(二) 表信息查看  -->表信息 简单查询 查询所有的职位 select distinct job from emp;      查询出来的job是所有人的职位,用 ...

  10. SQL数据查询——单表查询(二)

    集合查询+单表查询相关实例 集合查询 1.UNION 2.INTERSECT 3.EXCEPT 相关实例 实例1 实例2 集合查询 SQL SERVER集合操作主要包括 并操作 UNION 交操作 I ...

最新文章

  1. 练习2: Python基本图形绘制 (第2周)
  2. DCMTK:测试VR类的compare()运算符
  3. 从神经质症的发生发展过程找到走出焦虑的途径
  4. Sass函数-数字函数-floor()函数
  5. 微信小程序之 SideBar(侧栏分类)
  6. 推荐系统: 数据、问题与算法
  7. 在微型计算机系统中,打印机一般是通过( ,2013湖南省计算机等级考试试题 二级C试题最新考试试题库...
  8. Debian系linux系统常用配置软件源
  9. MS-SQL (sql server)添加数据库只读用户K3DBSQP,并遍历所有数据库添加访问只读访问权限
  10. mybatis返回Date类型数据 格式化
  11. 如何解决Linux 系统下 ifconfig 命令无网络接口 ens33
  12. Win10 通过注册表修改默认应用
  13. Android 自定义带文字图片的view,宝马上线娱乐亚洲第一-宝马上线娱乐亚洲第一...
  14. OpenLdap-如何使用phpLdapAdmin创建CN用户、OU用户组
  15. column xxx is of type integer but expression is of type character varying。String的成员变量存到int的数据库列 报错
  16. 看懂影片标题,各种电影视频格式标题的含义
  17. ios中的KVC和KVO
  18. 线性回归分析——高尔顿数据集更正版
  19. docker部署rabbitmq出错touch: cannot touch ‘/etc/rabbitmq/rabbitmq.conf‘: Permission denied
  20. Esp8266+TFT太空人天气时钟

热门文章

  1. 内容可编辑_让PDF像WORD一样自由编辑,好用的PDF编辑工具推荐
  2. 中文排版规则_非设计师的5条排版规则
  3. 汉堡菜单_汉堡菜单-可访问性和用户体验设计原则的挑战?
  4. chrome浏览器世界之窗浏览器的收藏夹在哪?
  5. React-生命周期杂记 1
  6. CenterOS 7安装Nginx
  7. Wget CVE-2014-4877:FTP 符号链接任意文件系统访问
  8. PHP面向对象常见的关键字和魔术方法
  9. OS X 10.11 安装Cocoapods
  10. 双击打开Inventor文件