Oracle数据库入门简单练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
查询所有员工的部门编号
select deptno from emp;
select distinct deptno,ename from emp;
查询所有的部门编号
select deptno from dept;
将查询的格式写为:ename工作是job,工资是sal
select ename||'工作是'|| job ||',工资是'||sal from emp;
将查询的格式写为:ename 工作是XX ,所属部门编号是XX,雇用时间是XX,工资是XX
select ename ||'工作是'|| job || ',所属部门编号是'|| deptno||',雇用时间是'|| hiredate||',工资是'|| sal from emp;
查询工资超过2000的员工
select * from emp where sal > 3000;
查询工资小于2000的员工信息
select * from emp where sal < 2000;
查询工资是2000的员工信息
select distinct * from emp where sal = 2000;
查询工资不是2000的员工信息
select distinct * from emp where sal != 2000;
查询在部门编号是20 的员工信息
select distinct * from emp where deptno = 20;
查询员工编号是7876的员工信息
select distinct * from emp where empno = 7876;
查询员工名字是SMITH的员工编号 去掉重复列
select distinct empno from emp where ename='SMITH';
查询工资在800 到1200之间的员工姓名
select distinct ename from emp where sal between 800 and 1200;
查询部门编号在10-20之间的员工信息 去掉重复列
select distinct * from emp where deptno between 10 and 20;
查询部门编号在10,20的员工信息 去掉重复列
select distinct * from emp where deptno in(10,20);
查询员工名字中包含'H'的员工信息
select * from emp where ename like '%H%';
查询员工名字中以J开头,第三个字母是N的员工信息
select * from emp where ename like 'J_N%';
查询出所有没有奖金的员工的信息;
select distinct * from emp where comm is null;
查询出所有有奖金的员工的信息:
select distinct * from emp where comm is not null;
查询10部门并且薪水大于2000的员工
select * from emp where deptno=10 and sal>2000;
查询薪水小于1000并且没有奖金的员工信息
select distinct * from emp where sal < 1000 and comm is null;
查询薪水大于5000并且有奖金的员工信息
select distinct * from emp where sal > 5000 and comm is not null;
查询部门10或者部门20的员工信息
select distinct * from emp where deptno=10 or deptno=20;
查询薪水大于5000或者奖金大于3000的员工信息
select distinct * from emp where sal > 5000 or comm > 3000;
查询10部门或20部门中奖金大于300的员工信息
select distinct * from emp where deptno in (10,20) and comm > 300;
查询10部门或20部门有没有‘SMITH’这个人
select distinct * from emp where deptno in(10,20) and ename = 'SMITH';
查找薪水不在800 - 2000之间的员工信息
select distin
ct * from emp where sal not between 800 and 2000;
查找不在部门10或20的员工信息
select distinct * from emp where deptno not in (10,20);
查询所有员工信息,按工资的排序。(升序)
select distinct * from emp Order by sal asc;
查询所有员工信息,按工资的排序。(降序)
select distinct * from emp Order by sal desc;
查询公司中所有员工的薪资情况,并按照年薪降序排列。
select distinct ename,sal,sal*12 income from emp order by income desc;
查询公司中所有员工信息,并且部门编号按照降序排列,薪资按照升序排列。
select distinct * from emp Order by deptno desc,sal asc;
查询出所有20部门员工的信息并按照员工入职时间从早到晚。
select distinct * from emp where deptno = 20 order by hiredate ;
查询出所有员工的姓名,并且姓名小写
select distinct lower(ename) from emp;
把'HELLO'转换成小写
select lower('HELLO') from dual;
把'hello'转换成大写
select upper('hello') from dual;
把'hello world'中每个单词的首字母大写
select initcap('hello world') from dual;
把'hello'和'world'连接起来
select concat('hello','world') from dual;
将'hello world'从第三个字符开始,截取3个字符
select substr('hello world',3,3) from dual;
将'hello'左填充为10位
select lpad('hello',10,'#') from dual;
将'hello'右填充为10位
select rpad('hello',12,'%') from dual;
去掉' hello '中的空格
select trim(' hello ') from dual;
将'hello'中的首字符'h'去掉
select trim('h' from 'hello') from dual;
将'hello'中首尾字符'h'去掉
select trim('h' from 'hehllh') from dual;
将'hello'中的'l'用'm'替换
select replace('hello','l','m') from dual;
求字符串'hello'的长度
select length('hello') from dual;
将234.4557小数点后取三位,并四舍五入
select round(234.4557,3) from dual;
将234.4557小数点后取三位,但不四舍五入
select trunc(234.4557,3) from dual;
求10%3
select mod(10,3) from dual;
求-22.3的绝对值
select abs(-22.3) from dual;
获得系统当前时间
select sysdate from dual;
计算员工工作的月数
select ename,months_between(sysdate,hiredate) from emp;
如果按三个月的试用期算,那么计算查询所有员工转正的时间
select ename,hiredate,add_months(hiredate,3) from emp;
获得从系统当前日期开始,下个星期一的日期
select sysdate,next_day(sysdate,'星期一') from dual;
获得系统当月最后一天的日期
select sysdate,last_day(sysdate) from dual;