oracle学习笔记(十) 查询练习(一)
查询练习一
表创建
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学习笔记(十) 查询练习(一)的更多相关文章
- Oracle学习笔记(十二)
十三.存储过程和存储函数1.掌握存储过程(相当于建立一个函数或者方法体,然后通过外部对其调用) 指存储在数据库中供所有程序调用的子程序叫做存储过程或存储函数. 相同点: 完成特定功能的程序 区别: 是 ...
- Oracle学习笔记(十)
光标(游标)概念引入 就是一个结果集(查询或者其他操作返回的结果是多个时使用)定义一个光标 cursor c1 is select ename from emp: 从光标中取值 打开光标: --ope ...
- Oracle学习笔记十四 内置程序包
扩展数据库的功能 为 PL/SQL 提供对 SQL 功能的访问 用户 SYS 拥有所有程序包 是公有同义词 可以由任何用户访问 一些内置程序包 程序包名称 说明 STANDARD和DBMS_STAND ...
- Oracle学习笔记十二 子程序(存储过程、自定函数)和程序包
子程序 子程序:命名的 PL/SQL 块,编译并存储在数据库中. 子程序的各个部分: 1.声明部分 2.可执行部分 3.异常处理部分(可选) 子程序的分类: 1.过程 - 执行某些操作 2.函数 ...
- Oracle学习笔记十 使用PL/SQL
PL/SQL 简介 PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言,是对 SQL 的扩展,它支持多种数据类型,如大对象和集合类型,可使用 ...
- Oracle 学习笔记 常用查询命令篇
1.查询某个用户下有多少张表 有时候很有用 select count(*) from dba_tables t where t.owner='SCOTT';
- Oracle学习笔记(1)——查询及删除重复数据
1.查找表中多余的重复记录(根据单个字段studentid) select * from table_name where studentid in (select studentid fro ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- oracle学习笔记第一天
oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字 1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...
- Oracle学习笔记之四sp1,Oracle 11g的常用函数
从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节 3.1 字符类函数 ASCII(c)和CHR(i) 分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符. C ...
随机推荐
- Web安全测试学习笔记-DVWA-图片上传
很多网站都有上传资源(图片或者文件)的功能,资源上传后一般会存储在服务器的一个文件夹里面,如果攻击者绕过了上传时候的文件类型验证,传了木马或者其他可执行的代码上去,那服务器就危险了. 我用DVWA的文 ...
- ThinkPHP调用其他控制器的方法,助手函数action()
用法: $a = action('admin/user/detail',['id'=>10]); var_dump($a) 表示在其他控制器调用user控制器的detail方法,传了一个参数id
- 当面试官要你介绍一下MQ时,该怎么回答?
一.为什么要使用MQ消息中间件? 一个用消息队列的人,不知道为啥用,有点尴尬.没有复习这点,很容易被问蒙,然后就开始胡扯了. 回答:这个问题,咱只答三个最主要的应用场景,不可否认还有其他的,但是只答三 ...
- ASP.NET MVC教程三:ASP.NET MVC部署方式
ASP.NET MVC编写的程序需要部署到IIS上面才能进行访问,部署方式分为两种. 一.直接用源代码部署 第一种方式可以直接使用源代码进行部署.部署步骤: 1.新建网站 在IIS里面选择网站,然后右 ...
- CSS3动画的使用
0921自我总结 CSS3动画的使用 一.动画的创建 @keyframes规则是创建动画 浏览器兼容 1.@keyframes myfirst 2.@-webkit-keyframes myfirst ...
- Saltstack_使用指南18_API
1. 主机规划 salt 版本 [root@salt100 ~]# salt --version salt (Oxygen) [root@salt100 ~]# salt-minion --versi ...
- 修改uid gid 的起始范围
UID_MAX 60000 # # Min/max values for automatic gid selection in groupadd # GID_MIN 500 GID_MAX 60000 ...
- Codeforces Round #603 (Div. 2)
传送门 感觉脑子还是转得太慢了QAQ,一些问题老是想得很慢... A. Sweet Problem 签到. Code /* * Author: heyuhhh * Created Time: 2019 ...
- 【Oracle】SQL的一些关键字
1. distinct 关键词 DISTINCT 用于返回唯一不同的值: 只可以在select中使用: 既可以对一列,也可以对多列使用: distinct对NULL是不进行过滤的,即返回的结果中是包含 ...
- 微服务、SpringCloud、k8s、Istio杂谈
一.微服务与SOA “微服务”是一个名词,没有这个名词之前也有“微服务”,一个朗朗上口的名词能让大家产生一个认知共识,这对推动一个事务的发展挺重要的,不然你叫微服务他叫小服务的大家很难集中到一个点上. ...