Oracle简单查询实例

--查询不重复的职位
select distinct job from emp;
--查询年薪,起别名,别名不要用单引号括起来
select sal*12 as nianxin from emp sal;
--以这样的形式显示具体数据:雇员编号是:姓名是:工资为:职位是:!
select ‘雇员编号是:‘||empno,‘姓名是:‘||ename,‘工资是:‘||sal,‘职位是:‘||job||‘!‘ from emp;
--查询不是职位不是“CLERK”的员工信息(至少用2种方式查询)
select * from emp where job != ‘CLERK‘;
select * from emp where job not like ‘%CLERK%‘;
--查询下员工姓名中有O和T的
select * from emp where ename like ‘%O%‘ and ename like ‘%T%‘;
--将员工工资按照由高到低的顺序排列
select sal from emp order by sal desc;
--查询显示工资大于各个部门工资的平均值的员工的年龄
select empno,a.deptno,a.sal,b.deptno,b.gsal,round((sysdate - hiredate) / 365, 0) --年龄
from emp a,(select deptno,round(avg(sal),0)as gsal from emp group by deptno) b --基表和视图表
where a.deptno=b.deptno --主键连接基表和视图
and a.sal>b.gsal; --工资大于各部门平均工资
--查询各个部门工资范围,按照1000~2000,2000~3000.。。。这样的格式显示人数
--------------------------没看懂意思
--要求查询出工资比SMITH工资要高的全部雇员信息
select * from emp where sal>(select sal from emp where ename=‘SMITH‘);
--要求查询出高于公司平均工资的全部雇员信息
select * from emp where sal>(select avg(sal) from emp);
--查询出每个部门的编号、名称、位置、部门人数、平均工资
select deptno,avg(sal) from emp group by deptno;
--统计各个部门的人数*/
select deptno,count (*) from emp group by deptno;
select * from emp;
--1  选择部门30中的所有员工。
select ename from emp where deptno = ‘30‘;
--2  列出所有办事员(CLERK)的姓名,雇员编号和部门编号。
select ename,empno,deptno from emp where job=‘CLERK‘;
--3  找出奖金高于薪金的员工。
select ename from emp where comm>sal;
--4  找出奖金高于薪金60%的员工。
select ename from emp where comm>(sal*0.6);
--5  找出部门10中所有经理(MANAGER)
select * from emp where deptno = ‘10‘ and job = ‘MANAGER‘;
--6  找出部门10中所有经理(MANAGER),以及所有部门中即不是经理又不是办事员但薪金大于或等于2000的所有员工的详细资料。
select * from emp where (deptno=10 and job = ‘MANAGER‘) or (job not in(‘MANAGE‘,‘CLERK‘) and sal>=2000)
select * from emp;
--7  找出有奖金的员工的不同工作。
select distinct job from emp where comm>0;
--8  找出没有奖金或奖金低于100的员工。
select * from emp where (comm<100 or comm is not null);
--9  找出每个月倒数第3天受雇的所有员工。
select * from emp where hiredate=(last_day(hiredate)-2);
--10  找出早于30年前受雇的员工。
select * from emp where add_months(sysdate,-30*12)>=hiredate; --add_months(xxxx,+or-) 当前时间+或者减月份
--11  以首字母大写的方式显示所有员工的姓名。
select initcap(ename) from emp;
--12  显示正好为5个字符的员工的姓名。
select ename from emp where length(ename)=5;
--13  显示不带有‘R‘的员工的姓名。
select ename from emp where ename not like ‘%R%‘;
--14  显示所有员工姓名的前三个字符。
select substr(ename,3) from emp;
--15  显示所有员工的姓名,用‘L‘代替所有‘A‘
select replace (ename,‘L‘,‘A‘) from emp;
--16  显示满30年服务年限的员工的姓名和受雇日期。
select months_between(sysdate,hiredate)/12 from emp;
select ename,hiredate from emp where months_between(sysdate,hiredate)/12 >=30 ;
--17  显示员工的详细资料,按姓名排序。
select * from emp order by ename desc;
--18  显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面。
select ename,hiredate from emp order by hiredate;
--19  显示所有员工的姓名、工作和薪金,按工作的降序排序,若工作相同则按薪金排序。
select ename,job,sal from emp order by job desc,sal ;
--20  显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面。
select ename,to_char(hiredate,‘yyyy‘)年份,to_char(hiredate,‘mm‘) 月份 from emp order by 月份,年份;--------------------------------
--21  显示在一个月为30天的情况所有员工的日薪金,忽略余数。
select trunc(sal/30) from emp;
--22  找出在(任何年份的)2月受聘的所有员工。
select * from emp where to_char(hiredate,‘mm‘)=2;
--23  对于每个员工,显示其加入公司的天数。
select ename,sysdate-hiredate from emp;
--24  显示姓名字段的任何位置包含‘A‘的所有员工的姓名。
select ename from emp where ename like ‘%A%‘;
时间: 2024-10-24 07:24:02

Oracle简单查询实例的相关文章

oracle 简单查询

数据查询是用SELECT命令从数据库的表中提取信息. 语法结构:简单查询 SELECT *|列名|表达式 FROM 表名 WHERE 条件 ORDER BY 列名 语法解析: *表示表中的所有列. 列名可以选择若干个表中的列名,各个列表中间用逗号分隔. 表达式可以是列名.函数.常数等组成的表达式. WHERE子句是查询的条件. ORDER BY 要求在查询的结果中排序,默认是升序. Oracle中可以把查询的结果根据结果集中的表结构和数据形成一张新表. 语法结构:根据结果集创建表 CREATE

010.简单查询、分组统计查询、多表连接查询(sql实例)

-------------------------------------day3------------ --添加多行数据:------INSERT [INTO] 表名 [(列的列表)] --SELECT UNION --SELECT 'HAHA',1,32--UNION ALL --全部显示/显示重复数据 即使集合相同--UNION---------将查询的两个结果集合并.结构必须一致 -->常见面试题 --SELECT 'HEHE',2,33------将查询结果添加到列表中(子查询)IN

Oracle学习(二)—简单查询

1.SCOTT用户之中的主要数据表 dept.emp.salgrade.bonus.观察四张表结构(语法:DESC 表). |·部门表:dept NO. 字段   类型 描述 1. DEPTNO  NUMBER(2) 部门编号,最多只能由两位数字所组成 2. DNAME VARCHAR2(14) 部门名称,由14个字节长度所组成 3. LOC     VARCHAR2(13) 部门位置 |·雇员表:emp NO. 字段   类型 描述 1. EMPNO   NUMBER(4)  雇员编号,最多只

oracle高级查询(实例基于scott用户四张表)

oracle高级查询(实例基于scott用户四张表) 分组查询 多表查询 子查询 综合实例 ======================================================================= scott用户的四张表(emp,dept,bonus,salgrade) 没有这四张表的可参考http://blog.csdn.net/love_legain/article/details/54311040进行创建 -----------------------

Oracle笔记(四) 简单查询、限定查询、数据的排序

Oracle笔记(四) 简单查询.限定查询.数据的排序 一.简单查询 SQL(Structured Query Language) 结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统.ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言. Oracle数据库之所以发展的很好,主要也是因为Oracle是全世界最早采用SQL语句的数据库产品. SQL功能强大,概括起来,它可以分成以下几组: DML(Data Manipulation La

Oracle从入门到精通 关于简单查询的问题

视频课程:李兴华 Oracle从入门到精通视频课程 学习者:阳光罗诺 视频来源:51CTO学院 如果要进行查询,肯定使用的时DML中的查询部分支持,相对于简单查询而言,通俗的理解,就是全部记录都查询,但是可以通过语法控制列的显示与否. 简单查询的SQL语法结构如下所示: ②SELECT [DISTINCT] * |列[别名],别[别名],--.①FROM 表名称[别名]: 两者在执行的顺序上是先从①开始执行,然后再去执行② 举例:如果再select子句之中使用了"*"表示的是查询一张表

Oracle数据库之四 简单查询

四.简单查询 ? 简单查询的主要特征就是将一张数据表之中的全部数据行进行显示,而后可以利用 SELECT 子句来控制所需要的输出列. 4.1.基础语法 范例:查询 emp 表中的数据(全部数据查询) SELECT * FROM emp; ? 在取得全部数据后,可以发现某些列上会显示 null 的信息,null 表示的是没有内容,但 null != 0 , null 指的是暂时未知的内容. 简单查询语句语法: SELECT [DISTINCT] * | 列名称[AS][列别名],列名称[AS][列

Oracle之简单查询

目标: 掌握SQL语句的基本语法; 可以使用SQL语句完成简单查询功能; 1.[范例]:查询emp表中的数据; select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----- ---------- --------- ----- ----------- --------- --------- ------ 7369 SMITH CLERK 7902 1980/12/17 800.00 20 7499 ALLEN SALE

oracle 基本查询语句及实例

1.查询所有列 select * from 表名: 2.查询表结构 desc 表名: 3.查询指定列 select ename,sal,job from 表名: 4.oracle中查看所有表和字段 获取表: select table_name from user_tables; //当前用户的表 select table_name from all_tables; //所有用户的表 select table_name from dba_tables; //包括系统表 select table_n