oracle

来源:互联网 发布:手机游戏双开软件 编辑:程序博客网 时间:2024/06/06 01:59
select*from emp where sal>2000;   查询出薪资大于2000的员工的所有信息
select*from emp where sal<=1600;  查询出基本工资小于等于1600的全部雇员的信息
查询出姓名为Smith的所有信息
select*from emp where ename='smith';// 查询不出来任何结果,oracle数据库严格区分大小写
SELECT*FROM emp WHERE ename='SMITH';//显示姓名为Smith的雇员的所有信息


select*from emp where job!='CLERK';  //查询出职位不是CLERK的所有员工信息
select*from emp where job<>'CLERK';  <>表示不等于,不是
逻辑运算符:
AND:条件AND条件AND条件;  所有条件都必须要同时满足。
OR:条件OR条件OR条件OR;   所有条件只要有一个满足就行了


问题一:查询出销售人员中工资高于1200的所有员工
select*from emp where job='SALESMAN' AND sal>1200;
问题二:查询出薪资范围在1200到3000之间的所有雇员信息
select*from emp where sal<=3000 AND sal>=1200;
问题三:查询出10部门的所有经理的所有信息
            条件一:先查出10部门的数据
            条件二:职位必须是经理
select*from emp where deptno=10 and job='MANAGER';
OR连接操作
问题:查出薪资高于3000或者,职位是办事员的所有人员的信息
select*from emp where sal>3000 or job='CLERK';
NOT取反操作
问题:查询出职位不是办事员的信息
select*from emp where not job='CLERK';



1:取值范围:between....and    字段between最小值and最大值

范例:查询出工资在12003000之间的雇员信息,并按照工资从大到小排序。

SELECT*FROM emp

WHERE sal BETWEEN 1200 AND  3000  ORDER  BY  sal  DESC;

 

 

 

3、所有员工名字前面加上dear。并且名字首字母大写

SELECT 'dear' || INITCAP (ename) FROM emp;

4、找出姓名为5个字段的员工

SELECT*FROM emp WHERE LENGTH(ename)=5;

5、找出姓名中不带R这个字母的员工

SELECT*FROM emp WHERE ename  NOT LIKE '%R%';

6、显示所有员工的姓名的第一个字

SELECT  ename,SUBSTR(ename,1,1) FROM emp;

7、显示所有员工,按名字降序排序,若相同,则按工资升序排序。

SELECT*FROM emp ORDER BY ename DESC,sal ASC;

8、列出员工加入公司的天数(四舍五入)

SELECT*FROM emp  ORDER BY sal  DESC;