查询练习一

表创建
create table employee as select * from soctt.emp ;
--记得授权
sysdba用户登录
grant select on scott.emp to $username$ --表结构
create table empployee_demo(
empno number(4) not null primary key, --员工编号,主键
ename varchar2(10) not null unique, --员工名,唯一键
job varchar2(9), --职位、工作
mgr number(4), --经理编号
hiredate date default sysdate, --入职日期,默认约束
sal number(7,2) check(sal>=500 and sal<=10000), --工资
comm number(7,2), --资金
deptno number(2) --部门编号
) --16. 找出各月倒数第三天受雇的所有员工
select * from employee where last_day(hiredate)-2=hiredate; --17. 找出早于25年前受雇佣的员工
select * from employee where months_between(hiredate,sysdate)/12>25;
select * from employee where year(sysdate)-year(hiredate)>25; --18. 以首字母大写其它字母小写的方式显示所有的员工的姓名
select upper(substr(ename,0,1))||lower(substr(ename,1)) from employee;
--下面这两种写法都是可以获得同样的结果,不过不太清楚加nls的区别
select nls_initcap(ename) from employee;
select initcap(ename) from employee; --以首字母小写其它字母大写的方式显示所有的员工的姓名。
select lower(substr(ename,1,1))||upper(substr(ename,2)) from employee; --19. 显示正好为5字符的员工的姓名
select ename from employee where length(ename)=5; --20. 显示不带有‘R’的与员工的姓名
select ename from employee where ename not like '%R%'; --21. 显示所有员工姓名的前三个字符。
select substr(ename,1,3) from employee --注意,与java中截取字符串的有所区别 --22. 显示所有员工的姓名,用 A 替换 a
select replace(ename,'a','A') from employee; --把a替换成A --23. 显示 满25年 服务年限的员工的姓名 和受雇日期
select ename,hiretate from employee where months_between(hiredate,sysdate)/12 >=25 --24. 显示员工的详细资料,按姓名排序,姓名相同按工资降序排序。
select * from employee order by ename,sal desc; --asc升序 desc降序 默认升序 --25. 显示与员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面。
select ename,hiredate,months_between(hiredate,sysdate)
from employee
order by months_between(hiredate,sysdate) select ename,hiredate,months_between(sysdate,hiredate)
from employee
order by months_between(sysdate,hiredate) desc --26. 显示所有员工的姓名,工作和薪金,按工作的降序排序,若工作相同按薪金排序
select ename,job,sal from employee
order by job,sal; /*
27. 显示所有员工的姓名,加入公司的年份和月份,按受雇日期所在的月排序,
若月份相同,则将最早的年份的员工排在最前面
*/
select ename,JOB,TO_CHAR(hiredate,'yyyy') year,
TO_CHAR(hiredate,'mm') month
from employee
order by month,year;

oracle学习笔记(十) 查询练习(一)的更多相关文章

  1. Oracle学习笔记(十二)

    十三.存储过程和存储函数1.掌握存储过程(相当于建立一个函数或者方法体,然后通过外部对其调用) 指存储在数据库中供所有程序调用的子程序叫做存储过程或存储函数. 相同点: 完成特定功能的程序 区别: 是 ...

  2. Oracle学习笔记(十)

    光标(游标)概念引入 就是一个结果集(查询或者其他操作返回的结果是多个时使用)定义一个光标 cursor c1 is select ename from emp: 从光标中取值 打开光标: --ope ...

  3. Oracle学习笔记十四 内置程序包

    扩展数据库的功能 为 PL/SQL 提供对 SQL 功能的访问 用户 SYS 拥有所有程序包 是公有同义词 可以由任何用户访问 一些内置程序包 程序包名称 说明 STANDARD和DBMS_STAND ...

  4. Oracle学习笔记十二 子程序(存储过程、自定函数)和程序包

    子程序 子程序:命名的 PL/SQL 块,编译并存储在数据库中.   子程序的各个部分: 1.声明部分 2.可执行部分 3.异常处理部分(可选) 子程序的分类: 1.过程 - 执行某些操作 2.函数 ...

  5. Oracle学习笔记十 使用PL/SQL

    PL/SQL 简介 PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言,是对 SQL 的扩展,它支持多种数据类型,如大对象和集合类型,可使用 ...

  6. Oracle 学习笔记 常用查询命令篇

    1.查询某个用户下有多少张表 有时候很有用  select count(*) from dba_tables t where t.owner='SCOTT';

  7. Oracle学习笔记(1)——查询及删除重复数据

      1.查找表中多余的重复记录(根据单个字段studentid)   select * from table_name where studentid in (select studentid fro ...

  8. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  9. oracle学习笔记第一天

    oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字   1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...

  10. Oracle学习笔记之四sp1,Oracle 11g的常用函数

    从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节 3.1 字符类函数 ASCII(c)和CHR(i)    分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符. C ...

随机推荐

  1. docker面试题和解答(一)

    什么Docker Docker是一个容器化平台,它以容器的形式将您的应用程序及其所有依赖项打包在一起,以确保您的应用程序在任何环境中无缝运行. Docker与虚拟机有何不同 Docker不是虚拟化方法 ...

  2. 【RTOS】基于V7开发板的最新版uCOS-II V2.92.16程序模板,含MDK和IAR,支持uC/Probe

    模板下载: 链接:https://pan.baidu.com/s/10a9Hi0MD14obR_B1LAQEFA     提取码:z76n 1.MDK使用MDK5.26及其以上版本. 2.IAR使用I ...

  3. 朝花夕拾《精通CSS》二、选择器 & 层叠

    一.背景 翻出我4年前看的<精通CSS>一书,可惜当初没有整理读书笔记的习惯,最近又很少写前端,遂很多东西.知识点遗忘了,恰且现在 css 也有些变化和进步,遂一起打包整理,输出成几篇 b ...

  4. Java 正则表达式_网络爬虫

    首先 需要了解 一些 关于 网络爬虫的 基本知识: 网络爬虫: 所谓的 爬虫 就是一个 应用 程序, 这个 应用 程序 会 获取 网络中的 指定信息(网页 数据). 例如百度: 启动 这个 爬虫 程序 ...

  5. python强大的绘图模块matplotlib示例讲解

    Matplotlib 是 Python 的绘图库.作为程序员,经常需要进行绘图,在我自己的工作中,如果需要绘图,一般都是将数据导入到excel中,然后通过excel生成图表,这样操作起来还是比较繁琐的 ...

  6. vuex动态引入store modules

    主要解决的问题每次建一个module需要自己去主index.js里面去注册 为了偷懒,也为了避免团队开发时同时对index.js 进行修改引发冲突 所以在index.js中 动态的对子目录和模块进行注 ...

  7. ASP.NET Core MVC配置差异(3.0和2.X)

    https://www.cnblogs.com/lonelyxmas/p/10934388.html net core 2.x MVC配置 public void ConfigureServices( ...

  8. goweb- 对请求的处理

    对请求的处理 Go 语言的 net/http 包提供了一系列用于表示 HTTP 报文的结构,我们可以使用它 处理请求和发送相应,其中 Request 结构代表了客户端发送的请求报文,下面让我们看 一下 ...

  9. 在python操作数据库中游标的使用方法

    cursor就是一个Cursor对象,这个cursor是一个实现了迭代器(def__iter__())和生成器(yield)的MySQLdb对象,这个时候cursor中还没有数据,只有等到fetcho ...

  10. Winform中在使用VS+svn进行协同开发时添加引用时的相对路径和绝对路径的问题

    场景 使用Visual Studio 开发Winform程序,使用SVN进行项目版本管理. 在添加引用时,会出现在A电脑中添加了绝对路径的引用,在B电脑中就会出现找不到 并且将此引用标识为?的状态. ...