1.选择部门30中的所有员工。
select * from emp where deptno = 30;
2.列出所有办事员(clerk)的姓名,编号和部门编号。
select ename,empno,deptno from emp where job = upper('clerk');
3.找出佣金高于薪金的员工。
select * from emp where comm > sal;
4.找出佣金高于薪金60%的员工。
select * from emp where comm > sal * 0.6;
5.找出部门10中所有经理(manager)和部门20中的所有办事员(clerk)的详细资料。
select * from emp where deptno = 10 or job = mananger') and deptno = 20 or job = clerk');
6.找出部门10中所有经理(manager)和部门20中的所有办事员(clerk),既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料。
select * from emp where (deptno = 10 and job = manager') or (dept = 20 and job = clerk') or (job not in ('manager','clerk') and sal >=2000);
7.找出收取佣金的员工的不同工作。
工作会出现重复,所以distinct关键字消除掉重复的列)
comm is not null)
select distinct job from emp where comm is not null;
8.找出不收取佣金或收取的佣金低于100的员工。
select * from emp where comm is null or comm < 100;
9.找出各月倒数第3天受雇的所有员工(last_day())
select * from emp where last_day(hiredate)-2=hiredate;
10.找出12年前受雇的员工。
条件 ; months_betwee()/12,取出总共的月在处以12
select * from emp where months_between(sysdate,hiredate)/12>12;
11.以首字母大写的方式显示所有员工的姓名(initcap)
select initcap(ename) from emp;
12.显示正好为5个字符的员工的姓名(length())
select emame from emp where length(ename)=5;
13.显示员工中不带r的员工信息(like)
select ename from emp where name not like '%r%';
14.显示所有员工姓名的前三个字符(substr(ename,0,3))
select substr(ename,0,3) from emp;
15.显示所有员工的姓名,用"a"替换所有"a"(repalce,'a','a')
select replace(ename,'a','a')from emp;
16.显示满10年服务年限的员工的姓名和受雇日期。
select ename,hiredate from emp where months_between(sysdate,hiredate)/12>10;
18.显示员工的姓名和受雇日期,根据其服务年限,将最老的员工拍在最前面。
select * from emp order by hiredate;
19.显示所有员工的姓名,工作和薪金,按工作的降序排序,若工作相同则按薪金排序。
select ename,job,sal from emp order by job desc,sal;
20.显示所有员工的姓名,加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面 (to_char)
select ename,to_char(hiredate,'yyyy') year,to_char(hiredate,'mm') mon from emp order by mon,year;
21.显示在一个月为30天的情况所有员工的日薪金,忽略余数(round())
select ename,round(sal/30) from emp;
22.找出在(任何年份的) 2月受聘的所有员工。
还是使用to_char()函。
数,求出月。
select * from emp where to_char(hiredate,'mm')=2;
23.对于每个员工,显示其加入公司的天数日期-日期=天数。
select ename,round(sysdate-hiredate) from emp;
24.显示姓名字段的任何位置包含"a"是所有员工的姓名。
select * from emp where ename like '%a%';
25.以年月日的方式显示所有员工的服务年限。
select ename,trunc(months_between(sysdate,hiredate)/12)year,trunc(mod(months_between(sysdate,hiredate),12))mon,trunc(mod(sysdate-hiredate,30))day
from emp
简单查询练习
1.查询简书目中所有单价大于50元的书本的书名 单价和出版社信息。2.查询jsm表中的全部列。3.查询所有书本的isbn,并在结果表中isbn属性列前加一列 isbn 4.查询所有书本8折销售后的书名和售价。5.查询所有借了书的读者的借书证号。6.查询由清华大学出版社出版的图书的书名。7.查询197...
Oracle简单查询笔记
一 数据库查询语言sql 1.基本select语句 select 内容 from 表 集合 where 条件 1 内容 是所选定的数据项。2 条件 是选择数据的过滤规则。1 内容 1 代表所有字段 2 若希望单独列出某几个字段,可以使用 col1,col2,的方式。3 不能与 col1,col2,的...
实验二SQL简单查询 答案
实验目的 掌握select语句的基本语法格式和用法,能够灵活使用select语句完成提出的查询要求。实验内容 使用select语句完成以下查询 1.查询全体学生的学号 姓名,要求查询结果按学号的升序进行排序。select sno,sname from student order by sno 2.查...