简单查询练习

发布 2021-05-08 19:48:28 阅读 9074

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.查...